Kompanija Guardicore, e specializuar në mbrojtjen e qendrave të të dhënave dhe sistemeve në cloud, një malware i avancuar të quajtur FritzFrog, që ndikonte në serverët me bazë Linux. FritzFrog kombinon një kërpudhë që përhapet përmes një sulmi bruteforce ndaj serverëve me port të hapur SSH dhe komponentë për ndërtimin e një botneti decentralizuar, që funksionon pa qendra kontrolli dhe pa një pikë dështimi.
Për ndërtimin e botnetit përdoret një protokoll P2P unik, ku nyjat ndërveprojnë me njëra-tjetrën, koordinojnë organizimin e sulmeve, mbështesin funksionimin e rrjetit dhe monitorojnë gjendjen e njëri-tjetrit. Viktima të reja gjenden përmes sulmeve bruteforce ndaj serverëve që pranojnë kërkesa për SSH. Kur zbulohet një server i ri, realizohet një përzgjedhje nëpërmjet një liste të fjalorëve të zakonshëm të emrave të përdoruesve dhe fjalëkalimeve. Kontrolli mund të ushtrohet nga çdo nyje, gjë që e bën të vështirë identifikimin dhe bllokimin e operatorëve të botnetit.
Sipas hulumtuesve, botneti tashmë ka rreth 500 nyje, duke përfshirë serverët e disa universiteteve dhe një kompanie të madhe hekurudhore. Raportohet se objektivi kryesor i sulmeve janë rrjetet e institucioneve edukative, qendrave mjekësore, institucioneve shtetërore, bankave dhe kompanive të telekomunikacionit. Pas kompromentimit të serverit, aty organizohet procesi i minatorit të kriptovalutës Monero. Aktiviteti i këtij malware është i regjistruar që nga janari i vitit 2020.
Veçoria e FritzFrog është se ai mban të dhënat dhe kodin ekzekutiv vetëm në memorje. Ndryshimet në disk reduktohen vetëm në shtimin e një SSH-çelësi në skedarin authorized_keys, i cili më vonë përdoret për qasje në server. Skedarët sistemorë nuk ndryshojnë, gjë që e bën kërpudhën të padukshme për sistemet që kontrollojnë integritetin përmes kontrollimeve të shumave. Në memorje gjithashtu mbahen fjalorët për përzgjedhjen e fjalëkalimeve dhe të dhënat për minimin, të cilat sinkronizohen midis nyjeve përmes protokollit P2P.
Komponentët e malware-it mashtrohen si procese "ifconfig", "libexec", "php-fpm" dhe "nginx". Nyjat e botnetit monitorojnë gjendjen e fqinjëve dhe në rast rindezjeje të serverit ose madje riinstalimi të sistemit operativ (nëse skedari i ndryshuar authorized_keys është transferuar në sistemin e ri), aktivizojnë përsëri komponentët e dëmshëm në host. Për komunikim përdoret SSH standard - malware përdor për më tepër një "netcat" lokal, i cili lidhet me ndërfaqen localhost dhe dëgjon trafik në portin 1234, në të cilin nyjat e jashtme lidhen përmes një teli SSH, duke përdorur për lidhje çelësin nga authorized_keys.
Kodi i komponentëve FritzFrog është shkruar në gjuhën Go dhe funksionon në modin me shumë tela. Malware përfshin disa module, të cilat aktivizohen në tela të ndryshme:
- Cracker - realizon përzgjedhjen e fjalëkalimeve në serverët e sulmuar.
- CryptoComm + Parser - organizon një lidhje të enkriptuar P2P.
- CastVotes - mekanizmi përzgjedhëse për hostet objektiv të sulmit.
- TargetFeed - merr një listë nyjesh për sulm nga nyjet fqinje.
- DeployMgmt - zbatimi i kërpudhës, që përhap kodin e dëmshëm në serverin e uzurpuar.
- Owned - është përgjegjës për lidhjen me serverët ku është aktivizuar tashmë kodi i dëmshëm.
- Assemble - mbledh një skedar në memorje nga blloqet që dërgohen veçmas.
- Antivir - moduli i shtypjes së programeve të dëmshme konkuruese, identifikon dhe mbyll proceset me strings "xmr", që konsumojnë burime CPU.
- Libexec - moduli për minimin e kriptovalutës Monero.
Protokolli P2P i përdorur në FritzFrog mbështet rreth 30 komanda, që sigurojnë transmetimin e të dhënave midis nyjeve, ekzekutimin e skripteve, transmetimin e komponentëve të malware-it, pyetje për gjendje, shkëmbimin e logjeve, ekzekutimin e proxy-it etj. Informacioni transmetohet përmes një kanali të veçantë të enkriptuar me serializimin në formatin JSON. Për enkriptimin përdoret kriptimi asimetrik AES dhe kodimi Base64. Për shkëmbimin e çelësave përdoret protokolli DH (). Për përcaktimin e gjendjes, nyjat vazhdimisht shkëmbejnë kërkesa ping.
Të gjitha nyjat e botnetit mbështesin një DB të shpërndarë me informacion në lidhje me sistemet e sulmuara dhe të kompromentuara. Objektivat për sulm sinkronizohen në të gjithë botnetin - çdo nyje sulmon një objektiv të veçantë, përkatësisht dy nyje të ndryshme të botnetit nuk do të sulmojnë të njëjtin host. Nyjat gjithashtu mbledhin dhe transmetojnë fqinjëve statistika lokale, siç janë madhësia e memories së lirë, uptime, ngarkesa e CPU-së dhe aktiviteti i hyrjeve përmes SSH. Ky informacion përdoret për të vendosur nëse të fillohet procesi i minatorit ose të përdoret nyja vetëm për sulmimin e sistemeve të tjera (p.sh., minimi nuk aktivizohet në sisteme me ngarkesë të madhe ose sisteme me lidhje të shpeshta të administratorëve).
Për identifikimin e FritzFrog, studiuesit kanë propozuar një metodë të thjeshtë . Për të përcaktuar infektimin e sistemit
mund të përdoren tregues të tillë si prania e një lidhjeje që dëgjon në portin 1234, prania e në authorized_keys (në të gjitha nodet vendoset i njëjti çelës SSH) dhe prania në memori e proceseve të aktivizuara 'ifconfig', 'libexec', 'php-fpm' dhe 'nginx', të cilat nuk kanë skedarë ekzekutivë të lidhur ('/proc//exe' tregon për një skedar të ndarë). Një tregues tjetër mund të jetë prania e trafikut në portin rrjetë 5555, që ndodh gjatë ndërhyrjes së malware-it në pool-in e zakonshëm web.xmrpool.eu në procesin e minimit të kriptomonedhës Monero.
Burimi: opennet.ru
