Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

Utilizzare Snort come Intrusion Prevention System

Snort è un software di analisi dei pacchetti di una rete: ecco come configurarlo per usarlo come intrusion prevention system (IPS).
Snort è un software di analisi dei pacchetti di una rete: ecco come configurarlo per usarlo come intrusion prevention system (IPS).
Link copiato negli appunti

In questa lezione conclusiva vedremo come utilizzare Snort quale sistema di prevenzione delle intrusioni (intrusion prevention system, IPS). La modalità con la quale viene eseguito Snort in questo caso viene comunemente detta inline. Questo perché (come abbiamo visto nell'introduzione di questa guida), Snort funziona da bridge tra due segmenti di rete. In questa modalità, Snort svolgerà un compito di difesa attiva, poiché scarterà tutti i pacchetti sospetti che avrà rilevato, oltre che generare i consueti alert della modalità intrusion detection.

Configurazione della rete e modalità promiscua

Snort dovrà essere eseguito su una macchina che dovrà apparire come “trasparente” ai due segmenti di rete che si intendono controllare. Tale macchina dovrà montare (almeno) due interfacce di rete, ciascuna relativa al segmento monitorato, e le due interfacce dovranno essere collegate in modalità promiscua. Quando un’interfaccia di rete è così configurata, essa lascia passare tutto il traffico entrante senza controllare l’indirizzo MAC di destinazione; questa operazione risulta particolarmente utile per scopi diagnostici e si addice perfettamente all’utilizzo di Snort come IPS. Le interfacce configurate in modalità promiscua NON dovranno avere alcun indirizzo IP per il semplice motivo che dovranno agire come se fossero “trasparenti” per i segmenti di rete monitorati. Da questo ne discende che i due segmenti di rete dovranno necessariamente appartenere alla stessa sottorete.

A meno che non disponiamo dell’accesso fisico alla macchina che ospiterà Snort, dovremo comunque aggiungere una terza interfaccia con compiti “amministrativi” per consentire la gestione di Snort da remoto. Nell’ipotesi più tipica, dunque, ci troveremo di fronte alla seguente configurazione di rete:

Figura 11. Configurazione di rete con Snort in modalità inline (click per ingrandire)

Configurazione di rete con Snort in modalità inline

A questo punto, eseguiamo il comando:

ifconfig -a

Memorizziamo quindi i nomi delle interfacce di rete che intendiamo impostare come “amministrativa” e “monitorata”.

Passiamo quindi alla modifica del file di configurazione delle interfacce di rete, eseguendo il comando:

sudo vi /etc/network/interfaces

Il file sarà diviso in due parti. Nella prima indicheremo i parametri per l’interfaccia “amministrativa”, che sarà gestita dal DHCP; nella seconda, indicheremo che le due interfacce da monitorare dovranno essere attivate in modalità promiscua e senza un indirizzo IP (avendo cura di sostituire i nomi delle interfacce con quelli della nostra macchina):

#interfaccia amministrativa
auto enp2s0
iface enp2s0 inet dhcp
#interfacce promiscue
auto enp2s1
iface enp2s1 inet manual
up ifconfig $IFACE 0.0.0.0 up
up ip link set $IFACE promisc on
post-up ethtool -K $IFACE gro off
post-up ethtool -K $IFACE lro off
down ip link set $IFACE promisc off
down ifconfig $IFACE down
auto enp2s2
iface enp2s2 inet manual
up ifconfig $IFACE 0.0.0.0 up
up ip link set $IFACE promisc on
post-up ethtool -K $IFACE gro off
post-up ethtool -K $IFACE lro off
down ip link set $IFACE promisc off
down ifconfig $IFACE down

Configurazione di Snort

Come accennato all’inizio della lezione, dovremo eseguire Snort nella modalità “inline”. Per prima cosa, assicuriamoci che le librerie DAQ siano correttamente installate:

Figura 12. Output indicante che le librerie DAQ sono installate (click per ingrandire)

Output indicante che le librerie DAQ sono installate

Se non vediamo questo tipo di output, ritorniamo all’installazione
di Snort. Se invece tutto è andato a buon fine, a questo punto dovremo modificare il file di configurazione di Snort:

sudo nano /etc/snort/snort.conf

Cerchiamo tra le linee commentate quella che comincia per #Configure DAQ related options for inline operations.
Decommentiamo le linee che iniziano per #config daq e config daq_mode, sostituendole alle seguenti:

config daq: afpacket
config daq_mode: inline

Eseguiamo il classico test di verifica del funzionamento di Snort, con il flag -Q per la modalità inline, e per effettuare il bridging delle interfacce “monitorate” usiamo il flag -i. Utilizziamo dunque la seguente linea di codice:

sudo snort -T -c /etc/snort/snort.conf -Q -i enp2s1:enp2s2

Se tutto funziona correttamente, dovremmo leggere la seguente linea alla fine dell’output generato dal comando precedente:

Figura 13. Output generato da Snort con librerie DAQ configurate in modalità inline (click per ingrandire)

Output generato da Snort con librerie DAQ configurate in modalità inline

Eseguire Snort in modalità IPS

Non rimane che eseguire Snort e verificare che svolga il suo compito di difesa attiva. Per prima cosa modifichiamo il file:

sudo /etc/snort/rules/local.rules

ed aggiungiamo la seguente regola (sempre che non lo abbiamo già fatto, nella lezione precedente):

drop icmp any any -> $HOME_NET any (msg:"Pacchetto ICMP rilevato"; GID:1; sid:10000001; rev:001; classtype:icmp-event;)

A questo punto eseguiamo Snort in modalità console:

sudo /usr/local/bin/snort -A console -Q -c /etc/snort/snort.conf -i enp2s1:enp2s2 –N

Generiamo un ping da un computer esterno alla macchina Snort collegato da uno dei lati monitorati, diretto verso una macchina residente sul secondo segmento di rete. Se tutto funziona correttamente, il ping dovrà fallire e dovremmo vedere un alert a video generato da Snort, che indica il (tentato) passaggio di un messaggio ICMP.

Ti consigliamo anche