Nástroje na analýzu malvéru, Časť 1
Poznámka: tento môj článok pôvodne vyšiel na blogu firmy IstroSec
V tomto prehľade prinášame výber z najpoužívanejších a najužitočnejších nástrojov na analýzu malvéru, ktoré sú navyše k dispozícii bezplatne.
Analýza malvéru pozostáva z viacerých krokov, od zisťovania základných informácií založených na metadátach analyzovanej vzorky, cez (behaviorálnu) analýzu správania až po debugovanie a kompletné reverzné inžinierstvo inžinierstvo. V závislosti od požiadaviek a použitých metód môžu takéto analýzy trvať aj niekoľko hodín a použijú sa pri nich aj desiatky nástrojov.
Cieľom tohto článku však nie je priniesť dlhý vyčerpávajúci zoznam nástrojov, ktoré by niekedy mohli analytici škodlivého kódu potrebovať. Namiesto toho by sme radi publikovali výber nástrojov, ktoré sú užitočné pre začínajúcich aj skúsenejších analytikov. Navyše, sú voľne dostupné, buď ako open source, alebo aspoň ako freeware (aj keď v niektorých prípadoch iba pre nekomerčné použitie), takže si ich môžu dovoliť aj študenti, absolventi a nadšenci analyzujúci malvér ako hobby.
IDA Freeware
IDA je pravdepodobne najznámejší disasembler (program na prevod strojového kódu do symbolického zápisu inštrukcií) a jeden z najpoužívanejších nástrojov aj medzi profesionálmi. Je k dispozícii aj bezplatná verzia na nekomerčné použitie, avšak s viacerými obmedzeniami - podporuje iba 32 a 64-bitové aplikácie pre procesory x86 a x64. Taktiež je obmedzená podpora rozšírení (pluginov) a skriptovania - chýba napríklad veľmi obľúbené rozšírenie IDA Python, na skriptovanie je dostupný iba jazyk IDC.
Pre študijné a výskumné učely však vo verzii 7.6 poteší prítomnosť výborného dekompilátora, hoci “len” v cloudovej podobe a s tým súvisiach obmedzení. Predchádzajúce verzie však dekompilátor nemali a aj v prípade Pro verzie je potrebné dekompilátor zvlášť dokúpiť, a tak mnoho analytikov využívalo aj alternatívne disasemblery, ktoré nejakú formu dekompilátora ponúkali - Cutter (frontend pre framework Radare2, resp. Rizin) a Ghidra, open source framework pre reverzné inžinierstvo od americkej NSA.
x64dbg
Open source debuger pre Windows, podporuje 32 aj 64-bitové programy pre procesory x86/x64. Používateľským rozhraním je podobný odvedčenému konceptu známemu z nástrojov OllyDbg a Immunity Debugger, avšak má niekoľko vylepšení. Má v sebe integrovaný aj Graph View pre grafické znázornenie základných blokov a prechodov medzi nimi a podporuje aj Snowman dekompilátor vo forme pluginu. Taktiež preň existuje množstvo rôznych pluginov, ktoré ocenia pokročilejší analytici.
Hiew
Hexadecimálny editor Hiew, ktorého názov je skrátenou podobou Hacker’s View, vyzerá síce mierne staromódne, avšak jeho schopnosti rozhodne stoja za vyskúšanie, najmä pri rýchlej analýze spustiteľných súborov vo formáte PE. Ponúka tri možnosti zobrazenia - textový, hexadecimálny a disasembler. Dokáže zobrazovať aj editovať hlavičky, rozumie štruktúre PE súborov, vie extrahovať textové reťazce a obsahuje aj viacero funkcií užitočných pri analýze obfuskovaného malvéru, napríklad xorovanie blokov dát v súbore, prípadne aj aplikovanie zložitejších transformácií.
Demo verzia je dostupná zadarmo, plná verzia (bez aktualizácií) však vôbec nie je drahá (19 USD na anglickej verzii stránky, cca 7 USD na ruskej stránke).
Process Hacker
Process Hacker je podobne ako nástroj Process Explorer (patriaci do Windows Sysinternals) pokročilý správca úloh, s mnohými vylepšeniami na monitorovanie systémových zdrojov, hľadanie chýb a problémov a aj na analýzu malvéru. Dokáže zobraziť vlastnosti procesov, bežiace vlákna, call stack, otvorené súbory, extrahovať textové reťazce z paméte procesu, manipulovať s bežiacimi procesmi, napríklad uspávať ich, dumpovať obsah ich pamäte, a mnoho iného.
Process Monitor
Process Monitor z balíka Windows Sysinternals je vhodný na monitorovanie činností bežiacich programov, konkrétne na aktivitu súvisiacu so súborovým systémom, registrami, sieťou aj samotnými procesmi a vláknami. Podporuje filtrovanie zobrazených záznamov na základe mnohých parametrov (vrátane regulárnych výrazov), ako aj uloženie a načítanie týchto filtrov, čo je veľmi vhodné pri rýchlej behaviorálnej analýze. Umožňuje tak rýchlo filtrovať najzaujímavejšiu aktivitu malvéru (vytváranie procesov, vytváranie súborov, zápis do registrov) alebo naopak pri podrobnejšej analýze odfiltrovať “bežný balast” a identifikovať prejavy malvéru v operačnom systéme (napr. injektovanie procesov)
Balík Windows Sysinternals obsahuje aj ďalšie výborné nástroje, ktoré sú užitočné aj pri analýze malvéru, napríklad už spomínaný Process Explorer, ProcDump, Autoruns, WinObj, DebugView a v neposlednom rade aj Strings, avšak tieto nástroje sa nedostali do nášho Top 10 výberu.
Záver
V tejto prvej časti sme predstavili 5 bezplatných nástrojov užitočných najmä pri analýze natívnych spustiteľných súborov (PE pre OS Windows, prípadne aj ELF pre OS Linux). Pri niektorých nástrojoch uvádzame aj alternatívy, prípadne ďalšie odporúčania. V druhej časti blogu predstavíme nástroje využiteľné aj pri iných typoch súborov, napríklad pri dokumentoch.