docs: mise à jour complète — 7/8 techniques, 85 features, 12 modules

Reflète l'état réel du système après les étapes 1-9 du roadmap :

- §5.2 (fleet_detector NetworkX/Louvain) et §5.8 (Jaccard cross-domain) : 
- MetaLearner (régression logistique, fallback poids fixes) : documenté
- ExIFFI (profondeur isolation EIF) + erreur AE par feature : documenté
- KL divergence en complément du KS, drift adversarial : documenté
- HTTP/2 fingerprinting (h2_fingerprint, dict_browser_h2, axis_h2_coherence) : documenté
- Métriques de cycle (metrics.py, ml_performance_metrics, alertes) : documenté
- Browser confidence : 5 axes → 6 axes (axis_h2_coherence)
- 85 features (73 FEATURES + 12 FEATURES_COMPLET), 12 modules, 53 routes dashboard
- Conformité thèse : 99.4% (était 97.9%), §5 : 87.5% (était 62.5%)
- Tables nouvelles : fleet_detections, ml_performance_metrics, soc_feedback
- Dictionnaires : 8 (dict_browser_h2 ajouté)
- Dashboard : 16 pages + 37 API routes (fleet, health ajoutés)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
toto
2026-04-10 01:31:20 +02:00
parent edbb4aed2c
commit 51dd376f7a
6 changed files with 383 additions and 164 deletions

View File

@ -35,8 +35,8 @@ services/dashboard/
│ ├── database.py Client clickhouse-connect singleton, query(), query_scalar(), execute()
│ └── routes/
│ ├── __init__.py
│ ├── api.py 35 routes JSON (1635 lignes)
│ └── pages.py 14 routes de pages HTML (83 lignes)
│ ├── api.py 37 routes JSON (1700+ lignes)
│ └── pages.py 16 routes de pages HTML (100+ lignes)
├── templates/
│ ├── base.html Template de base (layout, navigation, Tailwind CDN)
│ ├── overview.html Vue d'ensemble du dashboard
@ -52,7 +52,9 @@ services/dashboard/
│ ├── classify.html Interface de classification SOC
│ ├── tactics.html Tactiques de détection (brute-force, rotation, récurrence)
│ ├── reflists.html Listes de référence et dictionnaires ClickHouse
── network.html Graphe réseau des campagnes
── network.html Graphe réseau des campagnes
│ ├── fleet.html Détections de flottes coordonnées (graphe bipartite)
│ └── health.html Santé du pipeline — métriques de performance par cycle
└── static/ Fichiers statiques (JS, CSS)
```
@ -121,7 +123,7 @@ rows = query(
---
## Routes de pages (14)
## Routes de pages (16)
Toutes les pages sont rendues côté serveur via Jinja2 et utilisent htmx pour les mises à jour dynamiques.
@ -141,10 +143,12 @@ Toutes les pages sont rendues côté serveur via Jinja2 et utilisent htmx pour l
| 12 | `/cluster/{cid}` | `cluster_detail.html` | Investigation détaillée d'un cluster |
| 13 | `/tactics` | `tactics.html` | Tactiques de détection (brute-force, rotation JA4/UA, récurrence) |
| 14 | `/reflists` | `reflists.html` | Listes de référence et dictionnaires ClickHouse |
| 15 | `/fleet` | `fleet.html` | Détections de flottes coordonnées — graphe bipartite JA4×ASN, communautés, fleet_score |
| 16 | `/health` | `health.html` | Santé du pipeline — métriques de cycle, alertes calibration/drift/corrélation/latence |
---
## Routes API (35)
## Routes API (37)
Toutes les routes sont préfixées par `/api` et retournent du JSON. Utilisées par htmx depuis les templates et consommables par des clients externes.
@ -225,13 +229,20 @@ Toutes les routes sont préfixées par `/api` et retournent du JSON. Utilisées
| 31 | GET | `/api/cascade/{ip}` | Cascade de ressources pour détection de navigateur headless |
| 32 | GET | `/api/ua-rotation` | Détection de rotation de User-Agent |
### Flottes et santé
| # | Méthode | Chemin | Description |
|---|---------|--------|-------------|
| 33 | GET | `/api/fleet` | Flottes de bots coordonnées — communautés JA4×ASN, fleet_score, IPs membres |
| 34 | GET | `/api/health` | Métriques de performance du pipeline — cycle, drift, corrélation, alertes |
### Dictionnaires et listes de référence
| # | Méthode | Chemin | Description |
|---|---------|--------|-------------|
| 33 | GET | `/api/dictionaries` | Métadonnées des dictionnaires ClickHouse |
| 34 | GET | `/api/reflist/{name}` | Contenu paginé d'une liste de référence / dictionnaire |
| 35 | GET | `/api/reflist/{name}/stats` | Statistiques agrégées d'une liste de référence |
| 35 | GET | `/api/dictionaries` | Métadonnées des 8 dictionnaires ClickHouse |
| 36 | GET | `/api/reflist/{name}` | Contenu paginé d'une liste de référence / dictionnaire |
| 37 | GET | `/api/reflist/{name}/stats` | Statistiques agrégées d'une liste de référence |
### Autres routes
@ -242,7 +253,7 @@ Toutes les routes sont préfixées par `/api` et retournent du JSON. Utilisées
| GET | `/docs` | Documentation Swagger UI (auto-généré par FastAPI) |
| GET | `/openapi.json` | Schéma OpenAPI (auto-généré par FastAPI) |
**Total : 14 pages + 35 API + 1 health = 50 routes applicatives**
**Total : 16 pages + 37 API + 1 health check = 54 routes applicatives**
---
@ -272,10 +283,12 @@ Le dashboard est conçu pour le workflow d'un analyste SOC :
4. **Analyse JA4** (`/ja4/{fp}`) — investiguer une empreinte TLS, voir toutes les IPs associées
5. **Campagnes** (`/campaigns`) — visualiser les clusters de bots, graphe réseau, scatter plot
6. **Cluster** (`/cluster/{cid}`) — plonger dans un cluster spécifique, examiner les membres et profils
7. **Tactiques** (`/tactics`) — surveiller le brute-force, la rotation JA4/UA, les menaces récurrentes
8. **Classification** (`/classify`) — soumettre un feedback analyste (bot/légitime/suspect) pour alimenter XGBoost
9. **Features** (`/features`) — comparer les profils de features humain vs bot
10. **Modèles** (`/models`) — surveiller les performances des modèles ML
7. **Flottes** (`/fleet`) — visualiser les communautés de botnets coordonnées (graphe bipartite JA4×ASN)
8. **Tactiques** (`/tactics`) — surveiller le brute-force, la rotation JA4/UA, les menaces récurrentes
9. **Classification** (`/classify`) — soumettre un feedback analyste (bot/légitime/suspect) pour alimenter XGBoost et le MetaLearner
10. **Features** (`/features`) — comparer les profils de features humain vs bot
11. **Modèles** (`/models`) — surveiller les performances des modèles ML
12. **Santé** (`/health`) — métriques de cycle, alertes de calibration, drift, corrélation et latence
---