È stato identificato il worm FritzFrog che infetta i server tramite SSH e crea una botnet decentralizzata

Azienda Guardicore, specializzata nella protezione di data center e sistemi cloud, rivelato FritzFrog, un nuovo malware high-tech che attacca i server basati su Linux. FritzFrog combina un worm che si diffonde attraverso un attacco di forza bruta su server con una porta SSH aperta e componenti per costruire una botnet decentralizzata che opera senza nodi di controllo e non ha alcun punto di errore.

Per costruire una botnet viene utilizzato un protocollo proprietario P2P in cui i nodi interagiscono tra loro, coordinano l’organizzazione degli attacchi, supportano il funzionamento della rete e monitorano lo stato reciproco. Nuove vittime vengono scoperte effettuando un attacco di forza bruta ai server che accettano richieste tramite SSH. Quando viene rilevato un nuovo server, viene cercato un dizionario di combinazioni tipiche di login e password. Il controllo può essere effettuato attraverso qualsiasi nodo, il che rende difficile identificare e bloccare gli operatori delle botnet.

Secondo i ricercatori la botnet conta già circa 500 nodi, tra cui i server di diverse università e di una grande compagnia ferroviaria. Osserva che gli obiettivi principali dell'attacco sono reti di istituti scolastici, centri medici, agenzie governative, banche e società di telecomunicazioni. Dopo che il server è stato compromesso, su di esso viene organizzato il processo di mining della criptovaluta Monero. L'attività del malware in questione è stata tracciata dal gennaio 2020.

La particolarità di FritzFrog è che mantiene tutti i dati e il codice eseguibile solo in memoria. Le modifiche sul disco consistono solo nell'aggiunta di una nuova chiave SSH al file aware_keys, che verrà successivamente utilizzata per accedere al server. I file di sistema non vengono modificati, il che rende il worm invisibile ai sistemi che ne controllano l'integrità tramite checksum. La memoria memorizza anche dizionari per password di forzatura bruta e dati per il mining, che vengono sincronizzati tra i nodi utilizzando il protocollo P2P.

I componenti dannosi sono camuffati da processi ifconfig, libexec, php-fpm e nginx. I nodi botnet monitorano lo stato dei loro vicini e, se il server viene riavviato o anche il sistema operativo viene reinstallato (se un file autorizzato_keys modificato è stato trasferito al nuovo sistema), riattivano i componenti dannosi sull'host. Per la comunicazione viene utilizzato lo standard SSH: il malware lancia inoltre un "netcat" locale che si collega all'interfaccia localhost e ascolta il traffico sulla porta 1234, a cui gli host esterni accedono tramite un tunnel SSH, utilizzando una chiave di Authorized_keys per connettersi.

È stato identificato il worm FritzFrog che infetta i server tramite SSH e crea una botnet decentralizzata

Il codice del componente FritzFrog è scritto in Go e funziona in modalità multi-thread. Il malware include diversi moduli che vengono eseguiti in thread diversi:

  • Cracker: cerca password sui server attaccati.
  • CryptoComm + Parser: organizza una connessione P2P crittografata.
  • CastVotes è un meccanismo per selezionare congiuntamente gli host target da attaccare.
  • TargetFeed: riceve un elenco di nodi da attaccare dai nodi vicini.
  • DeployMgmt è un'implementazione di un worm che distribuisce codice dannoso su un server compromesso.
  • Di proprietà: responsabile della connessione ai server che già eseguono codice dannoso.
  • Assembla: assembla un file in memoria da blocchi trasferiti separatamente.
  • Antivir: un modulo per sopprimere i malware concorrenti, identifica e termina i processi con la stringa "xmr" che consumano risorse della CPU.
  • Libexec è un modulo per estrarre la criptovaluta Monero.

Il protocollo P2P utilizzato in FritzFrog supporta circa 30 comandi responsabili del trasferimento di dati tra nodi, esecuzione di script, trasferimento di componenti malware, polling dello stato, scambio di registri, avvio di proxy, ecc. Le informazioni vengono trasmesse su un canale crittografato separato con serializzazione in formato JSON. La crittografia utilizza la crittografia AES asimmetrica e la codifica Base64. Il protocollo DH viene utilizzato per lo scambio di chiavi (Diffie-Hellman). Per determinare lo stato, i nodi si scambiano costantemente richieste ping.

Tutti i nodi botnet mantengono un database distribuito con informazioni sui sistemi attaccati e compromessi. Gli obiettivi dell'attacco sono sincronizzati in tutta la botnet: ogni nodo attacca un obiettivo separato, ad es. due diversi nodi botnet non attaccheranno lo stesso host. I nodi raccolgono e trasmettono inoltre statistiche locali ai vicini, come dimensione della memoria libera, tempo di attività, carico della CPU e attività di accesso SSH. Queste informazioni vengono utilizzate per decidere se avviare il processo di mining o utilizzare il nodo solo per attaccare altri sistemi (ad esempio, il mining non viene avviato su sistemi caricati o su sistemi con frequenti connessioni di amministratore).

Per identificare FritzFrog, i ricercatori hanno proposto un semplice script della shell. Per determinare il danno del sistema
segnali come la presenza di una connessione in ascolto sulla porta 1234, la presenza chiave dannosa in Authorized_keys (su tutti i nodi è installata la stessa chiave SSH) e la presenza in memoria di processi in esecuzione “ifconfig”, “libexec”, “php-fpm” e “nginx” che non hanno file eseguibili associati (“/proc/ /exe" punta a un file remoto). Un segnale può essere anche la presenza di traffico sulla porta di rete 5555, che si verifica quando un malware accede al tipico pool web.xmrpool.eu durante il mining della criptovaluta Monero.

Fonte: opennet.ru

Aggiungi un commento