La via dell Hacker Agire come un Hacker Massimo BORTOLAN IT Security Competence Center Assessment, Hardening, Monitoring S.O. e Reti Sessione di studio AIEA Torino, 17 Gennaio 2008 1
Agire come un Hacker 1. Footprinting, Enumeration, Scanning e poi? 2. Attacco!!! 3. Buffer Overflow 4. Masquerading, proxy e anonimità 5. Piantare le tende nel sistema: covering e backdoor 6. Difendersi dai Cracker 7. Consigli 8. Q&A
Footprinting, Enumeration, Scanning e poi? Analisi Obiettivo Ricerca Vulnerabilità ATTACCO Strumenti e tecniche ad hoc Exploit conosciuti Reverse Engeneering Sniffing Diffing Numerose Tecniche Input Imprevisto Worms,, Virus, Trojans Buffer Overflow Tunneling Spoofing Session Hijacking Stringhe di formato 3
Attacco!!! [1/2] Info su tipologie di attacco Internet (siti, forum, p2p) Libri (tecnici e non) Tools http://freshmeat.net/ http://sourceforge.net/ Obiettivo dell attacco: ottenere i privilegi di ROOT / ADMINISTRATOR e consolidare il potere ottenuto Input imprevisto Sfruttare difetti/vulnerabilità degli applicativi (C/S, S.O.). Applicazione importante quanto un Firewall: se scritta male, un (cr)hacker può impadronirsi dell applicazione e dei DB associati, anche in presenza di FW. Buffer Overflow e Stringhe di formato Permettono l esecuzione di codice arbitrario sulla macchina attaccata: l obiettivo èarrivare a disporre di una shell remota sulla macchina: devastante. Serve conoscenza della gestione della memoria, registri, stack. Se ne riduce l impatto scrivendo applicativi ben progettati e abbondantemente testati. Sniffing Attività passiva di ascolto del traffico: inclusi nei rootkit, per propagare l attacco. Utilizzo di strumenti quali tcpdump, Wireshark ecc. per scoprire utenze e password. Scheda di rete in modalità promiscua, analisi del traffico Telnet, FTP, POP, IMAP, rlogin, X11 etc.. Occorre usare SSH e SSL (CRITTOGRAFIA!). 4
Attacco!!! [2/2] Session Hijacking Spoofing Tipico attacco MITM (Man In The Middle) in cui chi attacca si impossessa della sessione attiva tra due entità, sovrapponendosi ad una di esse. E, in pratica, uno sniffing attivo in cui chi attacca conosce tutti i dati necessari (numeri di sequenza, ACK number): difficile applicarlo (es. tempeste ARP), ma se va a buon fine diventa letale. Spoofing: fornire false informazioni su un identit identità principale per ottenere l accesso l non autorizzato ai sistemi e ai servizi (M. Keao). Questo attacco èrealizzabile a tutti i livelli di comunicazione (ARP, IP, frame Ethernet etc.) e costituisce dunque un mondo vasto. Es. IP spoofing creando, tramite C e socket RAW, pacchetti alterati. Malware: Virus, Worm, Trojans Melissa, I Love You, Code Red, Nimbda, Magistr nomi (tristemente) famosi. Sono programmi maligni che si auto-riproducono localmente (virus), fra sistemi (worm) oppure che si travestono da software fidato per creare danni (trojans). MAI eseguire software sconosciuto, MAI fidarsi di applicativi scaricati o passati da terze parti. DoS e DDoS (Denial of Service) L obiettivo è impedire l accesso l a un servizio o ad una risorsa (Ping of Death e Teardrop, ormai debellati). In altri casi, l obiettivo èsaturare la vittima (congestionando la banda) per impedirle di rispondere (ping flood, attacchi di amplificazione etc.). Altri attacchi: DDoS (eseguire un DoS da più host contemporaneamente) e SYN flooding. Cracking delle Password L obiettivo èottenere delle password valide per accedere ai sistemi attaccati (Web Server, Proxy, Mail Server o semplici hosts da cui eseguire poi attacchi successivi). Si usano, in questo caso, attacchi al dizionario / brute force. 5
Buffer Overflow [1/4] Gli errori nel codice portano a problemi di Riservatezza Disponibilità Integrità B.O. di Stack Sono i più semplici e più devastanti! Chi attacca punta a modificare il flusso operativo, modificando la normale esecuzione function-to-function e creando un flusso ad-hoc Lo stack contiene dati, variabili private, argomenti di funzione, indirizzi di ritorno a cui tornare quando termina la funzione se ad es. il buffer overflow va a sovrascrivere tale indirizzo, la funzione ritornata riparte dal punto specificato dal cracker: in questo punto ci può essere codice maligno, ad es. assembly. 6
Buffer Overflow [2/4] B.O. di Stack 7
Buffer Overflow [3/4] Overflow di Heap, BSS, Dati Per difendersi: CODICE BEN SCRITTO!!! Sono più complessi da scrivere, ma ora sono molto comuni Vanno a sovrascrivere lo heap Heap: area usata dai programmers (es. con malloc) per allocare memoria dinamica in fase di esecuzione Gli attacchi si basano sulla sovrascrittura di variabili o di strutture di blocchi heap che contengono indirizzi (es. modifica nello heap: da Access Denied ad Access Allowed ) Questi tipi di attacchi sfruttano anche i puntatori, in modo da farli puntare ad un area gestita dal cracker. 8
Buffer Overflow [4/4] Overflow di Heap, BSS, Dati Inizialmente l heap appare come segue: Una volta sovrascritto il buffer con il codice dell exploit, ènecessario trovare il modo per saltarci dentro, ovvero per dirottare il flusso di esecuzione all interno del buffer modificato. L idea è quella di sovrascrivere un puntatore al codice in modo da farlo puntare all interno del buffer. Es. Dando un argomento abbastanza lungo in ingresso ad una function è possibile sovrascrivere un puntatore a funzione e dirottare il flusso del programma. 9
Masquerading, Proxy e anonimità [1/4] Cosa differenzia un pessimo Cracker da un Cracker pericoloso? Diventare Anonimo Coprire le proprie tracce Anonimità: Per qualsiasi cracker, è assolutamente fondamentale rendersi anonimi: in caso di scoperta, dovrà essere molto arduo poter risalire al reale esecutore dell attacco Totale Anonimità: : IMPOSSIBILE!!! Ma i Cracker pericolosi, prima di eseguire i propri attacchi si rendono anonimi sfruttando varie tecniche: Account fasulli Proxy Anonimi Proxy SOCKS e loro concatenazione Darknets Forzare Masquerading su Hosts NON hardenizzati 10
Masquerading, Proxy e anonimità [2/4] Spesso i Cracker, prima di eseguire un attacco, mirano ad impossessarsi di un sistema non hardenizzato, cioè non messo in sicurezza e dunque ampiamente vulnerabile Su tale sistema, riescono a rendersi anonimi cancellando le proprie azioni dai file di log della macchina: a questo punto, dispongono di un campo base sicuro da cui poter sferrare i propri attacchi In aggiunta a questa tecnica (o in rimpiazzamento), i cracker ottengono un alto grado di anonimità eseguendo l intrusione attraverso computer remoti localizzati in varie zone del mondo Darknets Sono applicazioni per la comunicazione riservata in rete: a collection of networks & technologies used to share digital content. Sono Reti Anonimizzanti Tor, Freenet, Invisible Internet Project. Proxy anonimi Server che agiscono da proxy: ti colleghi e loro sostituiscono al tuo IP il proprio IP (non inviando al web server info sul nostro IP). Il 99% mantengono LOG. Molto Lenti (ma si può usare un MultiProxy). Proxy SOCKS Questi server consentono l utilizzo di più protocolli, non solo HTTP: utilizzando SockCap, anche il classico Telnet di Windows può essere usato. Trovare questi computers, non è sempre facile: le liste pubblicate on-line, spesso non sono attendibili. I Cracker sfruttano però i propri canali sotterranei per reperire e gli IP di queste macchine 11
Masquerading, Proxy e anonimità [3/4] TOR The Onion Routing E una rete di Proxy Socks anonimizzanti costituita da nodi non paritetici: Client Router (circa 1000) Directory Server (circa 6) TOR: anonimizzazione di connessioni TCP Navigazione Anonima ma NON BASTA!!!! E poi, ci si deve fidare dei server intermedi che comunque loggano! 12
Masquerading, Proxy e anonimità [3/4] Un buon metodo di utilizzo di proxy anonimi e socks, è quello di concatenare sistemi provenienti da paesi con legislazione -relativa ad attacchi informatici - molto labile: Concatenando Server in Piccoli paesi asiatici Russia / Est Europa Nazioni africane / sudamericane Molto difficile ottenere, da parte degli investigatori, i logs di provider di tali paesi... Ulteriore possibilità: impossessarsi di sistemi non hardenizzati e abilitare l IP MASQUERADING (SNAT) su di essa: modificando iptables e coprendo le tracce, sarà possibile agire dal proprio sistema (e dunque bersagliare il reale obbiettivo) passando attraverso il sistema vittima che fungerà inconsapevolmente da NAT. Molti sistemi con IP pubblici sono gestiti da newbie!!! P2P PC ludico : Gioco Chat 13
Masquerading, Proxy e anonimità [4/4] Scenario: Attacco ad una grande società Un Cracker esegue l attacco SOLO dopo essersi abbondantemente nascosto Più ègrande / importante l obiettivo da colpire, più sarà importante per lui coprire le proprie tracce. Le grosse società, quando colpite, subiscono danni ingenti e sono fortemente motivate a risalire al colpevole. Obiettivo Newbie usato come Ponte Masquerading Cracker Proxy anonimi africani, orientali, sudamericani 14
Piantare le tende nel sistema: Covering e Backdooor [1/3] Violare un server aziendale NON è affar semplice quando si riesce a penetrare, un Cracker cerca di rafforzare la propria posizione all interno del sistema Ottenere priviliegi Root / Administrator Inoltre, il Cracker deve prevedere la possibilità di essere scoperto: CREA metodi di ingresso alternativi nel sistema (Bakckdoors( Bakckdoors) High Privileges Different Ways Covering Tracks 15
Piantare le tende nel sistema: Covering e Backdooor [2/3] Attività di Covering e di creazione Backdoor: Esistono programmi (o insiemi di programmi), i ROOTKITS, in grado di fare un escalation dei privilegi per ottenere i diritti di amministrazione del sistema Ad oggi, molto popolari sono i rootkits del Kernel Unix / Linux I rootkits manipolano direttamente il SO e permettono di creare ingressi alternativi nel sistema; i software più evoluti offrono servizi integrati di keystroke logger, sniffing, analisi dei difetti del sistema e generazione di trojan horse per generare backdoors. Rootkits: Hacker Defender Una volta installati sul sistema, i rootkits sono di difficile rilevazione Anti-Rootkits: Rootkit Unhooker RootkitRevealer IceSword 16
Piantare le tende nel sistema: Covering e Backdooor [3/3] Qualsiasi hacker (dai blackhat/whitehat in giù) si preoccupa, durante l attacco, di coprire le proprie tracce. Praticamente ogni sistema informatico mantiene Log (più o meno accurati) delle attività svolte sul sistema: Accessi Connessioni remote Attività sul sistema Quando un amministratore si accorge di essere sotto attacco, utilizza come strumento principale i Log di sistema per capire la situazione e per porre rimedio. Attività del Cracker: Disabilitare l auditing Pulire il registro eventi Nascondere Files etc. (Ri-abilitare l auditing) I Cracker più furbi, non cancellano i LOG, ma li modificano / inquinano 17
Difendersi dai Cracker I nostri consigli (il Mini-Decalogo della Security) 1. Password Forti / Strong Authentication 2. Installare sempre patch S.O. e applicativi 3. Configurare Firewall in modo efficace 4. Disabilitare Servizi non usati (XP ne lascia attivi molti di default) 5. Mantenere attivo e aggiornato SW Antivirus / Antispyware 6. Abilitare auditing e non snobbare i file di Log 7. Documentarsi riguardo alle versioni di S.O. e SW utilizzato 8. Installare sistemi IDS / IPS / HIDS 9. Realizzare e mantenere efficienti sistemi di Backup 10. Crittografia per la comunicazione Siate Vigili!!! 18
Consigli Volete diventare dei bravi White Hat? Documentatevi Esercitatevi 19
Domande e risposte Domande? 20
www.altran.com 21