Byl zjištěn červ FritzFrog, který infikuje servery přes SSH a vytváří decentralizovaný botnet

Společnost Guardicore, specializující se na ochranu datových center a cloudových systémů, odhaleno FritzFrog, nový high-tech malware, který útočí na servery založené na Linuxu. FritzFrog kombinuje červa, který se šíří brutálním útokem na servery, s otevřeným SSH portem a komponenty k vybudování decentralizovaného botnetu, který funguje bez kontrolních uzlů a nemá jediný bod selhání.

K vybudování botnetu se používá proprietární P2P protokol, ve kterém uzly vzájemně interagují, koordinují organizaci útoků, podporují provoz sítě a vzájemně monitorují stav. Nové oběti jsou nalezeny provedením bruteforce útoku na servery, které přijímají požadavky přes SSH. Když je detekován nový server, prohledává se slovník typických kombinací přihlašovacích údajů a hesel. Kontrola může být prováděna prostřednictvím jakéhokoli uzlu, což ztěžuje identifikaci a blokování provozovatelů botnetů.

Podle výzkumníků má botnet již asi 500 uzlů, včetně serverů několika univerzit a velké železniční společnosti. Je třeba poznamenat, že hlavními cíli útoku jsou sítě vzdělávacích institucí, lékařských středisek, vládních agentur, bank a telekomunikačních společností. Poté, co je server kompromitován, je na něm organizován proces těžby kryptoměny Monero. Aktivita dotyčného malwaru byla sledována od ledna 2020.

Zvláštností FritzFrogu je, že uchovává všechna data a spustitelný kód pouze v paměti. Změny na disku spočívají pouze v přidání nového klíče SSH do souboru author_keys, který je následně použit pro přístup na server. Systémové soubory se nemění, díky čemuž je červ neviditelný pro systémy, které kontrolují integritu pomocí kontrolních součtů. V paměti jsou uloženy i slovníky pro brutální vynucení hesel a data pro těžbu, které jsou synchronizovány mezi uzly pomocí P2P protokolu.

Škodlivé komponenty jsou maskovány jako procesy ifconfig, libexec, php-fpm a nginx. Uzly botnetu monitorují stav svých sousedů a v případě restartu serveru nebo dokonce reinstalace operačního systému (pokud byl do nového systému přenesen upravený soubor author_keys), znovu aktivují škodlivé komponenty na hostiteli. Pro komunikaci se používá standardní SSH – malware navíc spouští lokální „netcat“, který se naváže na rozhraní localhost a naslouchá provozu na portu 1234, ke kterému externí hostitelé přistupují přes SSH tunel, pomocí klíče z author_keys se připojuje.

Byl zjištěn červ FritzFrog, který infikuje servery přes SSH a vytváří decentralizovaný botnet

Kód součásti FritzFrog je napsán v Go a běží ve vícevláknovém režimu. Malware obsahuje několik modulů, které běží v různých vláknech:

  • Cracker - hledá hesla na napadených serverech.
  • CryptoComm + Parser - organizuje šifrované P2P připojení.
  • CastVotes je mechanismus pro společný výběr cílových hostitelů pro útok.
  • TargetFeed – Přijímá seznam uzlů k útoku ze sousedních uzlů.
  • DeployMgmt je implementace červa, který distribuuje škodlivý kód na kompromitovaný server.
  • Vlastněno – odpovídá za připojení k serverům, na kterých již běží škodlivý kód.
  • Assemble - sestaví soubor v paměti ze samostatně přenesených bloků.
  • Antivir - modul pro potlačení konkurenčního malwaru, identifikuje a ukončuje procesy s řetězcem „xmr“, které spotřebovávají prostředky CPU.
  • Libexec je modul pro těžbu kryptoměny Monero.

Protokol P2P používaný ve FritzFrogu podporuje asi 30 příkazů odpovědných za přenos dat mezi uzly, spouštění skriptů, přenos součástí malwaru, stav dotazování, výměnu protokolů, spouštění proxy atd. Informace jsou přenášeny samostatným šifrovaným kanálem se serializací ve formátu JSON. Šifrování využívá asymetrickou šifru AES a kódování Base64. Protokol DH se používá pro výměnu klíčů (Diffie-hellman). K určení stavu si uzly neustále vyměňují požadavky ping.

Všechny uzly botnetu udržují distribuovanou databázi s informacemi o napadených a kompromitovaných systémech. Cíle útoku jsou synchronizovány v celém botnetu – každý uzel útočí na samostatný cíl, tzn. dva různé uzly botnetu nenapadnou stejného hostitele. Uzly také shromažďují a přenášejí místní statistiky sousedům, jako je velikost volné paměti, doba provozuschopnosti, zatížení procesoru a aktivita přihlašování SSH. Tyto informace slouží k rozhodnutí, zda zahájit proces těžby nebo použít uzel pouze k útoku na jiné systémy (těžba se například nespustí na načtených systémech nebo systémech s častým připojením administrátorů).

K identifikaci FritzFroga navrhli vědci jednoduchý shell skript. K určení poškození systému
příznaky, jako je přítomnost naslouchajícího připojení na portu 1234, přítomnost škodlivý klíč v autorizovaných_klíčích (stejný klíč SSH je nainstalován na všech uzlech) a přítomnost spuštěných procesů „ifconfig“, „libexec“, „php-fpm“ a „nginx“, které nemají přidružené spustitelné soubory („/proc/ /exe" ukazuje na vzdálený soubor). Znakem může být i přítomnost provozu na síťovém portu 5555, ke kterému dochází, když malware při těžbě kryptoměny Monero přistupuje na typický pool web.xmrpool.eu.

Zdroj: opennet.ru

Přidat komentář