Mirai (dal giapponese 未来, “futuro”) è un malware che infetta gli smart device che funzionano con processori ARC, trasformandoli in una rete di bot o "zombi" controllati da remoto. Questa rete di bot, chiamata botnet, viene spesso utilizzata per lanciare attacchi DDoS (Distribuited Denial of Service): attacchi il cui obiettivo è quello di bloccare servizi ed esaurire risorse.
Malware, abbreviazione di software dannoso, è un termine generico che include worm, virus, trojan, rootkit e spyware.
Cos'è una Botnet?
Prima di addentrarci all’interno del post, facciamo una breve introduzione sulle botnet. Una botnet è una rete composta da dispositivi infettati da malware, detti bot o zombie, che agiscono sotto il controllo di un unico attore detto botmaster, aumentando le risorse e le capacità offensive a sua disposizione. I dispositivi connessi a Internet, in caso siano affetti da una qualche vulnerabilità nell'infrastruttura, possono diventare parte della botnet. Inoltre, se l'agente infettante è un trojan, il botmaster può controllare il sistema tramite accesso remoto usando protocolli di rete come IRC o HTTP, attraverso un centro di comando detto Command and Control (o C&C). I computer infettati così possono scagliare attacchi, denominati Distributed Denial of Service (DoS) contro altri sistemi e/o compiere operazioni non lecite.
Figura 1. Attacco da parte di una botnet.
Le botnet possono essere:
- Centralizzate: abbiamo una serie di bot comandati da un server C&C, quando il malware infetta un dispositivo, il bot invia segnali temporizzati per informare il C&C che ora esiste. Questa sessione di connessione viene mantenuta aperta finché C&C non è pronto a comandare al bot di eseguire i suoi ordini, che possono includere l'invio di spam, cracking di password, attacchi DDoS, ecc... Tuttavia, il C&C rappresenta anche un single point of failure: se rimosso, la botnet diventa inefficace.
- Decentralizzate: le botnet peer-to-peer (P2P) rappresentano la prossima generazione di botnet. Invece di comunicare con un server centralizzato, i bot P2P agiscono sia come server di comando, sia come client che riceve comandi. Ciò evita il problema del single point of failure inerente alle botnet centralizzate. Poiché le botnet P2P funzionano senza C&C, sono più difficili da chiudere.
Le botnet sono efficaci perché garantiscono:
- offuscamento: l'aggressore è in grado di nascondersi dalla vittima;
- amplificazione: utilizzando sistemi compromessi, l'aggressore può lanciare un attacco più ampio;
- dispersione geografica: una grande botnet può estendersi in tutto il mondo, creando un attacco distribuito in modo massiccio difficile da mitigare.
Mirai
Mirai esegue la scansione di Internet alla ricerca di dispositivi IoT eseguiti sul processore ARC. Per effettuare il login nei dispositivi, sfrutta un dictionary attack, ossia una tecnica di forza bruta che prevede di svolgere svariati tentativi con credenziali comuni tra i dispositivi IoT. Queste credenziali vengono recuperate da una collezione di 60 coppie di username e password di default memorizzate nel codice sorgente. Quando ottiene l’accesso ad un dispositivo lo infetta con il malware e comunica al Command and Control l’identità del nuovo BOT e le sue credenziali. I dispositivi infettati continuano a funzionare normalmente ma aumenta l’uso della banda.
Figura 2. botnet Mirai.
Nascondere le tracce
Mirai fa alcune cose per proteggersi dalla scoperta. Si eliminerà dal file system una volta che il malware sarà in esecuzione. Si cancella dal processo in esecuzione. E infine, modifica il suo nome in un valore casuale.
Un altro modello di comportamento interessante è che il malware tenta di proteggersi dalle botnet concorrenti. Non appena si intromette nel sistema, cerca di impedire che qualcun altro possa irrompere utilizzando altri metodi.
Come proteggersi da Mirai
Mirai, come molte altre botnet, sfrutta le debolezze nella sicurezza dei dispositivi IoT. Alcune best practice per proteggersi da Mirai e dai suoi discendenti sono le seguenti:
- cambiare la password: Mirai utilizza un elenco di nomi utente e password predefiniti per accedere al dispositivo IoT. Prima di distribuire un dispositivo IoT, cambia la password o disabiliti gli account predefiniti;
- aggiornare il dispositivo: alcuni malware botnet sfruttano le vulnerabilità dei dispositivi IoT per infettarli. L'applicazione tempestiva di aggiornamenti e patch può colmare queste lacune di sicurezza prima che vengano sfruttate dal malware della botnet;
- network segmentation: i dispositivi IoT vulnerabili rappresentano un rischio per la sicurezza delle organizzazioni che li possiedono. La segmentazione dei dispositivi IoT dal resto della rete può aiutare a evitare che vengano utilizzati come vettore di accesso da un aggressore.
Codice Sorgente - Mirai Source Code
Setup di Mirai - Guida