Viermele FritzFrog a fost identificat, infectând serverele prin SSH și construind o rețea botnet descentralizată

Compania Guardicore, specializată în protecția centrelor de date și a sistemelor cloud, dezvăluit FritzFrog, un nou malware de înaltă tehnologie care atacă serverele bazate pe Linux. FritzFrog combină un vierme care se răspândește printr-un atac de forță brută asupra serverelor cu un port SSH deschis și componente pentru a construi o rețea botnet descentralizată care funcționează fără noduri de control și nu are un singur punct de eșec.

Pentru a construi o rețea botnet, este utilizat un protocol proprietar P2P, în care nodurile interacționează între ele, coordonează organizarea atacurilor, sprijină funcționarea rețelei și monitorizează reciproc starea. Noi victime sunt găsite prin efectuarea unui atac bruteforce asupra serverelor care acceptă cereri prin SSH. Când este detectat un nou server, se caută un dicționar de combinații tipice de date de conectare și parole. Controlul poate fi efectuat prin orice nod, ceea ce face dificilă identificarea și blocarea operatorilor de botnet.

Potrivit cercetătorilor, botnet-ul are deja aproximativ 500 de noduri, inclusiv serverele mai multor universități și o mare companie de căi ferate. Se observă că principalele ținte ale atacului sunt rețelele de instituții de învățământ, centre medicale, agenții guvernamentale, bănci și companii de telecomunicații. După ce serverul este compromis, procesul de extragere a criptomonedei Monero este organizat pe acesta. Activitatea malware-ului în cauză a fost urmărită din ianuarie 2020.

Lucrul special despre FritzFrog este că păstrează toate datele și codul executabil numai în memorie. Modificările de pe disc constau doar în adăugarea unei noi chei SSH la fișierul authorized_keys, care este ulterior folosită pentru a accesa serverul. Fișierele de sistem nu sunt modificate, ceea ce face viermele invizibil pentru sistemele care verifică integritatea folosind sume de control. Memoria stochează, de asemenea, dicționare pentru parole de forțare brută și date pentru minerit, care sunt sincronizate între noduri folosind protocolul P2P.

Componentele rău intenționate sunt camuflate ca procese ifconfig, libexec, php-fpm și nginx. Nodurile botnet monitorizează starea vecinilor lor și, dacă serverul este repornit sau chiar sistemul de operare este reinstalat (dacă un fișier autorizat_keys modificat a fost transferat în noul sistem), reactivează componentele rău intenționate pe gazdă. Pentru comunicare, este utilizat SSH standard - malware-ul lansează în plus un „netcat” local care se leagă de interfața localhost și ascultă traficul pe portul 1234, pe care gazdele externe îl accesează printr-un tunel SSH, folosind o cheie de la authorized_keys pentru a se conecta.

Viermele FritzFrog a fost identificat, infectând serverele prin SSH și construind o rețea botnet descentralizată

Codul componentei FritzFrog este scris în Go și rulează în modul cu mai multe fire. Malware-ul include mai multe module care rulează în fire diferite:

  • Cracker - caută parole pe serverele atacate.
  • CryptoComm + Parser - organizează o conexiune P2P criptată.
  • CastVotes este un mecanism pentru selectarea în comun a gazdelor țintă pentru atac.
  • TargetFeed - Primește o listă de noduri de atacat de la nodurile vecine.
  • DeployMgmt este o implementare a unui vierme care distribuie cod rău intenționat unui server compromis.
  • Deținut - responsabil pentru conectarea la servere care rulează deja cod rău intenționat.
  • Asamblare - asambla un fișier în memorie din blocuri transferate separat.
  • Antivir - un modul pentru suprimarea malware-ului concurent, identifică și încheie procesele cu șirul „xmr” care consumă resurse CPU.
  • Libexec este un modul pentru extragerea criptomonedei Monero.

Protocolul P2P utilizat în FritzFrog acceptă aproximativ 30 de comenzi responsabile cu transferul de date între noduri, rularea scripturilor, transferul componentelor malware, starea sondajului, schimbul de jurnale, lansarea proxy-urilor etc. Informațiile sunt transmise pe un canal criptat separat cu serializare în format JSON. Criptarea folosește cifrul AES asimetric și codificarea Base64. Protocolul DH este utilizat pentru schimbul de chei (Diffie-Hellman). Pentru a determina starea, nodurile schimbă constant solicitări ping.

Toate nodurile botnet mențin o bază de date distribuită cu informații despre sistemele atacate și compromise. Țintele de atac sunt sincronizate în întreaga rețea bot - fiecare nod atacă o țintă separată, de ex. două noduri botnet diferite nu vor ataca aceeași gazdă. De asemenea, nodurile colectează și transmit statistici locale către vecini, cum ar fi dimensiunea memoriei libere, timpul de funcționare, încărcarea procesorului și activitatea de conectare SSH. Aceste informații sunt folosite pentru a decide dacă să pornească procesul de minare sau să folosească nodul doar pentru a ataca alte sisteme (de exemplu, minarea nu începe pe sisteme încărcate sau sisteme cu conexiuni frecvente de administrator).

Pentru a identifica FritzFrog, cercetătorii au propus un simplu script shell. Pentru a determina deteriorarea sistemului
semne precum prezența unei conexiuni de ascultare pe portul 1234, prezența cheie rău intenționată în authorized_keys (aceeași cheie SSH este instalată pe toate nodurile) și prezența în memorie a proceselor care rulează „ifconfig”, „libexec”, „php-fpm” și „nginx” care nu au fișiere executabile asociate („/proc/ /exe" indică un fișier de la distanță). Un semn poate fi și prezența traficului pe portul de rețea 5555, care apare atunci când malware accesează pool-ul tipic web.xmrpool.eu în timpul extragerii criptomonedei Monero.

Sursa: opennet.ru

Adauga un comentariu