Sommario. Introduzione: cosa e Snort?



Похожие документы
Il web server Apache Lezione n. 3. Introduzione

Servizi Remoti. Servizi Remoti. TeamPortal Servizi Remoti

Modulo 4 Il pannello amministrativo dell'hosting e il database per Wordpress

ImporterONE Export Plugin Magento

Registratori di Cassa

Guida di Pro PC Secure

Installazione MS SQL Express e utilizzo con progetti PHMI

Gestione Risorse Umane Web

SOMMARIO... 2 Introduzione... 3 Configurazione Microsoft ISA Server... 4 Microsoft ISA Server Microsoft ISA Server

2.1 Configurare il Firewall di Windows

Dal sito: Articolo recensito da Paolo Latella

ARCHIVIA PLUS VERSIONE SQL SERVER

Intrusion Detection System

Airone Gestione Rifiuti Funzioni di Esportazione e Importazione

GHPPEditor è un software realizzato per produrre in modo rapido e guidato un part program per controlli numerici Heidenhain.

OpenVAS - Open Source Vulnerability Scanner

CONFIGURAZIONE SERVER APACHE (XAMPP): ACCESSO SICURO A DIRECTORY DEL FILE SYSTEM.

Manuale Operativo per l utilizzo della piattaforma E-Learning@AQ. Versione 1.1

Manuale per la configurazione di AziendaSoft in rete

FPf per Windows 3.1. Guida all uso

Configurazione di Outlook Express

SPSS Statistics per Windows - Istruzioni di installazione per (Licenza per utenti singoli)

File Server Resource Manager (FSRM)

Mac Application Manager 1.3 (SOLO PER TIGER)

NOTE TECNICHE DI CONFIGURAZIONE. Giugno 2009

11/02/2015 MANUALE DI INSTALLAZIONE DELL APPLICAZIONE DESKTOP TELEMATICO VERSIONE 1.0

Manuale di Aggiornamento BOLLETTINO. Rel H4. DATALOG Soluzioni Integrate a 32 Bit

Product Shipping Cost Guida d'installazione ed Utilizzo

TOOLS DI MONITORAGGIO DI RETE Total Network Monitor

GUIDA UTENTE PRIMA NOTA SEMPLICE

Joomla! 2.5:Utenti e permessi - Il wiki di Joomla.it

Progetto di Ingegneria del Software 2. SWIMv2

ImporterOne Manuale Export Plugin Prestashop

Istruzioni di installazione di IBM SPSS Modeler Text Analytics (licenza per sito)

ATOLLO BACKUP GUIDA INSTALLAZIONE E CONFIGURAZIONE

PORTALE CLIENTI Manuale utente

Guida di Pro Spam Remove

ICARO Terminal Server per Aprile

Supporto On Line Allegato FAQ

File, Modifica, Visualizza, Strumenti, Messaggio

IBM SPSS Statistics per Linux - Istruzioni di installazione (Licenza per sito)

GUARINI PATRIMONIO CULTURALE VERSIONE MSDE/SQL SERVER MANUALE DI INSTALLAZIONE GUARINI PATRIMONIO CULTURALE VERSIONE MSDE/SQL SERVER

Apache 2, PHP5, MySQL 5

COMUNICAZIONE UTENTI SISTEMI-PROFIS INSTALLAZIONE GE.RI.CO e PARAMETRI2015

SOMMARIO... 3 INTRODUZIONE...

CONFIGURARE SAMBA 3 SU SUSE LINUX 9.1/9.2

Installazione di Zelio Soft 2 su Microsoft Windows Vista

Creare un sito Multilingua con Joomla 1.6

Intel One Boot Flash Update Utility Guida dell utente

1.1 Installare un nuovo Client di Concept ed eseguire il primo avvio

Guida all Installazione del ProxyFatturaPA

15J0460A300 SUNWAY CONNECT MANUALE UTENTE

Aruba Sign 2 Guida rapida

1) GESTIONE DELLE POSTAZIONI REMOTE

Con accesso remoto s'intende la possibilità di accedere ad uno o più Personal Computer con un modem ed una linea telefonica.

IDS/IPS SNORT. Chi sono? Alessio Rocchi. Studente di Informatica all'unipi. Membro Xoned Security Team. Varie ed altre.

Il software di gestione immobiliare più facile da usare. Modulo Web v5.2.

Manuale Terminal Manager 2.0

ISTRUZIONI PER L INSTALLAZIONE DI MINGW

Software di gestione della stampante

Assegnamento di un indirizzo IP temporaneo a dispositivi Barix

SOMMARIO COSA SERVE... 2 PRIMA DI INIZIARE... 2 COME PROCEDERE LATO SERVER... 3 COME PROCEDERE LATO CLIENT... 3

MANUALE PARCELLA FACILE PLUS INDICE

ISTRUZIONI PER L INSTALLAZIONE DEL PROGRAMMA PER L INVIO AUTOMATICO DELLE FATTURE VIA

MANUALE INSTALLAZIONE E CONFIGURAZIONE

MANUALEDIUTILIZZO MODULO CRM POSTVENDITA

EXPLOit Content Management Data Base per documenti SGML/XML

Mida Directory. Introduzione. Mida Directory

01/05/2013 Istruzioni per l installazione

19. LA PROGRAMMAZIONE LATO SERVER

StoneFax User Guide. (Settembre 2011 ver.1.1) StoneFax-User-Guide-ita-1.1.docx

Approvazione : Perico Marco.

installazione

Istruzioni di installazione di IBM SPSS Modeler Text Analytics (utente singolo)

MC-link Lan+ Connessione e configurazione del router PRESTIGE 100

Kroll Ontrack Servizi RDR Guida rapida

Studio Legale. Guida operativa

L amministratore di dominio

Note di rilascio. Aggiornamento disponibile tramite Live Update a partire dal. Il supporto per Windows XP e Office 2003 è terminato

ISTRUZIONI AGGIORNAMENTO TARIFFARIO 2006

Interfaccia KNX/IP Wireless GW Manuale Tecnico

FOXWave Gestione gare ARDF IZ1FAL Secco Marco Sezione ARI BIELLA

BREVE GUIDA ALL ATTIVAZIONE DEL SERVIZIO DDNS PER DVR SERIE TMX

Regione Toscana. ARPA Fonte Dati. Manuale Amministratore. L. Folchi (TAI) Redatto da

SW Legge 28/98 Sommario

Raggruppamenti Conti Movimenti

Antivirus. Lezione 07. A cosa serve un antivirus

Installazione di GFI Network Server Monitor

Guida alla registrazione on-line di un DataLogger

B R E V E G U I D A ( V I S I S L A B C O F F E E ) Breve guida page 1

IDS: Intrusion detection systems

NOTE OPERATIVE. Prodotto Inaz Download Manager. Release 1.3.0

Windows 98 e Windows Me

3. Installare Wamp Server

Laboratorio di Reti Esercitazione N 2-DNS Gruppo 9. Laboratorio di Reti Relazione N 2. Mattia Vettorato Alberto Mesin

INSTALLAZIONE NUOVO CLIENT TUTTOTEL (04 Novembre 2014)

UTILIZZO DEL MODULO DATA ENTRY PER L IMPORTAZIONE DEI DOCUMENTI (CICLO PASSIVO)

Транскрипт:

Snort: installazione e configurazione in un sistema Debian like Andrea Cimino 8 Marzo 2004 Diario delle revisioni Revisione 1 8 Marzo 2005 andrea.cimino@studenti.unipr.it Sommario Monografia per il corso di "Laboratorio di Programmazione di Rete". La guida e basata sul documento "The LDP author Guide" Introduzione: cosa e Snort?................................................................... 1 Installazione................................................................................. 1 Cominciamo con Snort......................................................... 2 ACID........................................................................ 7 Uno sguardo a snort.conf...................................................................... 8 Variabili di rete.............................................................. 9 Preprocessori................................................................ 9 Output...................................................................... 10 E alla fine...le regole!....................................................... 10 Snort ed Acid in azione...................................................................... 11 Estensioni di Snort: SnortSam................................................................ 13 Introduzione: cosa e Snort? Snort e un Intrusion Detection System. Il compito principale di questa applicazione e di rilevare possibili tentativi di intrusione tramite delle regole a lui note. Queste regole possono essere facilmente aggiunte ed aggiornate nel suo "database", contenuto solitamente in /etc/snort/rules. Snort ha gia un set di regole prefissate dopo l installazione, ma e preferbile utilizzare degli script di aggiornamento che permettono di stare al passo con i nuovi possibili 1

attacchi che possono essere eseguiti dalla rete. A differenza di un firewall, non svolge difesa attiva, fa solamente del "monitoraggio". La modalita firewall puo essere attivata pero tramite dei plug-in esterni. Installazione Vediamo passo passo l installazione di Snort in un sistema Debian like. Sfrutteremo quindi le grandi potenzialita che APT, il sistema di gestione dei pacchetti Debian, ci offre. Installeremo una versione di Snort che eseguira il logging dei dati su un DB (MySQL nel nostro caso). Installeremo inoltre un monitoring tool scritto in PHP, Acid, che permettera di gestire al meglio le potenzialita offerte da Snort. I passi che andremo ad eseguire non dovranno essere per forza sequenziali in quanto APT si occupera automaticamente di gestire le dipendenze. Cominciamo con Snort... Per eseguire l installazione di Snort andremo ad eseguire, una volta ottenuti i permessi di root, il comando: apt-get install snort-mysql In questa maniera APT andra a risolvere tutte le eventuali dipendenze, cioe se per esempio MySQL non e installato, verra inserito nella lista dei pacchetti che saranno installati. Al termine dell installazione verra avviato debconf, il sistema di configurazione dei pacchetti installati. Ci chiedera una serie di informazioni relative alla configurazione di Snort che vogliamo eseguire. Andiamo a vedere qualche schermata che debconf ci propone dopo l avvenuta installazione dei pacchetti. 2

In questa schermata Debconf ci chiede quando dovra essere avviato Snort. all avvio del sistema, in seguto ad una connessione, oppure manualmente. Possiamo scegliere se avviarlo 3

In quest altra schermata dovremo andare a selezionare quale zona della rete Snort dovra andare a monitorare. Abbiamo anche la possibita di andare a selezionare il valore ANY, che fara in modo che nessuna parte della rete sia riconosciuta "sicura". 4

Altra possibilita che ci viene offerta e quella di disabilitare la modalita promiscua: questo fa in maniera tale da vedere solamente i pacchetti indirizzati solamente all interfaccia collegata a Snort. E preferibile avere invece la modalita promiscua abilitata: in questo modo, anche se la macchina non ha indirizzo IP, potra "sniffare" senza problemi. 5

Passiamo alla configurazione del DB: dobbiamo fornire a Debconf l hostname del DB Server al quale Snort si dovra collegare. 6

Ultimo passo: Debconf ci dice dove andare a trovare lo script per generare le tabelle in MySQL, cosa che altrmenti fatta a mano sarebbe veramente noiosa... Fatto cio Snort e installato sul sistema. Rimarra da editare opportunamente il file snort.conf, questa operazione la vedremo in seguito. ACID Andiamo ad utilizzare lo stesso identico critero col quale abbiamo installato Snort. In un terminale diamo il comando: apt-get install acidlab Se non eventualmente presenti verranno ovviamente installati Apache, PHP, etc.. Al termine dell installazione, come di consueto, viene lanciato Debconf. 7

Il passo piu importante e la configurazione del DB. Acid infatti usa le tabelle di Snort per leggere i dati di logging. Inoltre utilizza delle altre tabelle per salvare relative ad Acid stesso. A questo punto l installazione di base e completata. Uno sguardo a snort.conf Incominciamo a vedere come va configurato snort.conf. Il file di default inizia piu o meno cosi. ################################################### # This file contains a sample snort configuration. # You can take the following steps to create your own custom configuration: # # 1) Set the network variables for your network # 2) Configure preprocessors # 3) Configure output plugins # 4) Customize your rule set # ################################################### Dobbiamo quindi: 8

Impostare le variabili di rete: cio permette di decidere cosa dobbiamo monitorare e cosa no (ma non solo) Configurare i preprocessori, il cuore di Snort. Configurare i plugin di output, per decidere dove loggare le informazioni che monitoriamo. Decidere quali regole vogliamo che vengano utilizzate Vediamo un pochino piu in dettaglio questi passi, anche per capire meglio come funziona Snort. Variabili di rete Facciamo una carrellata sulle principali variabili di rete da impostare: var HOME_NET any Con questa variabile andiamo ad impostare quale la rete alla quale apparteniamo. Attenzione! Con questa variabile non decidiamo cosa andremo a monitorare, ma sara conveniente memorizzarla per fare un uso piu logico di Snort, come vedremo fra poco. # Set up the external network addresses as well. A good start may be "any" var EXTERNAL_NET any # var EXTERNAL_NET!$HOME_NET Con quest altra variabile indichiamo qual e la rete esterna. Col valore "any" diciamo a Snort che la rete esterna e TUTTO. La seconda opzione (commentata) e forse un valore piu appropriato. # List of DNS servers on your network var DNS_SERVERS $HOME_NET # List of SMTP servers on your network var SMTP_SERVERS $HOME_NET # List of web servers on your network var HTTP_SERVERS $HOME_NET # List of sql servers on your network var SQL_SERVERS $HOME_NET # List of telnet servers on your network var TELNET_SERVERS $HOME_NET Queste variabili vengono usate per indicare quali sono i nostri server che potrebbero essere attacati. In questa maniera si puo ridurre il carico su Snort, evitando di fare controlli inutili. Ad esempio e inutile controllare attacchi HTTP se non abbiamo un server Web. 9

Preprocessori Una caratteristica di Snort e che e modulare, grazie all uso dei preprocessori. Ma cosa e un preprocessore? Sono dei "sottoprogrammi" che risiedono in Snort e possono avere varie funzionalita. Prendiamo ad esempio quello forse a noi piu intuitivamente comprensibile: http_inspect. Questo permette, fornitogli un buffer, di decodificare il campo dati, i vari campi http, ad esempio. La configurazione varia da server a server (ad esempio IIS, Apache). Abilitando http_inspect potremo quindi scrivere piu facilmente delle regole che vanno a ispezionare a fondo il protocollo http. Altri preprocessori sono: Output preprocessor frag2 #permette di ricomporre e quindi analizzare i pacchetti #frammentati a livello IP. Tecnica usata spesso per i DoS. preprocessor stream4 #usato per riassemblare stream TCP. preprocessor bo #permette di identificare i Back Orifice sulla rete. #Utile soprattuto in caso di numerosi client Windows. preprocessor flow-portscan #permette di identificare portscan. Esistono tanti altri tipi di preprocessori, adattabili secondo le proprie esigenze. Per approfondire l argomento si puo consultare la documentazione [http://www.snort.org/docs/] di Snort. Un accenno all output. Snort e altamente configurabile anche dal punto di vista dell output. Esistono perfino dei moduli appositi per questo scopo. Veiamo come far loggare gli "alert" su MySQL. Per far cio andiamo ad aggiungere questa riga: output database: log, mysql, user=root password=my_password dbname=snort host=localhost Si puo loggare su Syslog (il demone di logging di Unix), su CSV (Comma Separeted Values), su file compatibili con tcpdump e con vari livelli di verbosita. E alla fine...le regole! Le regole sono il cuore del funzionamento di Snort. Queste vanno incluse nel file snort.conf con la seguente sintassi: include $RULE_PATH/local.rules include $RULE_PATH/bad-traffic.rules include $RULE_PATH/exploit.rules include $RULE_PATH/scan.rules 10

... Prendiamo ad esempio una regola relativa al file chat.rules: alert tcp $EXTERNAL_NET 5050 -> $HOME_NET any (msg:"chat Yahoo IM conference invitation"; flow:from_server,established; content:"ymsg"; depth:4; nocase; content:" 00 18 "; depth:2; offset:10; classtype:policy-violation; sid:2453; rev:3;) Analizziamo meglio le keyword: ALERTALERT: informa Snort che se un pacchetto rispetta la regola che stiamo definendo, questa deve essere loggata TCPTCP: identifica il protocollo al quale deve essere applicata la regola. $EXTERNAL_NET$EXTERNAL_NET: indica da dove deve provenire il pacchetto sorgente. $HOME_NET$HOME_NET: indica la destinazione del pacchetto sorgente. 5050/any5050/any: indica porta sorgente/porta destinazione. -> indica il verso dello stream; questo puo essere monodirezionale o bidirezionale. L ultima parte della regola indica la parte vera e propria della regola: in particolare contentcontent: indica il contenuto del messaggio. Abbiamo la possibilita di inserire valori esadecimali, come nel nostro esempio. nocasenocase: nessuna distinzione tra maiuscole e minuscole. flow:from_server,establishedflow:from_server,established : indica che la connessione deve essere diretta al server e deve essere gia stabilita. offsetoffset: indica (in byte)da dove deve iniziare la ricerca di un certo pattern. depthdepth: indica per quanti byte deve essere portata avanti la ricerca. Abbiamo inoltre una serie di flags che ci permettono di "classificare" un certo tipo attivita, con la direttiva "classtype" e di identificarla univocamente con il flag "sid". Il messaggio di output generato in output e specificato nel flag "msg". 11

Snort ed Acid in azione Una volta eseguita la configurazione, possiamo cominciare ad avviare il demone di Snort. Questo puo essere avviato col comando /etc/init.d/snort start Dobbiamo assicurarci che non ci siano errori nella configurazione di Snort. Per verificare questo lanciamo: /etc/init.d/snort config-check Se tutto e filato liscio, il nostro sistema di monitoraggio e in funzione! Ok, ma come andare a verificare gli alert che ci vengono generati da Snort? E proprio per questo che ci avvialiamo di ACID. ACID e scritto in PHP, quindi si appoggia su Apache. Per lanciare Apache lanciamo: /etc/init.d/apache start A questo punto su un qualsiasi browser inseriamo l URL: http://localhost/acidlab/acid_main.php. La schermata che ci apparira sara questa: 12

Da questo momento in poi abbiamo pieno controllo sull attivita di logging di Snort. Estensioni di Snort: SnortSam Abbiamo quindi visto che Snort e un software delle grandi potenzialita, ma si limita esclusivamente al monitoraggio: rimane all amministratore di sistema il compito di bloccare tutti gli attacchi che possono provenire dalla rete. Abbiamo la possibilita di creare dei programmi ad hoc per andare a leggere sulla base di dati gestita da Snort e quindi agire di conseguenza. SnortSam puo invece essere una valida alternativa a questo problema. SnortSam non e altro che un estensione di Snort. Permette, oltre alla normale attivita di monitoraggio,la gestione di numerosi firewall fra i quali: # Checkpoint Firewall-1 # Cisco PIX firewalls # Cisco Routers (using ACL s or Null-Routes) # Former Netscreen, now Juniper firewalls # IP Filter (ipf), available for various Unix-like OS es such as FreeBSD # OpenBSD s Packet Filter (pf) # Linux IPchains # Linux IPtables # Linux EBtables # WatchGuard Firebox firewalls # 8signs firewalls for Windows # MS ISA Server firewall/proxy for Windows # CHX packet filter Una volta configurato il tutto, il lavoro da fare per le regole e veramente poco, ad esempio: alert tcp $EXTERNAL_NET any -> $HTTP_SERVERS 80 (msg:"web-iis ISAPI.printer access"; uricontent:".printer"; nocase; flags:a+; reference:cve,can-2001-0241; reference:arachnids,533; classtype:attemptedrecon; sid:971; rev:1; fwsam: src, 1 hour;) In questo caso l indirizzo sorgente verra bloccato per un ora da SnortSam. 13