Una backdoor (dal termine inglese per porta di servizio o porta sul retro) è un metodo, spesso segreto, per passare oltre (aggirare, bypassare) la normale autenticazione in un prodotto, un sistema informatico, un crittosistema o un algoritmo.
Le backdoor sono spesso scritte in diversi linguaggi di programmazione e hanno la funzione principale di superare le difese imposte da un sistema, come può essere un firewall, al fine di accedere in remoto a un personal computer, ottenendo per mezzo di un sistema di crittografia un'autenticazione che permetta di prendere il completo o parziale possesso del computer vittima.
Una backdoor può celarsi segretamente all'interno di un ignaro programma di sistema, di un software separato, o può anche essere un componente hardware malevolo come apparati di rete, sistemi di sorveglianza e alcuni dispositivi di infrastruttura di comunicazione che possono avere celate al loro interno backdoor maligne permettendo l'intrusione di un eventuale criminale informatico (cracker).
Caratteristiche generali Normalmente, tali stratagemmi sono installati furtivamente, e in alcuni casi sono deliberatamente e ampiamente voluti; per esempio possono essere intenzionalmente create da un gestore di sistema informatico (amministratore di rete o sistemista) permettendo una più agevole opera di manutenzione dell'infrastruttura informatica, agendo sul sistema software del computer da remoto oppure per ripristinare password dimenticate dagli utenti. Spesso però tali buchi vengono utilizzati da hacker intenzionati a manomettere il sistema.
Alcune password di default possono funzionare da backdoor se non vengono fatti i giusti controlli e le appropriate modifiche di sicurezza. Alcune funzionalità di debugging possono anche agire come falla per aggirare il sistema se non vengono rimossi nella versione ufficiale.
Possono anche essere installate autonomamente da alcuni malware (come virus, worm o trojan), in modo da consentire a un utente esterno di prendere il controllo remoto della macchina senza l'autorizzazione del proprietario.
Nel 1993, il governo degli Stati Uniti ha tentato di implementare un sistema di crittografia, il Clipper chip, con una backdoor esplicita a cui forze dell'ordine e agli enti per la sicurezza nazionale è stata data l'autorizzazione per accedervi, ma questo chip non ha avuto successo né in campo internazionale né in campo industriale.
Spesso le backdoor vengono generate attraverso dei software malevoli denominati trojan che vengono fatti installare sul computer delle vittime con l'inganno, per esempio inviando loro delle email che invitano a cliccare su dei link infetti (phishing) oppure tramite dei programmi che apparentemente svolgono delle funzioni normali ma in realtà operano in background per infettare il computer (trojan horse).
Sono molto pericolosi in quanto aggirano i sistemi di protezione del sistema sfruttando le porte del firewall che l'utente ha aperto per consentire il funzionamento di programmi per il P2P (es. Emule) e l'assistenza remota.
Un esempio celebre è il programma Back Orifice, che attiva una backdoor sul sistema in cui viene installato, dando la possibilità a chiunque ne conosca l'indirizzo IP di controllare la macchina. Oltre ad essere molto pericolosi per l'integrità delle informazioni presenti sul sistema, le backdoor installate dai virus possono essere utilizzate per condurre degli attacchi di tipo DDoS (distributed denial of service).
I requisiti essenziali di ogni backdoor sono: Trasparenza: capacità di eseguire comandi senza che l'utilizzatore principale se ne accorga e proceda con un fix (risoluzione della vulnerabilità). Versatilità: capacità di adattarsi per superare i diversi sistemi di sicurezza che ogni pc può avere.
Trapdoor Una trapdoor è un punto di ingresso non documentato a un modulo o a un programma che un utente maligno potrebbe sfruttare per accedere al sistema.
La loro creazione avviene generalmente in buona fede, dal momento che vengono spesso inserite in fase di sviluppo del codice per testare il programma, o in seguito per update (aggiornamenti).
Una volta pubblicato il software, devono esser tolte per evitare di lasciare buchi nella sicurezza.
Un particolare tipo di trapdoor è quello legato a un controllo approssimativo degli errori all'interno di un programma, in particolare in riferimento ai dati in ingresso.
Se non viene verificata l'ammissibilità dei dati in input, un utente malevolo potrebbe infatti causare effetti indesiderati nel sistema.
È ciò che accade con le SQL injection, dove l'attaccante sfrutta un punto di ingresso (ad esempio un form) per fornire una stringa SQL (query) in grado di provocare danni al database (ad esempio una drop table).
Controllare sempre che l'input sia quello che ci si aspetta è quindi un'ottima regola da applicare per garantire maggiore sicurezza.
Dai documenti rivelati da Edward Snowden risulta che dopo il 2010 la NSA ha introdotto segretamente trapdoor nei software di crittografia commerciali distribuiti in tutto il mondo collaborando con le aziende di produzioneLuke Harding, Snowden. La vera storia dell'uomo più ricercato del mondo, 2016, Newton Compton Editori, pag. 209, ISBN 978-88-541-9817-3.
Osservazioni Le minacce di backdoor sono iniziate a emergere con l'ampliarsi della rete internet, e così facendo all'aumento di utenti che ne fanno parte.
Peterson e Turn durante una discussione avvenuta nel 1967 nella conferenza di AFIPS, durante un'analisi di attacchi attivi, hanno rilevato l'uso di trapdoor per bypassare strutture di sicurezza consentendo l'accesso diretto ai dati.
L'uso della parola chiave “trapdoor” coincide con la definizione di backdoor (porta sul retro), tuttavia grazie dall'invenzione della crittografia a chiave pubblica, il termine trapdoor ha acquisito un significato differente, e quindi il termine backdoor è ora preferito.
Generalmente, tali violazioni della sicurezza sono stati discusse a lungo in un rapporto della Task Force RAND Corporation pubblicato nel 1970 sotto ARPA sponsorizzato da J.P. Anderson e D.J. Edwards.
Una backdoor in un sistema di login può iniettare dinamicamente username e password all'interno di un form, permettendo così l'accesso al sistema.
Un famoso esempio di quest'ultimo tipo è stato utilizzato come trama del film Wargames del 1983, in cui l'ingegnere della WOPR (War Operation Plan Response), inserendo come password il nome del proprio figlio deceduto, è riuscito ad avere l'accesso al sistema, permettendo così la visualizzazione di documenti, nei quali al loro interno era presente un videogioco con un simulatore a intelligenza artificiale.
Sebbene aziende per difendersi da attacchi di backdoor utilizzano software proprietari (software il cui codice sorgente non è disponibile pubblicamente), sono ugualmente esposte a frequenti attacchi.
Alcuni programmatori tuttavia riescono segretamente a installare degli Easter egg all'interno di programmi, ben consapevoli dei possibili provvedimenti giudiziari nel compiere un tale gesto.
I più comuni, però anche i meno pericolosi, sono NetBus e DarkComet Rat, che offrono una quantità smisurata di comandi effettuabili sulla macchina controllata, compresi lo sniffing remoto di tutti gli hardware. Tutte le versioni del programma sono state ampiamente utilizzate da "script kiddie" e il programma è stato reso popolare anche dall'uscita di Back Orifice, a causa delle sue dimensioni più ridotte, il programma originale aveva un file eseguibile (.exe) di 500 KB.
L'attaccante può quindi utilizzare Back Orifice per installare il server NetBus sul computer di destinazione, Quando viene fatto partire per la prima volta, il server si auto installa nel computer host e modifica il Registro di Sistema di Windows per partire automaticamente a ogni avvio del sistema. Il server è un demone che si mette in attesa di connessioni sulla porta 12345 (in alcune versioni, il numero di porta può essere modificata da remoto).
Ma ne esistono di tanti tipi e solitamente sono programmati specificamente per la macchina da controllare, così da eseguire le azioni remote nel modo più efficiente possibile evitando di essere scoperti.
La maggior parte dei programmi antivirus rilevano e rimuovono NetBus.
Tipologie NetBIOS Il protocollo NetBIOS è un protocollo remoto per la condivisione dei file instaurato nel sistema Windows 9x/ME che permetteva l'accesso da remoto non autorizzato, che ha comportato un enorme scompiglio fra gli utenti Windows che si sono visti violare la loro privacy.
Funzionava grazie alla porta 139 e chiunque conoscesse un'IP di un pc con porta 139 poteva connettersi e "curiosare" nel disco rigido del computer del malcapitato, con l'avvento dei Port Scanner chiunque poteva trovare un indirizzo IP vulnerabile. Tuttavia il problema venne ben presto risolto.
Trojan Horse Il backdoor più comune è denominato Trojan e consiste in un codice eseguibile malevolo che permette di stabilire una connessione tra un pc locale, inconsapevole del rischio di attacco, e uno remoto dal quale viene portato l'attacco.
Una volta stabilita la connessione, un cracker può eseguire azioni che variano in funzione del server o del servizio con cui ha avuto accesso al pc sotto attacco. Tipicamente un trojan possiede meccanismi atti a raggirare i protocolli di sicurezza del sistema operativo usato, quindi è difficile capire da un'analisi superficiale se un computer infetto ha funzioni di backdoor.
Ogni giorno vengono creati e diffusi trojan sempre diversi per cui è consigliabile dotare il sistema operativo di software anti malware e antivirus aggiornati specifici per la rilevazione ed eradicazione di questi programmi malevoli.
Backdoor for exploit Le backdoor possono essere sfruttate per portare a termine degli exploit, ad esempio su siti web.
Semplicemente sono codici maligni che vengono "iniettati" all'interno di un sito web, grazie a un bug (difetto) di programmazione del sito stesso. Ciò provoca l'interpretazione del nuovo codice come parte della programmazione del sito, anche se solitamente è una shell (interprete di comandi) che permette di eseguire azioni all'interno del sistema che ospita il sito web che generalmente sono concesse solo agli amministratori, senza richiedere nessun tipo di password o autenticazione.
Queste tecniche sono note come Remote File Inclusion o Code injection.
Compiler Backdoors Questo attacco è stato originariamente presentato da Karger & Schell nel 1974 con il nome di "Trap Door insertion", in un'analisi di sicurezza degli Stati Uniti Air Force di Multics, dove hanno descritto un attacco del genere su un compilatore PL/I, chiamato "compilatore botola"; inoltre, viene indicata una variante in cui il codice di inizializzazione del sistema viene modificato inserendo una backdoor durante l'avvio, tale variante è conosciuta anche come "virus di boot".
Questo meccanismo di backdoor si basa sul fatto che la gente controlla solamente il codice sorgente, senza compilare il codice sorgente (codice oggetto).
Un programma chiamato compilatore viene utilizzato per creare il secondo dal primo, e solitamente per tale operazione si utilizza un compilatore, fidandosi.
Thompson mostra una versione modificata di compilatore Unix C che è in grado di:
inserire una backdoor invisibile durante la fase di compilazione del login. con la possibilità di inserire tale meccanismo in versioni future del compilatore stesso.
Poiché il compilatore è un programma compilato, per gli utenti umani sarebbe estremamente improbabile notare le istruzioni in linguaggio macchina che svolgono celatamente questi compiti.
Quel che è peggio, in una prova di Thompson di implementazione di tale concetto, il compilatore modificato modifica il programma di analisi (il decompilatore), in modo che chiunque esamini i file binari nel solito modo non vedrebbe il codice vero in esecuzione, ma qualcos'altro.
Asymmetric Backdoors