Se sei atterrato fin qui, probabilmente vuoi più informazioni sulle backdoor per essere più al sicuro dai criminali informatici.
Indice degli argomenti
Cos’è una backdoor
Le backdoor, letteralmente “porte sul retro”, sono righe di codice informatico grazie alle quali un utente può entrare come amministratore all’interno di siti web e computer, senza avere alcun accesso autorizzato. Come è facilmente intuibile le backdoor danno la possibilità a un malintenzionato di accedere da remoto al sistema informatico della vittima su cui vengono montate, che avrà così intero controllo del sistema della vittima.
Creano canali di comunicazione attraverso Internet, utilizzando principalmente il protocollo HTTP sulla porta 80. In queste condizioni il malware riesce a nascondersi meglio, essendo questo il metodo di trasferimento maggiormente utilizzato dai vari sistemi informatici per il traffico di rete in uscita.
Tutte le tipologie di backdoor
Il codice relativo alle backdoor prevedeva storicamente molte funzionalità già appositamente implementate, cui poteva essere evitato lo sgradito compito del download di un payload o altro materiale.
1) Bootnet
Oggi le tipologie di backdoor sono innumerevoli e molte vengono incluse nella vasta categoria dei trojan. Esistono anche “mass malware” che causano l’infezione seriale di una moltitudine di sistemi, accomunati dal controllo di un’unica entità; il termine giusto per indicare tali tipologie di attacco non è più backdoor, ma botnet.
2) Rootkit
Gli scenari più pericolosi nascono da attacchi multipli e avanzati provenienti da rootkit, soprattutto se le modifiche effettuate sono a livello di kernel.
Come intercettare backdoor e funzionalità
Un modo efficace per scoprire quali siano le funzionalità propriamente svolte dalla backdoor è eseguire un’analisi statica e dinamica del malware. IDA (Interactive DisAssembler) è un comune tool nella comunità informatica per lo svolgimento di “reverse engineering”, il processo di scomposizione del malware per scoprirne la struttura, le funzionalità e gli scopi.
Tramite questa dissezione vengono a galla funzioni e schemi ricorrenti, i quali danno la possibilità di riconoscere se si tratti di DLL injection o semplicemente enumeration, di thread launching o process hollowing e così via.
Modalità di attacco con le backdoor
L’attaccante può sfruttare in modi differenti il privilegio di avere un accesso remoto al computer della vittima. In questa direzione vengono definite 3 classi di backdoor:
- Reverse shell: è una tecnica per eseguire comandi sulla macchina della vittima; la particolarità di questo attacco è che la connessione si origina dal sistema infetto verso l’attaccante, al quale viene dato poi accesso alla shell dei comandi.
- RAT – Remote access trojan: queste backdoor permettono il controllo totale del computer della vittima, non solamente l’accesso a una shell per i comandi.
- Botnet: come i RAT, permettono un controllo universale, ma una sostanziale differenza è che si tratta di attacchi di massa, eseguiti su larga scala, con un controllo meno capillare delle vittime.
Esempio di attacco: “reverse shell” in azione
Il modo migliore per comprendere un concetto è osservarne l’applicazione diretta.
La figura sottostante (ripresa dal libro “Practical Malware Analysis: The Hands-On Guide to Dissecting Malicious Software” di Michael Sikorski e Andrew Honig) cattura una porzione di codice malevolo in IDA in seguito a disassembling di una backdoor (nella parte in cui il malware cerca di creare una banale reverse shell).
La seguente schermata consente di analizzare il codice della backdoor più nel dettaglio.
Questo screen fotografa la modifica di “StartupInfo”, la struttura utilizzata insieme alla funzione “CreateProcess” per specificare le proprietà della finestra principale per un nuovo processo:
- (*) Il processo in questione è “cmd”, il command prompt di Windows, la storica command shell che fin dagli anni ’80 permette agli utenti Windows di comunicare con il Sistema Operativo.
- (**) Precedentemente, è stata creata e passata al processo una “socket”, struttura utile alla trasmissione e ricezione di dati attraverso la rete che collega l’attaccante al malcapitato, a cui la stringa “arg_10” nella terza riga fa riferimento.
- (***) Nella seconda riga, “ShowWindow” viene settata a 0, il che significa che la nuova shell sarà nascosta, in modo da non trovare opposizione nell’esecuzione delle sue funzioni.
La porzione di codice intermedia collega la socket alla shell (tramite i flussi StdInput, StdError e StdOutput) e definisce i parametri del processo che viene creato.
Come rimuovere una backdoor dal computer o sito infetto
Per eliminare in maniera sicura e definitiva il codice malevolo di una backdoor dal proprio computer è sufficiente seguire alcune semplici regole di sicurezza informatica. Eccole nel dettaglio:
- limitare i privilegi, cercando di prevenire l’infiltrazione di attaccanti e ospiti sgradevoli e la loro possibilità di avere accesso da root; inoltre, cercare sempre di evitare l’esecuzione di programmi con privilegi da amministratore;
- firewall propriamente settati forniscono un buono scudo, bloccando connessioni provenienti da web server sospetti;
- disabilitare i servizi non necessari; più servizi sono in esecuzione nel nostro computer, più sono le possibilità che uno di questi venga corrotto;
- tenere sempre aggiornate applicazioni di ogni genere; la persistenza di programmi obsoleti aumenta di pari passo con il numero di exploit scritti da hacker nei loro confronti;
- alcune backdoor utilizzano i browser come strumenti intermedi; ricordare sempre di tenerli aggiornati e di eliminare l’utilizzo di motori di ricerca sospetti;
- antivirus completi e monitoraggio regolare sono, ovviamente, le regole di base contro qualsiasi tipo di attacco, anche in questi scenari. Anche in caso di siti web è opportuno monitorare costantemente con un antivirus tutti i file del sito web per scoprire eventuali porte sul retro aperte (backdoors).