13/12/2011
snort2mail: script per ricevere gli alert di snort direttamente sulla nostra casella di posta elettronica
Gli alert generati da snort sono di indubbia utilità, in quanto da un'attenta analisi degli stessi è possibile individuare possibili tentativi di intrusione sulla nostra rete. Poichè sono un po' pigro e la lettura dei log è sicuramente una delle fasi più tediose del mio lavoro, ho pensato di creare il seguente script, in grando di inviare al mio indirizzo email gli alert in questione man mano che vengono generati.
Ecco lo script:
#!/bin/bash
logfile=/var/log/snort2sms.log
destinatario=vostro.indirizzo@email.it
ROOT_UID=0
if [ "$UID" -ne "$ROOT_UID" ];then
ERRORE1="Errore 1: Devi essere root per eseguire lo script"
echo $ERRORE1
echo "$(date) $ERRORE1" >> $logfile
exit 1
fi
cd /var/log/snort
if [ -f alert ];then
if [ -f alert_backup ];then
#confronto i due file e salvo le differenza all'interno di mail
diff alert alert_backup > mail
else
touch alert_backup
cp alert alert_backup
fi
else
ERRORE2="Errore 2: Il file alert non esiste. Sei sicuro di aver installato snort?"
echo $ERRORE2
echo "$(date) $ERRORE2" >> $logfile
fi
if [ -s mail ];then
cp alert alert_backup
cat mail | mail -iv -s "HOME: snort alert" $destinatario;
fi
rm mail
Non vi resta che schedulare l'esecuzione dello script mediante cron e creare il file di log snort2mail.log nella directory /var/log.
Enjoy.
10:00 Scritto da: nazarenolatella in Sicurezza | Link permanente | Commenti (0) | Segnala | Tag: snort, mail, snort2mail, alert, ids, nids | OKNOtizie |
Facebook
24/10/2011
Configurare un firewall Cisco PIX 501 come IDS
Premesso che i PIX 501 sono molto limitati come IDS, in quanto supportano soltanto circa 70 signature (piuttosto datate), può tornare comunque utile configurarli come Intrusion Detection System di prima linea, a cui associare dei sistemi più sofisticati, basati ad esempio su snort.
Ovviamente, affinchè l'IDS possa svolgere il suo compito è necessario abilitare il logging dei pacchetti "sospetti", reindirizzandoli su un'altra macchina (aka logserver), in modo da non causare eventuali memory leak al nostro piccolo firewall (soprattutto se la mole di traffico che deve esaminare è piuttosto elavata).
Ma veniamo alla configurazione del PIX. Per prima cosa digitiamo il comando (in modalità enable):
NightFirewall# sh run | i ip audit
il cui output sarà:
ip audit info action alarm
ip audit attack action alarm
Esso rappresenta le due tipologie di signature che possono essere gestite dal firewall, ovvero info ed attack, con le rispettive azioni di default (che in entrambi i casi è alarm).
Definiamo adesso delle nuove policy di audit digitando:
NightFirewall# conf t
NightFirewall(config)# ip audit name esterna info
NightFirewall(config)# ip audit name interna attack action drop
La prima policy è di tipo info, la seconda è di tipo attack a cui è associata l'azione drop nel caso in cui vengano individuati dei pacchetti sospetti.
Associamo le policy di audit appena create alle interfacce del nostro PIX:
NightFirewall(config)# ip audit interface outside esterna
NightFirewall(config)# ip audit interface inside interna
ed infine lanciamo un write mem per salvare la nuova configurazione:
NightFirewall(config)# write mem
Ora il nostro PIX si comporterà come un IDS.
A presto.
PS: i log generati dal firewall avranno sa seguente struttura:
Oct 22 17:57:26 nightfirewall.*.org %PIX-4-400014: IDS:2004 ICMP echo request from 172.16.*.* to 172.16.*.* on interface inside
Oct 22 17:59:16 nightfirewall.*.org %PIX-4-400014: IDS:2004 ICMP echo request from 172.16.*.* to 192.168.*.* on interface inside
Oct 22 17:59:16 nightfirewall.*.org %PIX-4-400010: IDS:2000 ICMP echo reply from 192.168.*.* to 192.168.*.* on interface outside
In questo caso l'IDS ha generato dei falsi positivi, in quanto trattasi semplicemente di alcuni ping lanciati da nagios per i suoi check.
Ho quindi proceduto a disattivare le signature coinvolte utilizzando i seguenti comandi:
NightFirewall(config)# ip audit signature 2000 disable
NightFirewall(config)# ip audit signature 2004 disable
09/08/2011
Aggiornare snort alla versione 2.9.0.5 su *buntu
L'installazione di snort 2.9.0.5 su *buntu non è affatto banale. Infatti, occorre installare delle specifiche librerie e degli specifici strumenti per poter compilare il codice sorgente dell'IDS in questione.
Per prima cosa scarichiamo la tarball mediante CLI usando wget:
nightfly@nightbox:~$ wget -O snort-2.9.0.5.tar.gz http://www.snort.org/downloads/867
Scompattiamola e posizioniamoci nella dir appena creata:
nightfly@nightbox:~$ tar -xzvf snort-2.9.0.5.tar.gz
nightfly@nightbox:~$ cd snort-2.9.0.5/
Stoppiamo la versione obsoleta di snort presente sulla nostra macchina:
nightfly@nightbox:~$ sudo service snort stop
Installiamo adesso alcune librerie necessarie per la compilazione di snort:
nightfly@nightbox:~/snort-2.9.0.5$ sudo apt-get install libpcap0.8-dev
nightfly@nightbox:~/snort-2.9.0.5$ sudo apt-get install libpcre3 libpcre3-dev
nightfly@nightbox:~/snort-2.9.0.5$ sudo apt-get install libdumbnet-dev libdnet libdnet-dev
Creiamo quindi un link simbolico all'header dumbnet.h poichè il file configure di snort va alla ricerca del file dnet.h:
nightfly@nightbox:~/snort-2.9.0.5/$ sudo ln -s /usr/include/dumbnet.h /usr/include/dnet.h
Installiamo l'ultima libreria che ci occorre, ovvero daq-0.5, disponibile direttamente sul sito www.snort.org:
nightfly@nightbox:~/snort-2.9.0.5/$ wget -O daq-0.5.tar.gz http://www.snort.org/downloads/860
nightfly@nightbox:~/snort-2.9.0.5/$ tar -xzvf daq-0.5.tar.gz
nightfly@nightbox:~/snort-2.9.0.5/$ cd daq-0.5/
Per compilare questa libreria è necessario utilizzare l'accoppiata flex/bison. Dunque procediamo con la loro installazione:
nightfly@nightbox:~/snort-2.9.0.5/daq-0.5$ sudo apt-get install flex bison
Possiamo ora compilare la libreria daq-0.5:
nightfly@nightbox:~/snort-2.9.0.5/daq-0.5$ ./configure
nightfly@nightbox:~/snort-2.9.0.5/daq-0.5$ sudo make
nightfly@nightbox:~/snort-2.9.0.5/daq-0.5$ sudo make install
nightfly@nightbox:~/snort-2.9.0.5/daq-0.5$ cd ..
Adesso passiamo alla compilazione di snort e successivamente sostituiamo il file di configurazione delle versioni precedenti con quello della release in questione:
nightfly@nightbox:~/snort-2.9.0.5$ sudo make
nightfly@nightbox:~/snort-2.9.0.5$ sudo make install
nightfly@nightbox:~/snort-2.9.0.5$ cd etc
nightfly@nightbox:~/snort-2.9.0.5/etc$ sudo cp snort.conf /etc/snort
Posizioniamoci nella dir /etc/snort ed apriamo il file snort.conf in scrittura:
nightfly@nightbox:~/snort-2.9.0.5/etc$ cd /etc/snort
nightfly@nightbox:/etc/snort$ sudo nano snort.conf
ed effettuiamo le seguenti sostituzioni:
1) ipvar con var (poichè non abbiamo compilato snort con la flag --enable-ipv6)
2) var RULE_PATH ../rules
var SO_RULE_PATH ../so_rules
var PREPROC_RULE_PATH ../preproc_rules
con
var RULE_PATH /rules
var SO_RULE_PATH /so_rules
var PREPROC_RULE_PATH /preproc_rules
3) Commentiamo le seguenti direttive:
#dynamicdetection directory /usr/local/lib/snort_dynamicrules
#include $RULE_PATH/local.rules
#inspect_gzip
#unlimited_decompress
#preprocessor normalize_ip4
#preprocessor normalize_tcp: ips ecn stream
#preprocessor normalize_icmp4
#preprocessor normalize_ip6
#preprocessor normalize_icmp6
4) Rimuoviamo le direttive:
compress_depth 65535 decompress_depth 65535
Ora occorre eliminare tutte le vecchie rules di snort ed installare quelle nuove. Per fare ciò digitiamo i seguenti comandi:
nightfly@nightbox:/etc/snort$ cd rules
nightfly@nightbox:/etc/snort/rules$ sudo rm *
Successivamente installiamo le nuove regole mediante oinkmaster, configurandolo opportunamente affinchè possa scaricare le rules della versione 2.0.9.5:
nightfly@nightbox:/etc/snort/rules$ sudo nano /etc/oinkmaster.conf
ed inseriamo la stringa:
url = http://www.snort.org/pub-bin/oinkmaster.cgi/<vostro oinkcode>/snortrules-snapshot-2905.tar.gz
Adesso possiamo procedere con l'installazione vera e propria delle regole:
nightfly@nightbox:/etc/snort/rules$ sudo oinkmaster -o /etc/snort/rules
Ad installazione completata, prima di lanciare snort, modifichiamo il file /etc/ld.so.conf aggiungendo la direttiva:
include /usr/local/lib
Infine, rendiamo effettiva tale modifica lanciando il comando:
nightfly@nightbox:/etc/snort/rules$ sudo ldconfig
A questo punto lanciamo uno snort -V il cui output dovrebbe essere:
,,_ -*> Snort! <*-
o" )~ Version 2.9.0.5 (Build 135)
'''' By Martin Roesch & The Snort Team: http://www.snort.org/snort/snort-team
Copyright (C) 1998-2011 Sourcefire, Inc., et al.
Using libpcap version 1.0.0
Using PCRE version: 7.8 2008-09-05
Copiamo l'eseguibile presente in /usr/local/bin/snort all'interno della dir /usr/sbin/snort:
nightfly@nightbox:/etc/snort/rules$ sudo cp /usr/sbin/snort /usr/local/bin/snort
Verifichiamo che la configurazione di snort non contenga errori digitando:
nightfly@nightbox:/etc/snort/rules$ sudo snort -T -c /etc/snort/snort.conf
Se l'output visualizzato è il seguente:
Snort successfully validated the configuration!
allora possiamo lanciare un sudo service snort start ed iniziare ad avvalerci di questo potentissimo IDS.
A presto.
15:54 Scritto da: nazarenolatella in SO: Linux | Link permanente | Commenti (0) | Segnala | Tag: snort 2.0.9.5, snort.conf, oinkmaster, rules, ids | OKNOtizie |
Facebook

















