Linuxový a další *NIX-ový malware

Před nějakou dobou jsme začali do SSH honeypotů přesměrovávat v testovacím provozu vnější SSH port z Turrisů některých dobrovolníků z vývojového týmu. Aby si s námi „povídalo“ co nejvíce útočníků, povolili jsme v honeypotu přihlášení na roota libovolným heslem; navzdory tomu většina botů stejně nic neudělá a hned se odpojí i po úspěšném pokusu.

Po ostatních úspěšných přihlášeních následuje buď pokus o forwardování spojení (a použití SSH stroje jako proxy) nebo snaha o stáhnutí a spuštění nějakého malware. Zajímalo mě, co ten malware dělá.

Dá se říct, že většina zachyceného malware je celkem nezajímavá, není moc obfuskovaná, dokonce často ani nejsou stripnuty symboly. V nejběžnějším případě se jedná o trojan, který umí DOS útok přes TCP, UDP nebo DNS amplification. Proces se nesnaží ani příliš skrývat. Útočníci zřejmě očekávají, že stroje s jednoduchými hesly, které napadly, jsou špatně spravovány a nikdo si toho stejně nevšimne.

Běžně bývají tyto trojany multiplatformní, distribuované jako staticky slinkované binárky. Útočník wgetem stáhne několik verzí – pro x86, x86_64, ARM a MIPS. Většinou jsou to linuxové binárky, občas se objeví i binárka pro *BSD. Existence ARM a MIPS binárek ukazuje, že se útočníci zaměřují i na embedded systémy. Pak je prostě všechny za sebou spustí a vůbec neřeší detekci systému: „vždyť něco z toho poběží“. Na konci přidá spouštění po startu cronem, přes SysV init skripty v /etc/rc.d nebo do /etc/rc.local.

Pozoruhodnější je, že kvalita kódu samotných trojanů je mnohem lepší, než jak vypadají použité shell skripty. Je z nich třeba vidět, jak jsou pěkně rozděleny na moduly, používají vlákna, synchronizační primitiva a fronty zpráv. Analýzu jednoho „lepšího“ trojanu BillGates si můžete přečíst zde.

Mě osobně víc zaujal nedávný trojan, který se tváří, že má schopnosti rootkitu skrývat soubory, procesy a obcházet iptables. Tyto funkce zapíná přes volání ioctl na souboru /proc/rs_dev, jehož vytvoření má na starosti kernel modul. Po spuštění si smaže binárku, ze které byl spuštěn, zkopíruje se do /boot/ adresáře s náhodným jménem, provede double-fork a zavolá si zmíněnou funkci na skrytí svého PID. Autostart binárky z /boot zajistí vytvořením init skriptu v /etc/rc.d.

Po podrobnějším zkoumání jsem zjistil, že skrývací funkce zatím nefungují, protože trojan vždy přeskočí vytvoření a zavedení souboru s kernel modulem (tělo modulu v binárce má jen jeden bajt). Modul buďto ještě není implementován nebo není přítomen v této variantě. Analyzovaný trojan je opět primárně určen na DOS útoky a jeho CNC server je na adrese 103.25.9.228.

Odkud se tento malware bere? Husarský kousek se povedl jednomu analytikovi malware, který odchytil přímo jak distributoři malware školí své zákazníky, jak rozšiřovat a používat jejich malware. Součástí článku je i video z tohoto školení. Vysvětluje se zde i proč existuje tolik variant – Číňané mají builder, který ELF binárky generuje podle zadaných parametrů.

Autor:

Komentáře (3)

Zanechte komentář