Dopo due anni di sviluppo, l'organizzazione OISF (Open Information Security Foundation) ha pubblicato il rilascio del sistema di rilevamento e prevenzione delle intrusioni di rete Suricata 8.0, che fornisce strumenti per ispezionare vari tipi di traffico. Nelle configurazioni di Suricata è possibile utilizzare un database di firme sviluppato dal progetto Snort, nonché i set di regole Emerging Threats e Emerging Threats Pro. I codici sorgente del progetto sono distribuiti con licenza GPLv2.
Variazioni principali:
- È stata aggiunta una funzionalità sperimentale per l'utilizzo di Suricata come firewall. La modalità firewall consente di utilizzare il dialetto del linguaggio delle regole di ispezione del traffico per filtrare i pacchetti di rete.
- È stata rivisitata la possibilità di scrivere script nel linguaggio Lua. Nella base di codice è stato integrato un interprete Lua 5.4, in esecuzione in un ambiente sandbox che limita le regole nel linguaggio Lua (ad esempio, le regole non possono scrivere file o creare socket di rete).
- È stata fornita la possibilità di registrare dinamicamente (in tempo reale) plugin con parser per protocolli, rilevatori e componenti per la registrazione dei log.
- Sono state effettuate significative ottimizzazioni delle prestazioni che hanno accelerato vari aspetti del funzionamento del motore, inclusi l'identificazione dei protocolli, il caricamento delle regole e l'inizializzazione. L'accelerazione è ottenuta grazie alla previsione delle transizioni, all'ottimizzazione delle funzioni hash, all'aumento delle dimensioni dei buffer per il caricamento dei dati in formato PCAP e alla rivisitazione della sincronizzazione dei thread. Inoltre, è stato possibile ridurre i tempi di avvio di Suricata utilizzando la cache, il raggruppamento avanzato delle porte e un algoritmo migliorato per la sostituzione degli indirizzi IP.
- Gli handler di LibHTP, FTP, ENIP, così come il codice per l'analisi dei tipi MIME, l'operazione byte_extract e la decodifica base64 sono stati riscritti in linguaggio Rust.
- È stata aggiunta la supporto per i protocolli DoH (DNS su HTTPS), LDAP, mDNS (Multicast DNS) e Websocket.
- Sono stati aggiunti nuovi moduli di decodifica e registrazione dei log per i protocolli ARP e POP3.
- È stata assicurata l'analisi del traffico SDP sopra SIP e SIP sopra TCP.
- Sono state ampliate le capacità del motore di identificazione dei protocolli e della creazione delle regole. Per le regole sono state implementate le parole chiave LDAP, MIME/EMAIL, vlan.id, DNS, SMTP, FTP, TLS, tcp.wscale, pgsql.query, from_base64, entropy, luaxform e mDNS. Sono state aggiunte regole transazionali che consentono di descrivere entrambe le direzioni di una transazione in una sola regola.
Caratteristiche di Suricata:
- Utilizzo per l'output dei risultati della verifica in un formato unificato Unified2, utilizzato anche dal progetto Snort, che consente di utilizzare strumenti standard per l'analisi, come barnyard2. Possibilità di integrazione con prodotti come BASE, Snorby, Sguil e SQueRT. Supporto per l'output in formato PCAP;
- Supporto per l'identificazione automatica dei protocolli (IP, TCP, UDP, ICMP, HTTP, TLS, FTP, SMB, ecc.), che consente di operare nelle regole solo in base al tipo di protocollo, senza legami con il numero di porta (ad esempio, bloccare il traffico HTTP su una porta non standard). Disponibilità di decoder per i protocolli HTTP, SSL, TLS, SMB, SMB2, DCERPC, SMTP, FTP, LDAP e SSH;
- Sistema di analisi del traffico HTTP, che utilizza la libreria HTP per l'analisi e la normalizzazione del traffico HTTP, creata dall'autore del progetto Mod_Security. Modulo disponibile per la registrazione dettagliata dei log delle trasmissioni HTTP di transito (i log sono salvati in formato Apache standard). Supporto per l'estrazione e la verifica di file trasferiti tramite protocollo HTTP, nonché per l'analisi dei contenuti compressi. Possibilità di identificazione tramite URI, Cookie, intestazioni, user-agent, corpo della richiesta/risposta;
- Supporto per diverse interfacce per la cattura del traffico, inclusi NFQueue, IPFRing, LibPcap, IPFW, AF_PACKET, PF_RING. Possibilità di analizzare file già salvati in formato PCAP;
- Elevate prestazioni, capacità di gestire flussi su hardware ordinario nell'ordine di decine di gigabit al secondo.
- Meccanismo di corrispondenza ad alte prestazioni per grandi set di indirizzi IP. Supporto per l'estrazione di contenuti tramite maschere e espressioni regolari. Estrazione di file dal traffico, inclusa la loro identificazione per nome, tipo o hash.
- Possibilità di utilizzare variabili nelle regole: è possibile salvare informazioni dal flusso e utilizzarle in regole successive;
- Utilizzo del formato YAML nei file di configurazione, combinando chiarezza e facilità di elaborazione da parte delle macchine;
- Supporto completo IPv6;
- Motore integrato per la deframmentazione automatica e la ricostruzione dei pacchetti, consentendo un'elaborazione corretta dei flussi, indipendentemente dall'ordine di ricezione dei pacchetti;
- Supporto per protocolli di tunneling: Teredo, IP-IP, IP6-IP4, IP4-IP6, GRE;
- Supporto per la decodifica dei pacchetti: IPv4, IPv6, TCP, UDP, SCTP, ICMPv4, ICMPv6, GRE, Ethernet, PPP, ARP, PPPoE, Raw, SLL, VLAN;
- Modalità di registrazione delle chiavi e dei certificati utilizzati nelle connessioni basate su TLS;
- Possibilità di scrivere script in linguaggio Lua per un'analisi avanzata del traffico e per implementare funzionalità aggiuntive che le regole standard non riescono a soddisfare.
Fonte: opennet.ru
