docs(thesis): 5 corrections — 85 features, MetaLearner diagram, browser axes note, quantile clarification, §5.6/5.7 named
- Correction 1 (l.65, 701): '65+ features sur 7 familles' → '85 features sur 8 familles' - Correction 2 (l.374-378): diagramme ASCII bot_detector — ajout MetaLearner, ExIFFI, fleet.py - Correction 3 (après l.506): note poids axe 5 réduit 0.20→0.15, axe 6 ajouté 0.05 - Correction 4 (l.279): clarification quantiles actuels 5 (p10→p90), p5/p95 = futur - Correction 5 (l.776): §5.6 (DNS UDP/53) et §5.7 (Apache compression) nommés explicitement Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
@ -62,7 +62,7 @@ Face à cette menace, les mécanismes de défense ont évolué en plusieurs gén
|
|||||||
|
|
||||||
- **Génération 4 (2024–)** : Analyse multi-couches corrélée en temps réel, détection semi-supervisée avec dérive conceptuelle, graphes de co-occurrence réseau, et features temporelles à haute résolution.
|
- **Génération 4 (2024–)** : Analyse multi-couches corrélée en temps réel, détection semi-supervisée avec dérive conceptuelle, graphes de co-occurrence réseau, et features temporelles à haute résolution.
|
||||||
|
|
||||||
Ce document se positionne à la charnière des générations 3 et 4. Il décrit d'abord l'état de l'art, puis détaille une architecture opérationnelle déployée intégrant 65+ features sur 7 familles et 5 couches réseau, et enfin propose huit techniques originales issues de notre analyse des angles morts persistants.
|
Ce document se positionne à la charnière des générations 3 et 4. Il décrit d'abord l'état de l'art, puis détaille une architecture opérationnelle déployée intégrant **85 features** sur **8 familles** et 5 couches réseau, et enfin propose huit techniques originales issues de notre analyse des angles morts persistants.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
@ -276,7 +276,7 @@ Le trafic web n'est pas stationnaire : les navigateurs sont mis à jour (changem
|
|||||||
|
|
||||||
L'architecture implémente une détection de dérive basée sur une approximation par quantiles à 5 points. Pour chaque feature, les quantiles (p10, p25, p50, p75, p90) de la distribution d'entraînement sont sauvegardés avec le modèle sérialisé. Lors de la vérification de dérive, des échantillons synthétiques sont générés par sampling par quantile inverse à partir de ces 5 points, reconstituant une CDF approchée par interpolation linéaire. Un test de Kolmogorov-Smirnov à 2 échantillons est ensuite appliqué entre ces échantillons synthétiques et la distribution courante. Une **divergence KL** (Kullback-Leibler) est calculée en complément par discrétisation en histogrammes ; une feature est marquée « en dérive » si le test KS **ou** la divergence KL dépasse les seuils configurés. Si >30 % des features dérivent simultanément, un retraining forcé est déclenché. La **dérive adversariale** est distinguée de la dérive naturelle : si de nombreuses features dérivent simultanément dans la même direction (score de corrélation directionnelle élevé), une alerte spécifique est émise, indiquant une manipulation intentionnelle plutôt qu'une évolution organique du trafic.
|
L'architecture implémente une détection de dérive basée sur une approximation par quantiles à 5 points. Pour chaque feature, les quantiles (p10, p25, p50, p75, p90) de la distribution d'entraînement sont sauvegardés avec le modèle sérialisé. Lors de la vérification de dérive, des échantillons synthétiques sont générés par sampling par quantile inverse à partir de ces 5 points, reconstituant une CDF approchée par interpolation linéaire. Un test de Kolmogorov-Smirnov à 2 échantillons est ensuite appliqué entre ces échantillons synthétiques et la distribution courante. Une **divergence KL** (Kullback-Leibler) est calculée en complément par discrétisation en histogrammes ; une feature est marquée « en dérive » si le test KS **ou** la divergence KL dépasse les seuils configurés. Si >30 % des features dérivent simultanément, un retraining forcé est déclenché. La **dérive adversariale** est distinguée de la dérive naturelle : si de nombreuses features dérivent simultanément dans la même direction (score de corrélation directionnelle élevé), une alerte spécifique est émise, indiquant une manipulation intentionnelle plutôt qu'une évolution organique du trafic.
|
||||||
|
|
||||||
**Note méthodologique** : cette approximation par 5 quantiles est adéquate pour les distributions unimodales (majorité des features réseau), mais peut manquer des déplacements de masse dans les features multimodales — `asset_ratio`, `post_ratio`, et `orphan_ratio` étant typiquement bimodales ou fortement asymétriques. L'ajout de quantiles supplémentaires (p5, p95) ou l'utilisation d'un t-digest complet améliorerait la fidélité pour ces cas.
|
**Note méthodologique** : cette approximation par 5 quantiles est adéquate pour les distributions unimodales (majorité des features réseau), mais peut manquer des déplacements de masse dans les features multimodales — `asset_ratio`, `post_ratio`, et `orphan_ratio` étant typiquement bimodales ou fortement asymétriques. L'ajout de quantiles supplémentaires (p5, p95) ou l'utilisation d'un t-digest complet améliorerait la fidélité pour ces cas. L'implémentation actuelle reste à 5 quantiles (p10, p25, p50, p75, p90) ; l'extension à p5/p95 est identifiée comme amélioration future.
|
||||||
|
|
||||||
**Validation et gate condition** : au-delà de la détection de drift, la validation du modèle après retraining est critique. Un taux d'anomalie sur le jeu de validation >20 % signale une baseline contaminée — le modèle entraîné considère trop de trafic normal comme anomal, indiquant une pollution de la baseline `asn_label='human'` par des bots résidentiels ou des proxies. Dans ce cas, le modèle précédent est conservé et une alerte est émise.
|
**Validation et gate condition** : au-delà de la détection de drift, la validation du modèle après retraining est critique. Un taux d'anomalie sur le jeu de validation >20 % signale une baseline contaminée — le modèle entraîné considère trop de trafic normal comme anomal, indiquant une pollution de la baseline `asn_label='human'` par des bots résidentiels ou des proxies. Dans ce cas, le modèle précédent est conservé et une alerte est émise.
|
||||||
|
|
||||||
@ -372,9 +372,11 @@ BotD (open-source) détecte les frameworks d'automatisation (Puppeteer, Playwrig
|
|||||||
│
|
│
|
||||||
┌──────▼───────┐
|
┌──────▼───────┐
|
||||||
│ bot_detector │
|
│ bot_detector │
|
||||||
│ 3× EIF+AE │
|
│ EIF+AE+XGB │
|
||||||
│ +XGB │
|
│ +MetaLearner │
|
||||||
│ HDBSCAN camp.│
|
│ +ExIFFI │
|
||||||
|
│ +fleet.py │
|
||||||
|
│ HDBSCAN camp. │
|
||||||
│ SHAP explain │
|
│ SHAP explain │
|
||||||
└──────┬───────┘
|
└──────┬───────┘
|
||||||
│
|
│
|
||||||
@ -505,6 +507,8 @@ browser_confidence = Σ (poids_i × score_axe_i) ∈ [0, 1]
|
|||||||
| 5. TLS/TCP Coherence | 0.15 | Cohérence protocolaire | ALPN cohérent, Window Scaling présent, `tls12_ratio` faible |
|
| 5. TLS/TCP Coherence | 0.15 | Cohérence protocolaire | ALPN cohérent, Window Scaling présent, `tls12_ratio` faible |
|
||||||
| 6. HTTP/2 Coherence | 0.05 | Cohérence fingerprint HTTP/2 | Fingerprint SETTINGS H2 connu + cohérent avec JA4 (`dict_browser_h2`) |
|
| 6. HTTP/2 Coherence | 0.05 | Cohérence fingerprint HTTP/2 | Fingerprint SETTINGS H2 connu + cohérent avec JA4 (`dict_browser_h2`) |
|
||||||
|
|
||||||
|
> **Note** : Le poids de l'axe 5 (TLS/TCP Coherence) a été réduit de 0.20 à 0.15 pour accommoder le nouvel axe 6 (HTTP/2 Coherence, poids 0.05), maintenant la somme totale à 1.00.
|
||||||
|
|
||||||
**Seuil de décision** : `browser_confidence ≥ 0.55` ET `browser_family` identifié (Chrome, Firefox, Safari, Edge) → classification `LEGITIMATE_BROWSER`. Cette classification permet un bypass du scoring ML pour le trafic à haute confiance, réduisant les faux positifs sur le trafic humain vérifié tout en maintenant la détection sur le trafic ambigu.
|
**Seuil de décision** : `browser_confidence ≥ 0.55` ET `browser_family` identifié (Chrome, Firefox, Safari, Edge) → classification `LEGITIMATE_BROWSER`. Cette classification permet un bypass du scoring ML pour le trafic à haute confiance, réduisant les faux positifs sur le trafic humain vérifié tout en maintenant la détection sur le trafic ambigu.
|
||||||
|
|
||||||
---
|
---
|
||||||
@ -698,7 +702,7 @@ Chaque technique de détection engendre une contre-mesure :
|
|||||||
- Timing analysis → Jitter artificiel randomisé.
|
- Timing analysis → Jitter artificiel randomisé.
|
||||||
- Asset ratio → Chargement de toutes les ressources.
|
- Asset ratio → Chargement de toutes les ressources.
|
||||||
|
|
||||||
L'architecture multi-couches atténue ce problème : imiter simultanément les 65+ features sur 7 familles et 5 couches réseau a un coût computationnel et une complexité d'implémentation qui augmentent exponentiellement avec le nombre de signaux corrélés. Un attaquant qui perfectionne sa stack TLS (L5) peut encore être trahi par son timing TCP (L4) ou son pattern de navigation (L7).
|
L'architecture multi-couches atténue ce problème : imiter simultanément les **85 features** sur **8 familles** et 5 couches réseau a un coût computationnel et une complexité d'implémentation qui augmentent exponentiellement avec le nombre de signaux corrélés. Un attaquant qui perfectionne sa stack TLS (L5) peut encore être trahi par son timing TCP (L4) ou son pattern de navigation (L7).
|
||||||
|
|
||||||
### 6.2 Faux positifs et le problème de la baseline humaine
|
### 6.2 Faux positifs et le problème de la baseline humaine
|
||||||
|
|
||||||
@ -773,7 +777,7 @@ La détection du trafic HTTP malveillant est un problème fondamentalement multi
|
|||||||
|
|
||||||
5. **L'ensemble hybride triple-voix est l'architecture cible** : la combinaison EIF (anomalies zero-day) + Autoencoder (corrélations non-linéaires) + XGBoost supervisé (patterns connus), complétée par un **méta-learner par régression logistique** dès que l'historique de labels est suffisant, surpasse chaque composant en isolation, comme le démontrent les travaux sur les ensembles hybrides (Jamshidi et al., 2025 ; Basbous et al., 2026).
|
5. **L'ensemble hybride triple-voix est l'architecture cible** : la combinaison EIF (anomalies zero-day) + Autoencoder (corrélations non-linéaires) + XGBoost supervisé (patterns connus), complétée par un **méta-learner par régression logistique** dès que l'historique de labels est suffisant, surpasse chaque composant en isolation, comme le démontrent les travaux sur les ensembles hybrides (Jamshidi et al., 2025 ; Basbous et al., 2026).
|
||||||
|
|
||||||
6. **7 des 8 techniques originales sont implémentées et opérationnelles** : la séquence temporelle des chemins (§5.1), le graphe bipartite JA4×ASN via fleet_detector (§5.2), la cadence inter-requêtes incluant la loi de Benford et l'autocorrélation (§5.3), l'arbre de dépendances de ressources (§5.4), la dérive de fingerprint intra-session (§5.5), et le comportement cross-domaine avec similarité de Jaccard (§5.8) sont déployés en production. La corrélation DNS passive (§5.6) et les invariants de compression (§5.7) restent identifiés comme travaux futurs nécessitant des extensions d'infrastructure.
|
6. **7 des 8 techniques originales sont implémentées et opérationnelles** : la séquence temporelle des chemins (§5.1), le graphe bipartite JA4×ASN via fleet_detector (§5.2), la cadence inter-requêtes incluant la loi de Benford et l'autocorrélation (§5.3), l'arbre de dépendances de ressources (§5.4), la dérive de fingerprint intra-session (§5.5), et le comportement cross-domaine avec similarité de Jaccard (§5.8) sont déployés en production. La corrélation DNS passive (§5.6) et les invariants de compression (§5.7) restent identifiés comme travaux futurs nécessitant des extensions d'infrastructure. Les deux techniques restantes, §5.6 (DNS Shadow Analysis — nécessite l'extension de ja4sentinel à la capture UDP/53) et §5.7 (Compression Ratio Invariant — nécessite une instrumentation côté serveur Apache), sont identifiées comme priorités d'infrastructure à court terme.
|
||||||
|
|
||||||
7. **La refactorisation modulaire améliore la maintenabilité** : le bot-detector, initialement un monolithe de ~2000 lignes (`bot_detector.py`), a été restructuré en **12 modules spécialisés** (scoring, features, models, clustering, drift, explainability, fleet detection, metrics, etc.), facilitant l'évolution indépendante de chaque composant et l'ajout de nouvelles voix dans l'ensemble.
|
7. **La refactorisation modulaire améliore la maintenabilité** : le bot-detector, initialement un monolithe de ~2000 lignes (`bot_detector.py`), a été restructuré en **12 modules spécialisés** (scoring, features, models, clustering, drift, explainability, fleet detection, metrics, etc.), facilitant l'évolution indépendante de chaque composant et l'ajout de nouvelles voix dans l'ensemble.
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user