Introduzione

Anche se i primi tipi di Network Intrusion Detection Systems risalgono ai primi anni ’80, il concetto di IDS è decollato quando Martin Roesch ha creato il suo sistema IDS libero e open source SNORT. Grazie al suo design leggero e alle sue opzioni di implementazione flessibili, la base di utenti di Snort è cresciuta rapidamente negli anni successivi (fino a 400.000 attualmente).

Nel 2001, Martin Roesch ha fondato la società Sourcefire (acquisita da Cisco nel 2013) per un prodotto IDS commerciale basato su SNORT. La versione originale gratuita e open-source di SNORT è rimasta disponibile, tuttavia, ed è ancora ampiamente utilizzata nelle reti di tutto il mondo. Nel frattempo, alcuni concorrenti hanno guadagnato terreno nel regno degli IDS open source, in particolare Suricata IDS.

Quali sono le principali differenze tra loro, e cosa possiamo aspettarci in futuro da SNORT?

Regole

Una soluzione IDS è buona solo quanto le regole disponibili che può applicare al traffico monitorato. Snort ha sempre avuto un sacco di supporto da parte della comunità, e questo ha portato ad un sostanziale set di regole, aggiornato regolarmente. La sintassi delle regole è abbastanza semplice, e la struttura del programma permette a chiunque di implementare regole personalizzate nel proprio IDS o di condividerle con la comunità.

Alcuni soggetti commerciali sviluppano anche regole SNORT, che possono essere acquistate per un canone mensile o annuale. Alcuni esempi sono le regole SO/VRT di Talos (rilasciate gratuitamente dopo un mese) e CrowdStrikes Threat Intelligence Services.

Suricata può utilizzare le stesse regole di SNORT. Molte, ma non tutte, le regole VRT funzionano ancora. Suricata ha il proprio set di regole, inizialmente rilasciato agli abbonati paganti, ma liberamente disponibile dopo 30-60 giorni: Minacce emergenti. Queste regole di Suricata utilizzano maggiormente le caratteristiche aggiuntive che Suricata ha da offrire, come il rilevamento del protocollo port-agnostic e il rilevamento automatico dei file e l’estrazione dei file.

Rilevamento delle applicazioni

Dai primi giorni di esistenza di Snort, è stato detto che Snort non è “application-aware”. Si limita a guardare il traffico che corrisponde alle sue regole e intraprende un’azione (allarme, drop e così via) quando c’è una corrispondenza. I preprocessori aiutano a modellare il traffico in un formato utilizzabile per le regole da applicare: per esempio, eseguendo la decompressione e la decodifica, ma non c’era bisogno che Snort capisse quale applicazione avesse generato i dati.

I requisiti aziendali sono cambiati nel tempo e per adattarsi al mercato, Snort ha lanciato OpenAppID nella sua versione 2.9.7 nel 2014. OpenAppID permette il rilevamento di applicazioni tramite i cosiddetti Layer 7 Detectors. Anche se l’esistenza di un’applicazione nota non è sempre un incidente di sicurezza diretto (l’uso di Dropbox per esempio), permette di capire meglio ciò che esiste all’interno della rete. Non solo è possibile trovare applicazioni precedentemente sconosciute, ma il loro traffico può anche essere abbandonato o avvisato collegando un AppID a una regola IDS/IPS SNORT tradizionale.

Suricata funziona in modo leggermente diverso in questo spazio. Supporta le regole di rilevamento Application-Layer e può, per esempio, identificare il traffico HTTP o SSH su porte non standard in base ai protocolli. Applicherà anche le impostazioni di registro specifiche del protocollo a questi rilevamenti.

Non c’è davvero un prodotto migliore o peggiore in questo spazio, dipende davvero da ciò che l’azienda sta cercando, e quale sistema riempie meglio le lacune di rilevamento. Poiché entrambi sono completamente open-source, la creazione di un ambiente di prova è relativamente rapida e poco costosa.

Multithreading

Uno dei principali vantaggi di Suricata è che è stato sviluppato molto più recentemente di Snort. Questo significa che ha molte più caratteristiche a bordo che sono praticamente imperdibili al giorno d’oggi. Una di queste caratteristiche è il supporto per il multithreading.

L’aumento del traffico di rete nel corso degli anni è stato seguito da vicino dalle richieste di elaborazione sui dispositivi IDS (misurate in pacchetti al secondo). Fortunatamente, Suricata supporta il multithreading out of the box. Snort, tuttavia, non supporta il multithreading. Non importa quanti core contiene una CPU, solo un singolo core o thread sarà utilizzato da Snort.

C’è un workaround piuttosto complicato: eseguire più istanze SNORT a thread singolo, tutte alimentate dallo stesso log. I costi aggiuntivi per gestire questo processo (AutoFP) e l’alto costo dell’hardware, tuttavia, fanno sì che questa configurazione si trovi raramente in ambienti di produzione. SNORT3 supporterà il multithreading, ma è ancora in fase Alpha e funziona come Snort++. Naturalmente, non è consigliabile utilizzare un prodotto in fase Alpha in un ambiente di produzione. Il multithreading è senza dubbio un forte argomento per considerare Suricata rispetto a Snort.

Estrazione di file

Suricata supporta l’estrazione di file. Si tratta di una caratteristica incredibilmente utile che permette l’estrazione automatica di file selezionati una volta che una regola contenente l’opzione “filestore” viene attivata. È, per esempio, possibile estrarre tutti i file .pdf o tutti i file .png a pixel singolo e memorizzarli in una cartella preconfigurata per ulteriori analisi manuali, ricerche di VirusTotal o anche sandboxing automatico.

Alternative

Mentre Snort e Suricata sono certamente i più popolari sistemi di rilevamento delle intrusioni open-source, ci sono alcune alternative. La già citata versione aggiornata di SNORT3 sembra molto promettente, con il suo supporto per il multithreading, l’identificazione dei servizi e un linguaggio di regole più semplice. Questo è stato in sviluppo per molti anni. Tuttavia, lo stadio Alpha risale al 2014, e una data di rilascio per una versione di produzione non è ancora stata fissata.

Ci sono anche alternative alle soluzioni IDS/IPS tradizionali, ma queste possono a volte funzionare in modo leggermente diverso. Il Bro Network Security Monitor (ora noto come Zeek), per esempio, è più un sistema di rilevamento delle anomalie. Dove Snort e Suricata lavorano con firme IDS tradizionali, Bro/Zeek utilizza script per analizzare il traffico.

Un vantaggio significativo di Bro/Zeek è che questi script consentono anche flussi di lavoro altamente automatizzati tra diversi sistemi, un approccio che permette decisioni molto più granulari rispetto alle vecchie azioni pass o drop. La sua configurazione può diventare abbastanza complicata, tuttavia.

Conclusione

Ci sono diverse buone opzioni IDS open-source là fuori. A causa delle loro differenze, tuttavia, non tutte le soluzioni funzioneranno per ogni ambiente. La selezione dei migliori prodotti dovrebbe essere basata su quali altri prodotti di sicurezza, potenzialmente sovrapponibili, sono già in atto, che tipo di traffico attraversa la rete, la quantità di traffico e il set di abilità del personale IT disponibile.

Si può scegliere il prodotto migliore.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.