Nell’ambito della programmazione informatica il
reverse engineering è il processo che permette di risalire al codice scritto da uno sviluppatore, partendo dall'applicazione; ma nell’accezione più ampia permette anche di comprendere con accuratezza la struttura interna di un protocollo di comunicazione. Alla
sedicesima conferenza ACM sulla sicurezza informatica e delle comunicazioni, un team di specialisti della Carnegie Mellon University e della California University ha
presentato un sistema per carpire i segreti del protocollo di comunicazione di una rete botnet.
Queste reti virtuali sono spesso realizzate per finalità illecite e fraudolente, dallo spamming al phishing, fino agli attacchi DDoS, utilizzano protocolli di comunicazione di tipo
command-and-control. Partendo dal presupposto che è possibile avere a disposizione sempre e solo un end-point nel network della botnet — tipicamente un PC compromesso all’insaputa dell’utente, il cosiddetto
bot —
il sistema ne intercetta i messaggi in uscita verso il server, applicando poi la tecnica del
reverse engineering.
Questa permette l’estrazione del
message format, cioè la struttura della sequenza dei campi di bit che costituiscono un messaggio e ne comprende automaticamente la semantica, cioè la tipologia di dati e il significato che caratterizza ogni singolo campo. Il
message format così individuato costituisce la base del protocollo di comunicazione prima sconosciuto.
Il sistema, definito
Dispatcher,
agisce sui registri di memoria, intercettando i messaggi in uscita dal buffer e scomponendoli in campi tramite un algoritmo ricorsivo. I campi sono rappresentati in una struttura ad albero, definito
message field tree, che costituisce la rappresentazione della loro struttura gerarchica; ogni foglia dell’albero rappresenta uno specifico campo, in stretta relazione con quelli gerarchicamente adiacenti.
Per ovviare al problema delle comunicazioni criptate, i ricercatori hanno pensato di
agire sul buffer prima del processo di criptazione. Questo approccio è tipico delle tecniche di
reverse engineering, che agiscono direttamente sull’applicazione che processa i dati e non su quelli che circolano in rete; in quest’ultimo caso le comunicazioni sarebbero già criptate e si aggiungerebbe un ulteriore ostacolo al processo. Infine un insieme di funzioni appositamente realizzate, che si basano su protocolli di comunicazione già conosciuti, si occupa di individuare i significati dei singoli campi (semantica).
Il sistema è stato testato su Mega-D, una rete botnet spesso impiegata per attività di spamming, dotata di un protocollo di comunicazione criptato. I
risultati ottenuti nei test sono stati sorprendenti, visto che per la prima volta è stato possibile documentare il protocollo impiegato da
Mega-D; tra l’altro, con le conoscenze acquisite, i ricercatori potrebbero inserirsi nel cuore della botnet, interagendo direttamente con il
botmaster, a sua totale insaputa.