Le Backdoor vengone usate dagli hacker per garantirsi che una volta entrati in un sistema si riesca ad accedervi successivamente nel modo più veloce e più trasparente possibile agli occhi dell'amministratore della rete. Le tecniche per crearsi le backdoor sono molteplici e in questo articolo vedremo le più comuni in modo da individuarle e quindi eliminarle.
La backdoor più comune e piu vecchia è quella di crakkare le password del file /etc/passwd in modo da avere piu account disponibili sulla macchina e poterci tornare tranquillamente, l'hacker di solito riesce a crakkare le password più deboli su account non piu usati e tenta di cambiarle in modo che un test dell'amministratore sulle password deboli non faccia risultare quegli account.Un altro modo per procurarsi un account con privilegi di root è quella di inserire un utente nel file /etc/passwd e mettere uid/gid del nuovo utente a 0 in questo modo si ha un accesso con privilegi di root.
Un'altra backdoor usata nei sistemi Unix è quella basata su il file rhosts ho meglio sui servizi di rete rsh e rlogin. Questi servizi infatti permettono alle macchine elencate nel file rhost di loggarsi sul sistema senza la richiesta di password, inoltre se dentro detto file si inserisce la seguente riga + + l'accesso alla macchina con quel account viene consentito a tutti da qualunque posto ci si collega con un collegamento per cui i log potrebbero essere poveri o inesistenti perchè l'operazione è usuale. La soluzione è quella di controllare i file rhosts sospetti.
Backdoor piu sofisticate le troviamo sul timestamp e il checksum del file che vengono usate quando un amministratore utilizza un programma per la verifica dell'integrità dei file controllando cosi la possibile installazione di programmi trojan; l'hacker che vuole nascondere il propio trojan da questi programmi deve innanzittutto eludere il controllo sull'orario portando indietro l'orologio di sistema all'ora di creazione del file originale e aggiustando l'ora del trojan sull'ora attuale ;Il sum del file può essere tranquillamente riprodotto conoscendo l'algoritmo.La soluzione per questa backdoor potrebbe essere di utilizzare il checksum MD5 che è basato su un algoritmo che non può essere spoofato. Una volta riusciti a ingannare il controllo dei file l'hacker si ingegna per la creazione dei trojani sfruttando i programmi di sistema, di seguito troviamo degli esempi: La backdoor login viene messa in atto modificando il codice del programma login.c in modo che durante la richiesta di password essa venga prima registrata in un file e poi crittografata per confrontarla con quella contenuta in /etc/shadow, con questo metodo ogni utente che si collega fornisce la propia password in chiaro compreso l'utente root.Il metodo di risoluzione è quello di utilizzare il programma che controlla la dimensione e che usa il checksum MD5 visto che questa backdoor può essere classificata come trojan . Un'altra backdoor di uso comune è quella che riguarda il servizio di rete Telnet infatti quando una macchina si collega in telnet ad un'altra il superserver inetd passa il controllo al demone telnetd e questo a sua volta al processo di login, la backdoor viene inserita nel programma riguardante il demone in.telnetd e precisamente nel punto in cui viene specificato il terminale che di solito è o Xterm o VT100, se invece viene specificato "letmein" viene restituita una shell senza il processo di autenticazione. Anche con lo scheduler Cron si può sempre introducendo delle modifiche al codice farsi restituire una shell in una determinata ora per esempio dalle 2 AM alle 3 AM; in questo periodo di tempo ogni notte si avrà a disposizione la shell.
Backdoor più sofisticate vengono create con le librerie condivise,queste backdoor pur essendo classificate come trojani servono per eludere il controllo dell'algoritmo del checksum MD5; nei sistemi Unix infatti per rendere l'esecuzione dei programmi più veloci e per diminuire la grandezza degli stessi si usano le librerie condivise che sono routine di codice comuni a piu programmi.L'hacker cerca quindi di cambiare queste routine per esempio la routine crypt() che usa il login, oppure la routine che calcola il checksum con l'algoritmo del MD5 in modo che l'eventuale installazione di trojan non venga rilevato , una soluzione per il programma che controlla l'integrità dei file potrebbe essere quella di linkare staticamente il programma con la routine che calcola il checksum. Altre backdoor interagiscono sulle propietà del filesystem e vanno dalla modifica dei programmi principali per la sua gestione "ls" "du" e "fsck" nascondendo per esempio l'esistenza di certe directory o certi file, fino a quelle di più basso livello eseguite sul disco per esempio una di queste è quella di creare una sezione del disco e segnare alcuni settori di esso bad, l'accesso a questa sezione avviene solo attraverso particolari strumenti che l'hacker ha provveduto a crearsi, in questo caso è molto difficile che l'amministratore riesca ad accorgersi se i settori del disco sono veramente bad o no. Sempre riguardo al filesystem il bootblock del disco diventa sui sistemi Unix un buon nascondiglio di backdoor infatti a differenza dei sistemi Miscrosoft che sono soggetti a virus di boot e quindi corredati con una buona serie di tools di controllo, nei sistemi Unix questi tools sono inesistenti o rari e quindi una backdoor nel bootblock e molto difficile da individuare.
Una backdoor di base che viene installata nei sistemi che sono stati crakkati e quella della modifica del comando ps che lista i processi , la modifica del codice di questo programma infatti potrebbe nascondere vari processi che agli occhi dell'amministratore possono risultare strani, oppure cambiare nomi dei processi in modo da farli corrispondere ai normali demoni esemp. Syslog Kerneld etc., un'altra backdoor più sofisticata per nascondere i processi è quella di guidare la routine degli interrupt in modo che un certo programma non venga fatto apparire nella tabella dei processi(questa tecnica merita una più approfondita analisi che verrà successivamente sviluppata) e quindi riportata dal processo ps.
L'hacker oltre a cercare di "nascondersi" localmente sul sistema vittima con le tecniche precedentemente menzionate cerca anche delle backdoor remote che possono abilitarlo su sistema in un modo trasperente e veloce. Molte volte gli amministratori cercano di loggare e controllare il piu possibile le connessioni TCP senza occuparsi maggiormente degli altri protocolli come UDP ,ICMP; molti firewall infatti non fanno nessun controllo sugli ICMP per servizi quali per esempio il DNS, permettendo cosi agli hacker di farsi restituire con una backdoor una shell su quella porta bypassando cosi il firewall. un'altra backdoor può essere attuata sul programma ping che è usato soprattutto per la verifica della presenza in rete di una macchina, molti firewall permettono il ping dall'esterno su macchine interne alla rete, un hacker cosi inserendo alcuni dati nel pacchetto ICMP e avendo installato precedente una backdoor può farsi restituire una shell dalla macchina pingata; l'amministratore può verificare una serie di pacchetti ping in arrivo, ma senza che il pacchetto sia esaminato all'interno l'hacker non può essere rintracciato, l'hacker può anche crittografare il traffico sulla connessione creata con la backdoor in questo modo rintracciare le informazioni all'interno del pacchetto diventa molto difficile. L'articolo non vuole essere una spiegazione di tutte le tecniche di creazione delle backdoor esistenti al mondo ma una spiegazione generale delle piu comuni, l'articolo è in una prima fase di stesura che sarà successivamente arricchita.