Geschwindigkeitsprüfungen durchführen
Die Häufigkeit von Ereignissen mit einem Benutzer oder einer Entität (z. B. einer Kreditkarte) kann auf verdächtige Aktivitäten und potenziellen Betrug hinweisen. Nachdem Betrüger beispielsweise einige Einzelbestellungen ausprobiert haben, verwenden sie häufig eine einzige Kreditkarte, um schnell viele Bestellungen von einer einzigen IP-Adresse oder einem einzigen Gerät aus aufzugeben. Eventuell verwenden sie auch viele verschiedene Kreditkarten, um schnell viele Bestellungen aufzugeben. Mithilfe von Geschwindigkeitsprüfungen können Sie solche Ereignismuster identifizieren. Durch das Festlegen von Geschwindigkeiten können Sie eingehende Ereignisse nach diesen Mustertypen überwachen und mithilfe von Regeln Schwellenwerte definieren, ab denen Sie die Muster als verdächtig handhaben möchten.
Wenn Ihre Instanz von Microsoft Dynamics 365 Fraud Protection über mehrere Umgebungen verfügt, können Sie mit Hilfe des Umgebungsumschalters ein Velocity-Set in einer bestimmten Umgebung festlegen. Sie können Velocity nur in den Regeln referenzieren, die in der entsprechenden Umgebung definiert sind. Wenn die Anschlagsdynamik in einer übergeordneten Umgebung erstellt wird und die Regel in derselben Umgebung definiert ist, werden die Transaktionen in den untergeordneten Umgebungen in die Anschlagsdynamik einbezogen, wenn die Regel auf der übergeordneten Ebene ausgeführt wird.
Eine Geschwindigkeit festlegen
Geschwindigkeitssätze bestehen aus einzelnen Geschwindigkeiten. Sie definieren Velocities in Dynamics 365 Fraud Protection, indem Sie die Schlüsselwörter SELECT, FROM, WHEN und GROUPBY in der folgenden Struktur verwenden.
SELECT <aggregation method> AS <velocity name>
FROM <event type>
WHEN <condition>
GROUPBY <attribute name>
Hinweis
Arrays können in einer Geschwindigkeitsdefinition nicht für GROUPBY verwendet werden.
Geben Sie nach SELECT eine Aggregationsmethode an: Count, DistinctCount oder Sum. Benutzen Sie dann das Schlüsselwort AS, um die Geschwindigkeit zu benennen. Dieser Name kann dann verwendet werden, um in Regeln auf die Geschwindigkeit zu verweisen.
Hier ist eine Erläuterung der Aggregationsmethoden.
Aggregationsmethode Beschreibung Beispiel Zahl Diese Methode gibt zurück, wie oft ein Ereignis aufgetreten ist. SELECT Count() AS numPurchases DistinctCount Diese Methode gibt die Anzahl der unterschiedlichen Werte für die angegebene Eigenschaft zurück. Wenn die angegebene Eigenschaft für ein eingehendes Ereignis null oder leer ist, trägt das Ereignis nicht zur Aggregation bei. SELECT DistinctCount(@„device.ipAddress“) AS distinctIPaddresses Summe Diese Methode gibt die Summe der unterschiedlichen Werte für eine angegebene nummerische Eigenschaft zurück. SELECT Sum(@„totalAmount“) AS totalSpending Geben Sie nach FROM ein Beurteilungs- oder Beobachtungsereignis für die Beobachtung der Geschwindigkeit an. Das Feld, für das Sie die Häufigkeit beobachten oder nach dem Sie gruppieren möchten, muss Teil des API-Aufrufs sein. Um eine ereignisübergreifende Häufigkeit zu beobachten, geben Sie mehrere Ereignisse über Beurteilungs- oder Beobachtungsereignisse hinweg an.
Die WENN-Anweisung ist optional. Nach dem WHEN können Sie einen booleschen Ausdruck eingeben. In der Aggregation werden nur Ereignisse berücksichtigt, die der Bedingung entsprechen. Andere Ereignisse werden ignoriert. Der Ausdruck wird verwendet, um die Ereignisse zu filtern, die in der Geschwindigkeit berücksichtigt werden.
Geben Sie nach GROUPBY eine Eigenschaft oder einen Ausdruck an. Die Eigenschaft oder der Ausdruck wird dann für jedes Ereignis beurteilt, das verarbeitet wird. Alle Ereignisse, die in der GROUPBY-Anweisung mit demselben Wert beurteilt werden, werden kombiniert, um die in der SELECT-Anweisung festgelegte Aggregation zu berechnen. Wenn der GROUPBY-Ausdruck für ein eingehendes Ereignis null oder leer ist, trägt das Ereignis nicht zur Aggregation bei.
Tipp
Jeder Ausdruck, der in einer Regel verwendet werden kann, kann auch in einer Geschwindigkeit verwendet werden. Diese Ausdrücke umfassen Listen und externe Aufrufe. Eine vollständige Liste der verfügbaren Funktionen finden Sie im Sprachreferenzhandbuch.
Notiz
Das Zeitfenster, über das hinweg Sie die Geschwindigkeit beobachten möchten, wird nicht in der Geschwindigkeitsdefinition selbst angegeben. Stattdessen geben Sie es an, wenn Sie in einer Regel auf die Geschwindigkeit verweisen.
Beispiele für Geschwindigkeiten
Verwenden Sie die folgenden Beispiele, um eigene Geschwindigkeiten zu erstellen.
Der Geldbetrag, den der einzelne Benutzer ausgegeben hat
SELECT Sum(@"totalAmount") AS totalSpending_perUser
FROM Purchase
GROUPBY @"user.userId"
Wie häufig eine einzelne IP-Adresse zum Erstellen eines neuen Kontos verwendet wurde
SELECT Count() AS NewAccounts_perIP
FROM AccountCreation
GROUPBY @"device.ipAddress"
Die Anzahl der eindeutigen Benutzer, die sich über ein einziges Gerät angemeldet haben
SELECT DistinctCount(@"user.userId") AS uniqueUserLogins_perDevice
FROM AccountLogin
GROUPBY @"deviceAttributes.deviceId"
Die Anzahl der Anmeldeversuche pro einzelnem Benutzer, die Fraud Protection abgelehnt hat oder eine hohe Risikobewertung erhalten haben
SELECT Count() AS loginRejections_perUser
FROM AccountLogin
WHEN @"ruleEvaluation.decision" == "Reject" or @"riskScore" > 900
GROUPBY @"user.userId"
Die Anzahl der Käufe eines einzelnen Benutzers, die außerhalb der USA getätigt wurden und die auch ein Produkt von einer Liste mit hohem Risiko enthalten haben
SELECT Count() AS intlHighRiskTxns_perUser
FROM Purchase
WHEN @"user.country" != "US" and ContainsKey("Risky Products", "Product ID", @"ProductList.productId")
GROUPBY @"user.userId
Für jeden Benutzer die Anzahl der eindeutigen benutzerdefinierten E-Mails, die während eines Beurteilungs- und Beobachtungsereignisses verwendet wurden
SELECT DistinctCount(@"custom.email") AS uniqueEmails_perUser
FROM Assessment_A1, Assessment_A1:status
GROUPBY @"custom.userId"
Einen Geschwindigkeitssatz erstellen
Wählen Sie im Fraud Protection Portal in der linken Navigation Geschwindgikeiten und dann Neue Geschwindigkeiten.
Fraud Protection erstellt einen Entwurfsgeschwindigkeitssatz, der nur für Sie (den Ersteller) sichtbar ist. Bitte beachten, dass alle Änderungen, die Sie an dem Entwurf vornehmen, automatisch gespeichert werden.
Optional: Geben Sie im Feld Bedingung eine boolesche Bedingung ein. Lassen Sie das Feld andernfalls leer.
In der Aggregation werden nur Ereignisse berücksichtigt, die dieser Bedingung entsprechen. Andere Ereignisse werden ignoriert. Wenn Sie beispielsweise möchten, dass die Geschwindigkeiten im Geschwindigkeitssatz nur Ereignisse aggregieren, die in den Vereinigten Staaten auftreten, definieren Sie die folgende Bedingung:
WENN @"user.countryRegion" == USA
Um eine Geschwindigkeit von Grund auf neu zu definieren, wählen Sie Neue Geschwindigkeit aus. Informationen zum Definieren von Geschwindigkeiten finden Sie weiter oben in diesem Artikel im Abschnitt Eine Geschwindigkeit festlegen.
Um mit einer vorhandenen Geschwindigkeitsvorlage zu beginnen, wählen Sie den Pfeil rechts von Neue Geschwindigkeit. Um eine vollständige Liste der vorhandenen Vorlagen und ihrer Inhalte anzuzeigen, wählen Sie Alles anzeigen aus.
Sie können pro Satz bis zu 10 Geschwindigkeiten hinzufügen.
Wählen Sie Veröffentlichen, um die Geschwindigkeit zu veröffentlichen.
Im Bestätigungsdialogfeld können Sie den Namen, die Beschreibung oder den Status der Geschwindigkeit ändern. Wählen Sie Veröffentlichen aus, wenn Sie fertig sind.
Nachdem die Geschwindigkeit veröffentlicht wurde, sind die Geschwindigkeiten im Geschwindigkeitssatz für alle Benutzer sichtbar. Während Ereignisse Fraud Protection durchlaufen, beginnen die Geschwindigkeiten, Daten zu aggregieren.
Notiz
Sobald eine Geschwindigkeit veröffentlicht wurde, werden Daten aggregiert. Historische Daten werden nicht berücksichtigt.
Informationen darüber, wie Sie Ihre Geschwindigkeiten verwenden können, um Entscheidungen zu treffen, finden Sie später in diesem Abschnitt im Artikel Eine Geschwindigkeit in Regeln verwenden.
Den Bereich „Beispiel“ verstehen
Wenn Sie einen Geschwindigkeitssatz erstellen oder bearbeiten, wird der Bereich Beispiel rechts auf der Seite angezeigt.
Im Bereich Beispiel werden alle Ereigniseigenschaften angezeigt, auf die in Ihren Geschwindigkeiten verwiesen werden kann. Diese Eigenschaften variieren je nach Typ des Ereignisses, das Ihre Geschwindigkeit beobachtet. Wählen Sie den Ereignistyp oben im Bereich im Feld Ereignis aus.
Der Abschnitt Nutzlastbeispiel enthält ein Beispiel für die Eigenschaften, die in der Anforderungs-API für die Beurteilung gesendet werden können.
Der Abschnitt Anreicherungsprobe enthält ein Beispiel für die Eigenschaften, die Fraud Protection Ihrem Ereignis hinzufügt, nachdem die erste Anforderung gesendet wurde. Diese Eigenschaften enthalten beispielsweise Informationen aus der Gerätefingerabdruck-Lösung von Fraud Protection sowie die Risiko- und Bot-Bewertungen aus den Machine Learning-Modellen.
Das Anreicherungsbeispiel enthält auch Informationen aus der Regelauswertung, z. B. die Entscheidung, den Regelnamen und den Namen der ausgelösten Klausel. Sie können jede dieser Eigenschaften in Ihrer Geschwindigkeit verwenden. Verwenden Sie ein At-Zeichen (@), um auf sie zu verweisen (z. B. @„user.firstName“).
Systemdefinierte (Standard-) Geschwindigkeiten
Fraud Protection erstellt mehrere systemdefinierte Geschwindigkeiten pro Umgebung. Sie können beispielsweise die folgende Standardgeschwindigkeit hinzufügen.
- Standard - E-Mail-Geschwindigkeiten
- Standard – Geschwindigkeiten des Zahlungsinstruments
- Standard - IP-Geschwindigkeiten
- Standard – Geräte-ID-Geschwindigkeiten
Einige Fraud Protection Funktionen basieren auf den Standardgeschwindigkeiten, wie z. B. die Suchergebnisseite für den Kaufschutz.
Sie können systemdefinierte Häufigkeiten weder bearbeiten noch löschen. Sie können sie jedoch klonen und die Klone dann bearbeiten oder löschen.
Ihre Geschwindigkeitssätze verwalten
Um einen veröffentlichten Geschwindigkeitssatz zu bearbeiten, wählen Sie die Geschwindigkeit aus und wählen Sie dann Bearbeiten.
Ein Entwurf Ihrer veröffentlichten Geschwindigkeit wird erstellt und ist nur für Sie sichtbar. Alle Änderungen, die Sie an dem Entwurf vornehmen, werden automatisch gespeichert.
Wenn Sie Ihre Änderungen in die Produktion übertragen möchten, wählen Sie Veröffentlichen. Der zuvor veröffentlichte Geschwindigkeitssatz wird mit Ihren Änderungen überschrieben.
Notiz
Alle Änderungen, die Sie an einer Geschwindigkeit vornehmen, wirken sich nur auf die Werte aus, die ab diesem Punkt berechnet werden. Sie wirken sich nicht auf vorherige Ereignisdaten aus.
Um einen vorhandenen Geschwindigkeitssatz zu löschen, wählen Sie die Auslassungspunkte (...) und dann Löschen.
Notiz
Sie können einen Geschwindigkeitssatz nicht löschen, wenn auf eine seiner Geschwindigkeiten in einer veröffentlichten Regel verwiesen wird.
Um den Namen oder die Beschreibung eines Geschwindigkeitssatzes zu aktualisieren, wählen Sie die Auslassungspunkte (...) und wählen Sie dann Umbenennen.
Um den Status Ihres Geschwindigkeitssatzes zu ändern, wählen Sie Aktivieren oder Deaktivieren.
- Die Geschwindigkeiten in einem Geschwindigkeitssatz, der als Aktiv gekennzeichnet ist, werden ständig aktualisiert, wenn neue Ereignisse in Fraud Protection einfließen.
- Die Geschwindigkeiten in einem Geschwindigkeitssatz, der als Inaktiv gekennzeichnet ist, werden nie aktualisiert.
Eine Geschwindigkeit in Regeln verwenden
Um Ihre Geschwindigkeiten zu verwenden, um Entscheidungen über eingehende Beurteilungsereignisse zu treffen, müssen Sie auf diese in Ihren Regeln verweisen. Die folgende Geschwindigkeit ist zum Beispiel im Rahmen eines Geschwindigkeitssatzes definiert.
SELECT Sum(@"totalAmount") AS totalSpending_perUser
FROM Purchase
GROUPBY @"user.userId"
WHEN Velocity.totalSpending_perUser(@"user.userid", 7d) > 1000
In Ihrer Regel können Sie eine Geschwindigkeitsprüfung mit der folgenden Syntax durchführen.
WHEN Velocity.totalSpending_perUser(@"user.userid", 7d) > 1000
Der erste Parameter lautet Schlüssel. Dieser Parameter wird verwendet, um die Geschwindigkeit nachzuschlagen. In der vorhergehenden Geschwindigkeitsdefinition für totalSpending gibt die GROUPBY\@"user.userId"-Anweisung an, dass Werte für jede Benutzer-ID aggregiert werden, die angetroffen wird. Wenn Sie aus einer Regel auf die Geschwindigkeit verweisen, gibt der Schlüssel-Parameter die Benutzer-ID an, für die der Geschwindigkeitswert abgerufen werden soll. Wenn der Schlüssel-Parameter null oder leer ist, gibt Fraud Protection 0 zurück.
Der zweite Parameter ist timeWindow. Dieser Parameter gibt das Zeitfenster an, über das Sie die Geschwindigkeit beobachten möchten. Sie können ein Zeitfenster zwischen einer Sekunde und 90 Tagen auswählen. Derzeit sind alle folgenden Zeitfenster gültig:
- [1–59]Sek.
- [1–59]Min.
- [1–23]Std.
- [1–90]T
Notiz
Das Zeitfenster beginnt am Anfang der vorherigen Maßeinheit. Wenn beispielsweise das aktuelle Datum und die aktuelle Uhrzeit der 1. April 2021 um 11:04 Uhr ist und Sie eine Geschwindigkeit über einen Zeitfenster von zwei Stunden überprüfen (2h), sehen Sie die Daten seit 9:00 Uhr, nicht seit 9:04 Uhr.
Wenn eine Geschwindigkeit aufgrund eines Fehlers keinen Wert zurückgibt, wird ein Standardwert von 0 zurückgegeben und Ihre Regel weiterhin ausgeführt.
Geschwindigkeiten werden nach der Regelauswertung mit dem aktuellen Ereignis aktualisiert. Wenn Sie in einer Regel auf eine Geschwindigkeit verweisen, wird diese daher nicht in das Ereignis einbezogen, das gerade verarbeitet wird.
Geschwindigkeiten können auch über Funktionen aufgerufen werden. Weitere Informationen finden Sie unter Funktionen.
Regeln verwenden, um Geschwindigkeitswerte anzuzeigen
Neben der Rückgabe von Entscheidungen können Regeln auch Beobachtungsfunktionen wie zum Beispiel Ausgabe() verwenden, um bestimmte Werte in die API-Antwort zu drucken. Ein Benutzer könnte beispielsweise die folgende Klausel schreiben, die keine Entscheidung trifft, sondern einfach die Werte mehrerer Geschwindigkeiten in der API-Antwort ausgibt.
OBSERVE Output(
totalSpending_7d = Velocity.totalSpending_perUser(@"user.userid", 7d),
loginsPerDevice_1m = Velocity.loginCount_perDevice(@"deviceAttributes.deviceId", 1m)
)
Jedes Beurteilungsereignis, das diese Regel auslöst, druckt dann den folgenden Abschnitt der API-Antwort:
"MerchantRuleOutput": {
"clause1": {
"totalSpending_7d": "523.99",
"loginsPerDevice_1m": "1"
}
},
Anstatt die Geschwindigkeitswerte direkt in die API-Antwort zu drucken, können Sie die Ereignisablaufverfolgung verwenden, um Werte an Ihre eigene Instanz von Azure Event Hubs oder Azure Blob Storage zu senden. Sie können beispielsweise die folgende Regel erstellen:
RETURN Approve(), Trace(
totalSpending_7d = Velocity.totalSpending_perUser(@"user.userid", 7d),
loginsPerDevice_1m = Velocity.loginCount_perDevice(@"deviceAttributes.deviceId", 1m)
)
Wenn Sie das Ereignis FraudProtection.Trace.Rule abonnieren, werden die folgenden Informationen im Rahmen jedes Ereignisses gesendet.
"attributes": {
"totalSpending_7d": 523.99
"loginsPerDevice_1m": 1
}