Effectuer des contrôles de fréquence
La fréquence des événements d’un utilisateur ou d’une entité (comme une carte de crédit) peut indiquer une activité suspecte et une fraude potentielle. Par exemple, après que les fraudeurs ont essayé quelques commandes individuelles, ils utilisent souvent une seule carte de crédit pour passer rapidement de nombreuses commandes à partir d’une seule adresse IP ou d’un seul appareil. Ils peuvent également utiliser de nombreuses cartes de crédit différentes pour passer rapidement de nombreuses commandes. Les contrôles de fréquence vous aident à identifier ces types de schémas d’événements. En définissant des fréquences, vous pouvez surveiller les événements entrants pour ces types de schémas et utiliser des règles pour définir des seuils au-delà desquels vous souhaitez traiter les schémas comme suspects.
Si votre instance de Microsoft Dynamics 365 Fraud Protection a plusieurs environnements, vous pouvez définir un ensemble de fréquences dans un environnement spécifique en utilisant le sélecteur d’environnement. Vous pouvez référencer une fréquence uniquement dans les règles définies dans l’environnement correspondant. Si la fréquence est créée dans un environnement parent et que la règle est définie dans le même environnement, les transactions des environnements enfants seront incluses dans la fréquence lors de l’exécution de la règle au niveau parent.
Définir une fréquence
Les ensembles de fréquences sont constitués de fréquences individuelles. Vous devez définir les fréquences dans Dynamics 365 Fraud Protection en utilisant les mots clés SELECT, FROM, WHEN et GROUPBY dans la structure suivante.
SELECT <aggregation method> AS <velocity name>
FROM <event type>
WHEN <condition>
GROUPBY <attribute name>
Remarque
Les tableaux ne peuvent pas être utilisés pour GROUPBY dans une définition de vitesse.
Après SELECT, spécifiez une méthode d’agrégation : Count, DistinctCount ou Sum. Ensuite, utilisez le mot clé AS pour nommer la fréquence. Ce nom peut ensuite être utilisé pour référencer la fréquence dans les règles.
Voici une explication des méthodes d’agrégation.
Méthode d’agrégation Description Exemple Nombre Cette méthode renvoie le nombre de fois qu’un événement s’est produit. SELECT Count() AS numPurchases DistinctCount Cette méthode renvoie le nombre de valeurs distinctes pour la propriété spécifiée. Si la propriété spécifiée est Null ou vide pour un événement entrant, l’événement ne contribuera pas à l’agrégation. SELECT DistinctCount(@"device.ipAddress") AS distinctIPaddresses Somme Cette méthode renvoie la somme des valeurs pour une propriété numérique spécifiée. SELECT Sum(@"totalAmount") AS totalSpending Après FROM, spécifiez un événement d’évaluation ou d’observation sur lequel observer la vitesse. Le champ pour lequel vous souhaitez observer la vitesse, ou par lequel vous souhaitez regrouper, doit faire partie de l’appel d’API. Pour observer une vitesse entre événements, spécifiez plusieurs événements dans les évaluations ou les événements d’observation.
L’instruction WHEN est facultative. Après WHEN, vous pouvez saisir une expression booléenne. Seuls les événements qui correspondent à la condition sont pris en compte dans l’agrégation. Les autres événements sont ignorés. L’expression est utilisée pour filtrer les événements pris en compte dans la fréquence.
Après GROUPBY, spécifiez une propriété ou une expression. La propriété ou l’expression est ensuite évaluée pour chaque événement traité. Tous les événements évalués à la même valeur dans l’instruction GROUPBY sont combinés pour calculer l’agrégation spécifiée dans l’instruction SELECT. SI l’expression GROUPBY est Null ou vide pour un événement entrant, l’événement ne contribuera pas à l’agrégation.
Conseil
Toute expression pouvant être utilisée dans une règle peut également être utilisée dans une fréquence. Ces expressions incluent des listes et des appels externes. Pour une liste complète des fonctions disponibles, consultez le guide de référence du langage.
Note
La fenêtre de temps sur laquelle vous souhaitez observer la fréquence n’est pas spécifiée dans la définition de la fréquence elle-même. Au lieu de cela, vous la spécifiez lorsque vous référencez la fréquence à partir d’une règle.
Exemples de fréquences
Utilisez les exemples suivants pour créer vos propres fréquences.
Le montant d’argent que chaque utilisateur a dépensé
SELECT Sum(@"totalAmount") AS totalSpending_perUser
FROM Purchase
GROUPBY @"user.userId"
Le nombre de fois que chaque adresse IP a été utilisée pour créer un nouveau compte
SELECT Count() AS NewAccounts_perIP
FROM AccountCreation
GROUPBY @"device.ipAddress"
Pour chaque appareil, le nombre d’utilisateurs uniques qui se sont connectés
SELECT DistinctCount(@"user.userId") AS uniqueUserLogins_perDevice
FROM AccountLogin
GROUPBY @"deviceAttributes.deviceId"
Pour chaque utilisateur, le nombre de tentatives de connexion qui ont été rejetées par Fraud Protection ou qui ont obtenu un score de risque élevé
SELECT Count() AS loginRejections_perUser
FROM AccountLogin
WHEN @"ruleEvaluation.decision" == "Reject" or @"riskScore" > 900
GROUPBY @"user.userId"
Pour chaque utilisateur, le nombre d’achats effectués en dehors des États-Unis et contenant également un produit figurant sur une liste à haut risque
SELECT Count() AS intlHighRiskTxns_perUser
FROM Purchase
WHEN @"user.country" != "US" and ContainsKey("Risky Products", "Product ID", @"ProductList.productId")
GROUPBY @"user.userId
Pour chaque utilisateur, le nombre d’e-mails personnalisés uniques qui ont été utilisés lors d’un événement d’évaluation et d’observation
SELECT DistinctCount(@"custom.email") AS uniqueEmails_perUser
FROM Assessment_A1, Assessment_A1:status
GROUPBY @"custom.userId"
Création d’un ensemble de fréquences
Dans le portail Fraud Protection, puis dans la navigation gauche, sélectionnez Vitesses, puis Nouvel ensemble de fréquences.
Fraud Protection crée un ensemble de fréquences de brouillon qui n’est visible que par vous (le créateur). Notez que toutes les modifications que vous apportez au brouillon sont automatiquement enregistrées.
Facultatif : dans le champ Condition, entrez une condition booléenne. Vous pouvez aussi laisser ce champ vide.
Seuls les événements qui correspondent à cette condition sont pris en compte dans l’agrégation. Les autres événements sont ignorés. Par exemple, si vous souhaitez que les fréquences de l’ensemble ne regroupent que les événements qui se produisent aux États-Unis, définissez la condition suivante :
WHEN @"user.countryRegion" == "US"
Pour définir une nouvelle fréquence à partir de zéro, sélectionnez Nouvelle fréquence. Pour plus d’informations sur la définition des fréquences, reportez-vous à la section Définir une fréquence plus haut dans cet article.
Pour partir d’un modèle de fréquence existant, sélectionnez la flèche à droite de Nouvelle fréquence. Pour afficher la liste complète des modèles existants, ainsi que leurs contenus, sélectionnez Afficher tout.
Vous pouvez ajouter jusqu’à 10 fréquences dans un ensemble.
Pour publier la fréquence, sélectionnez Publier.
Dans la boîte de dialogue de confirmation, vous pouvez modifier le nom, la description ou le statut de la fréquence. Dès que vous êtes prêt, cliquez sur Publier.
Une fois la fréquence publiée, les fréquences de l’ensemble sont visibles par tous les utilisateurs. Au fur et à mesure que les événements traversent Fraud Protection, les fréquences commenceront à agréger les données.
Note
Une fois qu’une fréquence est publiée, elle commence à agréger les données à partir de ce point. Les données historiques ne sont pas prises en compte.
Pour plus d’informations sur l’utilisation des fréquences pour prendre des décisions, consultez la section Utiliser une fréquence dans les règles, plus loin dans cet article.
Comprendre le volet Exemple
Lorsque vous créez ou modifiez une fréquence, le volet Exemple apparaît sur le côté droit de la page.
Le volet Exemple affiche toutes les propriétés d’événement qui peuvent être référencées dans vos fréquences. Ces propriétés varient en fonction du type d’événement observé par votre fréquence. Sélectionnez le type d’événement dans le champ Événement en haut du volet.
La section Exemple de charge utile contient un exemple des propriétés qui peuvent être envoyées dans l’API de requête pour l’évaluation.
La section Exemple d’enrichissement contient un exemple des propriétés que Fraud Protection ajoute à votre événement après l’envoi de la requête initiale. Par exemple, ces propriétés incluent des informations provenant de la solution empreinte digitale de l’appareil de Fraud Protection, et des scores de risque et de bot provenant des modèles Machine Learning.
L’exemple d’enrichissement comprend également des informations issues de l’évaluation de la règle, telles que la décision, le nom de la règle et le nom de la clause déclenchée. Vous pouvez utiliser n’importe laquelle de ces propriétés dans votre fréquence. Utilisez un symbole arobase (@) pour les référencer (par exemple, @"user.firstName").
Vitesses définies par le système (par défaut)
Fraud Protection crée plusieurs vitesses définies par le système par environnement. Par exemple, les vitesses par défaut suivantes peuvent être ajoutées.
- Par défaut – Vitesses de la messagerie
- Par défaut – Vitesses des instruments de paiement
- Par défaut – Vitesses IP
- Par défaut – Vitesses ID de périphérique
Certaines fonctionnalités de Fraud Protection reposent sur les vitesses par défaut, telles que la page Résultats de la recherche pour la protection des achats.
Vous ne pouvez pas modifier ou supprimer les vitesses définies par le système. Cependant, vous pouvez les cloner, puis modifier ou supprimer les clones.
Gérer vos ensembles de fréquence
Pour modifier un ensemble de fréquences publié, sélectionnez la fréquence, puis sélectionnez Modifier.
Un brouillon de votre fréquence publiée est créé et n’est visible que par vous. Toutes les modifications que vous apportez au brouillon sont automatiquement enregistrées.
Lorsque vous êtes prêt à mettre vos modifications en production, sélectionnez Publier. L’ensemble de fréquences précédemment publié est écrasé par vos modifications.
Note
Toutes les modifications que vous apportez à une fréquence affectent uniquement les valeurs calculées à partir de ce point. Elles n’affectent pas les données des événements précédents.
Pour supprimer une fréquence existante, sélectionnez les points de suspension (...), puis sélectionnez Supprimer.
Note
Vous ne pouvez pas supprimer un ensemble de fréquences si l’une de ses fréquences est référencée dans une règle publiée.
Pour mettre à jour le nom ou la description d’un ensemble de fréquences, sélectionnez les points de suspension (...), puis sélectionnez Renommer.
Pour modifier le statut de votre ensemble de fréquences, sélectionnez Activer ou Désactiver.
- Les fréquence d’un ensemble marquées comme actives sont constamment mises à jour au fur et à mesure que de nouveaux événements traversent Fraud Protection.
- Les fréquences d’un ensemble marquées comme inactives ne sont jamais mises à jour.
Utiliser une fréquence dans les règles
Pour utiliser vos fréquences pour prendre des décisions sur les événements d’évaluation entrants, vous devez les référencer dans vos règles. Par exemple, la fréquence suivante est définie comme faisant partie d’un ensemble de fréquences.
SELECT Sum(@"totalAmount") AS totalSpending_perUser
FROM Purchase
GROUPBY @"user.userId"
WHEN Velocity.totalSpending_perUser(@"user.userid", 7d) > 1000
Dans votre règle, vous pouvez effectuer un contrôle de fréquence en utilisant la syntaxe suivante.
WHEN Velocity.totalSpending_perUser(@"user.userid", 7d) > 1000
Le premier paramètre est key. Ce paramètre est utilisé pour rechercher la fréquence. Dans la définition de fréquence précédente pour totalSpending, l’instruction GROUPBY\ @"user.userId" indique que les valeurs seront agrégées pour chaque ID utilisateur rencontré. Lorsque vous référencez la fréquence à partir d’une règle, le paramètre key spécifie l’ID utilisateur pour lequel récupérer la valeur de la fréquence. Si le paramètre key est Null ou vide, Fraud Protection renvoie 0.
Le deuxième paramètre est timeWindow. Ce paramètre spécifie la fenêtre de temps dans laquelle vous souhaitez observer la fréquence. Vous pouvez sélectionner une fenêtre de temps entre une seconde et quatre-vingt-dix jours. Actuellement, les fenêtres de temps suivantes sont toutes valides :
- [1–59]s
- [1–59]m
- [1–23]h
- [1–90]d
Note
La fenêtre de temps commence au début de l’unité de mesure précédente. Par exemple, si la date et l’heure actuelles sont 11 h 04 le 1er avril 2021 et que vous contrôlez une fréquence sur une fenêtre de temps de deux heures (2h), vous verrez les données depuis 9 h 00, pas depuis 9 h 04.
Si une fréquence ne parvient pas à renvoyer une valeur en raison d’une erreur, une valeur par défaut de 0 est renvoyé et votre règle continue de s’exécuter.
Les fréquences sont mises à jour avec l’événement actuel après l’évaluation de la règle. Par conséquent, si vous référencez une fréquence dans une règle, elle ne sera pas incluse dans l’événement actuel en cours de traitement.
Les vitesses peuvent également être appelées à partir de Functions. Pour plus d’informations, consultez Fonctions.
Utiliser des règles pour afficher les valeurs de fréquence
En plus de rendre les décisions, les règles peuvent utiliser des fonctions d’observation telles que Sortie() pour imprimer certaines valeurs dans la réponse de l’API. Par exemple, un utilisateur pourrait écrire la clause suivante, qui ne prend pas de décision, mais affichera simplement les valeurs de plusieurs vitesses dans la réponse de l’API.
OBSERVE Output(
totalSpending_7d = Velocity.totalSpending_perUser(@"user.userid", 7d),
loginsPerDevice_1m = Velocity.loginCount_perDevice(@"deviceAttributes.deviceId", 1m)
)
Chaque événement d’évaluation qui déclenche cette règle imprimera la section suivante dans la réponse de l’API :
"MerchantRuleOutput": {
"clause1": {
"totalSpending_7d": "523.99",
"loginsPerDevice_1m": "1"
}
},
Au lieu d’imprimer les valeurs de fréquence directement dans la réponse de l’API, vous pouvez utiliser le suivi des événements pour envoyer les valeurs à votre propre instance d’Azure Event Hubs ou du Stockage Blob Azure. Par exemple, vous pouvez créer la règle suivante :
RETURN Approve(), Trace(
totalSpending_7d = Velocity.totalSpending_perUser(@"user.userid", 7d),
loginsPerDevice_1m = Velocity.loginCount_perDevice(@"deviceAttributes.deviceId", 1m)
)
Si vous vous abonnez à l’événement FraudProtection.Trace.Rule, les informations suivantes seront envoyées dans le cadre de chaque événement.
"attributes": {
"totalSpending_7d": 523.99
"loginsPerDevice_1m": 1
}