Skip to content

πŸ” Framework ML/DL per analisi avanzata di log di sicurezza e detection di attacchi informatici. Identifica pattern MITRE ATT&CK, valuta l'efficacia delle regole Sigma, e automatizza la threat detection con ensemble di modelli. Dashboard interattive e analisi comportamentali.

License

Notifications You must be signed in to change notification settings

LeoAlb208/CyberLogML

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

5 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ›‘οΈ CyberAttack Log Analysis with Machine Learning

Python Machine Learning Deep Learning Data Analysis License: AGPL-3.0 Status

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.

🎯 Caratteristiche Principali

πŸ“Š Analisi Esplorativa dei Dati

  • Visualizazzioni interattive con Plotly e Altair
  • Analisi statistica delle regole di sicurezza
  • Metriche di performance (Precision, Recall, F1-Score)
  • Correlazioni tra eventi e variabili

πŸ€– Machine Learning

  • Modelli classici: Random Forest, XGBoost, CatBoost, SVM
  • Ensemble methods: AdaBoost, Extra Trees
  • Hyperparameter tuning automatico con GridSearch
  • Cross-validation e valutazione robusta

🧠 Deep Learning

  • Reti neurali con Keras/TensorFlow
  • Architetture personalizzabili per detection
  • Training automatizzato con early stopping

πŸ” Pattern Recognition

  • Identificazione sequenze di attacco
  • Analisi MITRE ATT&CK framework
  • Detection di anomalie comportamentali
  • Clustering di eventi simili

πŸ“ˆ Reporting e Visualizzazione

  • Dashboard interattive in HTML
  • Report automatici in Markdown
  • Grafici esportabili per presentazioni
  • Metriche real-time delle performance

πŸš€ Quick Start

Prerequisiti

Python 3.8+
Jupyter Notebook
Git

Installazione

# 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

Utilizzo Base

# 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)

πŸ“ Struttura del Progetto

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

πŸ”§ Notebooks Disponibili

1. analisi_log_attacco.ipynb - Analisi Completa

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

2. analisi_light_attacchi.ipynb - Analisi Veloce

Versione ottimizzata per analisi rapide:

  • Caricamento dati accelerato con dataset reali
  • Visualizzazioni essenziali degli attacchi
  • Focus su pattern recognition
  • Ideale per esplorazioni preliminari

3. analisi_log_attacco_all_csv.ipynb - Dataset Unificati

Analisi su dataset combinati:

  • Unificazione automatica di tutti i log disponibili
  • Analisi cross-dataset su timeframe estesi
  • Pattern globali identificati su piΓΉ periodi

4. analisi_pattern.ipynb - Pattern Recognition Avanzato

Specializzato nell'identificazione pattern:

  • Algoritmi avanzati di pattern matching
  • Riconoscimento sequenze MITRE ATT&CK
  • Clustering comportamentale degli eventi

🎯 Script di Automazione

ExRandomGroupAttack.ps1 - Generatore Attacchi MITRE

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

🎨 Visualizzazioni Interattive

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.

πŸ› οΈ Configurazione e Personalizzazione

File di Input

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

Personalizzazione Analisi

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

Esempio Configurazione

# 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'

πŸ”§ Moduli Principali

πŸ“Š Data Processing

πŸ“ˆ Visualization & Analysis

πŸ€– Machine Learning

πŸ” Pattern Recognition

About

πŸ” Framework ML/DL per analisi avanzata di log di sicurezza e detection di attacchi informatici. Identifica pattern MITRE ATT&CK, valuta l'efficacia delle regole Sigma, e automatizza la threat detection con ensemble di modelli. Dashboard interattive e analisi comportamentali.

Topics

Resources

License

Stars

Watchers

Forks