Files
ja4-platform/docs/thesis/01_introduction.md
Jacquin Antoine f88b739992 feat(e2e): add distributed E2E test framework with parametric traffic generation
Add run-e2e-test.sh with CLI parameters (--hits, --http-ratio, --dns, --tls,
--src-ips, --keep-analysis, --up) for configurable traffic generation. Traffic
runs from VM endpoints with multiple source IPs (alias IPs on eth0) to produce
distinct sessions for the ML pipeline. Fix curl TLS flags (--tlsv1.2 instead
of --tls-v1-2), skip redundant local verification in distributed mode, and
fix dashboard is_available() cache that never retried after ClickHouse recovery.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-15 00:09:32 +02:00

7.7 KiB
Raw Blame History

<< Sommaire | Suivant >>


1. Introduction

1.1 Contexte et ampleur de la menace

Le trafic automatisé constitue désormais la majorité du trafic internet mondial. Selon le rapport Imperva Bad Bot Report 2025, le trafic automatisé a dépassé le trafic humain pour la première fois en une décennie, représentant 51 % de l'ensemble du trafic web en 2024. Parmi ce trafic automatisé, les bots malveillants (« bad bots ») représentent 37 % de l'ensemble du trafic internet, en augmentation significative par rapport à 32 % en 2023 — soit la sixième année consécutive de croissance. Les secteurs les plus touchés sont le voyage (41 % de trafic bot) et le commerce en ligne (59 % de trafic bot), avec des conséquences directes sur la disponibilité, la propriété intellectuelle et la sécurité des données utilisateurs.

La menace est structurellement diverse. On distingue trois grandes catégories d'acteurs malveillants automatisés :

Frameworks de scraping : Scrapy (Python), Playwright, Puppeteer, Selenium — ces outils sont légitimement utilisés pour les tests fonctionnels, mais massivement détournés pour l'extraction de contenus protégés (tarification, catalogue produit, données personnelles agrégées).

Services de résolution de CAPTCHA : 2captcha, Anti-Captcha, CapSolver — des services commerciaux emploient des humains (souvent dans des pays à faible salaire) ou des modèles ML pour résoudre les challenges visuels en temps réel, éliminant l'efficacité des mécanismes de friction traditionnels.

Botnets résidentiels : Bright Data, Oxylabs, et des réseaux d'appareils IoT compromis fournissent des adresses IP résidentielles légitimes, contournant les blocages par liste noire d'ASN (Autonomous System Number) de datacenters. Ces proxies résidentiels (SOCKS4/5) opèrent depuis des plages d'adresses IP associées à des fournisseurs d'accès à internet grand public, rendant la réputation IP inefficace.

Face à cette menace, l'industrie a développé des générations successives de mécanismes de défense, chacune surmontant les limites de la précédente, mais créant de nouvelles vulnérabilités.

1.2 Quatre générations de défenses

Génération 1 (20002010) : Règles statiques sur les en-têtes HTTP

La première génération reposait sur l'inspection statique des en-têtes HTTP : blocage par User-Agent (chaîne de caractères identifiant le client HTTP, ex. Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36), blocage par adresse IP ou plage CIDR, et reconnaissance de patterns de requêtes (fréquence, chemins ciblés). Ces défenses sont triviales à contourner par rotation de User-Agent : un bot peut simplement choisir aléatoirement un User-Agent parmi une liste de navigateurs légitimes connus, rendant la détection par UA essentiellement inopérante contre les acteurs même peu sophistiqués.

Génération 2 (20102018) : Fingerprinting TLS et challenges JavaScript

La deuxième génération a introduit le fingerprinting TLS avec JA3 (Althouse et al., 2017, Salesforce Engineering) — un hash MD5 des caractéristiques du message ClientHello TLS — ainsi que les challenges JavaScript (injection de code côté client pour mesurer les capacités du navigateur). Ces mécanismes ont une efficacité limitée pour deux raisons fondamentales : d'abord, l'instabilité de JA3 due à la méthode GREASE (RFC 8701 — Generate Random Extensions And Sustain Extensibility, qui injecte des valeurs aléatoires dans les listes de cipher suites pour prévenir l'ossification du protocole) ; ensuite, la capacité des navigateurs sans tête modernes (Puppeteer, Playwright avec headless: false) à passer la majorité des challenges JavaScript, car ils exécutent un véritable moteur Chromium ou WebKit.

Génération 3 (20182023) : Fingerprinting multi-protocole et ML comportemental

La troisième génération introduit JA4+ (Althouse, FoxIO, septembre 2023) — une suite de 12 méthodes de fingerprinting couvrant TLS, TCP, HTTP, SSH, X509 — ainsi que la corrélation multi-protocole et des modèles de machine learning sur des vecteurs comportementaux. Cette génération est limitée par l'émergence d'outils d'imitation de pile TLS : BotBrowser et CloakBrowser annoncent « 30/30 tests passed » sur les suites de détection standard, en patching le moteur Chromium à bas niveau pour imiter les empreintes TLS d'un navigateur légitime. La Gen 3 reste donc vulnérable aux acteurs disposant de ressources pour développer ou acheter ces outils d'imitation avancée.

Génération 4 (2024) : Analyse multi-couches corrélée, dérive conceptuelle et graphes

La quatrième génération en émergence combine : analyse corrélée en temps réel sur L3→L7, détection semi-supervisée avec adaptation au concept drift (dérive statistique des données d'entrée dans le temps), graphes de co-occurrence réseau pour détecter les flottes coordonnées, features temporelles haute résolution (variance de jitter TCP, autocorrélation lag-1, déviation de Benford), et fingerprinting HTTP/2 passif côté serveur. L'avantage fondamental de la Gen 4 est que la corrélation cross-layer crée des invariants difficiles à imiter simultanément : un outil peut imiter l'empreinte TLS de Chrome, mais s'il utilise la pile HTTP/2 de curl, l'incohérence entre les couches L5 et L7 devient un signal de détection à haute précision.

1.3 Portée et caractéristiques de ce document

Ce document décrit une architecture opérationnelle s'inscrivant dans la continuité des approches de génération 3, déployée en production sur un serveur Apache. Les caractéristiques techniques de l'implémentation incluent :

  1. Corrélation TCP/TLS/HTTP en temps réel via ja4ebpf (clé : src_ip:src_port, 256 shards, timeout orphelin 500 ms)
  2. Fingerprinting HTTP/2 passif : extraction des trames SETTINGS, WINDOW_UPDATE, PRIORITY et de l'ordre des pseudo-headers directement depuis le stream TCP — approche déjà exploitée par des solutions industrielles (Akamai, Cloudflare, F5), ici implémentée via eBPF
  3. Architecture EIF bifurquée : modèle complet (≈ 45 features L3→L7) et modèle applicatif (≈ 35 features L7 uniquement), évitant le biais de zérotage sur le trafic non corrélé — choix pragmatique de gestion des données manquantes
  4. Ensemble triple-voix avec fusion par MLP non-linéaire : combinaison EIF + NF + HAT (River) avec fusion MLP apprenant les interactions non-linéaires entre les trois voix
  5. HDBSCAN dans l'espace latent AE : clustering de campagnes par similarité de comportement compressé en 16 dimensions
  6. Détection de dérive adversariale : distinction entre dérive organique (mises à jour navigateur) et manipulation adversariale via incertitude épistémique de Deep Ensembles (NFEnsemble M=5)
  7. 8 features comportementales avancées : application de statistiques standard (déviation de Benford, entropie de transition markovienne, autocorrélation lag-1, délai root-to-first-asset, diversité de hosts, uniformité de couverture cross-host) au domaine de la détection de bots
  8. Graphes bipartis NetworkX pour la détection de flottes

La suite de ce document est organisée comme suit : la Section 2 passe en revue l'état de l'art des techniques de détection. La Section 3 décrit l'architecture complète du pipeline. La Section 4 présente la taxonomie exhaustive des 96 features en 8 familles. Les Sections 58 couvrent les techniques comportementales avancées, la discussion des limites et les perspectives.