STATO MAGGIORE DELLA DIFESA II Reparto Informazioni e Sicurezza Ufficio Sicurezza Difesa Sezione Gestione del Rischio CERT Difesa CC BOLLETTINO DI SICUREZZA INFORMATICA N. 3/2008 Il bollettino può essere visionato on-line su: Internet: www.cert.difesa.it Intranet: www.riscert.difesa.it
INDICE Sommario Metodologie e tecniche di Footprinting Lo Scanning - Parte I Introduzione...1 Le tecniche di Scanning...2 Port Scanning...4 SYN scanning...5 TCP scanning...6 UDP scanning...7 ACK scanning...8 Windows scanning...8 Altri tipi di Scanning...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 Introduzione Con il termine Footprinting si intende un insieme di tecniche e metodologie tendenti al reperimento di informazioni sulla configurazione e sulla architettura dei sistemi informatici. Le tecniche suddette prevedono, ad esempio, lo scanning per scoprire che tipo di servizi vengono esposti dai sistemi, il fingerprint che permette di identificare i sistemi che espongono i servizi ed infine il probing con cui si può ottenere un quadro pressoché completo delle vulnerabilità cui è affetto il sistema, esponendolo al pericolo di attacchi cibernetici. E opportuno che un amministratore di rete sia a conoscenza delle predette tecniche e dei relativi strumenti software per avere una visione completa della configurazione dei sistemi di competenza e mettersi al riparo, per tempo, da eventuali falle di sicurezza. Una siffatta attività non può essere considerata un vero e proprio attacco, dato che, di per se stessa, non è più dannosa del suonare il campanello per sapere se qualcuno è in casa [SANS, 2001]. Tuttavia, è pur sempre una attività estremamente invasiva, che è generalmente considerata il preludio di possibili attacchi da parte di malintenzionati che operano dall interno o dall esterno della rete. Pertanto, questo comporta che l amministratore di rete, in termini legali e disciplinari, non solo è tenuto ad informare la sua catena gerarchica dell intenzione di procedere all utilizzo di strumenti e metodi CERT Difesa Coordination Center 1
di footprinting, ma deve, necessariamente e preventivamente, essere autorizzato a farlo. Data la vastità ed importanza che riveste l argomento ai fini della tutela e della protezione dei sistemi informatici, si è quindi deciso di descriverne i vari aspetti in una serie di bollettini. Nel presente documento verranno illustrate le tecniche di scanning, cioè delle metodologie utilizzate per la raccolta delle informazioni sulla configurazione dei sistemi, mentre nel successivo Bollettino saranno presentati alcuni fra i più utilizzati software per lo scanning e si parlerà del fingerprint, l impronta digitale, cioè l identificazione inequivocabile del tipo di sistemi che offrono determinati servizi. Nel prosieguo, si parlerà invece del probing, cioè la scansione dei sistemi al fine di scoprire eventuali vulnerabilità cui essi sono soggetti e che possono essere utilizzati da malintenzionati per attaccare e danneggiare i sistemi stessi. Le tecniche di Scanning Tali tecniche, considerate non a torto una ambiguità ideologica [Jamieson, 2001], consentono di acquisire il maggior numero di informazioni sul sistema/rete di interesse. CERT Difesa Coordination Center 2
Queste informazioni, nelle mani sbagliate, potrebbero permettere a dei malintenzionati di effettuare un attacco mirato in relazione ai risultati malevoli che si vogliono ottenere. Da qui nasce la necessità per una organizzazione di definire una rigorosa politica per il periodico utilizzo di queste tecniche per verificare la mole e la tipologia di informazioni fornite dai sistemi di competenza, allo scopo di ridurne, se necessario la disponibilità ad eventuali attaccanti. Nel corso della esposizione degli argomenti trattati, si è cercato di mantenere un taglio il più possibile divulgativo. Tuttavia, la loro peculiare natura non può prescindere che da parte del lettore, ci sia il possesso di un certo background tecnico. CERT Difesa Coordination Center 3
Il Port Scanning E la tecnica più utilizzata per reperire informazioni, di vario tipo, da un sistema informatico. Due sono gli elementi che identificano un host, ed i servizi che esso espone su una rete: L indirizzo IP e un numero di porta (ce ne sono ben 65535 diverse e tutte utilizzabili). Alcuni servizi hanno numeri di porte dedicati che vengono assegnati dalla IANA 1. Una lista completa delle porte e dei servizi associati può essere consultata all indirizzo www.iana.org/assignments /portnumbers. Con il nome di port scanner si intende un software in grado di scandire, nella rete, un host (Un server che fornisce servizi di vario tipo) alla ricerca di porte aperte. È il metodo classico usato sia dagli amministratori per controllare la sicurezza della loro rete, che dai crackers che si adoperano per comprometterla. Più precisamente, si utilizza la dizione portscan quando ci si pone in ascolto su una porta nota di un singolo sistema host, mentre, al contrario, qualora si scandisca la rete, quindi più host, alla ricerca di porte in ascolto si parlerà di portsweep. I programmi cosiddetti port scanner solitamente scandiscono le porte più comuni o quelle comunemente più vulnerabili. Il risultato che 1 Internet Assigned Numbers Authority. La IANA è responsabile per il coordinamento globale dei DNS, dell indirizzamento IP e di altre risorse collegate ai protocolli di Internet. CERT Difesa Coordination Center 4
ci si può aspettare da una operazione di scan, in termini di risposte da parte dell host, può essere riassunto come segue: Aperto (Open) o Accettato (Accepted): Un servizio è in ascolto su una determinata porta; Chiuso (Closed), Negato (Denied) o non in ascolto (Not Listening): La connessione alla porta viene negata; Filtrato (Filtered), Caduto (Dropped) o Bloccato (Blocked): Nessuna risposta da parte dell host. Ogni porta aperta rappresenta una minaccia in quanto espone il sistema a due diversi tipi di vulnerabilità, rispettivamente legate alla Sicurezza e alla stabilità: 1. dei programmi responsabili dell esposizione del servizio; 2. del Sistema Operativo installato nell host. Ora, mentre una porta chiusa rappresenta una vulnerabilità solo del secondo tipo, una porta aperta le rappresenta entrambe. Una porta bloccata, invece, non presenta vulnerabilità. Passiamo adesso alla descrizione delle varie metodologie di scanning. SYN scanning Questa metodologia è la più utilizzata tra gli scan del protocollo TCP. L applicazione che la utilizza genera pacchetti IP e invia richieste casuali sulla rete mettendosi in attesa di eventuali risposte. Questo tipo di scanning è anche conosciuto come "half-open scanning", in quanto non apre mai una connessione TCP completa. CERT Difesa Coordination Center 5
Viene quindi generato un pacchetto SYN 2 per lo scanning delle porte. Se una di queste viene trovata aperta, risponderà con un pacchetto SIN-ACK. A questo punto l host che avvia lo scanning risponde con un pacchetto RST per chiudere la connessione prima che l handshake tra i due sistemi sia completo. Il SYN Scan ha il vantaggio che i servizi esposti da un sistema non ricevono mai una connessione, cosa che potrebbe causare un crash del servizio o addirittura del sistema che lo espone. TCP scanning E la metodologia che viene usata più comunemente qualora un SYN scanning non sortisca gli effetti desiderati. Utilizza le funzioni del Sistema Operativo di rete che, se una porta viene trovata aperta, completa l handshake a tre vie 3 e quindi l host scanner chiude immediatamente la connessione. 2 In un pacchetto TCP, il bit Syn è usato per aprire una connessione, è presente nel primo pacchetto dell host che intende stabilire la connessione con un altro e nel primo pacchetto di risposta dell host che intende accettare la connessione. Il bit Ack è usato per indicare se il valore riportato nel campo Acknowledgment Number è valido. È sempre attivato, tranne che nel primo segmento usato per aprire una connessione. Il campo Acknowledgment Number contiene il prossimo numero di sequenza che il destinatario si aspetta di ricevere dal mittente. Esprime quindi il numero di segmenti ricevuti correttamente fino a quel momento. Il bit Rst (reset) viene inviato da un host che riceve un pacchetto inatteso e che rifiuta la connessione. 3 Meccanismo usato per stabilire una connessione TCP (SYN SYNACK ACK). L handshake a tre vie garantisce che, quando sia giunto a buon fine, entrambe le estremità della connessione abbiano tutte le informazioni iniziali necessarie per il funzionamento della connessione stessa: ciascuna parte ha allocato le strutture dati necessarie ciascun lato conosce il numero di sequenza corrente (iniziale) dell altro lato CERT Difesa Coordination Center 6
Questo tipo di scan non richiede speciali privilegi per l utente che lo esegue ma i Sistemi Operativi prevedono controlli sulle funzioni a basso livello come quella appena descritta. Per questo motivo il TCP scanning viene usato di rado. UDP scanning L UDP (User Datagram Protocol) è un protocollo senza connessione. Quando un pacchetto UDP viene inviato ad una porta che risulta chiusa il sistema risponde con un messaggio ICMP 4 di porta irraggiungibile. E proprio questa la tecnica usata da molti scanner UDP che deducono lo stato di porta aperta dall assenza di una risposta. Comunque, l UDP scanning non risulta essere una tecnica estremamente precisa poiché, ad esempio, se una porta è bloccata da un firewall, risulterà aperta. Essendo quindi affetto da numerose limitazioni la metodologia può essere usata in maniera ibrida, cioè in concomitanza con altre tecniche quali l invio di pacchetti UDP specifici per le applicazioni che ten- ciascun lato sa che l altro lato è pronto a trasmettere e/o ricevere dati 4 Acronimo di "Internet control message protocol". E un protocollo per il controllo degli errori nei pacchetti di dati nel TCP/IP CERT Difesa Coordination Center 7
tano di ricevere risposte dallo strato Applicazione della pila ISO/ OSI. ACK scanning Metodologia utilizzata per determinare non tanto se le porte sono aperte o chiuse ma, piuttosto, se queste risultano filtrate oppure no. Risulta utile qualora si voglia realizzare l eventuale presenza di firewall e il set di regole in essi implementato. L attaccante, nel condurre lo scanning, valorizza il flag RST nel pacchetto TCP determinando, in relazione al fatto che lo stesso torni indietro o meno, se le porte sono chiuse o aperte. Windows scanning E un sistema ormai raramente usato in quanto datato e poco affidabile. Genera lo stesso pacchetto dello ACK Scanning, ma controlla se il campo del pacchetto viene modificato. Infatti, quando il pacchetto raggiunge la sua destinazione, qualora la porta sia aperta al flag relativo viene assegnato il valore 1 prima di ritornare al mittente. Considerato che il Windows scannon sfrutta una vecchia vulnerabilità, che ormai risulta abbondantemente riparata, la metodologia ha perso notevolmente in efficacia. CERT Difesa Coordination Center 8
Altri tipi di Scanning Le metodologie di scanning che si descriveranno, brevemente, di seguito non sono largamente usate. Si riportano comunque per completezza: FIN scan - utilizzato per determinare lo stato delle porte anche se il pacchetto SYN viene filtrato; Protocol scan determina quale livello di protocollo IP è abilitato (TCP, UDP, etc.); Proxy scan per condurre un operazione di scan viene utilizzato un proxy il cui indirizzo IP verrà visto, come sorgente, dal target. Verrà così nascosto il reale indirizzo dell attaccante. Può anche essere utilizzato un server FTP; Idle scan E un altro metodo di condurre attacchi senza rivelare l indirizzo IP del sorgente. CatScan Controlla le porte alla ricerca di errori nel flusso dei pacchetti; ICMP scan sollecita la risposta di un host, che rivela la sua presenza, inviando risposte ICMP quali echo (ping), netmask, etc. Custom TCP scanning Si tratta di un tipo di scan completamente configurabile da parte dell attaccante costituendosi, così come una una tecnica avanzata, per esperti, da utilizzare quando tutte le altre tecniche non hanno avuto successo. CERT Difesa Coordination Center 9
Maimon scanning deve il suo nome al suo creatore. Si basa sul principio che i sistemi devono ritornare un pacchetto RST se una porta è aperta o chiusa. Maimon ha rilevato che i sistemi BDS (Es. Mac OSX) scartano i pacchetti quando le porte sono aperte rilevandone, quindi, lo stato. CERT Difesa Coordination Center 10