Provádění kontrol rychlosti
Frekvence událostí z uživatele nebo entity (například platební karty) může znamenat podezřelou aktivitu a potenciální podvody. Například poté, co podvodníci vyzkouší několik individuálních objednávek, často používají jednu platební kartu k rychlému umístění mnoha objednávek z jedné IP adresy nebo zařízení. Mohou také použít mnoho různých platebních karet k rychlému umístění mnoha objednávek. Kontroly rychlosti pomáhají identifikovat tyto typy vzorů událostí. Definováním rychlosti můžete sledovat příchozí události pro tyto typy vzorů a pomocí pravidel definovat prahové hodnoty, za kterými chcete s vzory zacházet jako s podezřelými.
Pokud má vaše instance Microsoft Dynamics 365 Fraud Protection více prostředí, můžete definovat rychlost nastavenou v konkrétním prostředí pomocí přepínače prostředí. Rychlost odkazu můžete použít pouze v pravidlech definovaných v odpovídajícím prostředí. Pokud je rychlost vytvořena v nadřazené prostředí a pravidlo je definováno ve stejném prostředí, transakce v podřízených prostředích budou zahrnuty v rychlosti při spuštění pravidla nadřazené úrovně.
Definování rychlosti
Sady rychlosti se skládají z jednotlivých rychlostí. Rychlost v Dynamics 365 Fraud Protection definujete pomocí klíčových slov SELECT, FROM, WHEN a GROUPBY v následující struktuře.
SELECT <aggregation method> AS <velocity name>
FROM <event type>
WHEN <condition>
GROUPBY <attribute name>
Poznámka:
Pole nelze použít pro GROUPBY v definici rychlosti.
Po příkazu SELECT zadejte metodu agregace: Count, DistinctCount nebo Sum. Pak použijte klíčové slovo AS k pojmenování rychlosti. Tento název se pak dá použít k odkazu na rychlost pravidel.
Tady je vysvětlení metod agregace.
Metoda agregace Popis Příklad Počet Tato metoda vrátí počet výskytů události. SELECT Count() AS numPurchases DistinctCount Tato metoda vrátí počet jedinečných hodnot pro zadanou vlastnost. Pokud je zadaná vlastnost pro příchozí událost null nebo prázdná, událost nepřispěje k agregaci. SELECT DistinctCount(@"device.ipAddress") AS distinctIPaddresses Sum Tato metoda vrátí součet hodnot pro zadanou číselnou vlastnost. SELECT Sum(@"totalAmount") AS totalSpending Po operaci FROM zadejte událost posouzení nebo pozorování, která bude sledovat rychlost. Toto pole, pro které chcete sledovat rychlost nebo seskupit podle, musí být součástí volání rozhraní API. Pokud chcete sledovat rychlost křížových událostí, zadejte více událostí napříč posouzeními nebo událostmi pozorování.
Příkaz WHEN je volitelný. Za když můžete zadat logický výraz. V agregaci se považují pouze události, které splňují podmínku. Ostatní události se ignorují. Výraz slouží k filtrování událostí, které se považují za rychlost.
Po GROUPBY zadejte vlastnost nebo výraz. Vlastnost nebo výraz se pak vyhodnotí pro každou událost, která je zpracována. Všechny události, které jsou vyhodnoceny na stejnou hodnotu v příkazu GROUPBY , se zkombinují a vypočítají agregaci zadanou v příkazu SELECT . Pokud je výraz GROUPBY null nebo prázdný pro příchozí událost, událost nepřispěje k agregaci.
Tip
Libovolný výraz, který lze použít v pravidle, lze také použít rychlostí. Tyto výrazy zahrnují seznamy a externí volání. Úplný seznam dostupných funkcí najdete v referenční příručce jazyka.
Poznámka:
Časové intervaly, které chcete sledovat rychlost, není specifikováno v samotné definici rychlosti. Místo toho ji zadáte, když budete odkazovat na rychlost z pravidla.
Příklady rychlostí
Pomocí následujících příkladů můžete vytvářet vlastní rychlosti.
Množství peněz, které každý uživatel utratil
SELECT Sum(@"totalAmount") AS totalSpending_perUser
FROM Purchase
GROUPBY @"user.userId"
Počet, kolikrát se každá IP adresa použila k vytvoření nového účtu
SELECT Count() AS NewAccounts_perIP
FROM AccountCreation
GROUPBY @"device.ipAddress"
Pro každé zařízení počet jedinečných uživatelů, kteří se přihlásili
SELECT DistinctCount(@"user.userId") AS uniqueUserLogins_perDevice
FROM AccountLogin
GROUPBY @"deviceAttributes.deviceId"
U každého uživatele počet pokusů o přihlášení odmítnutých ochranou před podvody nebo přijetí vysokého rizikového skóre
SELECT Count() AS loginRejections_perUser
FROM AccountLogin
WHEN @"ruleEvaluation.decision" == "Reject" or @"riskScore" > 900
GROUPBY @"user.userId"
U každého uživatele počet nákupů, které byly provedeny mimo USA a které také obsahovaly produkt na seznamu vysoce rizikových produktů.
SELECT Count() AS intlHighRiskTxns_perUser
FROM Purchase
WHEN @"user.country" != "US" and ContainsKey("Risky Products", "Product ID", @"ProductList.productId")
GROUPBY @"user.userId
Počet jedinečných vlastních e-mailů používaných v rámci události posouzení a pozorování pro každého uživatele
SELECT DistinctCount(@"custom.email") AS uniqueEmails_perUser
FROM Assessment_A1, Assessment_A1:status
GROUPBY @"custom.userId"
Vytvoření sady rychlostí
Na portálu Pro ochranu před podvody v levém navigačním panelu vyberte Rychlost a pak vyberte Nová rychlost nastavená.
Ochrana před podvody vytvoří sadu rychlosti konceptu, která je viditelná jenom vám (autorovi). Všimněte si, že všechny změny provedené v konceptu se automaticky uloží.
Volitelné: Do pole Podmínka zadejte logickou podmínku. Případně ponechte pole prázdné.
V agregaci se považují pouze události, které splňují tuto podmínku. Ostatní události se ignorují. Pokud například chcete, aby rychlost v rychlosti nastavená na agregaci pouze událostí, ke kterým dochází v USA, definujte následující podmínku:
KDYŽ @"user.countryRegion" == "US"
Pokud chcete definovat novou rychlost od začátku, vyberte Možnost Nová rychlost. Informace o tom, jak definovat rychlosti, najdete v části Definování rychlosti dříve v tomto článku.
Pokud chcete začít od existující šablony rychlosti, vyberte šipku napravo od nové rychlosti. Pokud chcete zobrazit úplný seznam existujících šablon a jejich obsahu, vyberte Zobrazit vše.
V sadě můžete přidat až 10 rychlostí.
Pokud chcete rychlost publikovat, vyberte Publikovat.
V potvrzovací dialogovém okně můžete změnit název, popis nebo stav rychlosti. Až budete připraveni, vyberte Publikovat.
Po publikování rychlosti se rychlost v sadě rychlosti zobrazí všem uživatelům. S tím, jak události procházejí ochranou před podvody, začnou se data agregovat.
Poznámka:
Po publikování rychlosti začne agregovat data z tohoto bodu dopředu. Historická data se nepovažují.
Informace o tom, jak používat rychlosti k rozhodování, najdete v části Použití rychlosti v části Pravidla dále v tomto článku.
Vysvětlení podokna Ukázka
Když vytváříte nebo upravujete sadu rychlostí, zobrazí se na pravé straně stránky podokno Ukázka .
V podokně Ukázka se zobrazí všechny vlastnosti událostí, na které lze odkazovat ve vašich rychlostech. Tyto vlastnosti se liší v závislosti na typu události, kterou rychlost sleduje. Vyberte typ události v poli Událost v horní části podokna.
Ukázková část datové části obsahuje příklad vlastností, které je možné odeslat v rozhraní API požadavku pro posouzení.
Ukázková část rozšiřování obsahuje příklad vlastností, které ochrana před podvody přidá do vaší události po odeslání počátečního požadavku. Mezi tyto vlastnosti patří například informace z řešení pro otisky prstů zařízení v rámci ochrany před podvody a skóre rizik a robotů z modelů strojového učení.
Ukázka rozšiřování obsahuje také informace z vyhodnocení pravidla, jako je rozhodnutí, název pravidla a název aktivované klauzule. Libovolnou z těchto vlastností můžete použít ve své rychlosti. Pomocí znaku at (@) na ně můžete odkazovat (například @"user.firstName").
Rychlosti definované systémem (výchozí)
Ochrana před podvody vytváří několik systémově definovaných rychlostí pro každé prostředí. Můžete například přidat následující výchozí rychlosti.
- Výchozí – rychlost e-mailu
- Výchozí – rychlost platebního nástroje
- Výchozí – rychlost IP adres
- Výchozí – rychlost ID zařízení
Některé funkce ochrany před podvody závisí na výchozích rychlostech, jako je například stránka výsledků hledání pro ochranu nákupu.
Rychlosti definované systémem se nedají upravovat ani odstraňovat. Můžete je ale naklonovat a potom je upravit nebo odstranit.
Správa sad rychlosti
Pokud chcete upravit existující sadu publikovaných rychlostí, vyberte rychlost a pak vyberte Upravit.
Vytvoří se koncept vaší publikované rychlosti a uvidíte ho jenom vy. Všechny změny provedené v konceptu se automaticky uloží.
Až budete připraveni změny odeslat do produkčního prostředí, vyberte Publikovat. Dříve publikovaná sada rychlosti se přepíše vašimi změnami.
Poznámka:
Všechny změny, které provedete v rychlosti, ovlivní pouze hodnoty vypočítané od tohoto bodu dopředu. Nemají vliv na předchozí data událostí.
Pokud chcete odstranit existující sadu rychlostí, vyberte tři tečky (...) a pak vyberte Odstranit.
Poznámka:
Pokud se v publikovaném pravidle odkazuje na některou z jeho rychlostí, nemůžete odstranit sadu rychlostí.
Pokud chcete aktualizovat název nebo popis sady rychlostí, vyberte tři tečky (...) a pak vyberte Přejmenovat.
Pokud chcete změnit stav nastavení rychlosti, vyberte Aktivovat nebo Deaktivovat.
- Rychlosti v sadě rychlosti, která je označena jako aktivní , se neustále aktualizují, protože nové události proudí do ochrany před podvody.
- Rychlosti v sadě rychlosti, která je označena jako Neaktivní , se nikdy neaktualizují.
Použití rychlosti v pravidlech
Pokud chcete využít své rychlosti k rozhodování o příchozích událostech posouzení, musíte na ně ve svých pravidlech odkazovat. Například následující rychlost je definována jako součást sady rychlosti.
SELECT Sum(@"totalAmount") AS totalSpending_perUser
FROM Purchase
GROUPBY @"user.userId"
WHEN Velocity.totalSpending_perUser(@"user.userid", 7d) > 1000
V pravidle můžete provést kontrolu rychlosti pomocí následující syntaxe.
WHEN Velocity.totalSpending_perUser(@"user.userid", 7d) > 1000
První parametr je klíč. Tento parametr se používá k vyhledání rychlosti. V předchozí definici rychlosti pro totalSpending příkaz GROUPBY\@"user.userId"označuje, že hodnoty budou agregovány pro každé ID uživatele, které je zjištěno. Když odkazujete na rychlost z pravidla, parametr klíče určuje ID uživatele, pro které se má načíst hodnota rychlosti. Pokud je parametr klíče null nebo prázdný, vrátí ochrana před podvody hodnotu 0.
Druhý parametr je timeWindow. Tento parametr určuje časové intervaly, které chcete sledovat rychlost. Můžete vybrat časové okno mezi 1 sekundou a devadesát dny. V současné době jsou všechna platná časová okna:
- [1–59]s
- [1–59]m
- [1–23]h
- [1–90]d
Poznámka:
Časové období začíná na začátku předchozí měrné jednotky. Pokud je například aktuální datum a čas 11:04 1. dubna 2021 a zkontrolujete rychlost v časovém intervalu dvouhodinových (2h), zobrazí se data od 9:00, ne od 9:04.
Pokud se z důvodu chyby nepodaří vrátit hodnotu, vrátí se výchozí hodnota 0 a pravidlo se bude dál spouštět.
Rychlost se aktualizuje o aktuální událost po vyhodnocení pravidla. Proto pokud v pravidle odkazujete na rychlost, nebude obsahovat aktuální událost, která se zpracovává.
Rychlosti lze také vyvolat z funkcí. Další informace najdete v tématu Funkce.
Zobrazení hodnot rychlosti pomocí pravidel
Kromě vrácení rozhodnutí můžou pravidla používat funkce pozorování, jako je Output(), k tisku určitých hodnot do odpovědi rozhraní API. Uživatel může například napsat následující klauzuli, která neprovede rozhodnutí, ale jednoduše vypíše hodnoty několika rychlostí v odpovědi rozhraní API.
OBSERVE Output(
totalSpending_7d = Velocity.totalSpending_perUser(@"user.userid", 7d),
loginsPerDevice_1m = Velocity.loginCount_perDevice(@"deviceAttributes.deviceId", 1m)
)
Každá událost posouzení, která toto pravidlo aktivuje, pak v odpovědi rozhraní API vytiskne následující část:
"MerchantRuleOutput": {
"clause1": {
"totalSpending_7d": "523.99",
"loginsPerDevice_1m": "1"
}
},
Místo tisku hodnot rychlosti přímo do odpovědi rozhraní API můžete pomocí trasování událostí odesílat hodnoty do vlastní instance služby Azure Event Hubs nebo Azure Blob Storage. Můžete například vytvořit následující pravidlo.
RETURN Approve(), Trace(
totalSpending_7d = Velocity.totalSpending_perUser(@"user.userid", 7d),
loginsPerDevice_1m = Velocity.loginCount_perDevice(@"deviceAttributes.deviceId", 1m)
)
Pokud se přihlásíte k odběru události FraudProtection.Trace.Rule, budou odeslány následující informace jako součást každé události.
"attributes": {
"totalSpending_7d": 523.99
"loginsPerDevice_1m": 1
}