STATO MAGGIORE DELLA DIFESA II Reparto Informazioni e Sicurezza Ufficio Sicurezza Difesa Sezione Gestione del Rischio CERT Difesa CC BOLLETTINO DI SICUREZZA INFORMATICA N. 4/2008 Il bollettino può essere visionato on-line su: Internet: www.cert.difesa.it Intranet: www.riscert.difesa.it
Metodologie e tecniche di Footprinting Sommario Metodologie e Tecniche di Footprinting Lo Scanning - Parte II Introduzione... 1 Nmap... 2 Wireshark... 6 Il Fingerprint... 9 Difficoltà: Medio - Alta A cura di: SMD II Reparto Informazioni e Sicurezza Ufficio Sicurezza Difesa Sezione Gestione del Rischio - CERT Difesa
Metodologie e tecniche di Footprinting Metodologie e Tecniche di Footprinting Parte II Introduzione Riprendendo le fila del discorso cominciato nel precedente bollettino, ove sono state descritte le tecniche di scanning, nel presente bollettino saranno descritti i programmi, e le relative funzionalità, che permettono di eseguire operazioni di scanning sui sistemi informatici, allo scopo di raccogliere informazioni circa i tipi di servizio che ognuno di essi espone verso l esterno. Quale premessa importante và sottolineato che l utilizzo autorizzato di questo tipo di applicazioni su sistemi proprietari fa dell amministratore di sistema quello che in gergo viene chiamato un White Hat (letteralmente un cappello bianco o, se si preferisce un ethical hacker). La semplice operazione di scan su sistemi non proprietari, pur senza fini evidentemente malevoli, porta ad un comportamento che definisce, chi lo mette in pratica, un Black Hat (cappello nero o hacker), con tutte le implicazioni di carattere legale che ne conseguono. In questo bollettino si è proceduto ad effettuare un approfondimento di due pacchetti software che, per facilità di utilizzo, reperibilità e efficacia sono i più diffusi. L esposizione proseguirà, quindi, con la descrizione del fingerprint ( impronta digitale ): tecnica mediante la quale sono ottenute le informazioni che consentono di risalire al Sistema Operativo che viene eseguito (o anche, i codici di riconoscimento di dispositivi installati quali, ad esempio, la scheda di rete) per la esposizione un determinato servizio. 1
Nmap Autore: Gordon Lyon Primo rilascio: 09/97 Ultimo rilascio: 28/06/08 Versione: 4.68 Linguaggio: C, C++; Phyton Lingua: Inglese S.O.: Multipiattaforma Genere: Sicurezza Informatica, Gestione di Rete Licenza: GNU General Public License Website: www.nmap.org Nmap è uno scanner che può essere usato per scoprire la presenza di computer e dei servizi eventualmente esposti su di una rete informatica e che agisce (giustificando così il nome) creando una sorta di mappa della rete. Nmap è anche in grado di scoprire servizi passivi (cioè quelli non esposti) in una rete, e può fornire un elevato numero di informazioni relative al computer remoto interrogato quali, ad esempio: Sistema Operativo; dispositivi collegati; software utilizzato per eseguire un servizio e la sua versione; eventuale presenza di un firewall; Tipologia della scheda di rete installata e così via. Essendo, come già detto, un sistema multipiattaforma, Nmap può essere eseguito su Linux, Microsoft Windows, Solaris, BSD (un tipoco esempio di Sistema Operativo BSD-based è l Apple OS X). Ciò che Nmap è in grado di fare è descritto di seguito: Identificazione dell Host Rivelare la presenza di un computer nella rete, ad esempio elencando tutti i computer che rispondono ad un ping o che abbiano una particolare porta aperta; 2
Port Scanning - Enumerazione delle porte aperte su uno o più computer soggetti a scanning; Version detection Interrogare servizi di rete di computer remoti alla ricerca delle applicazioni ivi installate (e della loro relativa versione) che ne permettono l esecuzione; Identificazione del Sistema Operativo Determinare, da remoto, il Sistema Operativo installato su di un host e le caratteristiche hardware dei dispositivi di rete installati. In relazione a quanto sopra descritto si può dedurre, allora, come Nmap possa anche essere utilizzato efficacemente per: Auditing di sicurezza di un computer: connessioni di rete, porte aperte, dispositivi e servizi offerti; mantenimento e gestione dell asset; Auditing di sicurezza di una rete i- dentificando servizi inavvertitamente offerti. Da quanto precede si evince l importanza che un tale strumento può avere nelle attività connesse alla corretta gestione di una rete da parte di un Amministratore. Da qui, però, emergono anche le implicazioni di carattere etico legale, in quanto l efficacia di Nmap si evidenzia tanto nel corretto utilizzo come strumento di ausilio nelle normali operazioni di amministrazione e messa in sicurezza di una rete, quanto nel suo impiego malevolo tendente al danneggiamento (operazione generalmente eseguite dai black hat): per questo si presuppone che l amministratore di rete sia stato preventivamente autorizzato dalla propria catena gerarchica a svolgere tale tipo di attività. 3
L interfaccia testo è quella nativa di Nmap ma è possibile installare interfacce grafiche maggiormente user friendly, fra le quali NmapFE o Zenmap. Quest ultima, più moderna e versatile, risulta quella maggiormente usata. Il software in oggetto presenta inoltre la caratteristica, non poco importante, di essere remote controlled mediante l impiego di interfaccia web. Esistono, inoltre, anche Graphical User Interface (GUI) per Microsoft Windows quale, ad esempio NMapWin o NmapW. Il formato di output di Nmap è l XML 1 che, data la portabilità risulta estremamente versatile. 1 L Extensible Markup Language (XML) è una specifica standardizzata per creare codice in markup languages (linguaggio artificiale che usa un set di notazioni in formato testo che descrivono come questo viene strutturato e/o formattato). Viene classificato come linguaggio estensibile in quanto permette all utente di creare propri elementi. 4
A titolo di esempio si riporta, di seguito, uno screenshot di Nmap al lavoro che mostra una operazione di SYN scanning (parametro.ss; s = scan. S = SYN) sul nodo vittima (l indirizzo IP fornito è fittizio). In questo caso, l operazione ha avuto successo e Nmap riporta che l host, attaccato sulla porta TCP 22 aperta, fornisce sulla stessa un servizio ssh (secure shell). Approfondimenti: Sito Ufficiale Nmap: http://nmap.org/ Manuale d uso : http://nmap.org/man/ 5
Wireshark Autore: The Wireshark team Primo rilascio: 09/97 Ultimo rilascio: 31 marzo, 2008 Versione: 1.0.0 Linguaggio: C, C++; Phyton Lingua: Inglese S.O.: Linux, Solaris, FreeBSD, NetBSD, OpenBSD, Mac OS X e Windows Genere: analizzatore di rete Licenza: GNU General Public License Website: http://www.wireshark.org/ Wireshark (in precedenza noto come Ethereal) è un software per analisi di protocollo, o packet sniffer utilizzato per la soluzione di problemi di rete, per l'analisi e lo sviluppo di protocolli o di software di comunicazione. Le funzionalità di Wireshark sono molto simili a quelle di tcpdump 2, ma con un'interfaccia grafica, e maggiori funzionalità di ordinamento e filtraggio. Permette all'utente di osservare tutto il traffico presente sulla rete utilizzando la modalità promiscua dell'adattatore di rete. Tipicamente si riferisce alle reti Ethernet anche se rende possibile l analisi di altri tipi di rete fisica. Wireshark è rilasciato sotto licenza Open Source. Wireshark riesce a "comprendere" la struttura di diversi protocolli di rete, è in grado di individuare eventuali incapsulamenti, riconosce i singoli campi e permette di interpretarne il significato. Con Wireshark: 2 tcpdump è un tool comune per il debug delle reti di computer che funziona a riga di comando. Consente all'utente di intercettare pacchetti e trasmissioni ad esempio nel protocollo TCP/IP condotti attraverso una rete al quale il computer è collegato. 6
È possibile analizzare dati acquisiti in tempo reale su una rete attiva ("from the wire"), come pure analizzare dati salvati precedentemente su file di cattura. I dati possono essere acquisiti su reti di diverso tipo quali, ad esempio, Ethernet, FDDI (Fiber Distributed Data Interface), PPP (Point to Point Protocol), Token Ring, IEEE 802.11e e IP classico su ATM (Asynchronous Transfer Mode). È possibile analizzare i dati sia tramite interfaccia grafica sia da linea di comando con il programma "tshark". I dati catturati su file possono essere facilmente modificati, convertiti o filtrati, tramite opzioni su riga di comando del programma "editcap". È possibile filtrare i dati da visualizzare, e utilizzare filtri di visualizzazione per colorare o evidenziare selettivamente le informazioni sommarie sui pacchetti. È possibile scomporre e analizzare centinaia di protocolli di comunicazione. Il software di cattura WinPcap 3, che in passato doveva essere scaricato separatamente, è ora compreso nel pacchetto. La versione a riga di comando, Ywireshark, permette di lavorare comodamente su sistemi Unix e Unix-like, ma è comunque disponibile anche su Windows. 3 WinPcap è una libreria Open Source per la cattura e l'analisi dei pacchetti. Include filtri per la cattura di pacchetti a livello kernel, a livello dinamico e a basso livello. Il software consiste in un driver che estende le funzionalità del sistema operativo per il controllo della rete a basso livello. 7
Approfondimenti Il sito ufficiale di Wireshark è consultabile al seguente link: http://www.wireshark.org/ Per quanto riguarda le metodologie di utilizzo del pacchetto, consultare: http://sourceforge.net/projects/wireshark/ 8
Il Fingerprint Concludiamo questo bollettino con quella parte dell attacco denominata Fingerprint, che risulta essere l ultimo passo per la raccolta delle informazioni inerenti alla struttura di una rete. Nell utilizzare gli scanner di rete, come quelli descritti nel presente bollettino, una delle informazioni che risulta in assoluto più importanti è quella di individuare quale tipo di Sistema Operativo è installato sull host oggetto di scan. Il principio generale è che durante una trasmissione ciascun SO marca in maniera univoca ed inequivocabile il pacchetto dati, lasciando su di esso la propria impronta digitale. Nello specifico questo processo di identificazione tramite analisi dello stack TCP/IP, viene anche definito OS Detection e puo essere di due tipi: Stack Fingerprinting attivo Tramite l utilizzo di tool dedicati (Nmap, nessus, p0f) si procede all analisi del comportamento dello stack TCP/IP del sistema target Questo metodo permette essenzialmente di determinare, con accuratezza e con una certa velocità, la versione di sistema operativo in uso sull host remoto ma, d altro canto, genera del traffico facilmente individuabile dai sensori IDS. Stack Fingerprinting Passivo Questa tecnica si basa sul monitoraggio passivo del traffico di rete tra vari sistemi, per determinare le peculiarità di trasmissione e ricezione tra gli host e, di conseguenza, i sistemi operativi stessi. Tipologia di analisi dello stack Le analisi piu comuni per il controllo del comportamento dello stack tcp di un sistema, sono: 9
TTL analysys Analisi sul tempo di validità dei pacchetti inviati dall host; Tcp Window Size Analisi sulla grandezza delle finestre dei pacchetti tcp; DF Bit Analisi per rilevare la presenza del Don t fragment bit sui pacchetti inviati dall host. Alcuni sistemi operativi settano il Don t Fragment Bit per migliorare le performance di trasmissione; FIN Probe Si invia un pacchetto FIN su una porta aperta del sistema remoto, e si analizza la risposta. I sistemi windows NT e 2000 rispondono a questa particolare richiesta con un FIN/ACK; Bogus Flag Probe Si fissa nell header di un pacchetto TCP SYN un flag undefined. Alcuni sistemi operativi come Linux fissano lo stesso tipo di flag nei pacchetti di risposta; Initial Sequence Number (ISN) Sampling Lo scopo di questa analisi è quello di individuare il modo in cui viene trasmesso l ISN (Initial Sequence Number) dall host analizzato, dopo l inizio di una sequenza di trasmissione tcp, che varia a seconda del sistema operativo che forgia il pacchetto di risposta; TCP Initial Window Size Viene tracciata la grandezza della prima finestra di trasmissione tcp in risposta, che varia a seconda dell implementazione di sistema operativo; 10
Type Of Service (TOS) Per i messaggi di tipo ICMP port unreachable il TOS (Type Of Service) viene esaminato, difatti alcune implentazioni dello stack impostano il TOS a 0; Fragmentation Handling Si analizza il modo di gestire pacchetti tcp frammentati, in base al quale vengono evidenziate le differenze tra vari sistemi operativi; TCP Options Mandando uin pacchetto tcp con opzioni multiple impostate come MSS (Maximum Segment Size), window scale factor e timestamp impostato, è possibile, analizzando i pacchetti di risposta, fare delle ipotesi sul sistema operativo remoto; 11