După doi ani de dezvoltare, organizația OISF (Open Information Security Foundation) a publicat versiunea 8.0 a sistemului de detectare și prevenire a intruziunilor în rețea Suricata, care oferă instrumente pentru inspectarea diferitelor tipuri de trafic. În configurațiile Suricata se poate utiliza baza de semnături dezvoltată de proiectul Snort, precum și seturile de reguli Emerging Threats și Emerging Threats Pro. Codul sursă al proiectului este distribuit sub licența GPLv2.
Modificări principale:
- A fost adăugată o funcționalitate experimentală pentru utilizarea Suricata ca firewall. Modurile firewall permit utilizarea dialectului limbajului de reguli pentru filtrarea pachetelor de rețea.
- Funcționalitatea de scriere a scripturilor în limbajul Lua a fost reproiectată. În codul sursă a fost integrat un interpreter Lua 5.4, care rulează într-un mediu sandbox, limitând regulile în limbajul Lua (de exemplu, din reguli nu se pot efectua scrieri în fișiere sau crea socket-uri de rețea).
- A fost oferită posibilitatea înregistrării dinamice (în timpul execuției) a pluginurilor cu parsere de protocoale, detectoare și componente pentru logare.
- Au fost realizate optimizări semnificative ale performanței, care au accelerat diverse aspecte ale funcționării motorului, inclusiv determinarea protocoalelor, încărcarea regulilor și inițializarea. Accelerarea este obținută prin predicția tranzițiilor, optimizarea funcțiilor hash, creșterea dimensiunii bufferelor pentru încărcarea datelor în format PCAP și reproiectarea sincronizării fluxurilor. De asemenea, a fost redus timpul de pornire a Suricata, utilizând caching, grupare extinsă a porturilor și un algoritm îmbunătățit pentru substituirea adreselor IP.
- Manipulatoarele LibHTP, FTP, ENIP, precum și codul pentru analiza tipurilor MIME, funcția byte_extract și decodarea base64 au fost rescrise în limbajul Rust.
- A fost adăugată suport pentru protocoalele DoH (DNS over HTTPS), LDAP, mDNS (Multicast DNS) și Websocket.
- Au fost adăugate module noi de decodare și logare pentru protocoalele ARP și POP3.
- A fost asigurată analiza traficului SDP peste SIP și SIP peste TCP.
- Capacitățile motorului de determinare a protocoalelor și construirea regulilor au fost extinse. Pentru reguli au fost implementate cuvinte cheie LDAP, MIME/EMAIL, vlan.id, DNS, SMTP, FTP, TLS, tcp.wscale, pgsql.query, from_base64, entropy, luaxform și mDNS. Au fost adăugate reguli tranzacționale care permit descrierea ambelor direcții ale tranzacției într-o singură regulă.
Caracteristici ale Suricata:
- Utilizarea unui format unificat de ieșire a rezultatelor de verificare Unified2, folosit de asemenea de proiectul Snort, ceea ce permite folosirea instrumentelor standard pentru analiză, cum ar fi barnyard2. Posibilitatea integrării cu produsele BASE, Snorby, Sguil și SQueRT. Suport pentru ieșire în format PCAP;
- Suport pentru detectarea automată a protocoalelor (IP, TCP, UDP, ICMP, HTTP, TLS, FTP, SMB etc.), permițând operarea în reguli doar pe baza tipului de protocol, fără a fi legat de numărul portului (de exemplu, blocarea traficului HTTP pe un port neobișnuit). Există decodoare pentru protocoale HTTP, SSL, TLS, SMB, SMB2, DCERPC, SMTP, FTP, LDAP și SSH;
- Sistem de analiză a traficului HTTP, utilizând biblioteca HTP, creată de autorul proiectului Mod_Security, pentru a analiza și normaliza traficul HTTP. Disponibil un modul pentru păstrarea unui log detaliat al redirecționărilor HTTP tranzitate (logul este salvat în formatul standard Apache). Suport pentru extragerea și verificarea fișierelor transmise prin protocolul HTTP, precum și pentru analiza conținutului comprimat. Posibilitatea identificării după URI, Cookie, anteturi, user-agent, corpul cererii/răspunsului;
- Suport pentru diverse interfețe pentru interceptarea traficului, inclusiv NFQueue, IPFRing, LibPcap, IPFW, AF_PACKET, PF_RING. Este posibilă analiza fișierelor deja salvate în format PCAP;
- Performanță ridicată, capacitatea de a procesa fluxuri de zeci de gigabiți pe secundă pe echipamente standard.
- Mecanism de corelare de înaltă performanță cu seturi mari de adrese IP. Suport pentru extragerea de conținut pe baza mască și expresii regulate. Extragerea fișierelor din trafic, inclusiv identificarea acestora după nume, tip sau hash.
- Posibilitatea de a folosi variabile în reguli: se poate salva informația din flux și o poate folosi ulterior în alte reguli;
- Utilizarea formatului YAML în fișierele de configurare, combinând claritatea cu ușurința de procesare automată;
- Suport complet IPv6;
- Un motor integrat pentru defragmentarea automată și reasamblarea pachetelor, care asigură o procesare corectă a fluxurilor, indiferent de ordinea de sosire a pachetelor;
- Suport pentru protocoalele de tunelare: Teredo, IP-IP, IP6-IP4, IP4-IP6, GRE;
- Suport pentru decodarea pachetelor: IPv4, IPv6, TCP, UDP, SCTP, ICMPv4, ICMPv6, GRE, Ethernet, PPP, ARP, PPPoE, Raw, SLL, VLAN;
- Mod de păstrare a logului cheilor și certificatelor care apar în conexiunile bazate pe TLS;
- Posibilitatea scrierii scripturilor în limbajul Lua pentru analiza avansată a traficului și implementarea de funcționalități suplimentare pentru care regulile standard sunt insuficiente.
Sursa: opennet.ro
