Comment identifier les schémas temporels suspects dans les données de trafic
Chez DataDome, nous utilisons des modèles d’apprentissage automatique (ML) pour détecter les menaces en tirant parti de l’incroyable quantité de signaux collectés chez nos clients. Notre moteur de détection traite plus de 3 000 milliards de signaux par jour ! Plus nous pouvons recueillir de données, plus nos modèles sont efficaces contre les menaces connues et inconnues.
Une des méthodes que nous utilisons pour traiter les données est une analyse de séries chronologiques, qui identifie les comportements suspects à différentes échelles de temps (allant des pics énormes aux bots « à bas bruit »), en se concentrant sur les modèles temporels (basés sur le temps) du trafic.
Segmentation du trafic
Pour commencer, de quelles séries chronologiques parlons-nous ?
Le trafic Web que nous collectons peut être segmenté en plusieurs séries de sous-périodes.
1. Rassembler un aperçu du trafic global
Premièrement, chaque client DataDome a ses propres spécificités et est confronté à des défis particuliers et à diverses menaces. Par conséquent, nous analysons le trafic par client : c’est le premier niveau de segmentation.

Le trafic d’une journée d’un client DataDome spécifique.
2. Diviser le trafic global en catégories choisies
Pour tout client donné, nous divisons le trafic total en plusieurs segments. La cardinalité du champ catégoriel (c’est-à-dire son nombre de modalités) est essentielle pour définir le nombre de sous-groupes (séries chronologiques) considérés.
Plus la cardinalité est élevée, plus nous obtenons de séries chronologiques. Cependant, il y a un compromis à trouver : si la segmentation est trop granulaire, elle devient beaucoup moins utile.
Dans cet article, nous avons choisi les systèmes autonomes (SA) comme champ de segmentation. Un SA est au moins un (généralement plus) préfixe IP mis en œuvre par un ou plusieurs opérateurs de réseau, qui maintiennent tous une stratégie de routage unique et clairement définie. Des exemples de systèmes autonomes aux États-Unis sont AT&T, Comcast et Verizon.

Une journée de trafic d’un client spécifique, segmenté par SA. Pour des questions de lisibilité, nous montrons uniquement un sous-ensemble des l’AS.
3. Appliquer le(s) modèle(s) d’apprentissage machine
À partir de là, plusieurs modèles de ML sont possibles. Nous allons en présenter deux :
- Une approche d’apprentissage non supervisé.
- Une approche d’apprentissage supervisé.
Modélisation d’apprentissage automatique
Unsupervised Learning Example
Les méthodes non supervisées tentent de trouver automatiquement les schémas d’activité intéressants dans les données sans étiquette. Une approche d’apprentissage non supervisé est le clustering ou le regroupement de séries chronologiques semblables. En analysant les clusters et leurs distances, nous pouvons identifier les schémas suspects ou les séries chronologiques suspectes.

L’exemple d’un pipeline de clustering ci-dessus est composé de 3 étapes :
- Extraction de caractéristiques : Traitement et agrégation de signaux bruts de la série chronologique. Les variables explicatives (qui peuvent être des caractéristiques statistiques telles que la moyenne, la variabilité, le minimum, le maximum, etc. de chaque série chronologique) alimentent le modèle de ML.
- Clustering : Le regroupement des séries chronologiques semblables, ce qui nécessite le choix d’une mesure de similarité (distance euclidienne, corrélation, etc.) ainsi que le choix d’un algorithme (K-moyennes, DBSCAN, etc.)
- Visualisation : La compréhension des résultats peut être beaucoup plus difficile qu’il n’y paraît, car cela nécessite de réduire la dimension de notre ensemble d’apprentissage pour pouvoir le représenter sur un plan. Des algorithmes spécifiques existent pour effectuer cette tâche : PCA, t-SNE, etc.

Exemple de visualisation des résultats potentiels obtenus à l’aide de l’algorithme de clustering k-moyennes, avec K équivalant à 4.
Quatre clusters ont été identifiés ci-dessus. Deux sont composés d’une majorité de séries chronologiques identifiées comme étant des bots, les deux autres comme étant des humains. La proportion de chaque classe peut être utilisée pour évaluer l’étiquette du cluster.
Pour chaque cluster, la série chronologique la plus proche du centroïde du cluster (« l’emplacement » imaginaire représentant le centre du groupe) est affichée. Le centroïde est le point le plus similaire aux autres échantillons du même cluster.
- L’un des clusters de bots correspond à un schéma « activé / désactivé », tandis que l’autre correspond à un schéma très périodique.
Une série chronologique se trouve entre les deux clusters de bots. Elle partage une similarité avec les deux groupes : un schéma périodique « activé / désactivé ».
Exemple d’apprentissage supervisé
L’apprentissage supervisé utilise des jeux de données étiquetés pour entraîner les algorithmes à classifier les données ou prédire les résultats avec exactitude. Nous introduisons l’étiquette bot / humain de la solution DataDome pour diviser notre série chronologique SA en séries chronologiques ‘bots’ et séries chronologiques ‘humains’. Le modèle évaluera ensuite chaque série chronologique pour déterminer s’il s’agit d’une série chronologique ‘bot’ ou ‘humain’.
Notez que cette approche doublera le nombre de séries chronologiques : les séries chronologiques ‘bot’ par SA et les séries chronologiques ‘humain’ par SA.

Ci-dessus, un exemple d’un pipeline supervisé composé de 3 étapes :
- Extraction de caractéristiques : Peut être similaire au clustering, au traitement et à l’agrégation de signaux bruts provenant de la série chronologique. Les variables explicatives (qui peuvent être des caractéristiques statistiques telles que la moyenne, la variabilité, le minimum, le maximum, etc. de chaque série chronologique) alimentent le modèle de ML.
- Entraînement de modèle : l’apprentissage de la relation entre nos caractéristiques et l’étiquette bot / humain à partir des données d’entraînement comprend les modèles linéaires, les méthodes d’ensemble, etc.
- Évaluation de modèle : la notation d’un sous-ensemble de séries chronologiques pour lesquelles nous disposons d’une étiquette connue.
Pour bloquer plus de bots, nous nous sommes intéressés aux séries chronologiques étiquetés comme étant des humains par le système de détection actuel de DataDome, mais avec un score élevé selon le modèle. Cela peut soit être une erreur du modèle nouvellement entraîné ou une erreur de classification du moteur de détection existant.
Une enquête plus approfondie est requise pour comprendre d’où provient l’erreur et comment l’atténuer.

Une journée de trafic d’un client provenant d’un SA spécifique (Chinanet), divisé par l’étiquette de trafic. En rouge, DataDome identifie le trafic comme étant des bots.
Les bots bloqués par le modèle
Next, we combine the supervised modeling described above with Sliceline, which is the open-source package we released last year, designed for fast slice finding for ML model debugging. (A slice is a subspace of the input dataset defined by one or more predicates. You can read more about how Sliceline spots ML model errors on our blog and in our Sliceline documentation.)
Ensuite, nous combinons la modélisation supervisée décrite ci-dessus avec Sliceline, qui est le package open-source que nous avons sorti l’an dernier, conçu pour trouver rapidement des tranches pour le débogage du modèle de ML.
(Une tranche est un sous-espace du jeu de données d’entrée défini par un ou plusieurs prédicats. Vous pouvez en savoir plus sur la façon dont Sliceline repère les erreurs de modèle de ML sur notre blog et dans notre documentation Sliceline.)
En combinant la modélisation supervisée décrite ci-dessus avec Sliceline , nous sommes en mesure de générer automatiquement des règles de blocage basées sur les schémas temporels.
- À partir de la série chronologique, nous identifions deux populations de SA :
- Les SA avec des séries chronologiques d’apparence humaine, où le moteur de détection et le modèle de ML s’accordent sur l’étiquette ‘humain’.
- Les SA avec des séries chronologiques d’apparence automatisée, où le moteur de détection voit un humain, mais le modèle de ML indique un bot potentiel.
- Ensuite, nous passons de la détection comportementale basée sur les séries chronologiques à la détection basée sur la signature. Au lieu d’appliquer Sliceline sur la série chronologique des SA et les fonctionnalités précédemment calculées, nous l’appliquons aux signatures des requêtes HTTP qui composent la série chronologique.
Le modèle de ML apprend à identifier le comportement temporel anormal. Et il note chaque SA pour identifier les tendances existantes de bots manqués. Ensuite, Sliceline découvre ce qui fait qu’une requête provenant de notre SA suspect est une requête effectué par un bot. De cette façon, nous profitons de la grande diversité de signaux au maillage de la requête : l’agent utilisateur, la méthode, l’hôte, etc.
Une fois que le modèle de ML a appris ce qui rend le comportement temporel suspect, nous nous retrouvons avec une règle de blocage comme celle-ci :
Autonomous System = "AMAZON-02" & User-agent = "Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:24.0) Gecko/20100101 Firefox/24.0" & Method = "POST"
Nous procédons à la généralisation de plusieurs schémas suspects que nous avons identifiés. Pour n’en nommer que quelques-uns :
- Trafic plat : En général, le trafic humain respecte un modèle jour / nuit. Un trafic de bots peut apparaître plus « plat » au fil du temps.
- Trafic périodique : Les pics de trafic durant les courtes périodes ressemblent à un programme automatisé.
- Pic soudain : Cela pourrait être une attaque ou un événement très anticipé, en fonction du client.
Les graphiques suivants affichent le nombre de requêtes bloquées au fil du temps par les différents modèles de blocage, tous générés par nos modèles de ML basés sur les séries chronologiques.
Trafic plat
Exemples de séries chronologiques de bots bloquées par notre IA en raison du trafic trop plat :



Trafic périodique
Exemples de séries chronologiques de bots bloquées par notre IA en raison du trafic périodique de courte durée :


Les pics soudains de trafic
Exemple de séries chronologiques de bots bloquées par notre IA en raison de pics de trafic élevés et soudains :


Trafic activé / désactivé
Le modèle de ML a réussi à bloquer un quatrième schéma, un schéma « activé / désactivé » directement lié à la qualité de la segmentation. Exemples :



Combinaisons de schémas
Les schémas présentés ci-dessus peuvent être observés simultanément.
Les schémas « activé / désactivé » et les modèles de « pics »

Les schémas « plat » + « activé / désactivé »

Les schémas périodiques « activé / désactivé » + de « pics » + « plats »

Dans le dernier exemple ci-dessus, nous pouvons voir que le bot fait très peu de requêtes la nuit. Pendant la journée, il passe au trafic plat. Mais cela n’empêche pas les pics de requêtes, comme la nuit du 12 au 13 février à 1 h du matin.
Conclusion
Dans cet article, nous avons présenté certains résultats de nos modèles de ML actuels dédiés à l’analyse de séries chronologiques. En nous concentrant sur les champs de segmentation spécifiques, nous sommes en mesure d’identifier automatiquement les modèles temporels suspects et de bloquer le trafic.
Nous avons utilisé l’intelligence artificielle (IA) pour résoudre plusieurs problèmes connexes en même temps. Au lieu d’avoir des modèles séparés pour identifier le trafic plat, le trafic périodique, etc., nous avons conçu un modèle unique pour identifier tous les schémas temporels des bots. Pour en savoir plus sur l’utilisation de l’IA et du ML par DataDome pour protéger nos clients contre les bots malveillants et la fraude en ligne, consultez nos autres informations concernant la recherche de menaces.