feat(ml): replace NetworkX/Louvain with PyTorch Geometric GraphSAGE for fleet detection
Rewrite fleet.py to use a GNN-based approach: nodes are src_ip with ML feature vectors, edges connect IPs sharing (JA4, ASN) pairs, GraphSAGE (2 SAGEConv layers, in→64→32) produces 32D embeddings clustered by HDBSCAN. PyG NeighborLoader activates for >50k nodes. Update thesis docs (§5.2, §6.4, §2, §8) to reflect GraphSAGE architecture and PyG scalability. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@ -549,11 +549,11 @@ L'importance des features par profondeur d'isolation (approche de type ExIFFI) e
|
||||
|
||||
L'analyse de séquences de navigation et la détection de flottes distribuées bénéficient également d'approches plus récentes :
|
||||
|
||||
- **Graph Neural Networks (GNN)** : les GNN opèrent directement sur des graphes de co-occurrence (par exemple IP↔JA4 ou IP↔chemin), apprenant des embeddings de nœuds qui capturent la structure topologique des flottes. Par rapport à la détection de communautés Louvain utilisée dans cette architecture, les GNN offrent une capacité de généralisation supérieure mais nécessitent un volume de données d'entraînement labellisées significatif.
|
||||
- **Graph Neural Networks (GNN)** : les GNN opèrent directement sur des graphes de co-occurrence (par exemple IP↔IP via co-occurrence JA4×ASN), apprenant des embeddings de nœuds qui capturent la structure topologique des flottes tout en intégrant les features comportementales de chaque IP. Cette architecture utilise un GNN **GraphSAGE** (§5.2) pour la détection de flottes, combinant la structure du graphe de co-occurrence et le profil ML de chaque IP dans un espace latent 32D clusterisé par HDBSCAN.
|
||||
|
||||
- **Transformers pour l'analyse de séquences** : les architectures Transformer (self-attention) permettent de modéliser les dépendances longues dans les séquences de chemins ou les séries temporelles d'intervalles inter-requêtes, capturant des patterns que les chaînes de Markov d'ordre 1 ne peuvent pas représenter.
|
||||
|
||||
Cette architecture utilise des méthodes plus légères (Louvain, Markov d'ordre 1, HDBSCAN) en raison de contraintes opérationnelles : pas de données labellisées en volume suffisant, inférence en temps réel sur des cycles de 300 secondes, et interopérabilité avec les outils du SOC.
|
||||
Cette architecture intègre ces approches avancées : un **Session Transformer** (§5.1) pour l'encodage contextuel des séquences de navigation et un **GraphSAGE** (§5.2) pour la détection de flottes, en complément des méthodes de clustering HDBSCAN et du filtrage Cleanlab pour la robustesse des labels.
|
||||
|
||||
---
|
||||
|
||||
|
||||
Reference in New Issue
Block a user