Snort è un Intrusion Detection System open source che puoi usare sui tuoi sistemi Linux. Questo tutorial esaminerà la configurazione di base di Snort IDS e ti insegnerà come creare regole per rilevare diversi tipi di attività sul sistema.
Per questo tutorial la rete che useremo è: 10.0.0.0/24. Modifica il tuo file /etc/snort/snort.conf e sostituite il “any” accanto a $HOME_NET con le vostre informazioni di rete come mostrato nello screenshot di esempio qui sotto:
In alternativa potete anche definire indirizzi IP specifici da monitorare separati da una virgola come mostrato in questo screenshot:
Ora cominciamo ed eseguiamo questo comando sulla linea di comando:
Dove:
d= dice a snort di mostrare i dati
l= determina la directory dei log
h= specifica la rete da monitorare
A= ordina a snort di stampare gli avvisi nella console
c= specifica Snort il file di configurazione
Lancia una scansione veloce da un altro dispositivo usando nmap:
E vediamo cosa succede nella console di snort:
Snort ha rilevato la scansione, ora, sempre da un dispositivo diverso attacchiamo con DoS usando hping3
Il dispositivo che mostra Snort sta rilevando un cattivo traffico come mostrato qui:
Siccome abbiamo istruito Snort a salvare i log, possiamo leggerli eseguendo:
Introduzione alle regole di Snort
La modalità NIDS di Snort funziona in base alle regole specificate nel file /etc/snort/snort.conf.
Nel file snort.conf possiamo trovare regole commentate e non commentate come potete vedere qui sotto:
Il percorso delle regole normalmente è /etc/snort/rules , lì possiamo trovare i file delle regole:
Vediamo le regole contro le backdoor:
Ci sono diverse regole per prevenire attacchi backdoor, sorprendentemente c’è una regola contro NetBus, un cavallo di troia che è diventato popolare un paio di decenni fa, guardiamola e spiegherò le sue parti e come funziona:
established”; flow:from_server,established;
flowbits:isset,backdoor.netbus_2.connect; content: “BN|10 00 02 00|”; depth:6; content:”|
05 00|”; depth:2; offset:8; classtype:misc-activity; sid:115; rev:9;)
Questa regola istruisce snort ad allertare sulle connessioni TCP sulla porta 20034 che trasmettono a qualsiasi fonte in una rete esterna.
-> = specifica la direzione del traffico, in questo caso dalla nostra rete protetta ad una esterna
msg = istruisce l’allarme ad includere un messaggio specifico quando viene visualizzato
content = cerca un contenuto specifico all’interno del pacchetto. Può includere testo se tra ” ” o dati binari se tra | |
depth = intensità di analisi, nella regola sopra vediamo due parametri diversi per due contenuti diversi
offset = dice a Snort il byte iniziale di ogni pacchetto per iniziare la ricerca del contenuto
classtype = dice su che tipo di attacco Snort sta allertando
sid:115 = identificatore della regola
Creazione della nostra regola
Ora creeremo una nuova regola per notificare le connessioni SSH in arrivo. Aprire /etc/snort/rules/yourrule.rules, e dentro incollate il seguente testo:
flow:stateless; flags:S+; sid:100006927; rev:1;)
Stiamo dicendo a Snort di segnalare qualsiasi connessione tcp da qualsiasi fonte esterna alla nostra porta ssh (in questo caso la porta di default) includendo il messaggio di testo “SSH INCOMING”, dove stateless indica a Snort di ignorare lo stato della connessione.
Ora, dobbiamo aggiungere la regola che abbiamo creato al nostro file /etc/snort/snort.conf. Aprite il file di configurazione in un editor e cercate #7, che è la sezione con le regole. Aggiungi una regola non commentata come nell’immagine sopra aggiungendo:
Invece di “yourrule.rules”, imposta il nome del tuo file, nel mio caso era test3.rules.
Una volta fatto, lancia nuovamente Snort e vedi cosa succede.
Sh al tuo dispositivo da un altro dispositivo e vedi cosa succede:
Puoi vedere che SSH in entrata è stato rilevato.
Con questa lezione spero tu sappia come creare regole di base e usarle per rilevare attività su un sistema. Vedi anche un tutorial su come impostare Snort e iniziare ad usarlo e lo stesso tutorial disponibile in spagnolo su Linux.lat.
.