In questa lezione parleremo di PulledPork, un plugin che consente di scaricare automaticamente,
combinare, installare e aggiornare regole Snort. Suggeriamo caldamente l’utilizzo di questo plugin piuttosto che l’installazione manuale delle regole. Una volta scaricate le regole, potremo sempre rivederle manualmente e modificarle per venire incontro alle nostre necessità.
Installazione
PulledPork è uno script Perl, per tale motivo passiamo immediatamente ad installare i pacchetti prerequisiti per il suo funzionamento:
sudo apt-get update
sudo apt-get install -y libcrypt-ssleay-perl liblwp-useragent-determined-perl
A questo punto passiamo all’installazione del plugin. Per prima cosa posizioniamoci all’interno della cartella dei sorgenti di Snort, scarichiamo l’archivio e decomprimiamolo:
cd ~/snort_src
wget https://github.com/shirkdog/pulledpork/archive/master.tar.gz -O pulledpork-master.tar.gz
tar xzvf pulledpork-master.tar.gz
Adesso posizioniamoci all’interno del sorgente PulledPork, copiamo lo script Perl all’interno degli eseguibili di sistema e rendiamolo eseguibile:
cd pulledpork-master/
sudo cp pulledpork.pl /usr/local/bin
sudo chmod +x /usr/local/bin/pulledpork.pl
Copiamo i file di configurazione di PulledPork all’interno della directory snort:
sudo cp etc/*.conf /etc/snort
Verifichiamo il corretto funzionamento eseguendo PulledPork:
/usr/local/bin/pulledpork.pl –V
Se tutto funziona correttamente, dovremmo visualizzare il seguente output:
Configurare PulledPork per lo scaricamento automatico delle regole
PulledPork può essere configurato per il download automatico di gruppi di regole dalla comunità (non documentate), così come per le regole ufficiali utilizzando l’OinkCode (supporto continuo dagli sviluppatori). Nella lezione precedente, abbiamo visto come creare un account gratuito per ottenere l’OinkCode. In caso non lo si abbia ancora ottenuto, rimandiamo alla lezione in cui abbiamo discusso come fare.
Vediamo adesso come configurare PulledPork per il download automatico e l’aggiornamento delle regole.
Modifichiamo il file di configurazione di PulledPork:
sudo nano /etc/snort/pulledpork.conf
Dovunque è presente la voce <oinkcode>
, dovremo piazzare il nostro codice
e decommentare la riga relativa. Nel nostro caso, abbiamo decommentato la linea 19 ed inserito l’OinkCode in coda alla linea di codice. A questo punto, dovremo effettuare delle modifiche al file di configurazione. Di seguito sono elencati i numeri di riga (da decommentare quando commentate) e il codice da inserire:
Linea 74 -> rule_path=/etc/snort/rules/snort.rules
Linea 89 -> local_rules=/etc/snort/rules/local.rules
Linea 92 -> sid_msg=/etc/snort/sid-msg.map
Linea 96 -> sid_msg_version=2
Linea 119 -> config_path=/etc/snort/snort.conf
Linea 133 -> distro=Ubuntu-12-04
Linea 141 -> black_list=/etc/snort/rules/iplists/black_list.rules
Linea 150 -> IPRVersion=/etc/snort/rules/iplists
Eseguiamo quindi PulledPork per scaricare le regole:
sudo /usr/local/bin/pulledpork.pl -c /etc/snort/pulledpork.conf -l
Se tutto è andato a buon fine, dovremmo ottenere un output simile al seguente:
A questo punto, PulledPork avrà combinato tutte le regole in un unico file snort.rules, posizionato in /etc/snort/rules. Includiamo quindi questo file di regole all’interno della configurazione di Snort, modificando snort.conf e appendendo alla fine del file la seguente linea:
include $RULE_PATH/snort.rules
Verifichiamo che Snort funzioni correttamente:
sudo snort -T -c /etc/snort/snort.conf -i en2ps3
Infine, facciamo in modo che PulledPork scarichi ogni giorno automaticamente gli aggiornamenti per le regole. A tale scopo, modifichiamo il file di configurazione di crontab:
sudo crontab -e
e aggiungiamo la seguente linea contenente ora e minuto a cui eseguire l'aggiornamento
(mm indica il minuto, un numero compreso tra 00 e 59, ed hh indica l’ora,
un numero compreso tra 01 e 24):
mm hh * * * /usr/local/bin/pulledpork.pl -c /etc/snort/pulledpork.conf -l