Un sistema per l'individuazione delle intrusioni informatiche (Intrusion Detection System, IDS) e` un sistema software che cerca di identificare e isolare quasi in tempo reale le intrusioni in un sistema informatico. Una classificazione piuttosto generale distingue tra sistemi locali, o basati su host (Host Intrusion Detection Systems, HIDS), e sistemi di rete, o centrati sulla rete (Network
Intrusion Detection Systems, NIDS).
I sistemi di tipo HIDS controllano le operazioni svolte dal sistema operativo di un computer per individuare eventuali tentativi di intrusione, mentre i sistemi di tipo NIDS controllano il traffico di rete.
In entrambi i casi, e` possibile una classificazione piu` fine in base al meccanismo adottato per riconoscere eventuali attivita` illecite. In particolare, i sistemi cosiddetti "signature-based" identificano gli abusi basandosi su un modello di comportamento abusivo, mentre quelli "anomaly-based" segnalano deviazioni dal comportamento normale del sistema.
Nel nostro progetto siamo interessati a IDS host-based in grado di identificare comportamenti anomali, rifacendoci al modello
inizialmente introdotto da Forrest et al. Questi sistemi si basano sull'intuizione che il comportamento "normale" di un
programma p puo` essere descritto dalla sequenza di chiamate al sistema operativo eseguite quando il programma viene eseguito in
un ambiente sterile. Nel modello originale le sequenze caratteristiche di queste chiamate di funzione, dette N-grammi, sono raccolte in una base di dati e rappresentano il linguaggio L che caratterizza in comportamento normale di p.
Per individuare le intrusioni, sequenze di chiamate al sistema operativo di diversa lunghezza vengono raccolte durante l'esecuzione del programma in esame e confrontate con il contenuto della base di dati. Viene calcolata la distanza di Hamming tra le stringhe cosi` raccolte e L. Se la distanza di Hamming supera una soglia prefissata, l'HIDS fa scattare un allarme. Il modello degli N-grammi e` semplice ed efficiente ma purtroppo soffre di un livello di falsi allarmi particolarmente elevato e recentemente sono state proposte diverse varianti al modello originale per migliorarne la precisione.
La principale limitazione dei questi modelli evoluti risiede nel fatto di essere stati progettati per operare in ambienti multiprocesso single threaded. La maggior parte dei sistemi reali moderni, pero`, opera in modalita` multithreaded. La conseguenza immediata di questa limitazione è che ad oggi non è possibile stabilire l'effettiva applicabilità di questi strumenti in ambienti reali che esulino dagli ambienti di simulazione tipici dei laboratori di ricerca.
Lo scopo di questo progetto e` lo studio delle problematiche da affrontare per adattare i suddetti modelli ad operare in ambienti multithreaded per proporre una soluzione originale al problema. Nel corso del progetto verra` realizzato un prototipo che permettera` di condurre un'adeguata validazione sperimentale