Bezpečnostní projekt Talos, provozovaný společností Cisco, už několik měsíců zkoumá nový sofistikovaný modulární malware nazvaný VPNFilter. Nejsou k dispozici zdaleka všechny informace, ale odborníci se přesto rozhodli zveřejnit podrobnou zprávu, aby se napadení uživatelé mohli bránit. Podle této zprávy jde pravděpodobně o malware, na kterém se podílel některý ze státních aparátů.
Část kódu nového malware se překrývá s kódem malware BlackEnergy, který je zodpovědný za několik velkých útoků cílících na zařízení na Ukrajině. Protože i nová verze útočí z velké části na klíčovou infrastrukturu právě v této zemi, rozhodli se lidé z projektu Talos vyjít na světlo s dostupnými informacemi, přestože jejich výzkum není zdaleka u konce.
Půl milionu zařízení v 54 zemích
Talos odhaduje, že VPNFilter napadl půl milionu síťových zařízení v 54 zemích. Konkrétně jde o domácí a kancelářské routery firem Linksys, MikroTik, Netgear a TP-Link a NAS značky QNAP. Na výrobcích jiných firem zatím nebyl malware objeven, ale zpráva dodává, že v tomto ohledu výzkum ještě pokračuje.
Zásadní je to, jaké neobvyklé schopnosti malware má. Jeho kód dokáže krást přístupové údaje a monitorovat protokoly Modbus a SCADA, kterých se využívá k řízení ve velkých továrnách. Má také destrukční část, která dokáže trvale poškodit konkrétní zařízení nebo jich naráz vyřadit z provozu stovky tisíc.
Kategorizovat napadená zařízení je obtížné, ale obecně pro ně platí, že se často nachází na perimetru sítě a neobsahují žádný nástroj pro ochranu před útoky (IPS) nebo antivirus. Zatím není znám ani přesný mechanismus, jakým se malware do zařízení dostává. Řada z nich má ovšem veřejně známé exploity nebo výchozí přihlašovací údaje, takže způsob napadení by mohl být velmi jednoduchý.
První fáze: zavedení a stahování
VPNFilter je modulární vícefázový malware, který může sloužit jak ke sběru dat, tak i k destruktivním útočným operacím. První část malware je perzistentní, zapsaná v NVRAM paměti zařízení a vydrží restart. To ji odlišuje od mnoha jiných podobných řešení, která zůstávají jen v RAM zařízení a po restartu se jich uživatel zbaví. V tomto případě malware napadá linuxový systém používající Busybox a jeho kód je zkompilován pro několik různých architektur. Kód je přidán do cronjobu, aby bylo zajištěno jeho spuštění i po příštím restartu.
Tato první část slouží ke stažení hlavní části, která už obsahuje skutečný záškodnický kód. Zajímavé je, že se ke stažení používá sofistikovaný mechanismus využívající celé řady možností získání informací o tom, kde se nachází řídicí servery s druhou částí malware. Celý koncept je tak velmi robustní a zvládne i rozsáhlé změny na úrovni řídicí infrastruktury. Stahování navíc probíhá pomocí šifrovaného SSL spojení.
Malware se například připojuje na server Photobucket.com určený pro sdílení fotografií. Vyhledá tam správnou galerii a stáhne z ní první fotografii. IP adresa řídicího serveru je uložena v upravených GPS souřadnicích, které jsou součástí EXIF hlavičky obrázku. Pokud se takto nepodaří použitelnou informaci získat, pokračuje malware na server toknowall[.]com (doména už byla zajištěna americkou FBI), kde se snaží informace obdržet stejným způsobem.
Pokud selže i tato metoda, přejde malware do pasivního režimu a čeká na konkrétní příchozí paket. Pokud mu paket dorazí a odpovídá správnému vzoru, malware z něj opět extrahuje IP adresu pro stažení druhé části. Útočník má tedy možnost se s napadenými routery spojit, i kdyby byla jeho infrastruktura zcela odpojena.
Druhá fáze: komunikace s řídicím serverem
Jakmile je malware stažen a spuštěn, vytvoří si nejprve adresář /var/run/vpnfilterm
určený pro moduly a pracovní adresář /var/run/vpnfilterw
. Poté se pokouší stahovat a spouštět příkazy z řídicího serveru. Jelikož se podařilo získat vzorky se zapnutými debugovacími hláškami, mají lidé z Talosu velmi přesnou představu o tom, co malware dokáže:
- kill: přepíše prvních 5 000 bytů zavaděče v
/dev/mtdblock0
nulami a restartuje se – tím brickne router - exec: spustí shellové příkazy nebo plugin
- tor: přepíná konfigurační příznak Toru
- copy: kopíruje soubor z klienta na server
- seturl: nastavuje URL konfiguračního panelu
- proxy: nastavuje URL proxy serveru
- port: nastavuje port proxy serveru
- delay: nastavuje prodlevu mezi načítáním příkazů a vykonáváním
- reboot: rebootuje zařízení, pokud běží alespoň 256 sekund
- download: stáhne obsah zadané URL do souboru
Verze pro architekturu MIPS má ještě možnost zavolat příkaz stop, který ukončí proces malware.
Pokud není nainstalován modul Tor, připojuje se malware na SOCKS5 proxy server na získané IP adrese. Tudy prochází do sítě Tor a snaží se (opět šifrovaně) komunikovat se svým ovládacím panelem. Pokud má k dispozici modul Tor, připojuje se přímo na anonymní .onion adresu v Toru.
Poté v JSON objektu poslaném HTTP POST na adresu /bin32/update.php
odešle informace o zařízení včetně unikátního identifikátoru, platformy, veřejných IP adres nebo své verze. Od serveru pak v odpovědi dostane konfiguraci některých parametrů a názvy modulů, které si má ze serveru stáhnout. Získá je pak opět zasláním POST s názvem modulu a jeho architekturou.
Třetí fáze: výkonná
Zatím byly prozkoumány jen dva výkonné moduly: odposlechový (packet sniffer) a modul pro komunikaci po síti Tor. Je velmi pravděpodobné, že existuje ještě několik dalších, které se zatím týmu Talos nepodařilo získat. Tyto moduly nejsou perzistentní a po restartu zařízení si je musí malware od serveru znovu stáhnout.
Zmíněný modul určený pro odposlech si otevře síťové rozhraní, sleduje všechny procházející pakety a hledá v nich řetězce odpovídající HTTP přihlášení. Konkrétně ho zajímají pakety patřící k protokolu Modbus TCP. Výsledný log je pak ukládán do zmíněného pracovního adresáře /var/run/vpnfilterw
. Útočník tak má možnost sledovat a zachytávat provoz běžící přes router.
Modul Tor je propojený s druhou fází běhu malware a jeho zapojení do procesu už jsme si popsali. Jde o standardního Tor klienta, který je stažen do /var/run/tor
, konfiguraci si ukládá do /var/run/torrc
a pracovní adresář má v /var/run/tord
.
Univerzální a všehoschopný
Tým projektu Talos varuje před tím, že takto postavený malware je velmi odolný, univerzální a je schopen plnit pro svého tvůrce prakticky libovolnou činnost. Zatím nebyl zpozorován modul, který by napadal nějaké další prvky v sítích obětí, ale podle nepřímých důkazů takový modul také existuje. Útočník tak může v sítích napáchat velké škody.
Zajímavá je také schopnost zcela vyřadit zařízení z provozu. Útočník by tak správným příkazem mohl naráz odpojit stovky tisíc sítí na mnoha místech. K čemu by takový útok mohl dále sloužit, si odborníci s Talosu netroufají hádat, ale jsou takovou možností evidentně velmi znepokojeni a je to jeden z důvodů, proč urychlili zveřejnění zjištěných údajů.
Dalším důvodem je, že se na počátku května prudce zvýšila aktivita tohoto malware, který začal skenovat TCP porty 23, 80, 2000 a 8080 a hledat za nimi další napadnutelná zařízení ve více než stovce zemí. Výrazně tak přibylo nových infekcí, jak ukazuje následující graf. Zásadní informací pak je, že téměř všechny nově infikované routery se nacházejí na Ukrajině a používají oddělený řídicí server. Další výrazná ukrajinská infekce pak přišla 17. května.
Obrana je obtížná
Bránit se proti VPNFilteru je vzhledem k charakteru napadených zařízení velmi obtížné. Routery jsou připojené přímo do internetu bez jakékoliv další ochrany. Nebezpečí je ještě umocněno tím, že většina těchto routerů má známé bezpečnostní chyby, které běžný uživatel není schopen opravit. Většina z těchto malých zařízení také nemá zabudovaná žádná specializovaná opatření proti napadení malware.
Přes omezené možnosti se Talos rozhodl začít jednat a připravit alespoň některé nástroje pro boj s infekcí. Připravil více než stovku signatur pro Snort, které umožní odhalit bezpečnostní mezery související s tímto malware. Signatury jsou už součástí veřejné databáze a správci je mohou použít k detekci potenciálně zneužitelných problémů.
Zároveň byly získané IP adresy a domény přidány na blacklisty v Cisco Security. Probíhá také komunikace s výrobci dotčených zařízení, kteří tak mají možnost na problémy adekvátně reagovat a například záplatovat objevené chyby. Třetím opatřením je předání všech podrobností členům mezinárodní Cyber Threat Alliance, což by mělo pomoci rozšířit informace po světě a umožnit efektivní obranu v jednotlivých zemích.