Archivi tag: snort 2.9.0.5

Tuning di snort 2.9.0.5 (rules)

In questo post ho spiegato come effettuare un tuning minimale dei preprocessori di cui si avvale snort 2.9.0.5. Ora, invece, vedremo come disabilitare tutte quelle regole che potrebbero generare dei falsi positivi.

snort

Per prima cosa posizioniamoci nella directory /etc/snort/rules:

nightfly@nightbox:~$ cd /etc/snort/rules

Lanciamo un ls per visualizzare il contenuto della dir:

nightfly@nightbox:/etc/snort/rules$ ls

il cui outuput sarà simile al seguente:

attack-responses.rules  misc.rules           snmp.rules
backdoor.rules          multimedia.rules     specific-threats.rules
bad-traffic.rules       mysql.rules          spyware-put.rules
blacklist.rules         netbios.rules        sql.rules

ecc.

Come è facile intuire, esiste un file *.rules per ogni possibile minaccia, dove ciascun file contiene tutta una serie di regole che identificano i tentativi di attacco. Ad esempio, analizzando il file attack-responses.rules, noteremo delle entry del tipo:

alert tcp $HOME_NET any -> $EXTERNAL_NET any (msg:"ATTACK-RESPONSES directory listing"; flow:established; content:"Volume Serial Number"; classtype:bad-unknown; sid:1292; rev:9;)

alert tcp $HTTP_SERVERS $HTTP_PORTS -> $EXTERNAL_NET any (msg:"ATTACK-RESPONSES command completed"; flow:established; content:"Command completed"; nocase; metadata:policy balanced-ips drop, policy security-ips drop, service http; reference:bugtraq,1806; classtype:bad-unknown; sid:494; rev:13;)

alert tcp $HTTP_SERVERS $HTTP_PORTS -> $EXTERNAL_NET any (msg:"ATTACK-RESPONSES command error"; flow:established; content:"Bad command or filename"; nocase; classtype:bad-unknown; sid:495; rev:10;)

E’ possibile disabilitare una qualunque entry semplicemente commentandola (ovvero inserendo un # ad inizio riga). Però, per evitare che tale entry ritorni attiva dopo l’aggiornamento delle regole mediante oinkmaster, dobbiamo operare direttamente sul file /etc/oinkmaster.conf:

nightfly@nightbox:/etc/snort/rules$ sudo nano /etc/oinkmaster.conf

aggiungendo la direttiva disablesid seguita dal sid dell’alert che ci interessa (ad esempio 1292 per ATTACK-RESPONSES directory listing):

disablesid 1292

Salviamo il file, riavviamo snort con un sudo service snort restart ed abbiamo finito.

A presto.

Tuning dei preprocessori di snort 2.9.0.5

In questo post abbiamo visto come aggiornare snort alla versione 2.0.9.5 su piattaforma *buntu. Adesso vedremo come effettuare del tuning minimale per evitare tutta una serie di falsi positivi (base rate fallacy), che possono distogliere la nostra attenzione dalle reali minacce.

snort

 

Personalmente credo che sui sistemi che vengono utilizzati per la semplice navigazione Web (o che fungono da GW verso la rete esterna) e su cui è presente un qualunque applicativo p2p occorre disabilitare le seguenti regole, inserendo le seguenti direttive nel file /etc/snort/threshold.conf:

suppress gen_id 119, sig_id 2
suppress gen_id 129, sig_id 12
suppress gen_id 129, sig_id 19
suppress gen_id 119, sig_id 15
suppress gen_id 120, sig_id 3
suppress gen_id 129, sig_id 14
suppress gen_id 129, sig_id 15
suppress gen_id 129, sig_id 5
suppress gen_id 129, sig_id 4

Tutte le regole riportate in precedenza sono identificate mediante un gen_id ed un sig_id, dove per gen_id si intende l’ID del preprocessore, mentre per sig_id si intende l’alert generato dal preprocessore coinvolto. Per avere un’idea più chiara di cosa sto parlando basta aprire in lettura il file /etc/snort/gen-msg.map. Così facendo potremo notare come al gen_id 119 ed al sig_id 2 corrisponde l’alert http_inspect: DOUBLE DECODING ATTACK, al gen_id 129 ed al sig_id 12 corrisponde l’alert stream5: TCP Small Segment Threshold Exceeded, e così via.

Nello specifico, ecco come appariranno le entry del file gen-msg.map:

126 || 2 || telnet_pp: Telnet data encrypted
126 || 3 || telnet_pp: Subnegotiation Begin without matching Subnegotiation End
128 || 1 || ssh: Gobbles exploit
128 || 2 || ssh: SSH1 CRC32 exploit
128 || 3 || ssh: Server version string overflow
128 || 4 || ssh: Protocol mismatch
128 || 5 || ssh: Bad message direction
128 || 6 || ssh: Payload size incorrect for the given payload
128 || 7 || ssh: Failed to detect SSH version string

ecc.

Riavviate snort per rendere effettive tali modifiche:

nightfly@nightbox:~$ sudo service snort restart

ed il gioco è fatto.

A presto.