Progetto del corso di Gestione dei Progetti Software (A.A. 2023-2024), incentrato sull’analisi del traffico di rete e sul rilevamento automatico di anomalie tramite algoritmi di machine learning non supervisionati.
L’obiettivo del progetto è fornire alle organizzazioni un servizio che consenta di:
- catturare il traffico di rete;
- analizzarlo estraendo le principali caratteristiche (IP, porte, protocolli, protocolli di livello applicativo, ecc.);
- rilevare automaticamente anomalie nel traffico mediante algoritmi di apprendimento non supervisionato.
Il focus principale è la classificazione binaria del traffico (normale vs anomalo), con attenzione particolare alla capacità di individuare attacchi non ancora noti (0-day), che sono difficili da riconoscere con sistemi basati su firme o modelli supervisionati.
Metodi tradizionali di rilevamento delle anomalie:
- Analisi manuale del traffico di rete: richiede molto tempo e non è scalabile.
- Monitoraggio continuo basato su firme o su AI supervisionata: efficace sui pattern noti, ma non riconosce attacchi di tipo 0-day.
Per superare questi limiti, il progetto adotta algoritmi di apprendimento non supervisionato in grado di individuare pattern anomali in dati grezzi e non etichettati.
A livello concettuale, il sistema è organizzato in più fasi:
-
Acquisizione del traffico
- Raccolta di traffico live e/o utilizzo di dati storici.
- Esportazione in formati standard (es. pcap, log strutturati).
-
Estrazione e preprocessamento delle feature
- Estrazione di informazioni quali indirizzi IP, porte sorgente/destinazione, protocolli, dimensione dei pacchetti, frequenza delle richieste.
- Normalizzazione e preparazione dei dati per il modello.
-
Modello di machine learning non supervisionato
- Addestramento di algoritmi di anomaly detection su dati non etichettati.
- Individuazione degli outlier rispetto al comportamento considerato normale.
-
Rilevamento e segnalazione
- Assegnazione di un punteggio di anomalia al traffico.
- Generazione di alert e visualizzazioni (dashboard, grafici, log) per supportare l’analisi del security team.
Conoscenze utili per comprendere e contribuire al progetto:
- Reti di calcolatori.
- Java.
- Programmazione web.
- Basi di machine learning e sicurezza informatica.
- Raffaele Mezza
- Martina Mingione
- Giuseppe Cerella – @cerella17
- Edmondo Nicolò De Simone – @edomod
- Mattia Guariglia – @mattyx97
- Danilo Gisolfi – @Daaanilo
- Tommaso Nardi – @tommaso-nardi
- Vincenzo Maiellaro – @VincenzoMaiellaro