La bomba logica (Logic Bomb) rappresenta un tipo di malware, o meglio di quello che si può definire un Malicious Application Logic Code annidato all’interno di un programma e attivato solo al raggiungimento di particolari condizioni come ad esempio una certa data, oppure un certo orario oppure una qualche operazione eseguita dall’utente e/o predeterminata dall’attaccante.
Indice degli argomenti
Cosa sono gli attacchi Logic Bomb
Un attacco di tipo Logic Bomb, una volta attivato, può consentire ai criminal hacker di svolgere diverse operazioni in genere tutte destinate ad arrecare danno alla vittima designata: ad esempio, modificare o cancellare file, bloccare il sistema o cancellare l’intero contenuto di un disco rigido.
Questo perché la bomba logica è una parte di un software il cui contenuto viene modificato in modo malevolo dall’autore del software stesso o comunque da un programmatore che abbia accesso a quel dato software e che per motivi sostanzialmente di vendetta o di ricatto inserisce questa cyber trappola.
Si può anche nascondere in un altro programma malevolo come un virus, o un worm, oppure un trojan.
Può rimanere nascosto magari per mesi o anni, in attesa che l’utente lo attivi ad esempio visitando un sito Web ben preciso; allora la bomba logica si attiva e a sua volta innesca un altro programma malevolo come un keylogger per registrare ciò che l’utente digita sulla propria tastiera ed inviare i dati ad un server esterno controllato dall’attaccante.
Se invece la bomba logica si attiva a partire da una certa data, allora si chiama più comunemente “bomba a tempo”.
In alcuni casi le bombe a tempo sono anche costruite con uno scopo ufficiale dichiarato: ad esempio, nei software in versione preliminare di prova, nel caso in cui l’autore del programma non desideri che esso venga più utilizzato dopo una certa data. Un esempio è la versione di test di Windows Vista, che Microsoft aveva programmato affinché terminasse di funzionare il 31 maggio 2007. Microsoft stessa, il 13 maggio 2007, consigliava caldamente, “per evitare la distruzione del lavoro e la perdita di dati”, di aggiornare i sistemi in anticipo.
Casi famosi di attacchi Logic Bomb
Descriviamo brevemente i tre casi più noti accaduti negli ultimi anni riguardanti l’attivazione di una vera e propria bomba logica.
Logic Bomb Set Off South Korea Cyberattack
Marzo 2013. Una bomba logica causò la cancellazione dei dati dei computer di alcune tra le maggiori banche della Corea del Sud e società di trasmissione televisiva. L’attacco era sicuramente distruttivo, perché pare ci fosse anche un modulo per cancellare dati archiviati su macchine collegate remotamente e non solo quelli locali.
Una rivendicazione successiva sembrò più un falso annuncio per farsi pubblicità a posteriori, che un vero proclama inviato dal gruppo criminale autore dell’attacco.
Man gets two years in prison for sabotaging US Army servers with ‘logic bomb’
Settembre 2918. L’autore di questo attacco subì una condanna a due anni di prigione e tre anni di controllo obbligatorio successivo, per aver sabotato il sistema di paga dell’esercito americano con una bomba logica, creando due settimane di ritardo nei pagamenti e un danno economico, in dollari, a sei zeri. L’autore era un operatore a contratto dell’esercito americano con accesso ai database delle paghe.
Il disservizio fu causato dalla cancellazione dei dati ospitati su cinque diversi server.
Siemens contractor pleads guilty to planting logic bomb in company spreadsheets
Luglio 2019. Un programmatore a contratto si è dichiarato colpevole di tentato sabotaggio del software, con il costante utilizzo di bombe logiche accuratamente inserite all’interno del codice sorgente.
Egli aveva infatti modificato il codice dei programmi di sua competenza con vere e proprie bombe logiche programmate per scattare entro una certa data. I bug lasciati intenzionalmente dallo sviluppatore causavano il malfunzionamento del software dell’azienda la quale, passata una certa data senza interventi esterni, sarebbe stata costretta a servirsi ancora del suo lavoro per rimettere tutto a posto. Ora rischia la prigione e una maxi-multa, la cui sentenza è attesa entro la fine del 2019.
Esempio di un attacco Logic Bomb
Come esempio di bomba logica consideriamo un semplice codice, legato alla rilevazione del segnale GPS, che compie un’azione diversa da quella prevista, immaginando ad esempio che possa essere inserito in una delle tante app di navigazione scaricabili gratuitamente da uno store non ufficiale per smartphone.
Ovviamente il cuore di questo codice è legato ad una condizione di superamento di una certa data che causa un’azione diversa da quella normale eseguita fino a quel momento.
public void funzione() {
Data ATTUALE =nuovaData()
Data FINALE =nuovaData(12,22,2022);
–recupera le coordinate GPS–
if(ATTUALE.after(FINALE)) {
—scegli il percorso lungo–
funzione lunga()
}else{
—scegli il percorso corto (corretto)
funzione corta();
}
–visualizza il percorso–
Mitigazioni possibili contro gli attacchi Logic Bomb
Basandoci sull’esempio precedente, una possibile soluzione alla rilevazione delle bombe logiche consiste nell’eseguire l’analisi statica del codice malevolo manualmente e riconoscere questa parte di codice come malevola. Non è certo un compito facile per un analista, tanto meno per un tool di analisi automatica.
Si deve necessariamente introdurre una contestualizzazione della condizione temporale incontrata. Come in altri campi della sicurezza informatica (Risk management, oppure vulnerability analysis, o anche semplicemente il rilevamento delle password sbagliate come possibile segnale di tentativo di attacco brute-force) il contesto dell’attacco, della metodologia in uso, diventa essenziale per eliminare falsi positivi o peggio falsi negativi.
Alcune recenti ricerche in questo campo si pongono di individuare le tecniche più efficaci proprio per aiutare la fase di analisi statica del codice identificando i comportamenti sospetti all’interno del software.
Conclusioni
Varie organizzazioni internazionali hanno spesso pubblicato articoli sull’argomento, cercando una soluzione generale al problema, attraverso metodi intelligenti di rilevazione delle bombe logiche.
Non è facile rilevare questo tipo codice malizioso se non ricorrendo a processi sicuri di creazione del software, ad esempio separare i diritti di scrittura da chi esegue i test finali, ricorrere a tecniche di analisi statica del codice e via dicendo.
Una vera cura preventiva non esiste e nemmeno una mitigazione definitiva sembra possibile, ma best practice di settore consigliano sempre di:
- installare esclusivamente software fidati;
- applicare una corretta gestione dei privilegi di utenti e/o processi interni delle macchine per contenere il rischio;
- mantenere aggiornati i sistemi;
- utilizzare sistemi intelligenti di prevenzione minacce.