demistified - Dipartimento di Matematica e Informatica
Transcript
demistified - Dipartimento di Matematica e Informatica
Agenda ! Introduzione allo Standard 802.11 Wi-Fi Networking (demistified) Costantino Pistagna - valvoline at vrlteam dot org "Tecniche di modulazione in frequenza "Standard Presenti ! Utilizzo e Configurazione ! Analisi di Sicurezza "Il Wep e sue Problematiche "Alternative "Possibili Attachi ! Possibili Schemi per una rete ‘sicura’ ! Domande & Risposte © 2004 - Costantino Pistagna - valvoline at vrlteam dot org - BSD License applies where possibile Introduzione allo standard 802.11 ! Formalmente, il termine ‘Wi-Fi’ era stato coniato per lo standard 2.4GHz/802.11b. ! Adesso identifica qualunque rete Wireless che trasmette usando modulazioni ‘SS’. ! Esistono vari standard: "802.11a (5GHz - 54Mbps) "802.11b (2.4GHz - 11Mbps) "802.11b+ (2.4GHz - 22Mbps con DSP) "802.11g (2.4GHz - 108Mbps) © 2004 - Costantino Pistagna - valvoline at vrlteam dot org - BSD License applies where possibile © 2004 - Costantino Pistagna - valvoline at vrlteam dot org - BSD License applies where possibile Utilizzo e Configurazione ! Un AP agisce come una ‘stazione base’ "Connette i vari clients / AP con gli altri ! Un singolo AP "supporta sino a 30utenti "Copre circa 450Metri(interno) e 1.5Km(esterno) ! La maggior parte degli AP, possono essere connessi tra loro attraverso Ethernet per formare un’unica grande rete. "Roaming © 2004 - Costantino Pistagna - valvoline at vrlteam dot org - BSD License applies where possibile Semplice Configurazione L’integrazione semplifica il Layout © 2004 - Costantino Pistagna - valvoline at vrlteam dot org - BSD License applies where possibile Lo standard 802.11b ! Utilizza segnali radio nella banda dei 2.4GHz "1, 2, 5.5, 11Mbit/s "11/14 canali sovrapposti " Il rapporto s/n richiesto è di 12dB " Modulato in HR-DSSS • High Rate Direct Sequence Spread Spectrum © 2004 - Costantino Pistagna - valvoline at vrlteam dot org - BSD License applies where possibile Lo standard 802.11b Application Presentation Session Transport Network Data Link Physical © 2004 - Costantino Pistagna - valvoline at vrlteam dot org - BSD License applies where possibile 802.11b © 2004 - Costantino Pistagna - valvoline at vrlteam dot org - BSD License applies where possibile Lo Spread Spectrum ! Trasmissione Tradizionale Lo Spread Spectrum (2) ! Effetti sulla banda di un SS: " Più potenza possibile nello spettro più stresso possibile energia ! Spread Spectrum " Uso di trasformazioni matematiche per disperdere lo spettro originale in uno spettro più largo. " Viene effettuata un’operazione inversa in ricezione " Ogni distrurbo a banda stretta viene, in ricezione, trasformato in rumore bianco. frequenza © 2004 - Costantino Pistagna - valvoline at vrlteam dot org - BSD License applies where possibile 802.11 FH PHY ! Cambio continuo e rapido di frequenza " Viene utilizzato un metodo di cambio pseudo-casuale ! E’ necessario che mittente e ricevente siano sincronizzati ! Era presente nei vecchi sistemi 802.11 (1, 2Mbit) © 2004 - Costantino Pistagna - valvoline at vrlteam dot org - BSD License applies where possibile Come avviene il DSSS ! CHIP è una cifra usata dal processo di dispersione. "Sono solo una parte della codifica e non portano informazione. ! I flussi di chipping sono anche chiamati: " codici di rumore pseudo-casuale. ! Devono essere generati ad una velocità molto più alta rispetto ai dati da trasmettere! © 2004 - Costantino Pistagna - valvoline at vrlteam dot org - BSD License applies where possibile © 2004 - Costantino Pistagna - valvoline at vrlteam dot org - BSD License applies where possibile Come avviene il DSSS (2) Mezzo Trasmittente TX RX Sequenza da Spreadare Sequenza di chipping Software Che posto hanno i canali? ! 13 canali spaziati di 5MHz ! Gran parte dell’energia di una DSSS è concentrata in 22Mhz! ! Per prevenire interferenze bisogna spaziare le celle di 5 canali (1Mhz ~ 1Canale) Dati © 2004 - Costantino Pistagna - valvoline at vrlteam dot org - BSD License applies where possibile …e la modulazione? ! La modulazione usata per tramettere in DSSS è la DPSK ! Non è la fase assoluta l’informazione trasmessa, ma il cambiamento "Nessun cambiamento: 0 "Cambiamento di fase: 1 ! Non è necessario che TX e RX abbiano lo stesso riferimento di fase © 2004 - Costantino Pistagna - valvoline at vrlteam dot org - BSD License applies where possibile Caratteristiche di Sicurezza ! Service Set Identifier (SSID) " Differenzia un AP da un altro. " E’ inviato con un ‘beacon frame’ ogni secondo " I beacon frames viaggiano in chiaro! ! I SSID di default sono ben conosciuti! " Linksys == ‘linksys’ " CISCO == ‘tsunami’ ! E’ possibile configurare l’AP in maniera che non invii il SSID. © 2004 - Costantino Pistagna - valvoline at vrlteam dot org - BSD License applies where possibile © 2004 - Costantino Pistagna - valvoline at vrlteam dot org - BSD License applies where possibile Sistemi di autenticazione ! Wi-Fi si basa sulle trasmissioni radio "Quindi, per definizione, un flusso radio è intercettabile da chiunque sia in prossimità del raggio di azione. ! ! ! ! ! WEP: Wired Equivalent Privacy EAP: Extensible Authentication Protocol EAP-TLS: EAP-Transport Level Security LEAP: Lighweight EAP (radius over EAP) OPEN: “Mamma!, voglio fare l’hacker!” Nessuna Autenticazione: /dev/null ! Sono lo standard delle installazioni wifi ! Comportamento diffuso in italia (e non solo) ! I routers broadband degli ISP vengono configurati di default in questo modo. "Spesso un server DHCP assegna un indirizzo valido nella rete. "La navigazione anonima è assicurata. © 2004 - Costantino Pistagna - valvoline at vrlteam dot org - BSD License applies where possibile WEP for Dummies ! Il client inizia inviando una richiesta di associazione all’AP. ! L’AP risponde con un CText (in chiaro). ! Il client, usando una chiave precedentemente concordata, cifra il testo e lo invia indietro all’AP. ! Se il testo cifrato ‘matcha’ con quello dell’AP, viene consentita la comunicazione. © 2004 - Costantino Pistagna - valvoline at vrlteam dot org - BSD License applies where possibile WEP ! Client e Server concordano un segreto iniziale: preshared key K (40 o 104 bit). ! E’ presente un seed iniziale (24bit) "Initialization Vector IV ! K+IV == 64 o 128bit ! Il pacchetto cifrato C viene generato così: Keystream[RC4](IV,K)! (PlainText + IntegrityChk[CRC32] ! RC4 è uno stream cypher © 2004 - Costantino Pistagna - valvoline at vrlteam dot org - BSD License applies where possibile © 2004 - Costantino Pistagna - valvoline at vrlteam dot org - BSD License applies where possibile Attacco di Brute Force WEP (2) ! Il MAC Address viene inviato in chiaro! ! IV è in chiaro! © 2004 - Costantino Pistagna - valvoline at vrlteam dot org - BSD License applies where possibile Perchè IV è debole? ! L’algoritmo di scheduling delle chiavi (KSA) di RC4, genera un IV basato sulla chiave. ! Un bug nell’implementazione del WEP di RC4 permette di generare IV deboli ! E’ possibile ottenere informazioni circa I bytes della chiave che hanno generato l’IV. ! Collezionando abbastanza IV deboli è possibile risalire alla chiave originale. © 2004 - Costantino Pistagna - valvoline at vrlteam dot org - BSD License applies where possibile ! IV è di 24bit "Ci sono solo 16.777.216 possibili IV. "Un AP con molti client, ripeterà gli IV spesso. "Ascoltando il traffico e conservando gli IV. duplicati è possibile inferire sulla chiave. "Abbastanza IV daranno la chiave globale. © 2004 - Costantino Pistagna - valvoline at vrlteam dot org - BSD License applies where possibile Cracking ! Per ogni byte della chiave, ci sono 256 IVs deboli " Chiave(13bytes) * 256 == 3315 pacchetti ! Non è sempre necessario aspettare tutti i pacchetti per trovare una chiave debole! © 2004 - Costantino Pistagna - valvoline at vrlteam dot org - BSD License applies where possibile Cracking [valv0@adapter!/slides]# crack -l 128 snorted Reading packets Performing crack, keySize=128bit, Breadth=1 Key Byte 0: 256 samples Key Byte 1: 256 samples Key Byte 2: 256 samples Key Byte 3: 256 samples Check samples: 4 GOT KEY! Hex=5a:5a:5a:5a:5a:5a:5a:5a:5a:5a String=‘ZZZZZZZZZZ’ [valv0@adapter!/slides]# © 2004 - Costantino Pistagna - valvoline at vrlteam dot org - BSD License applies where possibile Replay Attack ! Possiamo spingerci oltre! ! Il frame può essere modificato. "Flippando un bit nella parte in chiaro. "Flippando un bit nel frame WEP ! Viene utilizzato un CRC32 come integrity check "CRC è lineare! Replay Attack ! Una volta sniffato, un frame WEP può essere rispedito al mittente. ! Il frame sarà decifrato e processato dall’AP come l’originale. ! I protocolli stateless (UDP: NFS, NTP, …) sono particolarmente indicati per quest’attacco. © 2004 - Costantino Pistagna - valvoline at vrlteam dot org - BSD License applies where possibile L’oracolo a cena ! Gli AP cifrano i pacchetti che vengono dalla LAN prima di inviarli in etere. "La LAN potrebbe avere accesso ad internet ! Inviamo pacchetti noti via internet ad un nodo wireless. "Eureka!, testo in chiaro conosciuto • CRC(X!Y) = CRC(X) ! CRC(Y) • RC4(k, X!Y) = RC4(k, X)!Y © 2004 - Costantino Pistagna - valvoline at vrlteam dot org - BSD License applies where possibile © 2004 - Costantino Pistagna - valvoline at vrlteam dot org - BSD License applies where possibile Attacco da più fronti Il punto di vista dell’attaccante ! E’ necessaria una scheda che vada in RF Mode. "Prism2, Prism2.5, Orinoco, Cisco Aironet. ! E’ necessario ricompilare tools quali ethereal per avere supporto ‘wiretap capture’. ! Libcap deve essere della stessa versione richiesta dal tool di ‘war driving’. © 2004 - Costantino Pistagna - valvoline at vrlteam dot org - BSD License applies where possibile Kismet && WepAttack ! Kismet "Cattura pacchetti in formato ‘libpcap’. "I pacchetti possono essere letti da WepAttack. "Files separati per pacchetti deboli e normali. ! WepAttack © 2004 - Costantino Pistagna - valvoline at vrlteam dot org - BSD License applies where possibile Airsnort ! ! ! ! Cattura pacchetti ‘interessanti’. Prova a trovare la chiave WEP in ‘realtime’. Può trovare chiavi ASCII o HEX. Utilizza l’attacco per IV proposto da: "Shamir, Mantin, Fluhrer "Attacco da un solo pacchetto. "E’ necessaria una ‘wordlist’ per il bruteforce. "Il bruteforce può richiedere molto tempo. © 2004 - Costantino Pistagna - valvoline at vrlteam dot org - BSD License applies where possibile © 2004 - Costantino Pistagna - valvoline at vrlteam dot org - BSD License applies where possibile Kismet vs. Airsnort Risultati ! Kismet && WepAttack "Non trovano la chiave WEP ! Airsnort "Recupera chiavi a 64-bit e 128-bit ! Difficoltà? "Effettuare il download del programma "Installarlo per il proprio SO "Eventualmente, installare/aggiornare le librerie. © 2004 - Costantino Pistagna - valvoline at vrlteam dot org - BSD License applies where possibile WPA - WiFi Protected Access © 2004 - Costantino Pistagna - valvoline at vrlteam dot org - BSD License applies where possibile WPA - Come funziona? ! WPA è una specifica basata su standards di sicurezza preesistenti ! Si basa su un subset dello standard 802.11i "802.1x && EAP (Autenticazione Mutuale) "TKIP (cifratura dei dati) "MIC (integrità dei dati) 4 1. 2. 3. 4. © 2004 - Costantino Pistagna - valvoline at vrlteam dot org - BSD License applies where possibile Il Client invia un messaggio di start all’AP, il quale ne richiede l’identità. Il Client risponde con un pacchetto di identifica che l’AP invia al server di autentica. Il server di autentica, invia un pacchetto di ACCEPT all’AP. L’AP autorizza la comunicazione ed apre una porta per il Client. © 2004 - Costantino Pistagna - valvoline at vrlteam dot org - BSD License applies where possibile TKIP TKIP - Come funziona? ! Compatibile all’indietro con WEP. ! Crea più ‘materiale’ da passare ad RC4. " 48-bit IV " 128-bit key " MIC (integrità del messaggio) per una più alta consistenza dei messaggi ! Le chiavi temporali vengono cambiate dinamicamente. " Difficile da crackare in Brute Force. " Ogni pacchetto usa un IV diverso • Il keystream è diverso per ogni pacchetto " Viene incluso il MAC-Address del mittente • MAC-Address + • IV (48-bit) + • Key (128-bit) " E’ possibile fare modifiche al protocollo attraverso un aggiornamento di firmware! © 2004 - Costantino Pistagna - valvoline at vrlteam dot org - BSD License applies where possibile TKIP - flow © 2004 - Costantino Pistagna - valvoline at vrlteam dot org - BSD License applies where possibile SNMP: Cosa è ? La chiave cambia ogni 10.000 pachetti. ! Simple Network Management Protocol "E’ usato per accedere e manipolare variabili tipate organizzate in tabelle o gruppi. ! Ogni variabile è identificata da un OID univoco. "Un OID è una sequenza di numeri che identificano un percorso all’interno di un albero. ! SNMP tipicamente, gira su UDP (stateless). © 2004 - Costantino Pistagna - valvoline at vrlteam dot org - BSD License applies where possibile © 2004 - Costantino Pistagna - valvoline at vrlteam dot org - BSD License applies where possibile SNMP: Tools disponibili Obiettivi di SNMP ! Portabilità. ! Tools a basso livello generici: " PC ed Embedded "snmpget, snmpwalk, … ! L’inclusione di un sistema di gestione deve essere economica. ! API a basso livello generiche: "winsnmp, libsnmp, snmp++, … " Poco codice " Funzionalità Limitate ! Browsers di MIB ! L’estensione del sistema di gestione deve essere sempre possibile. ! Quello che realmente serve è un tool specifico per un’operazione. " Nuovi MIBs ! La gestione deve essere affidabile "Che la faccia bene! " UDP, Connection Less, … © 2004 - Costantino Pistagna - valvoline at vrlteam dot org - BSD License applies where possibile © 2004 - Costantino Pistagna - valvoline at vrlteam dot org - BSD License applies where possibile Operazioni SNMP Operazioni SNMP MANAGER MANAGER GET / SET POLLING TRAP TRAPS AGENTS MIB AGENTS MIB © 2004 - Costantino Pistagna - valvoline at vrlteam dot org - BSD License applies where possibile © 2004 - Costantino Pistagna - valvoline at vrlteam dot org - BSD License applies where possibile SNMP Management ! Una stazione di gestione SNMP deve includere: "Un interfaccia per l’amministratore per monitorare e controllare lo stato della rete / dispositivi. "Applicazioni di gestione per analisi dei dati e gestione dei ’faults’. "Corrispondenza dei comandi snmp con i reali comandi di controllo della rete (corrispondenza 1:1). "Un database dei MIBs di tutte le entità gestione dal sistema. © 2004 - Costantino Pistagna - valvoline at vrlteam dot org - BSD License applies where possibile MIB Agenti SNMP ! Prenderemo in considerazione il nostro caso: "Routers, Switch, Access Points, Hubs, Bridges. ! Il manager / master è un software che dialoga con agenti. ! Gli agenti: "Rispondono a richieste su variabili. "Rispondono a richieste sulla gestione di azioni. "Possono rispondere ad eventi asincroni di gestione non sollecitata di eventi (traps). © 2004 - Costantino Pistagna - valvoline at vrlteam dot org - BSD License applies where possibile Primitive SNMP ! Ogni risorsa è rappresentata come oggetto (variabile). ! Management Information Base (MIB) " È l’insieme degli oggetti che un agente mantiene. ! Gli oggetti sono standardizzati tra gli apparecchi (routers, bridges, etc.) ! Un manager/master controlla la rete 1. Get - Recupera un valore di un oggetto dall’agente. 2. Set – Modifica il valore di un oggetto di un agente. 3. Notify – L’agente notifica il master circa particolari cambiamenti di oggetti. " Richiedendo periodicamente valori dai MIBs. " Modificando valori all’interno dei MIBs. © 2004 - Costantino Pistagna - valvoline at vrlteam dot org - BSD License applies where possibile © 2004 - Costantino Pistagna - valvoline at vrlteam dot org - BSD License applies where possibile SNMP: Protocol Layout SNMP: Cenni sul protocollo ! ! ! ! ! ! Designato per stare a livello applicativo. Pensato per essere facilmente implementabile Consumo ridotto di CPU e Banda. SNMP # UDP # IP # data link layer (ethernet) Ogni agente deve implementare SNMP, UDP, IP. Messaggi SNMP: 1. 2. 3. 4. 5. © 2004 - Costantino Pistagna - valvoline at vrlteam dot org - BSD License applies where possibile GetResponse GetNextResponse SetRequest GetResponse Trap © 2004 - Costantino Pistagna - valvoline at vrlteam dot org - BSD License applies where possibile SNMP v1, v2, v3 SNMP e Community SNMPv1 PDU SNMPv2 PDU Direction Description GetRequest GetRequest Manager to agent Request value for each listed object GetRequest GetRequest Manager to agent Request next value for each listed object ------ GetBulkRequest Manager to agent Request multiple values SetRequest SetRequest Manager to agent Set value for each listed object ------ InformRequest Manager to manager Transmit unsolicited information GetResponse Response Agent to manager or Manage to manager(SNMPv2) Respond to manager request Trap SNMPv2-Trap Agent to manager Transmit unsolicited information © 2004 - Costantino Pistagna - valvoline at vrlteam dot org - BSD License applies where possibile ! SNMP fornisce solo un mezzo di sicurezza ’rudimentale’ attraverso il concetto di community. ! SNMP Community " Relazione tra Agente e Manager. " Mantenuta localmente sull’agente. " Lista di managers con privilegi di accesso associati. ! Ogni agente controlla il proprio MIB " Servizio di Autentica - quali manager possono accedere e come. " Politiche di Accesso. " Servizio Proxy - Può significare implementare servizi di autentica per altre periferiche. © 2004 - Costantino Pistagna - valvoline at vrlteam dot org - BSD License applies where possibile SNMP: Politiche di Accesso SNMP: Concetti d’amministrazione ! SNMP MIB view – un sott’insieme degli oggetti. ! SNMP access modes: Read-Only, ReadWrite ! SNMP profilo community == "SNMP MIB view + access-mode ! SNMP politica d’accesso == "SNMP community + SNMP community-profile © 2004 - Costantino Pistagna - valvoline at vrlteam dot org - BSD License applies where possibile SNMP v3 ! SNMPv3 definisce un modello di sicurezza da usare in congiunzione con SNMP v1 o v2. © 2004 - Costantino Pistagna - valvoline at vrlteam dot org - BSD License applies where possibile Disabilitare il SSID ! Il SSID viene inviato in broadcast ogni secondo ! Disabilitarlo, può rendere difficili capire che c’è un AP. ! Se qualcuno ci ‘sniffa’ in ogni caso lo vedrà. " Il SSID viaggia in chiaro insieme ai pacchetti. © 2004 - Costantino Pistagna - valvoline at vrlteam dot org - BSD License applies where possibile © 2004 - Costantino Pistagna - valvoline at vrlteam dot org - BSD License applies where possibile Abilitare il WEP ! Il WEP è il protocollo di crittografia standard. ! Non è LA soluzione, ma abilitarlo scoraggerà ugualmente I malintenzionati non motivati. © 2004 - Costantino Pistagna - valvoline at vrlteam dot org - BSD License applies where possibile Scegliere il Canale ! Scegliere con cura il canale. ! Esistono tools, che ‘creano’ AP finti, per inondare la rete di falsi positivi. Scegliere il Canale ! Scegliere con cura il canale. ! Esistono tools, che ‘creano’ AP finti, per inondare la rete di falsi positivi. © 2004 - Costantino Pistagna - valvoline at vrlteam dot org - BSD License applies where possibile La rete WAN ! Abbiamo la possibilità di connettere il nostro AP/Switch ad una rete WAN " IP Dinamico " IP Statico " PPPoE, PPtP, BigPond Cable ! MAC Address Cloning © 2004 - Costantino Pistagna - valvoline at vrlteam dot org - BSD License applies where possibile © 2004 - Costantino Pistagna - valvoline at vrlteam dot org - BSD License applies where possibile PPPoE ed ADSL DHCP Server ! E’ possibile specificare un lease-time ! Un rage valido di indirizzi IP da assegnare. © 2004 - Costantino Pistagna - valvoline at vrlteam dot org - BSD License applies where possibile Virtual Server Control ! E’ possibile redirigere le macchine ‘esterne’ verso macchine diverse, selezionandole per servizio © 2004 - Costantino Pistagna - valvoline at vrlteam dot org - BSD License applies where possibile © 2004 - Costantino Pistagna - valvoline at vrlteam dot org - BSD License applies where possibile Filtri su MAC Address ! E’ possibile filtrare gli accessi a determinati servizi, limitandone l’uso a particolari indirizzi (fisici). © 2004 - Costantino Pistagna - valvoline at vrlteam dot org - BSD License applies where possibile Cose da tenere presenti ! Tutte le WLAN devono essere considerate insicure. ! Mai inserire una WLAN all’interno del perimetro protetto dal firewall LAN. ! Utilizzare WEP (128+). MITM è sempre possibile! ! Alice e Bob fanno parte della nostra WLAN. ! Trudy (intruder) può intercettare, cancellare, aggiungere messaggi, modificare, etc. Alice channel "E’ un ottimo deterrente per gli ScriptKiddie. ! Non lasciare le impostazioni di Default "SSID "WEP Key © 2004 - Costantino Pistagna - valvoline at vrlteam dot org - BSD License applies where possibile Network Layout © 2004 - Costantino Pistagna - valvoline at vrlteam dot org - BSD License applies where possibile data Bob data, control messages sender receive r Trudy © 2004 - Costantino Pistagna - valvoline at vrlteam dot org - BSD License applies where possibile Network Layout (2) © 2004 - Costantino Pistagna - valvoline at vrlteam dot org - BSD License applies where possibile data L’uomo non impara dai suoi sbagli! ! ! ! ! Molti degli attacchi non sono nuovi! IPSec - problemi simili [Bel96] SSH - problemi sul CRC! M$ PPTP - problema sull’RC4 Referenze ! Dott. Costantino Pistagna " <valvoline at vrlteam dot org> " <pistagna at dmi dot unict dot it> ! Airsnort - airsnort.shmoo.com ! Kismet - www.kismetwireless.net ! WepAttack - wepattack.sourceforge.net ! Net-SNMP - net-snmp.sourceforge.net ! Slides available at: "http://www.dmi.unict.it/~pistagna © 2004 - Costantino Pistagna - valvoline at vrlteam dot org - BSD License applies where possibile Crediti ! ! ! ! Guido Bolognesi - http://www.kill-9.it Sikurezza.org - http://www.sikurezza.org Quiang Wang Vincent Bieri © 2004 - Costantino Pistagna - valvoline at vrlteam dot org - BSD License applies where possibile © 2004 - Costantino Pistagna - valvoline at vrlteam dot org - BSD License applies where possibile