Táto diplomová práca je zameraná na vytvorenie respektíve úpravu virtuálneho systému na analýzu malvéru, schopného znemožniť detekciu analytického prostredia na základe opotrebovanosti operačného systému.
Úvod
Tvorcovia malvéru neustále hľadajú nové možnosti ako sa vyhnúť analyzovaniu ich škodlivého softvéru špecialistami z IT bezpečnosti. V minulosti ale aj v súčasnosti sa snažili autori malvérov detegovať virtuálne stroje, ktoré sú veľmi obľúbené práve na analyzovanie potencionálne škodlivých vzoriek, ale aj detegovať rôzne analytické nástroje, či rôzne špecifické analytické prostredia. Práve rozmach virtualizácie v rôznych IT odvetviach a rôznych IT riešeniach, ako napríklad cloudové riešenia, núti autorov škodlivých softvérov hľadať nové cesty, ako sa vyhnúť analýze. Jednou z nových techník je kontrola prostredia operačného systému na rôzne artefakty opotrebenia. Táto práca sa zaoberá vytvorením, respektíve úpravou virtuálneho systému, schopného odolať tejto technike detekcie a vyhodnotenia artefaktov opotrebenia operačného systému, ale aj bežným technikám na detekciu virtualizácie.
Pozadie práce
Táto práca sa výrazne opiera o výsledky štúdie o artefaktoch opotrebenia operačného systému. Táto štúdia sa zaoberala detekciou a vyhodnocovaním artefaktov opotrebenia operačného systému Windows a možnosťou detegovať opotrebovaný operačný systém na základe týchto artefaktov. Tieto artefakty sú v skutočnosti rôzne záznamy a dáta v operačnom systéme, ktoré po sebe zanecháva užívateľ v počítači svojou činnosťou. Na základe takýchto artefaktov opotrebenia je malvér schopný, v závislosti od zložitosti implementácie takejto detekcie vo svojom zdrojovom kóde, detegovať či nakazil reálny užívateľský stroj, alebo potencionálne analytické prostredie s čerstvou inštaláciou operačného systému. Samozrejme je pravdepodobné, že sa v istých situáciách by sa mohlo jednať o reálny užívateľský stroj, ktorý obsahuje proste len čerstvú inštaláciu. Každopádne percento takýchto prípadov je mizivé z dôvodu, že už po pár dňoch používania, obsahuje operačný systém veľké množstvo artefaktov opotrebenia. Nasledujúca tabuľka obsahuje kompletný zoznam artefaktov opotrebenia s ich významom.
Návrh a implementácia systému
Na základe štúdie o artefaktoch opotrebenia operačného systému a ich využívania pri pokusoch malvéru detegovať analytické prostredia virtuálnych strojov , sme sa rozhodli vytvoriť virtuálny systém, ktorý by mal byť schopný zamedziť, alebo aspoň znížiť šancu na odhalenie analytického prostredia využitím takejto detekcie. Návrh na implementáciu takéhoto virtuálneho systému pozostával z 3 krokov:
- vytvorenie virtuálneho stroja s reálne opotrebovaným operačným systémom Windows 10 pomocou nástroja a zbavenia tohto operačného systému rôznych osobných dát,
- implementácii nástroja na zahmlievanie artefaktov opotrebenia operačného systému Windows 10 na základe štúdie o artefaktoch opotrebenia systému,
- využívanie vytvoreného virtuálneho stroja v hypervízore VMWare.
Kombináciu týchto riešení sme zvolili hlavne preto, že samotný Windows obsahuje veľké množstvo artefaktov opotrebenia a implementácia zahmlievania všetkých týchto artefaktov by bola nad rámec diplomovej práce. No je potrebné poukázať nato, že kompletná implementácia zahmlievania všetkých artefaktov opotrebenia by eliminovala nutnosť virtualizovať reálny používateľský operačný systém. No na druhej strane, využitie virtualizácie reálneho operačného systému eliminuje nutnosť implementácie veľkého množstva artefaktov, ktoré môžu byť použité na detekciu opotrebovania, a ktoré sa z dlhodobého hľadiska tak často nemenia.
Vytvorenie virtuálneho systému vhodného na analýzu malvéru
Vytvorenie virtuálneho stroja s reálne opotrebovaným operačným systémom pozostávalo z virtualizácie opotrebovaného systému Windows 10 pomocou nástroja nazývaného VMware vCenter Converter Standalone Client. Pomocou tohto nástroja je možné virtualizovať akýkoľvek fyzický stroj na jeho virtuálnu podobu. Pre jeho bezproblémový chod virtuálneho stroja s Windows 10 odporúčame využiť aspoň 2 logické jadra procesora s minimálne 4 GB pamäte RAM a SSD disk.
Po úspešnej virtualizácii sme predmetný virtuálny stroj spustili pomocou hypervízora VMware Workstation Pro. Následne sme zo systému odstránili všetky súkromné dáta a súbory. Niektoré dáta boli odstránené manuálne, iné naopak pomocou rôznych automatizovaných nástrojov na čistenie systému.
Ak napriek faktu, že pokusov malvéru o detekciu virtuálnych strojov je čoraz menej, rozhodli sme sa upraviť konfiguráciu hypervízora VMware tak, aby sme zamedzili respektíve znížili šancu na odhalenie samotnej virtualizácie malvérom pomocou rôznych techník ako je Red Pill a podobne.
Implementácia nástroja na zahmlievanie artefaktov opotrebenia
Na úvod sme pri tvorbe nástroja zvolili artefakty opotrebenia, pre ktoré budeme implementovať automatizované zahmlievanie. Keďže čiastočne pri zahmlievaní artefaktov opotrebenia pomáha vyššie spomínaná virtualizácia reálne opotrebovaného operačného systému, pre automatizované zahmlievanie sme volili artefakty, ktoré najviac prispievajú k opotrebeniu systému užívateľom a tie, ktoré sa z časového hľadiska menia čo najviac.
Konkrétne sme zahmlievali artefakty z kategórie artefaktov disku, registrov systému Windows a artefaktov prehliadača. V kategórii artefaktov disku sme implementovali zahmlievanie artefaktov recycleBinSize, recycleBinCount, tempFilesSize, tempFilesCount, thumbsFolderSize a desktopFileCount. Z kategórie artefaktov registrov sme zvolili regSize, uninstallCount, autoRunCount, totalSharedDlls, totalAppPaths, orphanedCount, totalMissingDlls, MUICacheEntries a USBStorCount. A v poslednej spomínanej kategórii artefaktov internetového prehliadača sme zvolili artefakty uniqueURLs, browserNum, totalTypedURLs, totalCookies, uniqueCookieDomains, urlDiffDays, cookieDiffDays.
Nástroj na zahmlievanie artefaktov opotrebenia sme implementovali ako aplikáciu pre platformu Windows v jazyku C# pomocou softvérového rámca .NET. Užívateľské rozhranie je rozdelené podľa tried artefaktov. V každej oblasti je možné zvoliť, aký artefakt respektíve súbor artefaktov chce užívateľ zahmliť. Predmetný nástroj teda nezahmlieva všetky artefakty implicitne. Takýto prístup dáva užívateľovi úplnú kontrolu nad zahmlievaním artefaktov podľa potreby. Výhodou implementácie je aj jej prenositeľnosť na operačné systémy Windows 7 a novšie.
Jednou z možnosti nášho nástroja je aj implementácia zobrazenia a zmeny inštalácie operačného systému. Je to hlavne z dôvodu, že počty samotných záznamov rôznych artefaktov opotrebenia závisia od veku operačného systému. V princípe platí, že čím je operačný systém starší, tým obsahuje viac záznamov pre jednotlivé artefakty. Teda ak nechceme generovať veľmi veľké množstvo záznamov jednotlivých artefaktov, zmeníme dátum inštalácie na mladší. Je to dôležité aj z dôvodu, že zahmlievanie rôznych artefaktov závisí práve aj od dátumu inštalácie OS. Príkladom je napríklad zahmlievanie dočasných súborov, kde logicky nemôže byť dátum vytvorenia či úpravy dočasného súboru starší ako je samotný dátum inštalácie operačného systému.
Zahmlievanie artefaktov opotrebenia disku spočíva v zahmlievaní dočasných súborov, súborov plochy, súborov koša a súborov systémových náhľadov, ktoré vznikajú, keď si užívateľ prezerá zložky v súborovom systéme operačného systému. Predmetné zahmlievanie sme implementovali pomocou generovania rôznych súborov podľa typu artefaktu. Pre dočasné súbory sú to napríklad rôzne logovacie súbory, temp súboru, obrázky, dokumenty, binárne súboru a podobne. Pre vytváranie mien súborov sme využili kombináciu náhodných názvov z anglického online slovníka alebo globálne jedinečných 128 bitových identifikátorov. Pre ostatné súbory ako súboru plochy či súbory náhľadov sme postupovali obdobne. Každý vygenerovaní súbor mal vždy náhodný obsah, a rôzne dátumy vytvorenia, poslednej zmeny a posledného prístupu, ktoré sme generovali podľa rôznych logických obmedzení.
Zahmlievanie artefaktov registrov je založené na zahmlievaní registrových kľúčov systému Windows, ktoré obsahujú rôzne údaje ako napríklad údaje o všetkých pripojených USB úložiskách, zahmlievanie údajov o existujúcich ale aj neexistujúcich DLL knižniciach v systéme, údajov o aplikáciách spúšťajúcich sa pri štarte systému, informácii o aplikáciách určených na odinštalovanie aplikácii zo systému a podobne. Pri zahmlievaní jednotlivých artefaktoch sme používali falošné údaje pre jednotlivé kľúče, ktoré sme si generovali podľa potreby a následne ich uložili do registrov systému Windows. V niektorých prípadoch ako napríklad pri zahmlievaní DLL súborov a ich záznamov v registroch, bolo potrebné vytvoriť aj rôzne falošné DLL knižnice.
Zahmlievanie artefaktov prehliadača spočívalo v generovaní falošnej histórie prehliadania internetového prehliadača Mozilla Firefox, falošných unikátne navštívených domén, falošných záznamov o doménach, ktoré boli napísané v prehliadači ručne, generovaní falošných záznamov cookies pre prehliadač a podobne. V princípe sa jednalo o generovanie falošných záznamov pre rôzne vyššie spomínané artefakty prehliadača a s nimi spojených údajov, ako rôzne časové známky veku cookies, času kedy boli stránky navštívené a podobne. Prehliadač si takéto údaje ukladá v SQLite databáze a teda po vygenerovaní týchto údajov sme ich následne ukladali do súborov databázy prehliadača.
Samotná implementácia tohto zahmlievania je zložitejšia a nie je možné ju v tomto článku pokryť do hlbších podrobností. Následne sme takto implementovaný nástroj využívali pri zahmlievaní artefaktov virtuálneho systému, ktorý sme vytvorili.
Vyhodnotenie
Predmetný virtuálny systém sme podrobili testovaniu na detekciu virtualizácie pomocou nástroja na detekciu virtualizácie nazývaného VMDetection.exe. Výsledky testovania odhalili, že nástroj bol schopný detegovať virtualizáciu len pomocou 1 zo 6 metód na detekciu virtualizácie.
Následne sme pomocou nástroja na zahmlievanie artefaktov v 30 od seba nezávislých pokusoch zahmlievali systém a vyhodnocovali jeho schopnosť a úspešnosť zahmlenia systému pomocou nástroja na vyhodnotenie artefaktov opotrebenia. V 24 pokusoch z 30 spomínaných sme boli schopný zahmliť systém úspešne. Skúmaním výsledkov sme prišli nato, že v spomínaných 6 neúspešných pokusoch sme systém nezahmlili dostatočne a primerane jeho veku. Je možné teda prehlásiť, že použití systému ako celku so správnym použitím nástroja je možné vyhnúť sa detekcií analytického prostredia malvérom na základe techniky detekcie využívajúcej vyhodnocovanie artefaktov opotrebenia systému.
Záver
Táto diplomová práca prezentuje vytvorenie virtuálneho systému vhodného na analýzu malvéru schopného odolať detekcii prostredia na analýzu malvéru na základe opotrebovanosti operačného systému. Práca sa tiež zaoberá implementáciou nástroja na zahmlievanie artefaktov opotrebenia operačného systému, ktorý využíva na zahmlievanie vytvoreného virtuálneho systému tak, aby odolal pokusom o detekciu na základe vyhodnocovania artefaktov opotrebenia operačného systému. Výhodou vytvoreného nástroja je jeho prenositeľnosť medzi rôznymi analytickými prostrediami využívajúcimi pri analýze operačný systém Windows.