Relazione Attacchi Corso di Sicurezza su Reti II Prof. De Santis Anno 2006/07 Michele Vicinanza Sql Injection La SQL injection è una tecnica dell’hacking mirata a colpire le applicazioni web che si appoggiano su un database di tipo SQL. Questo exploit sfrutta l’inefficienza dei controlli sui dati ricevuti in input ed inserisce codice maligno all’interno di una query SQL. La gestione attraverso le funzioni addslashes e stripslashes implementate nel codice impedisce qualsiasi tipo di Sql Injection. Accessi Indirizzati La gestione attraverso il check di login e password su ciascuna pagina web blocca qualsiasi tentativo di scavalcare la fase di login. Viene mostrato un messaggio di errore invitando l’utente a loggarsi correttamente o eventualmente a registrarsi Scansione degli Host La prima fase di preparazione dell’attacco consiste nell’identificazione dei bersagli. La tecnica nota come Network Scanning ha come obiettivo quello di ottenere informazioni su quali host di una determinata rete sono attivi e quali invece non lo sono. Una volta individuati i sistemi attivi si può procedere ad identificare la loro natura. In particolare, una serie di tecniche note sotto il nome di Network Fingerprinting permettono di ottenere informazioni sul sistema operativo di un host remoto. Il principio si basa sulla diversa implementazione degli stack TCP/IP da parte dei vari sistemi operativi. Il programma nmap e’ un network scanner molto versatile e potente che permette anche di deteminare il sistema operativo remoto tramire TCP/IP fingerprinting. Il comando da utilizzare è: nmap -sT -P0 -p 80 -O -v <indirizzo-bersaglio> Risultati Scansione Host Port Scanning Dopo aver identificato la natura del bersaglio, non resta che scoprire quali servizi sono attualmente attivi sull’host. La tecnica nota come Port Scanning ha come obiettivo quello di ottenere informazioni su quali porte di un determinato host sono aperte e quali invece non lo sono. Con alcuni accorgimenti si può anche capire quali porte sono filtrate da un firewall o da un filtro di pacchetti. Nmap `e uno strumento molto potente che permette molti tipi di port scanning, dove viene ottenuto per ogni porta il nome del servizio noto (se esiste), il numero, lo stato (open, filtered, unfiltered) e il protocollo. Con il comando: nmap -sV -P0 -p 1-1024 -v <indirizzo-bersaglio> Si riesce a scoprire quali servizi sono attivi nelle prime 1024 porte. Risultati Scansione Inf. Granata Risultati Scansione Uff. Pagatore Identificazione e vulnerabilità dei servizi Nessus è uno scanner di vulnerabilità molto semplice da utilizzare e molto completo. In particolare, esso: cerca i servizi di rete attivi su un elaboratore, anche su porte non standard (ad es. un web server che utilizza la porta 1234 invece della 80) o che rispondono su piu’ porte; identifica le versioni dei programmi che li gestiscono; per ogni servizio, prova gli exploits (ossia le tecniche fraudolente di attacco informatico) che ha nel proprio database (ovviamente aggiornabile) e riferisce in un log citando anche le possibili tecniche di difesa; identifica il sistema operativo della macchina oggetto di controllo; e’ in grado di lanciare attacchi di tipo DoS (Denial of Service); questa possibilita’ e’ utile per simulare attacchi da parte di un hacker e verificare la “robustezza” delle proprie difese di fronte ad un eventuale attacco “vero”. Identificazione e vulnerabilità dei servizi Funziona come segue: (a) effettua il login (b) seleziona le plug-in (deselezionate tutto eccetto “General”, “Misc” e “CGIAbuse”) (c) definisce il target (IP) (d) avvia la scansione Installazione Nessus Start up Nessus Test Inf. Granata Test Uff. Pagatore MAC flodding Con MAC flooding si indica una particolare tecnica di attacco nei confronti di uno switch di rete che consente di riempirne totalmente la CAM table, causandone un “collasso” e, in molti casi, l’entrata in uno stato detto fail open che consente lo sniffing dei pacchetti passanti nell’intero segmento di rete. Causando un overflow di una CAM table si induce lo switch ad entrare in uno stato di fail open o talvolta anche di fail close. Uno switch in fail open si comporta come un HUB, ovvero instradando tutti i pacchetti su tutte le porte e rendendo quindi possibile lo sniffing. Al contrario invece alcuni router, entrando in fail close, chiudono tutte le porte bloccando totalmente le comunicazione dell’intero segmento di rete. Applicare questa tecnica è molto semplice, è infatti sufficiente utilizzare tools (come macof per esempio) che bombardano la rete di pacchetti con fake MAC address i quali, passando per lo switch, verranno utilizzati per aggiornare la CAM table, fino ad ottenere un overflow e quindi un fail open. dsniff Dsniff (macof) è un tool che può generare 155.000 entry sulle tabelle dei MAC adress dello switch in un minuto. Quando viene riempita la cached ARP non funziona più e lo switch deve inoltrare il traffico su TUTTA la rete come un hub. Nella nostra rete lanciando il comando macof, vengono generate circa 200 entry insufficienti a generare un fail open. Ethereal Ethereal,è un analizzatore di protocollo open source, rilasciato sotto licenza GNU GPL, disponibile per diverse piattaforme e sistemi operativi. Per ammissione degli stessi autori è un prodotto non ancora completo ma, anche se in beta, rappresenta uno strumento essenziale per ogni amministratore di rete, ed il fatto che il programma occupi da diversi anni una posizione di rilievo all'interno della lista dei principali strumenti di sicurezza, stilata da insecure.org, ne è sicuramente la riprova. Più precisamente Ethereal è un analizzatore di pacchetti all’interno di una rete che prova a catturare pacchetti e mostra quanti piu dettagli possibili. Viene utilizzato da: Amministratori di rete per individuare problemi di rete. Dagli ingegneri della sicurezza delel reti per testarne la sicurezza Dagli sviluppatori che lo utilizano per trovare bug nell’implemetazione del protocollo Dagli utenti che vogliono capire le regole dei protocolli di rete. Ethereal Caratteristiche: Disponibile su piattaforme Unix e Windows Cattura i pacchetti da un interfaccia di rete Mostra i pacchetti con dettagli circa i protocolli Apre e salva i pacchetti catturati. Filtra i pacchetti se vengono definito dei criteri Cerca i pacchetti secondo determinati criteri. Crea delle statistiche. È compatibile con i formati di log adottati da altri sniffer Essendo un prodotto OpenSource può essere esteso da chiunque per aumentare il numero di protocolli supportati Ethereal può decodificare 393 protocolli differenti. Ethereal Inf. Granata 1/2 Ethereal Inf. Granata 2/2 Ethereal Uff Pagatore 1/2 Ethereal Uff Pagatore 2/2 Conclusioni Le applicazioni sviluppate con release di software recenti sono esenti da exploit e bug, pertanto l’analisi è stata mirata ad acquisire informazione sulla natura dei pacchetti. Questi ultimi sono cifrati ed è pertanto difficile riuscire ad individuare le informazioni all’interno,compito reso ancor più complesso dalla struttura hardware a disposizione. In definitiva le applicazioni risultano dotate di un buon grado di sicurezza.