INTRUSION DETECTION SYSTEM Sicurezza - anno 2008/2009 Cornacchia Gabriele – Martuzzi Marco Gruppo 10 SICUREZZA & INTERNET Sempre più utenti usano il proprio personal computer per ottenere accesso alle risorse offerte da internet. Il protocollo internet non è stato creato per essere nel suo insieme sicuro. La sicurezza quindi è un grande problema, che richiede tecnologie: preventive; di rilevamento; di reazione. QUANDO UN DATO PUO’ ESSERE CONSIDERATO SICURO? Un dato per essere definito sicuro deve possedere le seguenti caratteristiche: Confidentiality (confidenzialità): tutelare la segretezza delle informazioni Integrity (integrità): tutelare l'integrità delle informazioni Availability (disponibilità): tutelare l'efficienza del sistema Reserve (riservatezza): tutelare la trasmissione per evitare l’intercettazione da parte di terzi INTRUSIONE Un intrusione può essere definita come qualsiasi insieme di azioni che tentano di compromettere l'integrità, la confidenzialità o la reperibilità di una risorsa. Tutte le intrusioni sono definite relativamente alla politica di sicurezza, che definisce cosa è o cosa non è permesso in un sistema; CLASSIFICAZIONE DELLE INTRUSIONI Classificazione delle intrusioni, a seconda della loro provenienza: External Penetrator: colui che accede ad un sistema al quale non dovrebbe avere accesso; Masquerader: colui che riesce ad accedere ad un sistema autenticandosi come utente autorizzato; Misfeasor (malintenzionato): utente abilitato che abusa dei suoi privilegi attaccando la sicurezza del sistema; Clandestine user: colui che riesce ad accedere al sistema autenticandosi come amministratore del sistema. VIOLAZIONE DELLA SICUREZZA (1/2) Esistono altri tipi di violazione di sicurezza: Tentate intrusioni: qualcuno che cerca di introdursi in un sistema può generare un alto tasso di password errate per un determinato account; Fuoriuscita di dati da utenti legittimi: Un utente che tenta di rubare dati sensibili può loggarsi nel sistema ad orari inusuali o stampare in stampanti remote non normalmente usate; Inferenza : un utente cerca di ottenere dati non autorizzati da un database attraverso aggregazione e inferenza; VIOLAZIONE DELLA SICUREZZA (2/2) Cavalli di troia: la presenza di un cavallo di troia può far cambiare il comportamento del programma in termini di uso di CPU e I/O; Virus: la presenza di un virus può causare in incremento nella sovrascrittura di programmi eseguibili o salvataggio in memoria di programmi; Denial Of Service: L'intruso cerca di portare il funzionamento di un sistema informatico al limite delle prestazioni, fino a renderlo non più in grado di erogare il servizio. LE FASI DELL’ATTACCO Hiding (Mascheramento): l’attacker cerca di “cammuffarsi”, nascondendo la propria reale ubicazione, per evitare di essere tracciato e identificato; Information Gathering (Raccolta di informazioni): l’attacker cerca di raccogliere il maggior numero di informazioni pubbliche sul bersaglio; System Penetration (Intrusione): l’attacker sferra l’attacco vero e proprio; Cleaning (Pulizia): l’attacker procede con la cancellazione delle traccie lasciate, per evitare di essere scoperto. INTRUSION DETECTION SYSTEM I.D.S. o sistema di rilevamento delle intrusioni è uno strumento, software o hardware, che automatizza il processo di monitoraggio impiegato per individuare eventi che rappresentano intrusioni non autorizzate ai computer oppure alle reti locali. UN PO’ DI STORIA 1980: James Anderson propose alla US Air Force un metodo per processare gli audit trails al fine di rilevare attività inusuali; 1987: Dorothy Denning presentò il primo modello astratto di IDS da cui derivò in seguito IDES; 1991: L’università della California introdusse il concetto di DIDS; 1998: R. Anderson e A. Khattak introdussero tecniche di Information Retrieval agli IDS. COME OPERA UN IDS Un IDS funziona intercettando tutto il traffico, analizzando pacchetto per pacchetto, un particolare segmento di rete e scatenando un allarme per l'amministratore di rete in caso di matching positivo di una signature a seguito dell'individuazione di un pacchetto malevolo. IDS VS FIREWALL Un IDS può essere considerato come un antifurto, cioè cerca di rilevarle eventuali intrusioni Un firewall può essere considerato come una porta blindata, serve bloccare le eventuali intrusioni IDS PERFETTO Un IDS perfetto sarebbe quello che riesce ad individuare tutte le reali intrusioni, perchè ci si troverà di fronte a: Falsi positivi: IDS rileva un'anomalia, ma non è successo niente Falsi negativi: IDS non rileva un'intrusione avvenuta You also want to be able sleep at night without your IDS constantly paging you and your security staff How much noise can you tolerate? CARATTERISTICHE PER UN BUON IDS (1/2) deve funzionare senza sosta e senza la supervisione umana; non deve essere una black box (scatola nera); deve essere fault tolerant; deve resistere a sabotaggi; CARATTERISTICHE PER UN BUON IDS (2/2) deve imporre il minimo overhead del sistema; deve osservare le anomalie rispetto alla normale routine di azioni svolte sul sistema; deve essere adattabile ai vari tipi di sistemi; deve funzionare anche se si modificano o si aggiungono nuove applicazioni al sistema. CLASSIFICAZIONE IDS - Anomaly & Policy Anomaly detection (o euristici): tutte le volte che l’IDS registra azioni diverse dal “normale”, segnala all’amministratore l’avvenuta intrusione. Pro: il programma impara da solo quali sono le azioni “normali”; facile da implementare; si affina con l’aumentare dei dati. Contro: potrebbe considerare “normali”, azioni pericolose, solo perché avvengono di frequente; potrebbe portare ad un blocco a causa dell’elevato numero di falsi positivi. CLASSIFICAZIONE IDS - Anomaly & Policy Policy detection (pattern matching): è basato su un database di azioni innocue o dannose o di regola, per il rilevamento degli attacchi fornite al sistema dall'amministratore. Pro: minimizza i casi di falsi positivi, se il database è aggiornato di frequente. Contro: maggior dispendio di risorse umane per l’aggiornamento del database; la negligenza dell’amministratore porterebbe ad una insicurezza globale del sistema. CLASSIFICAZIONE IDS - NIDS & HIDS NIDS: Pro: real time; costi minori dei HIDS; non dipendono dalle architetture e dai sistemi operativi, perchè si basano sui protocolli di rete. Contro: il traffico è cifrato rende difficile il compito ai NIDS. HIDS: Pro: utili contro attacchi di tipo Masquerader. Contro: non sono real time, si corre il rischio che l'attacco venga scoperto solo dopo che ha causato danni o disservizi. DISTRIBUTED INTRUSION DETECTION SYSTEM Un IDS distribuito, o DIDS, è una combinazione di sensori NIDS e sensori HIDS, distribuiti attraverso la rete aziendale, che riportano le informazioni a un sistema centrale di coordinamento. I log degli attacchi sono generati sui sensori e trasferiti, periodicamente o continuamente, alla stazione server centrale dove possono essere archiviati in un database Ogni sensore può avere un set di regole personalizzato per le necessità della rete o dell'host monitorati dai sensori. DIDS WIRELESS INTRUSION DETECTION SYSTEM I tipi di eventi monitorati da un Wireless IDS sono: uso non autorizzato di apparati wireless; stazioni o “access point” che usano protocolli non sicuri; pattern di traffico anomali; uso di war driving tools, che sono scanner utilizzati dagli attaccanti per rilevare reti wireless “aperte”; attacchi di tipo Denial Of Service; attacchi di spoofing; I sensori Wireless possono essere sia fissi, ad esempio su un PC desktop con interfaccia wireless, che mobili, ad esempio un portatile con integrato un Wireless IDS. WIDS INTRUSION DETECTION EXPERT SYSTEM – IDES Ideato da Dorothy E. Denning nel 1987 Modello per l’intrusion detection indipendente da: qualsiasi particolare sistema, applicazione, vulnerabilità di sistema o tipo di intrusione. Fornisce una struttura generale per un sistema esperto per l'intrusion detection. Idea base: monitorare le operazioni standard sul nostro sistema di riferimento (login, esecuzione di programmi e comandi, accessi a file e periferiche) cercando le anomalie nel loro utilizzo. IDES - Componenti Soggetti: utenti di un sistema, un processo, o il sistema stesso. Oggetti: risorse controllate dai file di sistema, comandi o periferiche. Audit record: generati dal sistema in risposta ad azioni svolte o tentate da soggetti su determinati oggetti. Profili: struttura che caratterizza il comportamento di soggetti in termini di metriche statistiche e modelli di una attività osservata, per un dato oggetto (o un insieme di oggetti). Anomaly record: generati quando viene rilevato un comportamento anomalo Regole di attività: azioni intraprese quando viene generato un audit record o un anomaly record o quando certe condizioni sono verificate. IDES → Profili → Metriche Una metrica è una variabile x che rappresenta una misura quantitativa accumulata in un certo periodo di tempo: contatori di eventi: x rappresenta il numero di audit records che soddisfano certe proprietà e che si verificano in un certo periodo di tempo. (Es. numero di logins per ora) intervalli temporali: x indica l'intervallo di tempo tra due eventi correlati (es. tempo intercorso tra due successivi login in un account) misuratori di risorse: x è la quantità di una certa risorsa consumata da certe azioni in un periodo di tempo. (es. quantità di tempo calcolo consumato da un certo programma in esecuzione). IDES → Profili → Modelli statistici Data una metrica per una variabile x e n osservazioni xi i=1..n lo scopo di un modello statistico di x è di determinare se una nuova osservazione xn+1 è anomala rispetto alle osservazioni precedenti. 1. 2. 3. Modello operazionale: viene comparata la nuova osservazione di x con limiti fissati (attraverso osservazioni a priori). (es. ripetuto numero di password failures in un breve periodo) Modello della media e deviazione standard: una nuova osservazione xn+1 è definita anomala se ricade al di fuori di un certo intervallo di confidenza dai valori della media e della deviazione standard conosciuti per quella variabile Modello multivariato : come il modello (2) ma combina più metriche contemporaneamente. IDES - Funzionamento Quindi un profilo contiene informazioni che identificano il modello statistico e la metrica adottati per una data variabile. Una volta che viene registrata una nuova osservazione (il sistema genera un nuovo audit record), viene aggiornata la distribuzione della variabile coinvolta e viene controllata se risulta essere anomala oppure no controllando il valore della variabile in base al modello statistico utilizzato. I falsi allarmi possono essere controllati da un'appropriata scelta del modello statistico per le attività che causano tali allarmi e da un'appropriata scelta dei profili. IDES - Esempi ATTIVITA' DI LOGIN soggetto=utente, oggetto=terminale, rete, host remoto etc action=login/logout Profilo = Password Fails: contatore che misura il numero di volte che un utente sbaglia la password a tempo di login utilizzando il modello operazionale. Utile per scovare le tentate intrusioni ESECUZIONE DI PROGRAMMI O COMANDI soggetto= utente,oggetto=nome del programma azione=esegui Profilo = Program CPU: misuratore di risorse di cpu usata da una singola esecuzione di programma. Usando il modello della media e della deviazione standard risulta idonea per scovare cavalli di troia o virus nel programma NETWORK INTRUSION DETECTION SYSTEM Composti da uno o piu sensori dislocati sulla rete, che comunicano con un server centralizzato, che in genere si appoggia ad un Database; Solitamente sono collegati ad uno switch tramite una spanning-mirror, che è una porta su cui viene copiato tutto il traffico; non dipendono dalle architetture e dai sistemi operativi; sono real time. COME FUNZIONANO? Monitorano il traffico di rete mediante sniffing dei pacchetti alla ricerca di firme di attacchi noti, oppure alla ricerca di traffico statisticamente anomalo. I pacchetti prelevati vengono passati ad un detection engine che decide se è in presenza di un tentativo di intrusione. Non bloccano il flusso di pacchetti. Allertano gli amministratori di sistema quando potenziale traffico ostile viene rilevato. LOGGING EVENTI Accurata azione di logging degli eventi e delle attività registrandone: la data e l’ora; l’ID di sessione (ad esempio, un numero consecutivo assegnato ad ogni nuova connessione TCP); il tipo di evento; il grado di pericolosità dell'evento; l’IP e porta sorgente e destinazione, e il protocollo di trasporto; il numero di byte trasmessi su quella connessione; i dati appartenenti al payload, ad esempio codici HTTP di request e response; NIDS - Attacchi rilevati Fra le attività anomale che possono presentarsi e venire rilevate da un NIDS vi sono: accessi non autorizzati; propagazione di software malevolo; acquisizione abusiva di privilegi appartenenti a soggetti autorizzati; Denial of Service. buffer overflow, format string attack; port scanning, attacchi di SYN IP spoofing; presenza di backdoor. NIDS - Limitazioni Non possono rilevare attacchi che sfrutta traffico di rete crittografato (VPN, HTTPS, SSH); impossibilità di controllare tutti i pacchetti se il traffico di rete è molto pesante; suscettibili a vari tipi di attacchi: DDos (distributed denial of service), 0-day attack. SNORT E’ un network based IDS: Realtime; lightweight; risposta passiva alle intrusioni; ottima accuratezza nel rilevamento delle intrusioni che sfruttano vulnerabilita note. struttura modulare; portabile; licenza GNU GPL. SNORT - Componenti Una serie di decoder scompongono i pacchetti ai vari strati (data link, IP, TCP). I preprocessor si occupano di seguire lo stato della connessione e di riconoscere eventuali anomalie in tale ambito. Il detection engine verifica circa 2.500 regole generali di vario tipo, utilizzando un algoritmo di ricerca multipattern; Gli output plug-in permettono di configurare i log e gli allarmi; HOST INTRUSION DETECTION SYSTEM Un HIDS consiste in un componente che analizza l'host alla ricerca di intrusioni. Le intrusioni vengono individuate analizzando: la struttura dei file di log del sistema; le system call; le modifiche subite dal filesystem. Principio di base Se l'attaccante riesce a forzare il sistema deve lasciare traccia del suo passaggio anche perché probabilmente l'attaccante installerà nel computer uno o più programmi deputati alla raccolta di informazioni o alla gestione remota della macchina. L'installazione e l'attivazione di questi programmi modificano lo stato interno della macchina e un buon HIDS dovrebbe essere in grado di rilevare un'intrusione. HIDS - Compiti Controllare i processi in esecuzione per rilevare programmi modificati; rilevamento di buffer overflow; rilevare tentativi di attacco al sistema; controllare l’integrità del file system; controllare le modifiche ai permessi e ai proprietari dei file; controllare l’utilizzo delle risorse da parte dei processi in esecuzione. Funzionamento Durante l'installazione e ad ogni modifica autorizzata di oggetti questi vengono analizzati e vengono memorizzati gli attributi e viene calcolato il checksum del contenuto. L’HIDS controlla regolarmente gli oggetti confrontandoli con quelli salvati nel proprio database e segnala le eventuali anomalie (via mail, file di log, finestre a video) . L’analisi di tutti gli elementi comporterebbe un rallentamento inaccettabile del sistema. Per questo motivo, gli oggetti considerati meno critici vengono sottoposti a controlli più veloci che non usano il checksum ma controllano solo gli attributi. HIDS - Auto protezione Un HIDS utilizzerà normalmente un insieme di tecniche aggiuntive per rivelare violazioni nel proprio database degli oggetti e per rendere queste violazioni difficili. Soluzioni: Protezione crittografica del database; memorizzare il database dell'HIDS in un supporto non cancellabile come un CD-ROM (solo se modifiche infrequenti); memorizzare il database in un'altra macchina separata da quelle da controllare. TRIPWIRE Tripwire fu inizialmente sviluppato nel 1992 da Gene H. Kim e Eugene H. Spafford della “Purdue University“, come progetto di HIDS. Nel 1998 fu fondata la Tripwire Corporation che riscrisse quasi completamente il codice e trasformo il programma in un progetto commerciale. Dal 2002 c'e anche una versione free del progetto destinata al mondo Linux. TRIPWIRE - Meccanismo base In generale tutte le versioni del software Tripwire utilizzano una stategia simile, si servono di un insieme di file per memorizzare delle informazioni necessarie per verificare eventuali future manomissioni. Questi file vengono anche chiamati componenti. Essi contengono determinate informazioni quali: il modo in cui deve essere controllato il sistema; le chiavi (necessarie per la firma digitale e la cifratura di dati sensibili) ; altre informazioni tra le quali le istantanee. TRIPWIRE - Componenti 1/2 Il file di policy: contiene le regole che specificano come controllare un determinato oggetto di sistema e descrivono quali modifiche all'oggetto devono essere notificate e quali possono essere ignorate. Il database dei file di sistema: contiene l’istantanea del sistema, protetta da firma digitale. I file di report: risultati del controllo (integrity check) tra l’istantanea attuale e l’istantanea memorizzata. TRIPWIRE - Componenti 2/2 Il file di configurazione: memorizza informazioni specifiche del sistema. I file site key e file local key: contengono entrambi una coppia di chiavi ( chiave pubblica/chiave privata) che servono per proteggere le componenti di Tripwire. Le chiavi private sono protette con delle passphrases inserite dall'utente. l file site key è usato per proteggere i file di policy e di configurazione, mentre il local key file è usato per proteggere il database e opzionalmente i file di report. PERCHE’ E’ SICURO TRIPWIRE ? Firma digitale: garantisce l’autenticità delle istantanee memorizzate. Cifratura simmetrica: (triplo-DES) per la memorizzazione cifrata delle chiavi site-key e localkey. Funzioni hash: per verificare se è stata effettuata qualche modifica a file. OLTRE GLI IDS Nuova generazione di IDS, gli Intrusion Prevention System – IPS, i quali rilevato un tentativo di intrusione illecito, lo bloccano sul nascere. L'ultima frontiera degli IDS sono le piattaforme Unified Threat Management – UTM dette anche Next Generations Firewall che sono prodotti completamente differenti, in quanto apportano molteplici capacità di sicurezza come firewall, VPN, antivirus, filtri Web, IPS e anti-spam. RIFERIMENTI Matteo Selmi, Enrico Tassi, “Intrusion Detection Systems Snort e Tripwire”, 27 settembre 2003 Antonio Sortino, “I sistemi antiintrusione nelle reti aziendali”, 2007 Gabriella Xilurakis, “Sistemi di Rilevamento delle Intrusioni.”, 2007 Ozalp Babaoglu, “IDS: Intrusion Detection Systems”, 2007 Igor Falcomatà, “I sistemi di Intrusion Detection” Martin Roesch, “SNORT – Lightweight intrusion detection for networks”, 1999 Doroty E.Denning, “An intrusion detection model”, 1987 NIST SP 800-94, “Guide to Intrusion Detection and Prevention Systems (IDPS)”, 2007 RIFERIMENTI http://en.wikipedia.org/wiki/Intrusion_detection_system http://en.wikipedia.org/wiki/Network_intrusion_detection_system http://en.wikipedia.org/wiki/Host-based_intrusion_detection_system http://www.dia.unisa.it/~ads/corso-security/www/CORSO0203/tripwire/tripwire.htm http://www.snort.org http://www.tripwire.com