Condividi tramite


Eseguire controlli di velocità

La frequenza degli eventi di un utente o di un'entità (come una carta di credito) potrebbe indicare attività sospette e potenziali frodi. Ad esempio, dopo che i truffatori provano alcuni ordini individuali, spesso utilizzano una singola carta di credito per effettuare rapidamente molti ordini a partire da un singolo indirizzo IP o dispositivo. Potrebbero anche utilizzare molte carte di credito diverse per effettuare rapidamente molti ordini. I controlli di velocità aiutano a identificare questi tipi di modelli di eventi. Definendo le velocità, è possibile controllare gli eventi in arrivo per questi tipi di modelli e utilizzare le regole per definire le soglie oltre le quali si desidera trattare i modelli come sospetti.

Se l'istanza di Microsoft Dynamics 365 Fraud Protection dispone di più ambienti, puoi definire un set di velocità in un ambiente specifico utilizzando il selettore di ambiente. È possibile fare riferimento a una velocità solo nelle regole definite nell'ambiente corrispondente. Se la velocità viene creata in un ambiente padre e la regola viene definita nello stesso ambiente, le transazioni negli ambienti figlio verranno incluse nella velocità quando viene eseguita la regola a livello padre.

Definire una velocità

I set di velocità sono costituiti da singole velocità. Le velocità sono definite in Dynamics 365 Fraud Protection utilizzando le parole chiave SELECT, FROM, WHEN e GROUPBY nella struttura seguente.

SELECT <aggregation method> AS <velocity name>
FROM <event type>
WHEN <condition>
GROUPBY <attribute name>

Nota

Le matrici non possono essere usate per GROUPBY in una definizione di velocità.

  • Dopo SELECT, specificare un metodo di aggregazione: Count, DistinctCount o Sum. Quindi usare la parola chiave AS per denominare la velocità. Questo nome può quindi essere utilizzato per fare riferimento alla velocità nelle regole.

    Di seguito vengono descritti i metodi di aggregazione.

    Metodo di aggregazione descrizione Esempio
    Conteggio Questo metodo restituisce il numero di volte in cui si è verificato un evento. SELECT Count() AS numPurchases
    DistinctCount Questo metodo restituisce il numero di valori distinti per la proprietà specificata. Se la proprietà specificata è nulla o vuota per un evento in arrivo, l'evento non contribuirà all'aggregazione. SELECT DistinctCount(@"device.ipAddress") AS distinctIPaddresses
    Totale Questo metodo restituisce la somma dei valori per una proprietà numerica specificata. SELECT Sum(@"totalAmount") AS totalSpending
  • Dopo FROM, specifica una valutazione o un evento di osservazione per osservare la velocità. Il campo per il quale si desidera osservare la velocità o raggruppare deve far parte della chiamata API. Per osservare una velocità tra eventi, specifica più eventi tra valutazioni o eventi di osservazione.

  • L'istruzione WHEN è facoltativa. Dopo WHEN, è possibile digitare un'espressione booleana. Solo gli eventi che corrispondono alla condizione vengono considerati nell'aggregazione. Altri eventi vengono ignorati. L'espressione viene utilizzata per filtrare gli eventi considerati nella velocità.

  • Dopo GROUPBY specificare una proprietà o un'espressione. La proprietà o l'espressione viene quindi valutata per ogni evento elaborato. Tutti gli eventi che restituiscono lo stesso valore nell'istruzione GROUPBY vengono combinati per calcolare l'aggregazione specificata nell'istruzione SELECT. Se l'espressione GROUPBY è nulla o vuota per un evento in arrivo, l'evento non contribuirà all'aggregazione.

Suggerimento

Anche qualsiasi espressione che può essere utilizzata in una regola può essere utilizzata in una velocità. Queste espressioni includono elenchi e chiamate esterne. Per un elenco completo delle funzioni disponibili, vedere la guida di riferimento al linguaggio.

Nota

La finestra temporale in cui si desidera osservare la velocità non è specificata nella definizione della velocità stessa. Invece, la si specifica quando si fa riferimento alla velocità in una regola.

Esempi di velocità

Utilizzare i seguenti esempi per creare le proprie velocità.

La quantità di denaro che ogni utente ha speso

SELECT Sum(@"totalAmount") AS totalSpending_perUser
FROM Purchase
GROUPBY @"user.userId"

Il numero di volte in cui ciascun indirizzo IP è stato utilizzato per creare un nuovo account

SELECT Count() AS NewAccounts_perIP
FROM AccountCreation
GROUPBY @"device.ipAddress"

Per ogni dispositivo, il numero di utenti univoci che hanno effettuato l'accesso

SELECT DistinctCount(@"user.userId") AS uniqueUserLogins_perDevice
FROM AccountLogin
GROUPBY @"deviceAttributes.deviceId"

Per ogni utente, il numero di tentativi di accesso rifiutati da Fraud Protection o che hanno ricevuto un punteggio di rischio elevato

SELECT Count() AS loginRejections_perUser
FROM AccountLogin
WHEN @"ruleEvaluation.decision" == "Reject" or @"riskScore" > 900
GROUPBY @"user.userId"

Per ogni utente, il numero di acquisti effettuati al di fuori degli Stati Uniti e che contenevano anche un prodotto in un elenco ad alto rischio

SELECT Count() AS intlHighRiskTxns_perUser
FROM Purchase
WHEN @"user.country" != "US" and ContainsKey("Risky Products", "Product ID", @"ProductList.productId")
GROUPBY @"user.userId

Per ogni utente, il numero di e-mail personalizzate univoche che sono state utilizzate durante un evento di valutazione e osservazione

SELECT DistinctCount(@"custom.email") AS uniqueEmails_perUser
FROM Assessment_A1, Assessment_A1:status
GROUPBY @"custom.userId"

Creare un set di velocità

  1. Nel portale di Fraud Protection, nella barra di navigazione a sinistra, selezionare Velocità e quindi selezionare Nuovo set di velocità.

    Fraud Protection crea una bozza di set di velocità visibile solo al creatore. Da notare che tutte le modifiche apportate alla bozza vengono salvate automaticamente.

  2. Facoltativo: nel campo Condizione, immettere una condizione booleana. In alternativa, lasciare vuoto il campo.

    Solo gli eventi che corrispondono a questa condizione vengono considerati nell'aggregazione. Altri eventi vengono ignorati. Ad esempio, se le velocità nel set di velocità devono aggregare solo gli eventi che si verificano negli Stati Uniti, definire la seguente condizione:

    WHEN @"user.countryRegion" == "US"

  3. Per definire una nuova velocità da zero, selezionare Nuova velocità. Per informazioni su come definire le velocità, vedi la sezione Definire una velocità vista in precedenza in questo articolo.

    Per iniziare da un modello di velocità esistente, selezionare la freccia a destra di Nuova velocità. Per visualizzare un elenco completo dei modelli esistenti e del relativo contenuto, selezionare Visualizza tutto.

    È possibile aggiungere fino a 10 velocità in un set.

  4. Selezionare Pubblica per pubblicare la velocità.

  5. Nella finestra di dialogo di conferma, è possibile modificare il nome, la descrizione o lo stato della velocità. Al termine, selezionare Pubblica.

Dopo che la velocità viene pubblicata, le velocità nel set di velocità sono visibili a tutti gli utenti. A mano a mano che gli eventi fluiscono attraverso Fraud Protection, le velocità inizieranno ad aggregare i dati.

Nota

Dopo che una velocità viene pubblicata, inizia ad aggregare i dati da quel punto in poi. I dati storici non vengono considerati.

Per informazioni su come utilizzare le velocità per prendere decisioni, vedi la sezione Usare una velocità nelle regole più avanti in questo articolo.

Riquadro Esempio

Quando si crea o modifica un set di velocità, il riquadro Esempio viene visualizzato sul lato destro della pagina.

  • Il riquadro Esempio mostra tutte le proprietà degli eventi a cui è possibile fare riferimento nelle velocità. Queste proprietà variano a seconda del tipo di evento osservato dalla velocità. Selezionare il tipo di evento nel campo Evento nella parte superiore del riquadro.

  • La sezione Esempio payload contiene un esempio delle proprietà che possono essere inviate nell'API di richiesta per la valutazione.

  • La sezione Esempio di arricchimento contiene un esempio delle proprietà che Fraud Protection aggiunge all'evento dopo che la richiesta iniziale è stata inviata. Ad esempio, queste proprietà includono informazioni della soluzione creazione impronta digitale dispositivo di Fraud Protection e punteggi di rischio e bot dei modelli di Machine Learning.

    L'esempio di arricchimento include anche informazioni della valutazione della regola, come la decisione, il nome della regola e il nome della clausola che è stata attivata. È possibile usare una qualsiasi di queste proprietà nella velocità. Utilizzare un simbolo di chiocciola (@) per farvi riferimento (ad esempio, @"user.firstName").

Velocità definite dal sistema (impostazione predefinita)

Fraud Protection crea diverse velocità definite dal sistema per ambiente. Ad esempio, è possibile aggiungere le seguenti velocità predefinite.

  • Impostazione predefinita - Velocità e-mail
  • Impostazione predefinita - Velocità strumenti di pagamento
  • Impostazione predefinita - Velocità IP
  • Impostazione predefinita - Velocità ID dispositivo

Alcune funzionalità di Fraud Protection si basano sulle velocità predefinite, come la pagina Risultati della ricerca per la protezione degli acquisti.

Non è possibile modificare o eliminare le velocità stabilite dal sistema. Tuttavia, puoi clonarle e quindi modificare o eliminare i cloni.

Gestire i set di velocità

  • Per modificare un set di velocità pubblicato, selezionare la velocità e quindi selezionare Modifica.

    Viene creata una bozza della velocità pubblicata che è visibile solo all'utente. Tutte le modifiche apportate alla bozza vengono salvate automaticamente.

    Quando si è pronti per inviare le modifiche alla produzione, selezionare Pubblica. Il set di velocità pubblicato in precedenza viene sovrascritto con le modifiche.

    Nota

    Qualsiasi modifica apportata a una velocità influisce solo sui valori calcolati da quel punto in poi. Non influenzano i dati di eventi precedenti.

  • Per eliminare un set di velocità, selezionare i puntini di sospensione (...), quindi selezionare Elimina.

    Nota

    Non è possibile eliminare un set di velocità se a una delle relative velocità si fa riferimento in una regola pubblicata.

  • Per aggiornare il nome o la descrizione di un set di velocità, selezionare i puntini di sospensione (...), quindi selezionare Rinomina.

  • Per modificare lo stato del set di velocità, selezionare Attiva o Disattiva.

    • Le velocità in un set di velocità contrassegnato come Attivo vengono costantemente aggiornati a mano a mano che nuovi eventi fluiscono in Fraud Protection.
    • Le velocità in un set di velocità contrassegnato come Non attivo non vengono mai aggiornate.

Usare una velocità nelle regole

Per prendere decisioni relative agli eventi di valutazione in arrivo utilizzando le velocità, è necessario farvi riferimento nelle regole. Ad esempio, la velocità seguente è definita come parte di un set di velocità.

SELECT Sum(@"totalAmount") AS totalSpending_perUser
FROM Purchase 
GROUPBY @"user.userId"
WHEN Velocity.totalSpending_perUser(@"user.userid", 7d) > 1000

Nella regola, è possibile eseguire un controllo della velocità utilizzando la seguente sintassi.

WHEN Velocity.totalSpending_perUser(@"user.userid", 7d) > 1000

Il primo parametro è key. Questo parametro viene utilizzato per cercare la velocità. Nella precedente definizione di velocità per totalSpending, l'istruzione GROUPBY\ @"user.userId" indica che i valori verranno aggregati per ogni ID utente rilevato. Quando si fa riferimento alla velocità di una regola, il parametro key specifica l'ID utente per cui recuperare il valore di velocità. Se il parametro key è nullo o vuoto, Fraud Protection restituisce 0.

Il secondo parametro è timeWindow. Questo parametro specifica la finestra temporale in cui si desidera osservare la velocità. È possibile selezionare una finestra temporale compresa tra un secondo e novanta giorni. Attualmente, le seguenti sono tutte finestre temporali valide:

  • [1-59]s
  • [1-59]m
  • [1-23]h
  • [1-90]g

Nota

La finestra temporale inizia all'inizio dell'unità di misura precedente. Ad esempio, se la data e l'ora correnti sono le 11:04 del 1 aprile 2021 e si controlla una velocità nel corso di una finestra temporale di 2 ore (2h), verranno visualizzati i dati dalle 9:00 e non dalle 9:04.

Se una velocità non restituisce un valore a causa di un errore, il valore predefinito 0 viene restituito e la regola continua a essere eseguita.

Le velocità vengono aggiornate con l'evento corrente dopo la valutazione della regola. Pertanto, se si fa riferimento a una velocità in una regola, questa non includerà l'evento corrente attualmente in fase di elaborazione.

Le velocità possono anche essere richiamate da Funzioni. Per altre informazioni, vedere Funzioni.

Utilizzare regole per visualizzare i valori di velocità

Oltre a restituire decisioni, le regole possono utilizzare funzioni di osservazione come Output() per stampare determinati valori nella risposta API. Ad esempio, un utente potrebbe scrivere la seguente clausola, che non prende una decisione, ma restituirà semplicemente i valori di diverse velocità nella risposta API.

OBSERVE Output(
    totalSpending_7d = Velocity.totalSpending_perUser(@"user.userid", 7d),
    loginsPerDevice_1m = Velocity.loginCount_perDevice(@"deviceAttributes.deviceId", 1m)
)

Ogni evento di vlautazione che attiva questa regola stamperà la sezione seguente nella risposta dell'API:

"MerchantRuleOutput": {
    "clause1": {
        "totalSpending_7d": "523.99",
        "loginsPerDevice_1m": "1"
    }
},

Anziché stampare i valori di velocità direttamente nella risposta API, è possibile usare Traccia eventi per inviare i valori alla propria istanza di Hub eventi di Azure o Archiviazione BLOB di Azure. È ad esempio possibile creare la seguente regola.

RETURN Approve(), Trace(
    totalSpending_7d = Velocity.totalSpending_perUser(@"user.userid", 7d),
    loginsPerDevice_1m = Velocity.loginCount_perDevice(@"deviceAttributes.deviceId", 1m)
)

In caso di iscrizione all'evento FraudProtection.Trace.Rule, le seguenti informazioni verranno quindi inviate come parte di ciascun evento.

"attributes": {
    "totalSpending_7d": 523.99
    "loginsPerDevice_1m": 1
}

Risorse aggiuntive