lesson_18.md 5.3 KB

Piattaforme e Software per la rete - lezione 18

Giacomo Verticale

7 June 2016

Intrusion Detection Systems

Un IDS é un middlebox che si occupa di rilevare la presenza di intrusioni o si assicura del rispetto delle policy di sicurezza In particolare i Network Intrusion Detection Systems effettuano deep packet inspection Cioé analizzano il payload dei pacchetti

É difficile effettuare il match a livello applicativo perché spesso i protocolli sono di tipo testuale, come HTTP

Un Host Intrusion Detection System invece si occupano di monitorare gli ingressi e le uscite di un singolo host.

A differenza del matching sui campi del pacchetto, il deep packet inspection ha un rischio concredo di falsi positivi, ad esempio cercando una stringa HTTP nel pacchetto, potremmo rilevare anche delle email contenenti dei link.

In genere i sistemi di ricerca, piú estendono il campo della loro ricerca e sono aggressivi, e piú c'é il rischio che trovino dei falsi positivi. Per questo di solito Gli IDS si limitano a lanciare degli allarmi e lasciare ad un sistema di management lo svolgimento dell'azione.

I sistemi di deep packet inspection sono utilizzati anche dai provider per capire che frazione del traffico é di natura VoIP, in modo da poter favoreggiare o ostacolare il traffico per favorire la telefonia tradizionale (discorso su net neutrality)

Gli IDS si dividono in:

  • Signature Detection hanno un database che permette di identificare particolari pacchetti tramite una signature, tuttavia possono identificare solo problemi noti (es. ransomware)
  • Anomaly Detection definiscono una situazione standard e segnalano un allarme ogni volta che si esce da una situazione normale, questi sistemi possono prevenire anche attacchi non documentati.

Un IDS é piú lento rispetto ad un firewall, perché invece che effettuare match in posizioni note, deve ricercare delle stringhe nel payload. Un firewall viene posizionato ai bordi della rete, per identificare problemi verso l'esterno, mentre gli IDS vengono posti all'interno della rete per monitorare il traffico all'interno.

Cisco sta proponendo dei sistemi che integrano un firewall che agisce fino al livello applicativo, con un IDS che é in grado di riconoscere le signature dei pacchetti.

Per costruire le signature sono necessari esempi di intrusioni per poter costruire un database. Usate per questo sono le honeynets: reti che hanno l'unico scopo di attirare attacchi per poterli catalogare, un principio simile é usato nei sistemi antispam, in cui viene creato un indirizzo email che non corrisponde a nessuna persona fisica, e tutte le mail che riceve sono per definizione spam.

Cercare nei pacchetti

Di solito gli IDS effettuano ricerca di stringhe nel payload, ma possono utilizzare anche delle regular expression, anche se il costo computazionale sale.

Spesso il payload di una sessione TCP é diviso tra diversi pacchetti, quindi puó essere effettuata una operazione di preprocessing che consiste nel raccogliere tutti i payload di una stessa connessione TCP.

Un attaccante puó dividere il payload di attacco in tanti pacchetti piú piccoli, per fare in modo che IDS che analizzano pacchetti singoli non riescano a rilevare l'attacco

Un prodotto commerciale diffuso per DPI é SNORT che é un software commerciale di cui l'engine é open source, il database degli attacchi é disponibile a pagamento per le versioni piú aggiornate e gratuitamente per le versioni piú vecchie.

SNORT effettua un match con un set di regole BGP Una volta che viene effettuato un match, viene lanciato un allarme e il pacchetto viene inviato ad un supervisore o ad un sistema di management centralizzato che gestisce piú IDS, oppure ad un supervisore che controllerá il pacchetto.

I protocolli si dividono in binari e testuali, nei protocolli OSI sono sempre stati usati protocolli binari, mentre i protocolli testuali sono stati scelti da IETF per facilitá di debug. Ultimamente c'é una tendenza a usare protocolli binari perché usano meno spazio e bastano programmi piú semplici per leggerli, ad esempio HTTP:2.0 é un protocollo binario.

Questo vantaggio é anche dovuto alla diffusione di sistemi embedded e di sensori che non hanno la possibilitá di far girare grossi programmi. Inoltre la possibilitá di debugging testuale é impedita dall'uso di protocolli crittografati, quindi c'é un motivo in meno per usare protocolli testuali.

Nel caso di protocolli cifrati di solito viene terminata la cifratura nel sistema di DPI e la connessione viene continuata il chiaro verso il destinatario o viene cifrata con una chiave diversa.

Azioni possibili

  • Alert
  • Log
  • Drop
  • Reject

Regole

Nelle regole é possibile anche effettuare delle negazioni, questo comporta un costo computazionale piú alto col vantaggio di ottenere un ruleset piú compatto.

La parte piú interessante di queste regole é l'analisi del payload, ad esempio il campo content permette di cercare una stringa nel payload, tuttavia l'algoritmo per fare questo ha costo lineare con la lunghezza del payload, e al massimo é possibile confrontare piú match allo stesso momento con un costo lineare non grosso, (sublineare per il numero di stringhe da cercare usando i trie).

Per evitare costo computazionale inutile, i pacchetti delle connessioni che sono state accettate non vengono piú analizzati.