You are on page 1of 33

Intrusion Detection System

Giampaolo Fresi Roglia gianz@security.dico.unimi.it

Sommario
Introduzione Richiami alla sicurezza Informatica Intrusion Detection Systems Strategie di monitoraggio Localizzazione della sorgente delle informazioni Modalit` temporale di analisi a Tipologie di analisi Misuse detection Anomaly detection Elusione di un Network Intrusion Detection System Problematiche dell’Intrusion Detection

Paradigma C.I.D.

Confidenzialit` a
Permettere accesso in lettura ai soli utenti autorizzati

Integrit` a
Permettere accesso in scrittura ai soli utenti autorizzati

Disponibilit` a
Garantire accesso in lettura e scrittura agli utenti autorizzati

Conformit` al paradigma C.I.D. a

Bont` del software a
Accurata progettazione Testing del software

Limitazione degli accessi
Politiche di sicurezza Apparati di enforcement

Auditing delle politiche
Sistemi di rilevamento delle intrusioni

Intrusion Detection

La prevenzione degli attacchi informatici non ` sufficiente: e
Troppo oneroso prevenire ogni possibile tipologia attacco Troppe misure preventive potrebbero limitare l’usabilit` dei sistemi a Le misure preventive potrebbero rivelarsi inutili

Le principali categorie di difesa sono:
Prevenzione Rilevazione Intervento

Intrusion Detection rappresenta il processo di monitoraggio dei sistemi informatici e delle infrastrutture di comunicazione per individuare intrusioni ed abusi

Utilit` dei sistemi di Intrusion Detection a

Rilevazione di attacchi informatici e degli attaccanti Rilevazione di abusi (anche da parte di utenti legittimi) Limitazione dei danni (se esiste un meccanismo di intervento) Ampliamento dell’esperienza in modo da migliorare la qualit` a delle misure preventive Deterrente contro attacchi ed abusi

Tipologie degli IDS

Network based IDS (NIDS)
Sensori collocati alla periferia

Host based IDS (HIDS)
Sensori Installati nelle macchine da monitorare

Strategie di monitoraggio
Localizzazione della sorgente delle informazioni

Host-based
I dati di audit provenienti dal sistema operativo sono l’unico modo per raccogliere informazioni in merito a quello che sta succedendo all’interno di un sistema:
System call chiamate File letti, modificati e creati Comandi esterni eseguiti Input ed output

Le informazioni locali al sistema sono le pi` vulnerabili: in caso di u attacco portato a termine con successo possono essere alterate o eliminate L’attivit` del sistema devono essere analizzate in tempo reale prima a che l’attaccante possa sovvertire il sistema e manomettere queste informazioni

Strategie di monitoraggio
Localizzazione della sorgente delle informazioni

Network-based
I dati di audit corrispondo a tutto il traffico di rete visibile Sotto particolari condizioni sono in grado di monitorare anche un’intera sottorete L’analisi ` passiva, ossia non c’` alcuna interazione con il normale e e flusso delle informazioni:
Basso impatto nei confronti di strutture di rete gi` esistenti a Possono essere configurati in modo da risultare invisibili

L’analisi del traffico pu` essere sia stateless che stateful o

Strategie di monitoraggio
Localizzazione della sorgente delle informazioni

Application-based
Informazioni raccolte da una particolare applicazione (es. server web) Viene monitorato l’uso da parte degli utenti dell’applicazione:
Cronologia degli accessi Tipologia degli accessi Quantit` degli accessi a Frequenza degli accessi

Si basano su informazioni tratte da fonti (es. log) generalmente non dotate di particolari protezioni

Strategie di monitoraggio
Modalit` temporale di analisi a

Analisi online
analisi in tempo reale degli eventi che coinvolgono i sistemi monitorati le anomalie vengono notificate in tempo reale potrebbe essere possibile impedire l’attacco o l’abuso (Intrusion Prevention)

Analisi offline
analisi successiva al verificarsi degli eventi non ` possibile identificare un attacco mentre viene compiuto, ma e solo in un momento successivo

Accuratezza dell’analisi

Falsi positivi: un evento non maligno viene erroneamente classificato come maligno (fp) Falsi negativi: un evento maligno viene erroneamente classificato come non maligno (fn) Nell’Intrusion Detection System ottimale: fp = fn = 0 Troppi falsi positivi rendono inutile l’Intrusion Detection System perch´ la mole di allarmi generati diventa ingestibile e I falsi negativi contribuiscono ad un false sense of security

Accuratezza dell’analisi (2)

Veri positivi: un evento maligno viene classificato come tale (vp) Veri negativi: un evento non maligno viene ignorato (vn) Detection rate: dr = vp/(vp + fn) False positive rate: fpr = fp/(fp + vn) Il traffico totale pu` essere espresso come: o Tt = vp + vn + fp + fn L’indicatore di efficacia di un IDS dipende dall’incidenza degli attacchi nel traffico: (vp + fn)/Tt

Accuratezza dell’analisi Esempio:

Traffico totale: Tt = 10000 connessioni Attacchi stimati: 1% del totale, ossia 100 connessioni Traffico non maligno: 99% del totale, ossia 9900 connessioni Detection: 80% (80 attacchi rilevati) Falsi positivi: 1% (99 connessioni rilevate come attacchi) Falsi positivi: 55% degli allarmi totali.

Tipologie di analisi

Le metodologie utilizzate per analizzare i dati raccolti sono suddivise in due categorie:
Misuse detection: ricerca di qualcosa definito maligno attraverso pattern rappresentati attacchi o altre violazioni di policy gi` note. a Conoscenza a priori Anomaly detection: ricerca di qualcosa definito raro o inusuale e non riconducibile al normale comportamento del sistema. Conoscenza a posteriori

Misuse detection

Principio di base:
Gli attacchi e gli abusi possono essere descritti con dei pattern o signature Al verificarsi di un evento questo viene analizzato per determinare se contiene uno dei pattern noti

Identificazione delle signature:
Analisi delle vulnerabilit` note a Analisi degli attacchi gi` subiti in passato a

Descrizione delle signature:
Descrizione delle possibili anomalie identificate attraverso il linguaggio fornito dall’IDS

Misuse detection

Problematiche:
` E necessario conoscere a priori i potenziali attacchi L’archivio delle signature deve essere costantemente aggiornato
Rischio di falsi-negativi molto elevato

La signature deve essere scelta con la massima precisione:
Rischio di falsi positivi Signature troppo restrittive rischiano di generare falsi negativi alla minima variazione dell’attacco

Misuse detection
Alcuni esempi di signature

Dump del traffico di rete generato da Slammer
0x0000 0x0010 0x00.. 0x0070 0x00.. 0x00b0 0x00c0 0x00.. 0x00e0 0x00f0 0x0100 0x0110 0x0120 0x0130 0x01.. 0x0180 0x0190 4500 xxxx .... 0101 .... 89e5 726e .... 5f66 6873 508d 428b 42ff 81f1 .... c951 ffd6 0194 xxxx .... 0101 .... 5168 5168 .... b965 656e 45e0 1e8b 16ff 0101 .... 6681 ebca 17a0 0a0c .... 0101 .... 2e64 6f75 .... 7451 64be 508d 033d d031 0101 .... f178 0000 059a .... 0101 .... 6c6c 6e74 .... 6873 1810 45f0 558b c951 518d .... 0151 6d11 0180 .... 0101 .... 6865 6869 .... 6f63 ae42 50ff ec51 5150 45cc .... 8d45 3ed7 355d .... 0101 .... 6c33 636b .... 6b66 8d45 1650 7405 81f1 508b .... d564 0401 .... 01dc .... 3268 4368 .... b974 d450 be10 be1c 0301 45c0 .... a224 0101 .... c9b0 .... 6b65 4765 .... 6f51 ff16 10ae 10ae 049b 50ff .... E.......m.>..d. .o........5].... ............... ............... ............... ..Qh.dllhel32hke rnQhounthickChGe ............... _f.etQhsockf.toQ hsend....B.E.P.. P.E.P.E.P..P.... B....=U..Qt..... B....1.QQP...... ......Q.E.P.E.P. ...............

Misuse detection
Alcuni esempi di signature

Signature Snort per Slammer
alert udp xxx any -> xxx 1434 (msg:"MS-SQL Worm"; content:"|04|"; depth:1; content:"|81 F1 03 01 04 9B 81 F1|"; content:"sock"; content:"send"; sid:2004; rev:1;)

Signature Dragon IDS per Slammer
U D A B 1 166 1434 MS-SQL:SERVER-WORM /64/6c/6c/68/65/6c/33/32/68/6b/65/72/6e

Misuse detection
Alcuni esempi di signature

Signature ISS IDS per Slammer
SQL_SSRP_StackBo is ( udp.dst == 1434 ssrp.type == 4 ssrp.name.length > 97)

Misuse detection
Euristiche

Per diminuire la possibilit` di falsi negativi sono state realizzate a delle euristiche che permettono di individuare attacchi (la signature di ISS IDS ` un esempio) e Decodifica dei protocolli:
Ogni protocollo a livello applicazione (http, smtp, ...) viene decodificato per verificare se ci sono delle violazioni delle politiche

Abstract Payload Execution:
Si analizza il payload di un pacchetto per vedere se contiene una sequenza di byte che rappresenta del codice macchina eseguibile Se il pacchetto contiene pi` di un numero prestabilito di istruzioni u macchina viene generato un allarme

Misuse detection
Euristiche elementari

Linux Shellcode SNORT
alert ip xxx -> xxx any (msg:"Linux shellcode"; content:"|90 90 90 E8 C0 FF FF FF|/bin/sh"; sid:652; rev:9;)

Linux Unicode NOOP SNORT
alert ip xxx -> xxx any (msg:"Linux unicode NOOP"; content:"|90 00 90 00 90 00 90 00 90 00|"; sid:653; rev:9;)

Linux Setuid SNORT
alert ip xxx -> xxx any (msg:"Linux setuid"; content:"|B0 17 CD 80|; sid:650; rev:8;)

Misuse detection
Euristiche elementari

SQL Injection generico
alert ip xxx -> xxx any (msg:"SQL injection"; uricontent:"GET /"; uricontent:"’"; sid=1233; rev:9;)

Query SQL
alert ip xxx -> xxx any (msg:"SQL query"; pcre:"(select|or|union| delete|drop)"; sid=1234; rev:9;)

Anomaly detection
Principio di base:
Il sistema viene utilizzato in modi piuttosto standard:
durata dell’utilizzo quantit` e tipologia di risorse utilizzate (file, programmi, memoria, ...) a modalit` di utilizzo di queste risorse a

Assunzione:
Il comportamento normale pu` essere descritto statisticamente o ` e E necessaria una fase di training in cui si insegna al sistema qual’` il comportamento normale

Analisi:
Ogni evento viene confrontato con il profilo del comportamento normale Se l’evento non ` riconducibile al normale comportamento del e sistema viene generato un allarme

Anomaly detection

Vantaggi:
Lo scenario dell’attacco non deve essere definito a priori Questo approccio potrebbe permettere di individuare attacchi non ancora conosciuti

Problematiche:
Privacy Richiede la continua attualizzazione del profilo comportamentale normale Il rischio di falsi positivi ` molto alto (nel periodo di training e dovrebbero essere analizzati tutti i possibili casi d’uso del sistema) ` E necessario che durante il periodo di training non si verifichino eventi anomali

Anomaly detection
Attacchi via web

Correlazione dei programmi server-side invocati dal client con i parametri a loro trasmessi Il sistema deriva automaticamente il profilo dei paramteri trasmessi a questi programmi da un insieme di dati

Esempio di richiesta HTTP
xxx.xxx.xxx.xxx johndoe 29/Oct/2003:16:03:00 -0500 "GET /scripts/access.pl?user=johndoe&cred=admin" 200 2122

Insieme delle richieste: U = {u1 , u2 , ..., un } Richiesta: ui =< pathi , pinfoi , qi > Query: qi = (a1 , v1 ), (a2 , v2 ), ..., (an , vn ) Richieste specifiche ad un’applicazione: Ur = {uj | pathi = r } Per ogni Ur viene costruito un insieme di modelli

Anomaly detection
Attacchi via web, rilevazione delle anomalie

Il compito di un modello ` di assegnare una probabilit` ad una e a query o ad un suo attributo Questa probabilit` riflette la probabilit` di trovare questa query a a nel profilo costruito (nel comportamento normale) Query e attributi con una probabilit` bassa rappresentano a un’anomalia Una richiesta viene considerata anomala se considerando tutti gli attributi si supera una certa soglia prestabilita:

wm ∗ (1 − pm )
n∈M

wm rappresenta il peso associato al modello m e pm ` la e probabilit` ritornata a

Anomaly detection
Attacchi via web, modelli utilizzati

Lunghezza degli attributi delle query Distribuzione dei caratteri negli attributi delle query (es. testo italiano) Inferenza strutturale: generazione di una grammatica in grado di descrivere gli attributi Ricerca di token: il valore di alcuni attributi potrebbe essere ristretto ad un piccolo insieme di simboli Presenza o assenza di attributi: a volte molti attributi vengono inseriti automaticamente lato client, nelle richieste maligne generate manualmente molti di questi attributi sono omessi Ordinamento degli attributi

Anomaly detection
Attacchi via web, attacchi rilevati

Attacco BO Dir. Trav. XSS Input Val. Code Red

Len x x x

Dist. Car. x x x x

Struct x x x x

Token

Presenza x x

Ordine

x

x

Anomaly Detection
PAYL

Funzionamento diviso in due fasi: Fase di training:
Viene definito il profilo del traffico lecito

Fase di Detection:
Il traffico nuovo viene confrontato con il profilo Metrica di distanza Se la distanza supera una soglia scatta l’allarme

Anomaly Detection
PAYL

Fase di training
Profilo statistico del traffico lecito Vettore Feature per ogni pacchetto lungo l verso la porta p Pl,p = (µ, σ) µ ⇒ vettore medio feature σ ⇒ varianza delle feature

In fase di detection calcola:
Distanza di Mahalanobis d = mahal(F , Pl,p ) Se la distanza supera una soglia t genera l’allarme.

Elusione di un NIDS

Mutazione a livello rete:
Frammentazione

Mutazione dell’exploit:
Exploit polimorfico (ADMutate) Codifiche alternative (es. randhttpreq e libwhisker)

Problematiche dell’Intrusion Detection

Analisi dei dati:
Quantit` di eventi da analizzare a Protezione dei dati raccolti Determinare l’espressivit` dei dati (quali sono importanti e quali no) a

Elevati costi computazionali Alto numero di falsi positivi Correlazione tra fonti di dati differenti Correlazione tra gli allarmi di differenti tipologie di IDS