Guardicore, et firma der specialiserer sig i beskyttelse af datacentre og cloudsystemer, det nye højteknologiske malware FritzFrog, der rammer Linux-baserede servere. FritzFrog kombinerer en orme, der spreder sig via bruteforce-angreb på servere med åbne SSH-porter, og komponenter til opbygning af et decentralt botnet, der fungerer uden kontrolnoder og ikke har et enkelt fejlpunkter.
For at opbygge botnettet anvendes en proprietær P2P-protokol, hvor noder interagerer med hinanden, koordinerer angreb, opretholder netværksdrift og overvåger hinandens status. Nye ofre findes ved at udføre bruteforce-angreb på servere, der accepterer SSH-anmodninger. Når en ny server opdages, udføres der ordbogsangreb baseret på typiske kombinationer af brugernavne og adgangskoder. Kontrol kan udføres gennem enhver node, hvilket gør det sværere at identificere og blokere operatørerne af botnettet.
Ifølge forskere tæller botnettet allerede omkring 500 noder, herunder servere fra flere universiteter og et stort jernbaneselskab. Det bemærkes, at de primære mål for angrebet er netværk af uddannelsesinstitutioner, sundhedscentre, offentlige myndigheder, banker og telekommunikationsvirksomheder. Efter kompromittering af en server oprettes der en proces til minedrift af kryptovalutaen Monero. Aktiviteten af det pågældende malware kan spores tilbage til januar 2020.
En særlig egenskab ved FritzFrog er, at den holder alle data og eksekverbare kode udelukkende i hukommelsen. Ændringer på disken begrænser sig til kun at tilføje en ny SSH-nøgle i authorized_keys-filen, som derefter bruges til at få adgang til serveren. Systemfiler ændres ikke, hvilket gør ormen usynlig for systemer, der kontrollerer integriteten via kontrolsummer. I hukommelsen opbevares også ordlister til bruteforce-angreb og data til minedrift, som synkroniseres mellem noderne ved hjælp af P2P-protokollen.
Skadelige komponenter camouflerer sig som processer som «ifconfig», «libexec», «php-fpm» og «nginx». Botnetnoderne overvåger tilstanden hos naboerne, og i tilfælde af genstart af serveren eller endda geninstallation af OS (hvis en ændret fil authorized_keys er blevet overført til det nye system) aktiveres de skadelige komponenter på værten igen. Til kommunikation bruges den normale SSH — skadelig software starter desuden en lokal «netcat», der binder sig til localhost-interfacet og lytter på trafik på port 1234, som eksterne noder henvender sig til gennem en SSH-tunnel ved at bruge en nøgle fra authorized_keys.
Koden til FritzFrog-komponenterne er skrevet i Go og fungerer i multitrådede tilstande. Det skadelige software inkluderer flere moduler, der kører i forskellige tråde:
- Cracker — udfører gættearbejde med adgangskoder på de angrebne servere.
- CryptoComm + Parser — etablerer en krypteret P2P-forbindelse.
- CastVotes — mekanisme til at vælge målhoste til angreb.
- TargetFeed — modtager en liste over noder til angreb fra nærliggende noder.
- DeployMgmt — implementering af en orm, der spreder skadelig kode til den kompromitterede server.
- Owned — ansvarlig for forbindelsen til servere, hvor skadelig kode allerede kører.
- Assemble — samler en fil i hukommelsen fra individuelt overførte blokke.
- Antivir — modul til undertrykkelse af konkurrerende ondsindede programmer, identificerer og afslutter processer med strengen «xmr», der bruger CPU-ressourcer.
- Libexec — modul til mining af kryptovaluta Monero.
Det P2P-protokol, der anvendes i FritzFrog, understøtter omkring 30 kommandoer, der er ansvarlige for dataoverførsel mellem noder, kørsel af scripts, overførsel af skadelige softwarekomponenter, tilstandsforkyndelse, logudveksling, opstart af proxy og så videre. Informationen overføres gennem en separat krypteret kanal med serialization i JSON-format. Der anvendes en asymmetrisk kryptering AES og Base64 kodning til kryptering. Til nøgleudveksling anvendes DH-protokol (). For at bestemme tilstanden udveksler noder konstant ping-anmodninger.
Alle botnet-noder understøtter en distribueret database med information om angrebne og kompromitterede systemer. Angrebs-mål synkroniseres på tværs af botnettet — hver node angriber et særskilt mål, dvs. to forskellige botnet-noder vil ikke angribe den samme vært. Noderne indsamler også og overfører lokal statistik til naboer, såsom størrelse af ledig hukommelse, oppetid, CPU-belastning og aktivitet ved SSH-adgang. Denne information bruges til at beslutte, om mining-processen skal startes eller om noden kun skal bruges til at angreb andre systemer (for eksempel startes mining ikke på belastede systemer eller systemer med hyppige administratorforbindelser).
For at identificere FritzFrog er der foreslået en simpel metode af forskerne. Til at bestemme systemets kompromittering
kan sådanne tegn anvendes som tilstedeværelsen af en lytte-forbindelse på port 1234, tilstedeværelsen af i authorized_keys (den samme SSH-nøgle installeres på alle noder) og tilstedeværelsen i hukommelsen af kørende processer såsom «ifconfig», «libexec», «php-fpm» og «nginx», som ikke har tilknyttede eksekverbare filer (»/proc//exe« henviser til en fjern fil). Et tegn kan også være tilstedeværelsen af trafik på netværksport 5555, der opstår, når malware tilgår den standard pool web.xmrpool.eu i processen med at mine kryptovalutaen Monero.
Kilde: opennet.ru
