Intrusion Detection System Snort Giampaolo Fresi Roglia gianz@security.dico.unimi.it
Sommario Collocazione in rete Scenari di installazione Snort Installazione e Configurazione su Debian
Rete di esempio Internet Router Firewall DMZ Switch Firewall Intranet
Collocazione su Firewall Internet Router FW/ Switch
Collocazione su FW (pro) Pro Può essere analizzato tutto il traffico in entrambe le direzioni Il N può interagire col FW (regole dinamiche) L può essere amministrato dalla rete esistente Non si necessita di altri apparati Internet Router FW/ Switch
Collocazione su FW (contro) Contro Impatto su infrastrutture esistenti Le sessioni attive possono venire terminate Installazione tutt altro che indolore Internet Router FW/ Switch
Collocazione su HUB Internet Router Hub Switch
Collocazione su HUB (pro) Pro Può essere analizzato tutto il traffico in entrambe le direzioni Il N può interagire con le connessioni (Intrusion Prevention) L può essere amministrato dalla rete esistente Installazione poco invasiva sulle strutture esistenti Costi molto contenuti Internet Router Hub Switch
Collocazione su HUB (contro) Contro Limitazioni del mezzo trasmissivo (10Mbps, collisioni) Degrado delle prestazioni della rete Introduzione di Single Point of Failure Hub economici possono guastarsi facilmente I limitati costi iniziali possono tradursi in costi elevati a causa dei disservizi Internet Router Hub Switch
Collocazione su SPAN port Internet Router SPAN port Switch
Collocazione su SPAN (pro) Pro Costi contenuti Impatto limitato sulle strutture esistenti Non c è aggiunta di Single Point of Failure Gestione dell dalla rete esistente L può essere attivo (Intrusion Prevention) SPAN port Internet Router Switch
Collocazione su SPAN (contro) Contro Internet Una sola porta SPAN per switch Router Limitazioni Performance dello switch Problemi col Full Duplex SPAN port Switch
Collocazione su SPAN port (2) SPAN port Switch Rete locale
Collocazione su SPAN (2) (pro) Pro Costi contenuti Impatto limitato sulle strutture esistenti Non c è aggiunta di Single Point of Failure SPAN port Switch Rete locale Gestione dell dalla rete esistente L può essere attivo (Intrusion Prevention)
Collocazione su SPAN (2) (contro) Contro Overloading dello switch ES: 7 porte 100Mbps replicate su una a 100Mbps L può diventare inutile SPAN port Switch Rete locale
Collocazione mediante TAP + SW Top Layer Switch Network TAP Switch Rete locale
Collocazione mediante TAP + SW (pro) Pro Impatto praticamente nullo sulla rete L è forzatamente stealth (i tap non permettono invio di traffico dall ) Top Layer Switch Il top layer switch ha più porte SPAN Network TAP Switch Soluzione scalabile (facile aggiunta di ) Rete locale Load balancing su più porte SPAN Soluzione Fault Tolerant Management su rete parallela
Collocazione mediante TAP + SW (contro) Contro A meno di configurazioni complesse non c è prevention Costi molto elevati (TAP e top layer SW) Management su rete parallela Top Layer Switch Network TAP Switch Rete locale
Rete di esempio con Internet DMZ Router Firewall Switch Firewall Intranet Management
Snort Snort è un Network Intrusion Detection e Prevention System. Sistemi operativi supportati: GNU/Linux, OpenBSD, FreeBSD,... OSX Win32 Modalità di funzionamento: Sniffer mode: cattura il traffico di rete e lo visualizza a video Packet Logger mode: cattura e salva su disco il traffico di rete N mode: analizza il traffico di rete e genera degli avvisi in base alle regole definite Inline mode: analizza il traffico di rete ed autorizza o blocca il traffico in base alle regole definite
Layout
Layout Decoder: decodifica iniziale del traffico di rete e classificazione secondo i protocolli utilizzati Pre-processori: filtri che lavorano direttamente sui pacchetti alla ricerca di pattern potenzialmente pericolosi (es. portscan) Regole: definizione dei pattern pericolosi Plugin per il riconoscimento: moduli utilizzati per il riconoscimento del traffico Engine per il riconoscimento: motore di riconoscimento Plugin di output: modulo per la generazione dei log e degli allarmi
Preprocessori Portscan Detector Portscan Ignorehosts Frag2 (frag3 dalla 2.4 in poi) Stream4 Flow Flow-Portscan Telnet Decode RPC Decode Performance Monitor HTTP Inspect ASN.1 Detection
Moduli di output alert syslog alert fast alert full alert unixsock alert tcpdump database csv unified log null
Procedura di installazione comandi apt-get install snort Il software viene scaricato da rete o prelevato da CD Al termine dell installazione vengono richiesti: Metodo di avvio (al boot, al dialup, o manuale) Interfaccia da cui analizzare il traffico (eth0) Notazione CIDR della HOME NET (es 172.16.3.0/24) Modalità di ascolto (promiscua o meno) Precedenza delle regole (alert,pass,log) Opzioni aggiuntive (nessuna) Indirizzo mail a cui inviare rapporti Riconfigurazione: dpkg-reconfigure snort
Files di configurazione Localizzazione file Directory: /etc/snort snort.debian.conf (configurazione di debian) snort.conf (file principale di configurazione) altri file richiamati da snort.conf Directory: /etc/snort/rules Le signature degli attacchi Richiamate da snort.conf
Struttura del file di conf snort.conf Definizione variabili var NOME valore Direttive preprocessori preprocessor NOME opzioni Inclusione regole (signature) include $RULEPATH/signature Direttive di output (allarmi) output Modalità opzioni (output alert syslog: LOG AUTH)
Variabili Variabili fondamentali var NOME valore var HOME NET 172.16.4.0/24 var EXTERNAL NET!$HOME NET Indirizzi IP IP unico: 172.16.4.2 più IP: [172.16.4.2,172.16.4.3] notazione CIDR: 172.16.4.0/24 lista di CIDR: [172.16.4.0/24,172.16.5.0/24] Misto di IP e CIDR: [172.16.4.2,172.16.5.0/24] Negazione:!IP (IP nei formati sopra elencati) IP particolare: any
Struttura del file di conf Variabili disponibili IP o range di IP var HOME NET var EXTERNAL NET var DNS SERVERS var SMTP SERVERS var HTTP SERVERS var SQL SERVERS var TELNET SERVERS var SNMP SERVERS Porte var HTTP PORTS var SHELLCODE PORTS var ORACLE PORTS
Preprocessore frag3 Preprocessore dedicato al riassemblamento dei pacchetti IP Formato: preprocessor frag3 global opzioni preprocessor frag3 engine opzioni
Preprocessore frag3 Opzioni frag3 global: max frags [numero] (numero massimo di frammenti simultanei) memcap [bytes] (memoria massima da allocare) prealloc frags [numero] (quantità di nodi da preallocare)
Preprocessore frag3 Opzioni frag3 engine: timeout [seconds] (default 60) tempo di vita dei frammenti ttl limit [numero] (default 5) massima variazione ttl min ttl [numero] (default 1) ttl minimo detect anomalies (segnalare o meno le anomalie) bind to [ip list] (IP a cui associare il motore) policy [linux, bsd, etc] (politica di deframmentazione)
Problema frammentazione
Preprocessore frag3 frag3 engine, policy supportate: bsd (IRIX, HP-UX, FreeBSD, NetBSD, BSDi) linux (linux 2.x, OpenBSD) first (Windows*, SunOS) last (Cisco IOS) bsd-right (HP-Jetdirect)