LA GUIDA PRATICA

Backdoor: tipologie, tecniche di infezione e consigli per la rimozione sicura

Le backdoor sono delle porte di comunicazione “sul retro” che danno la possibilità ad un attaccante di accedere da remoto al sistema informatico della vittima. Ecco come distinguere le tipologie, i differenti comportamenti malevoli e i consigli per rimuoverle in sicurezza dai sistemi infetti

05 Feb 2020
G
Lorenzo Gizzi

M.Sc. in CyberSecurity, Sapienza Università di Roma


Le backdoor, letteralmente “porte sul retro”, come è facilmente intuibile danno la possibilità a un malintenzionato di accedere da remoto al sistema informatico della vittima su cui vengono montate.

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.

Backdoor: tutte le tipologie

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.

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.

Gli scenari più pericolosi nascono da attacchi multipli e avanzati provenienti da rootkit, soprattutto se le modifiche effettuate sono a livello di kernel.

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.

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:

  1. 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.
  2. RAT – Remote access trojan: queste backdoor permettono il controllo totale del computer della vittima, non solamente l’accesso a una shell per i comandi.
  3. 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.

Un esempio di Reverse shell in azione

WEBINAR
Cyber Security: tra tecnologia e cultura del dato. Ecco cosa fanno i Security People
Sicurezza
Sicurezza dei dati

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

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.

@RIPRODUZIONE RISERVATA

Articolo 1 di 3