# Backdoor

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 volute; per esempio possono essere intenzionalmente create da un gestore di sistema informatico (amministratori 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 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 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 tolti per evitare di non 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 produzione.

## 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 discussi 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 esposti 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, tra cui la modifica del 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

Una backdoor è detta "simmetrica" quando tutti coloro che la trovano possono utilizzarla a loro volta liberamente.
Il termine "backdoor simmetrica" è stato introdotto da Adam Young e Moti Yung in “Proceedings of Advances in Cryptology" (procedure avanzate di crittologia).
Una backdoor asimmetrica, può essere utilizzata solo da un attaccante che conosce già l'esistenza di tale vulnerabilità, rendendola in tale pubblica (ad esempio, tramite la pubblicazioni divulgate dal reverse engineering, ecc.).
Tale metodo è computazionalmente irrintracciabile, questa classe di attacchi è stato definito kleptography; essi possono essere effettuati in software, hardware (ad esempio, smart card), o una combinazione dei due.
La teoria di backdoor asimmetrica è parte di un più ampio campo ora chiamato cryptovirology. In particolare, NSA ha inserito una backdoor kleptographic nello standard Dual EC DRBG.
Esiste un backdoor asimmetrica sperimentale nella chiave di generazione RSA.
Questa backdoor OpenSSL RSA creata da Young e Yung, utilizza un doppino intrecciato di curve ellittiche, ed è stata resa disponibile pubblicamente.

## Strategie di attacco

In realtà, le ricerche rivelano che molte delle backdoor utilizzate in attacchi mirati, sono state appositamente progettate per bypassare qualsiasi tipo di sistema di rilevamento delle intrusioni (IDS).
Strategie di intrusione:
* Port binding: rivela dove e come i messaggi vengono trasmessi e consegnati all'interno della rete.
* Connect-back: In questa strategia consente una connessione dai server alla piattaforma vittime attraverso porte non protette dal firewall.
* Connect availability use: Questa strategia implica l'uso di diversi campioni di malware non solo di violare la rete, ma non individuare, per lunghi periodi di tempo. Questo estende gli hacker finestra devono rubare dati sensibili dal bersaglio. Il primo malware o "di prima linea backdoor", funge da piattaforma per scaricare il secondo campione, la "seconda linea di backdoor", che esegue il furto effettivo di informazioni.
* Legitimate platform abuse: In questa strategia, i criminali informatici abusano di una piattaforma valida ben consolidata come potrebbe esser un blog, per esempio, e lo utilizzano per la memorizzazione dei dati inviata dal server malevolo precedentemente creato per l'attacco o in questo caso raccolta informazioni.

## Esempi

Molti worm per computer (come Sobig e Mydoom) installano una backdoor sul computer infetto (di norma un PC con connessione a banda larga, sul quale girano Microsoft Windows e Microsoft Outlook).
Tali backdoor sono installate con lo scopo di permettere agli spammer di inviare posta indesiderate dalle macchine infette.
Altri, come il rootkit distribuito di nascosto in milioni di dischi di Sony/BMG alla fine del 2005, sovrastavano illegalmente misure DRM (Digital Rights Management), in quel particolare caso, come agenti di raccolta dati; dato che entrambi i software illegittimi di nascosto trasmettevano periodicamente dati ai server centrali.
Nel 2003 un sofisticato tentativo di impiantare una backdoor nel kernel di Linux, ha permesso agli sviluppatori software di scoprire una falla nel sistema operativo: in quel caso la modifica di due linee di codice permetteva all'attaccante di avere i permessi di accesso di root chiamando la funzione sys_wailt4, ciò perché era stato utilizzato al posto del simbolo di uguaglianza di controllo == il simbolo = che corrisponde al simbolo di assegnazione, pertanto la condizione di accesso risultava sempre vera.
Questa piccola differenza è facilmente trascurata, e potrebbe anche essere interpretata come un errore tipografico accidentale, piuttosto che un vero e proprio attacco intenzionale.
Nel gennaio del 2014, una backdoor è stata scoperta in alcuni prodotti Samsung che possiedono come sistema operativo Android, come i dispositivi Samsung Galaxy.
Alcune versioni di Android Samsung possiedono al loro interno una backdoor nativa che consente l'accesso remoto ai dati memorizzati sul dispositivo, ovvero all'intero file system, in particolar modo, il software che si occupa della gestione della comunicazione con il modem. Utilizzando il protocollo Samsung IPC, è possibile implementare una classe di richieste riconosciute come comandi di RFS, che permette all'attaccante di poter eseguire via modem remoto operazioni di I/O sul disco rigido della periferica o sulla memoria.
Quando il processo modem è in esecuzione, è possibile che possa offrire il controllo remoto over-the-air, che potrebbe esser utilizzato per il rilascio di comandi RFS e quindi accedere al file system del dispositivo.

### Trusting Trust

Questo attacco risale al Karger & Schell del 1974, ed è stato reso popolare nel 1984 nell'articolo di Kenneth Thompson, dal titolo "Reflections on Trusting Trust" (Riflessioni sul fidarsi della fiducia).
Il primo a parlare di questo attacco fu lo stesso Thompson, in occasione del discorso che tenne, nel lontano 1983, quando ricevette il Premio Turing, uno dei più ambiti premi per l'informatica. Riferiva di come gli strumenti stessi impiegati per creare le applicazioni e tutto il software che si utilizza possono diventare vettori di attacchi alla loro sicurezza, e racconta in particolare come lui stesso, per divertimento, avesse introdotto una backdoor nelle primissime versioni del sistema operativo Unix, che gli permetteva di entrare in qualsiasi computer che utilizzava la sua creazione senza conoscerne le credenziali di accesso. E la trappola non era nel codice: anche un attento programmatore che avesse analizzato il codice sorgente del sistema operativo non avrebbe trovato nessuna traccia della backdoor medesima. La trappola era nel compilatore: durante la procedura di compilazione il compilatore inseriva, solo in una determinata parte del sistema operativo, una trappola di cui non vi era traccia nel codice sorgente leggibile da un umano. Quella sera, nella sala gremita di azzimati professori e di barbuti hacker con camicie a fiori alla moda californiana, Ken spiegò come attraverso un processo di apprendimento progressivo il software potesse inglobare informazioni al proprio interno annegandole in livelli più interni rispetto a quelli che un'ordinaria analisi normalmente considera.
Le affermazioni di Thompson svelavano, finalmente, come anni di ricerche sul codice sorgente di Unix non avessero dato esito: semplicemente occorreva andare più a fondo. Ken stava dicendo che il software installato su una macchina non è semplicemente l'ultimo livello di software installato, ma anche la memoria di tutto quanto si è fatto in precedenza.

### Contromisure

Una volta che il sistema è stato compromesso con un backdoor, come ad esempio il compilatore Trusting Trust, è molto difficile per l'utente "legittimo" riprendere il controllo del sistema originario. Tuttavia sono stati suggeriti diversi punti deboli pratici nello schema Trusting.
Ad esempio, un utente sufficientemente motivato potrebbe accuratamente esaminare il codice macchina del compilatore attendibile prima dell'uso.
Come accennato in precedenza, ci sono modi per nascondere il trojan, come sovvertire il decompilatore; ma ci sono anche modi per contrastare la difesa, come scrivere il proprio decompilatore da zero.
Un metodo generico per contrastare gli attacchi di Trusting, si chiama Diverse Double Compiling (DDC).
Questo approccio richiede che il compilatore di fiducia sia in grado di compilare il codice sorgente del compilatore genitore di prova.
Tale metodo cambia radicalmente le cose, perché adesso un utente malintenzionato deve contemporaneamente sovvertire sia il compilatore originale sia tutti i compilatori utilizzati come compilatori di fiducia.
Questo metodo è stato applicato dal suo autore per verificare che il compilatore C della suite GCC, utilizzando ICC (v. 11.0) come diverso compilatore, contenesse al suo interno un trojan.
In pratica, tali verifiche non sono fatte dagli utenti finali, tranne in circostanze estreme di rilevazione e analisi delle intrusioni, a causa della rarità di tali attacchi sofisticati, e perché i programmi sono in genere distribuiti in forma binaria.
Tali verifiche sofisticate sono di interesse per produttori di sistemi operativi, al fine di garantire che essi non ci siano distribuzioni di software compromessi, soprattutto in ambienti ad alta sicurezza, dove questi attacchi sono una preoccupazione reale costante.

## Lista di backdoor

* Back Orifice: È stato creato nel 1998 da parte di hacker del gruppo Dead Cow come strumento di amministrazione remota. Ha permesso a computer Windows di essere controllati da remoto su una rete sfruttando la somiglianza col nome Microsoft BackOffice.
* Il Dual_EC_DRBG: Generatore crittograficamente sicuro di numeri pseudo-casuali, è stato scoperto nel 2013 ad avere una backdoor kleptographic volutamente inserita da NSA, di cui possedeva la chiave privata.
* Diversi backdoor nelle copie non autorizzate del plug-in WordPress sono state scoperti nel marzo 2014. Sono stati inseriti come codice JavaScript offuscato e silenziosamente creato, ad esempio, un account amministratore nel database del sito. Uno schema simile è stato successivamente esposta nel plugin di Joomla.
* Borland Interbase 4.0 versione 6.0 ha avuto un backdoor hard-coded, messo lì dagli sviluppatori. Il codice del server contiene un account backdoor compilato (username: politically, la password correct), a cui si potrebbe accedere tramite una connessione di rete, e una volta che un utente è connesso con esso, si può avere pieno controllo su tutti i database Interbase. La backdoor è stata rilevata nel 2001 ed è stata pubblicata una patch di correzione.
* Juniper Networks backdoor inserita nell'anno 2008 nelle versioni di firmware ScreenOS da 6.2.0r15 a 6.2.0r18 e da 6.3.0r12 a 6.3.0r20 che fornisce a qualsiasi utente l'accesso amministrativo quando utilizza una password principale con caratteri speciali.

## Nella cultura di massa

Nel film War Games - Giochi di guerra (1983) in una scena vi è uno dei primi riferimenti chiari su l'utilizzo delle backdoor.