Sbuffo o Suricata. Parte 2: Installazione e configurazione iniziale di Suricata

Secondo le statistiche, il volume del traffico di rete aumenta di circa il 50% ogni anno. Ciò comporta un aumento del carico sull'apparecchiatura e, in particolare, aumenta i requisiti prestazionali di IDS / IPS. Puoi acquistare hardware specializzato costoso, ma esiste un'opzione più economica: l'introduzione di uno dei sistemi open source. Molti amministratori inesperti trovano difficile installare e configurare IPS gratuiti. Nel caso di Suricata, questo non è del tutto vero: puoi installarlo e iniziare a respingere attacchi tipici con una serie di regole gratuite in pochi minuti.

Sbuffo o Suricata. Parte 2: Installazione e configurazione iniziale di Suricata
Sbuffo o Suricata. Parte 1: Scelta di un IDS/IPS gratuito per proteggere la tua rete aziendale

Perché abbiamo bisogno di un altro IPS aperto?

Considerato a lungo lo standard, Snort è in fase di sviluppo dalla fine degli anni Novanta, quindi originariamente era a thread singolo. Nel corso degli anni sono apparse tutte le funzionalità moderne, come il supporto IPv6, la capacità di analizzare i protocolli a livello di applicazione o un modulo di accesso ai dati universale.

Il motore principale di Snort 2.X ha imparato a lavorare con più core, ma è rimasto a thread singolo e quindi non può sfruttare in modo ottimale le moderne piattaforme hardware.

Il problema è stato risolto nella terza versione del sistema, ma ci è voluto così tanto tempo per prepararlo che Suricata, scritto da zero, è riuscito ad apparire sul mercato. Nel 2009 ha iniziato a essere sviluppato proprio come alternativa multi-thread a Snort, che ha funzioni IPS pronte all'uso. Il codice è distribuito sotto licenza GPLv2, ma i partner finanziari del progetto hanno accesso a una versione chiusa del motore. Alcuni problemi di scalabilità sono emersi nelle prime versioni del sistema, ma sono stati rapidamente risolti.

Perché Surica?

Suricata ha diversi moduli (simili a Snort): cattura, cattura, decodifica, rilevamento e output. Per impostazione predefinita, il traffico acquisito viene prima della decodifica in un flusso, sebbene ciò carichi maggiormente il sistema. Se necessario, i thread possono essere divisi nelle impostazioni e distribuiti tra i processori: Suricata è ottimizzato molto bene per hardware specifico, sebbene questo non sia più un livello HOWTO per principianti. Vale anche la pena notare che Suricata dispone di strumenti avanzati di ispezione HTTP basati sulla libreria HTP. Possono anche essere utilizzati per registrare il traffico senza essere rilevati. Il sistema supporta anche la decodifica IPv6, inclusi tunnel IPv4-in-IPv6, tunnel IPv6-in-IPv6 e altro ancora.

È possibile utilizzare diverse interfacce per intercettare il traffico (NFQueue, IPFRing, LibPcap, IPFW, AF_PACKET, PF_RING) e, in modalità Unix Socket, è possibile analizzare automaticamente i file PCAP acquisiti da un altro sniffer. Inoltre, l'architettura modulare di Suricata semplifica l'inserimento di nuovi elementi per acquisire, decodificare, analizzare ed elaborare i pacchetti di rete. È anche importante notare che in Suricata il traffico viene bloccato tramite un normale filtro del sistema operativo. GNU/Linux ha due opzioni per il funzionamento di IPS: tramite la coda NFQUEUE (modalità NFQ) e tramite copia zero (modalità AF_PACKET). Nel primo caso, il pacchetto che entra in iptables viene inviato alla coda NFQUEUE, dove può essere elaborato a livello utente. Suricata lo esegue secondo le proprie regole ed emette uno dei tre verdetti: NF_ACCEPT, NF_DROP e NF_REPEAT. I primi due sono autoesplicativi, mentre l'ultimo consente di contrassegnare i pacchetti e inviarli all'inizio della tabella iptables corrente. La modalità AF_PACKET è più veloce, ma impone una serie di restrizioni al sistema: deve avere due interfacce di rete e funzionare come gateway. Il pacchetto bloccato semplicemente non viene inoltrato alla seconda interfaccia.

Una caratteristica importante di Suricata è la capacità di utilizzare gli sviluppi per Snort. L'amministratore ha accesso, in particolare, ai set di regole Sourcefire VRT e OpenSource Emerging Threats, nonché a Emerging Threats Pro commerciale. L'output unificato può essere analizzato utilizzando back-end popolari, è supportato anche l'output PCAP e Syslog. Le impostazioni e le regole di sistema sono memorizzate in file YAML, che sono facili da leggere e possono essere elaborati automaticamente. Il motore Suricata riconosce molti protocolli, quindi le regole non devono essere legate a un numero di porta. Inoltre, il concetto di flusso è attivamente praticato nelle regole di Suricata. Per tenere traccia del trigger, le variabili di sessione vengono utilizzate per creare e applicare vari contatori e flag. Molti IDS trattano diverse connessioni TCP come entità separate e potrebbero non vedere una connessione tra di loro che indichi l'inizio di un attacco. Suricata cerca di vedere l'intero quadro e in molti casi riconosce il traffico dannoso distribuito su diverse connessioni. Puoi parlare a lungo dei suoi vantaggi, è meglio passare all'installazione e alla configurazione.

Come installare?

Installeremo Suricata su un server virtuale con Ubuntu 18.04 LTS. Tutti i comandi devono essere eseguiti per conto del superutente (root). L'opzione più sicura è accedere tramite SSH al server come utente normale e quindi utilizzare l'utilità sudo per elevare i privilegi. Per prima cosa devi installare i pacchetti di cui abbiamo bisogno:

sudo apt -y install libpcre3 libpcre3-dev build-essential autoconf automake libtool libpcap-dev libnet1-dev libyaml-0-2 libyaml-dev zlib1g zlib1g-dev libmagic-dev libcap-ng-dev libjansson-dev pkg-config libnetfilter-queue-dev geoip-bin geoip-database geoipupdate apt-transport-https

Collegamento di un repository esterno:

sudo add-apt-repository ppa:oisf/suricata-stable
sudo apt-get update

Installa l'ultima versione stabile di Suricata:

sudo apt-get install suricata

Se necessario, modificare il nome dei file di configurazione, sostituendo il valore predefinito eth0 con il nome effettivo dell'interfaccia esterna del server. Le impostazioni predefinite sono memorizzate nel file /etc/default/suricata e le impostazioni personalizzate sono memorizzate in /etc/suricata/suricata.yaml. La configurazione di IDS è per lo più limitata alla modifica di questo file di configurazione. Ha molti parametri che, per nome e scopo, coincidono con gli analoghi di Snort. La sintassi è completamente diversa, tuttavia, ma il file è molto più facile da leggere rispetto alle configurazioni di Snort ed è ben commentato.

sudo nano /etc/default/suricata

Sbuffo o Suricata. Parte 2: Installazione e configurazione iniziale di Suricata

и

sudo nano /etc/suricata/suricata.yaml

Sbuffo o Suricata. Parte 2: Installazione e configurazione iniziale di Suricata

Attenzione! Prima di iniziare, vale la pena controllare i valori delle variabili dalla sezione vars.

Per completare la configurazione, dovrai installare suricata-update per aggiornare e caricare le regole. È abbastanza facile farlo:

sudo apt install python-pip
sudo pip install pyyaml
sudo pip install <a href="https://github.com/OISF/suricata-update/archive/master.zip">https://github.com/OISF/suricata-update/archive/master.zip</a>
sudo pip install --pre --upgrade suricata-update

Successivamente, dobbiamo eseguire il comando suricata-update per installare il set di regole Emerging Threats Open:

sudo suricata-update

Sbuffo o Suricata. Parte 2: Installazione e configurazione iniziale di Suricata

Per visualizzare l'elenco delle origini delle regole, eseguire il seguente comando:

sudo suricata-update list-sources

Sbuffo o Suricata. Parte 2: Installazione e configurazione iniziale di Suricata

Aggiorna le origini delle regole:

sudo suricata-update update-sources

Sbuffo o Suricata. Parte 2: Installazione e configurazione iniziale di Suricata

Rivisitazione delle fonti aggiornate:

sudo suricata-update list-sources

Se necessario, puoi includere fonti gratuite disponibili:

sudo suricata-update enable-source ptresearch/attackdetection
sudo suricata-update enable-source oisf/trafficid
sudo suricata-update enable-source sslbl/ssl-fp-blacklist

Successivamente, è necessario aggiornare nuovamente le regole:

sudo suricata-update

Questo completa l'installazione e la configurazione iniziale di Suricata in Ubuntu 18.04 LTS. Poi inizia il divertimento: nel prossimo articolo collegheremo un server virtuale alla rete dell'ufficio tramite VPN e inizieremo ad analizzare tutto il traffico in entrata e in uscita. Presteremo particolare attenzione al blocco di attacchi DDoS, attività di malware e tentativi di sfruttare le vulnerabilità nei servizi accessibili dalle reti pubbliche. Per chiarezza verranno simulati gli attacchi dei tipi più comuni.

Sbuffo o Suricata. Parte 2: Installazione e configurazione iniziale di Suricata

Sbuffo o Suricata. Parte 2: Installazione e configurazione iniziale di Suricata

Fonte: habr.com

Aggiungi un commento