Identificato un worm FritzFrog, che colpisce i server tramite SSH e crea un botnet decentralizzato.

L'azienda Guardicore, specializzata nella protezione dei data center e dei sistemi cloud, ha identificato ha scoperto un nuovo malware high-tech chiamato FritzFrog, che colpisce i server basati su Linux. FritzFrog combina un worm che si diffonde tramite attacchi di bruteforce ai server con porta SSH aperta, e componenti per costruire un botnet decentralizzato, funzionante senza nodi di comando e senza un singolo punto di errore.

Per costruire il botnet viene utilizzato un protocollo P2P proprietario, nel quale i nodi interagiscono tra loro, coordinano le organizzazioni degli attacchi, mantengono la rete operativa e controllano lo stato reciproco. Nuove vittime vengono trovate attraverso attacchi di bruteforce ai server che accettano richieste SSH. Quando viene scoperto un nuovo server, viene eseguita una scansione in base a un dizionario di combinazioni comuni di nomi utente e password. Il controllo può avvenire attraverso qualsiasi nodo, il che rende più complicato identificare e bloccare gli operatori del botnet.

Secondo i ricercatori, il botnet conta già circa 500 nodi, tra cui server di diverse università e di una grande azienda ferroviaria. Si segnala che l'obiettivo principale degli attacchi sono le reti di istituzioni educative, centri medici, enti pubblici, banche e compagnie di telecomunicazioni. Dopo la compromissione di un server, viene organizzato un processo di mining di criptovaluta Monero. L'attività di questo malware è tracciata fin da gennaio 2020.

Una delle caratteristiche di FritzFrog è che mantiene tutti i dati e il codice eseguibile solo in memoria. Le modifiche su disco si limitano all'aggiunta di una nuova chiave SSH nel file authorized_keys, che successivamente viene utilizzata per accedere al server. I file di sistema non vengono modificati, il che rende il worm indistinguibile per i sistemi che controllano l'integrità tramite checksum. In memoria vengono mantenuti anche dizionari per la scansione delle password e dati per il mining, che vengono sincronizzati tra i nodi tramite il protocollo P2P.

I componenti dannosi si camuffano dietro i processi «ifconfig», «libexec», «php-fpm» e «nginx». I nodi del botnet monitorano lo stato dei vicini e, in caso di riavvio del server o persino di reinstalla dell'OS (se nel nuovo sistema è stato trasferito un file authorized_keys modificato), riattivano nuovamente i componenti dannosi sull'host. Per la comunicazione viene utilizzato l'SSH di default: il malware avvia anche un «netcat» locale, che si collega all'interfaccia localhost e ascolta il traffico sulla porta 1234, a cui i nodi esterni si collegano tramite un tunnel SSH, utilizzando per la connessione una chiave presente in authorized_keys.

Identificato un worm FritzFrog, che colpisce i server tramite SSH e crea un botnet decentralizzato.

Il codice dei componenti FritzFrog è scritto in linguaggio Go e funziona in modalità multithreading. Il malware include diversi moduli, eseguiti in thread diversi:

  • Cracker — esegue il recupero delle password sui server attaccati.
  • CryptoComm + Parser — organizza una connessione P2P crittografata.
  • CastVotes — meccanismo di selezione collettiva degli host target per l'attacco.
  • TargetFeed — riceve l'elenco dei nodi da attaccare dai nodi vicini.
  • DeployMgmt — implementazione di un worm che diffonde codice dannoso sul server compromesso.
  • Owned — gestisce la connessione ai server su cui è già in esecuzione codice dannoso.
  • Assemble — compone un file in memoria da blocchi trasmessi separatamente.
  • Antivir — modulo per sopprimere i concorrenti malware, identifica e termina i processi con la stringa «xmr» che consumano risorse CPU.
  • Libexec — modulo per il mining della criptovaluta Monero.

Il protocollo P2P usato in FritzFrog supporta circa 30 comandi, responsabili della trasmissione dei dati tra i nodi, dell'esecuzione di script, della trasmissione di componenti malware, del monitoraggio dello stato, dello scambio di log, dell'avvio di proxy, ecc. Le informazioni vengono trasmesse attraverso un canale crittografato separato con serializzazione in formato JSON. Per la crittografia viene utilizzata la crittografia asimmetrica AES e la codifica Base64. Per lo scambio delle chiavi viene utilizzato il protocollo DH (Diffie-Hellman). Per determinare lo stato, i nodi si scambiano continuamente richieste ping.

Tutti i nodi del botnet supportano un DB distribuito con informazioni sui sistemi attaccati e compromessi. Gli obiettivi per l'attacco vengono sincronizzati in tutto il botnet: ogni nodo attacca un obiettivo separato, ovvero due nodi diversi del botnet non attaccheranno lo stesso host. I nodi raccolgono e trasmettono anche ai vicini statistiche locali, come la dimensione della memoria libera, l'uptime, il carico della CPU e l'attività delle connessioni SSH. Queste informazioni vengono utilizzate per decidere se avviare il processo di mining oppure usare il nodo solo per attaccare altri sistemi (ad esempio, il mining non viene avviato su sistemi sovraccarichi o su sistemi con frequenti accessi dell'amministratore).

Per identificare FritzFrog, i ricercatori hanno proposto un semplice uno script shell. Per determinare la compromissione del sistema
possono essere utilizzati indicatori come la presenza di una connessione in ascolto sulla porta 1234, la presenza di una chiave malevola in authorized_keys (su tutti i nodi viene installata la stessa chiave SSH) e la presenza in memoria di processi in esecuzione come «ifconfig», «libexec», «php-fpm» e «nginx», che non hanno file eseguibili connessi («/proc//exe» punta a un file remoto). Un'altra indicazione può essere la presenza di traffico sulla porta di rete 5555, che si verifica quando il malware accede al pool standard web.xmrpool.eu durante il mining della criptovaluta Monero.

Fonte: opennet.ru

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster