Un framework completo per l'analisi avanzata dei log di attacchi informatici utilizzando tecniche di Machine Learning e Deep Learning. Il progetto Γ¨ progettato per identificare pattern di attacco, valutare l'efficacia delle regole di sicurezza e automatizzare la detection di minacce attraverso modelli predittivi.
- Visualizazzioni interattive con Plotly e Altair
- Analisi statistica delle regole di sicurezza
- Metriche di performance (Precision, Recall, F1-Score)
- Correlazioni tra eventi e variabili
- Modelli classici: Random Forest, XGBoost, CatBoost, SVM
- Ensemble methods: AdaBoost, Extra Trees
- Hyperparameter tuning automatico con GridSearch
- Cross-validation e valutazione robusta
- Reti neurali con Keras/TensorFlow
- Architetture personalizzabili per detection
- Training automatizzato con early stopping
- Identificazione sequenze di attacco
- Analisi MITRE ATT&CK framework
- Detection di anomalie comportamentali
- Clustering di eventi simili
- Dashboard interattive in HTML
- Report automatici in Markdown
- Grafici esportabili per presentazioni
- Metriche real-time delle performance
Python 3.8+
Jupyter Notebook
Git# Clona il repository
git clone https://github.com/LeoAlb208/CyberLogML.git
cd CyberLogML
# Installa le dipendenze
pip install -r requirements.txt
# Oppure usa pipenv
pipenv install
pipenv shell# Importa i moduli necessari
from src.csv_preprocessing_scaler import CsvPreprocessingScaler
from src.run_log_parser import RunLogParser
from src.plots import Plots
# Carica i dati
df = CsvPreprocessingScaler.read_csv_file("data/input/LogSplunkWF_03_07.csv")
attack_files = ['data/input/attackLog_03_07.csv']
# Preprocessing
df_processed = CsvPreprocessingScaler.RawPreprocessing(df)
result_df = RunLogParser.process_attacks(attack_files[0], df_processed)
# Visualizza analisi
Plots.plot_cake_attack(result_df)
Plots.plot_top_10_signatures(result_df)CyberLogML/
βββ π data/
β βββ π input/ # Dati grezzi (Splunk logs, attack logs)
β βββ π processed/ # Dati elaborati e combinati
βββ π notebooks/ # Jupyter notebooks per analisi
β βββ analisi_log_attacco.ipynb # Analisi completa
β βββ analisi_light_attacchi.ipynb # Analisi veloce
β βββ analisi_log_attacco_all_csv.ipynb # Analisi dataset combinati
β βββ analisi_pattern.ipynb # Riconoscimento pattern
βββ π src/ # Codice sorgente Python
β βββ lib.py # Librerie centralizzate
β βββ csv_preprocessing_scaler.py # Preprocessing dati
β βββ run_log_parser.py # Parser log attacchi
β βββ plots.py # Visualizzazioni
β βββ attack_pattern_analyzer.py # Analisi pattern
β βββ ... (altri moduli ML/DL)
βββ π scripts/ # Script di automazione
β βββ ExRandomGroupAttack.ps1 # Generatore attacchi MITRE
βββ π outputs/ # File HTML e risultati
βββ π docs/ # Documentazione aggiuntiva
Il notebook principale che include:
- Import e preprocessing dati completo
- Analisi grafica dettagliata degli attacchi rilevati
- Valutazione delle severity per ogni attacco
- Analisi della robustezza delle regole di sicurezza
- Training completo dei modelli ML/DL
- Generazione matrici di correlazione
Versione ottimizzata per analisi rapide:
- Caricamento dati accelerato con dataset reali
- Visualizzazioni essenziali degli attacchi
- Focus su pattern recognition
- Ideale per esplorazioni preliminari
Analisi su dataset combinati:
- Unificazione automatica di tutti i log disponibili
- Analisi cross-dataset su timeframe estesi
- Pattern globali identificati su piΓΉ periodi
Specializzato nell'identificazione pattern:
- Algoritmi avanzati di pattern matching
- Riconoscimento sequenze MITRE ATT&CK
- Clustering comportamentale degli eventi
Script PowerShell per automatizzare test di sicurezza:
- Carica il modulo Invoke-AtomicRedTeam
- Esegue tecniche di attacco del framework MITRE ATT&CK
- Registra dettagli temporali e codici di uscita in CSV
- Gestisce trascrizioni dettagliate delle esecuzioni
Il progetto genera automaticamente file HTML con grafici interattivi che includono:
- Dashboard attacchi: Overview generale degli attacchi rilevati
- Heatmap correlazioni: Relazioni tra variabili di sicurezza
- Timeline attacchi: Evoluzione temporale delle minacce
- Performance regole: Efficacia delle rule di detection
- Pattern visualization: Rappresentazione grafica dei pattern identificati
π‘ Suggerimento: I grafici interattivi sono salvati nella cartella
outputs/e possono essere aperti direttamente nel browser per un'esperienza di visualizzazione ottimale.
Posiziona i tuoi dati nelle cartelle appropriate:
data/input/
βββ LogSplunkWF_YYYY_MM_DD.csv # Log eventi Splunk
βββ attackLog_YYYY_MM_DD.csv # Log temporali attacchi
Nei notebook puoi modificare:
- Severity values: Soglie di criticitΓ per filtering
- Numero eventi: Eventi da considerare nell'analisi pattern
- Regole specifiche: Focus su regole di sicurezza particolari
- Parametri ML: Iperparametri dei modelli
# Configura parametri analisi
severity_value = 73 # Soglia criticitΓ
num_attacks = 10 # Attacchi precedenti da considerare
eventi_da_considerare = 5 # Eventi pre-attivazione regola
# Seleziona regola specifica
regola_scelta = 'suspicious-unsigned-dbghelp/dbgcore-dll-loaded'lib.py- Librerie centralizzate per il progettocsv_preprocessing_scaler.py- Preprocessing completo, scaling e encoding (OneHot/Label)run_log_parser.py- Parsing log attacchi e correlazione con eventi di sicurezzaattack_log_unification.py- Unificazione automatica di dataset multipli
plots.py- Grafici statistici principali (percentuali attacchi, top regole, distribuzioni)plots_single_attack.py- Analisi dettagliata di regole specifiche con timelinecorrelation_matrix_plots.py- Matrici di correlazione per encoding multiplistat_severity.py- Analisi criticitΓ (max, mean, min) per ogni attaccoutils.py- Utilities per descrizioni e markdown
initial_training.py- Training modelli base (Decision Tree, Random Forest, etc.)hyperparameter_tuning.py- Ottimizzazione iperparametri con GridSearchadvanced_models.py- Modelli avanzati (XGBoost, CatBoost)deep_learning_model.py- Reti neurali con Keras/TensorFlowmodel_evaluator.py- Valutazione e confronto performance modellipreprocessing_train_test_split.py- Divisione dataset per training/test
attack_pattern_analyzer.py- Analisi pattern comportamentali e sequenze temporalisignatures_patterns.py- Identificazione sequenze ricorrenti durante attacchisigma_rule_analysis.py- Valutazione efficacia e robustezza regole Sigmasignature_stats_calculator.py- Calcolo statistiche impatto rimozione regole