Поделиться через


Выполнение проверка скорости

Частота событий от пользователя или сущности (например, кредитной карта) может указывать на подозрительные действия и потенциальное мошенничество. Например, после того, как мошенники пытаются выполнить несколько отдельных заказов, они часто используют один кредитный карта для быстрого размещения множества заказов с одного IP-адреса или устройства. Они также могут использовать множество различных кредитных карта для быстрого размещения множества заказов. Скорость проверка помогает определить эти типы шаблонов событий. Определив скорости, вы можете просматривать входящие события для этих типов шаблонов и использовать правила для определения пороговых значений, за пределами которых вы хотите рассматривать шаблоны как подозрительные.

Если экземпляр Microsoft Dynamics 365 Fraud Protection содержит несколько сред, можно определить скорость в определенной среде с помощью переключателя среды. Скорость можно ссылать только в правилах, определенных в соответствующей среде. Если скорость создается в родительской среде, и правило определяется в той же среде, транзакции в дочерних средах будут включены в скорость при запуске правила родительского уровня.

Определение скорости

Наборы скоростей состоят из отдельных скоростей. Вы определяете скорости в Dynamics 365 Fraud Protection с помощью инструкций SELECT, FROM, WHEN и GROUPBY ключевое слово в следующей структуре.

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

Примечание.

Массивы нельзя использовать для GROUPBY в определении скорости.

  • После SELECT укажите метод агрегирования: Count, DistinctCount или Sum. Затем используйте as ключевое слово для имени скорости. Затем это имя можно использовать для ссылки на скорость в правилах.

    Ниже приведено описание методов агрегирования.

    Метод агрегирования Description Пример
    Count Этот метод возвращает количество случаев, когда произошло событие. SELECT Count() AS numPurchases
    DistinctCount Этот метод возвращает количество уникальных значений для указанного свойства. Если указанное свойство имеет значение NULL или пусто для входящего события, событие не будет вносить вклад в агрегирование. SELECT DistinctCount(@"device.ipAddress") AS distinctIPaddresses
    Sum Этот метод возвращает сумму значений для указанного числового свойства. SELECT Sum(@"totalAmount") AS totalSpending
  • После from укажите событие оценки или наблюдения для наблюдения за скоростью. Поле Th, которое требуется наблюдать за скоростью или группировать по, должно быть частью вызова API. Чтобы наблюдать за скоростью перекрестного события, укажите несколько событий в оценках или событиях наблюдения.

  • Оператор WHEN является необязательным. После ввода логического выражения можно ввести логическое выражение. В агрегации рассматриваются только события, соответствующие условию. Другие события игнорируются. Выражение используется для фильтрации событий, которые рассматриваются в скорости.

  • После GROUPBY укажите свойство или выражение. Затем свойство или выражение вычисляется для каждого обработанного события. Все события, которые оцениваются с одинаковым значением в инструкции GROUPBY , объединяются для вычисления агрегата, указанного в инструкции SELECT . Если выражение GROUPBY равно null или пусто для входящего события, событие не будет вносить вклад в агрегирование.

Совет

Любое выражение, которое можно использовать в правиле, также может использоваться в скорости. Эти выражения включают списки и внешние вызовы. Полный список доступных функций см. в справочнике по языку.

Примечание.

Период времени, который требуется наблюдать за скоростью, не указан в самом определении скорости. Вместо этого вы указываете его при ссылке на скорость из правила.

Примеры скорости

Используйте следующие примеры для создания собственных скоростей.

Сумма денег, потраченных каждым пользователем

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

Количество раз, когда каждый IP-адрес использовался для создания новой учетной записи

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

Для каждого устройства число уникальных пользователей, вошедших в систему

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

Для каждого пользователя количество попыток входа, отклоненных защитой от мошенничества или полученных оценки высокого риска

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

Для каждого пользователя количество покупок, сделанных за пределами США, а также содержит продукт в списке высокого риска.

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

Для каждого пользователя количество уникальных пользовательских сообщений электронной почты, которые использовались в событии оценки и наблюдения

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

Создание набора скоростей

  1. На портале защиты от мошенничества в области навигации слева выберите "Velocities" и выберите "Создать набор скорости".

    Защита от мошенничества создает черновик скорости, который виден только вам (создателю). Обратите внимание, что все изменения, внесенные в черновик, автоматически сохраняются.

  2. Необязательно. В поле "Условие " введите логическое условие. Кроме того, оставьте поле пустым.

    В агрегации рассматриваются только события, соответствующие этому условию. Другие события игнорируются. Например, если требуется, чтобы скорость скорости агрегировали только события, происходящие в США, определите следующее условие:

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

  3. Чтобы определить новую скорость с нуля, нажмите кнопку "Создать скорость". Сведения об определении скорости см . в разделе "Определение скорости " выше в этой статье.

    Чтобы начать с существующего шаблона скорости, щелкните стрелку справа от новой скорости. Чтобы просмотреть полный список существующих шаблонов и их содержимого, выберите "Просмотреть все".

    В наборе можно добавить до 10 скоростей.

  4. Чтобы опубликовать скорость, нажмите кнопку "Опубликовать".

  5. В диалоговом окне подтверждения можно изменить имя, описание или состояние скорости. Когда вы будете готовы, нажмите кнопку "Опубликовать".

После публикации скорости скорость в наборе скоростей отображается всем пользователям. По мере того как события проходят через защиту от мошенничества, скорости начнут агрегировать данные.

Примечание.

После публикации скорости он начинает агрегировать данные с этого момента вперед. Исторические данные не учитываются.

Сведения об использовании скорости принятия решений см . в разделе "Использование скорости в правилах " далее в этой статье.

Общие сведения о панели примеров

При создании или изменении набора скоростей панель "Пример " появится справа от страницы.

  • На панели "Пример" отображаются все свойства события, на которые можно ссылаться в скоростях. Эти свойства зависят от типа события, наблюдаемого скоростью. Выберите тип события в поле "Событие" в верхней части области.

  • Пример полезных данных содержит пример свойств, которые можно отправить в API запросов для оценки.

  • Пример обогащения содержит пример свойств, которые защита от мошенничества добавляет в событие после отправки первоначального запроса. Например, эти свойства включают сведения из решения по отпечаткам пальцев устройства в Службе защиты от мошенничества, а также оценки рисков и ботов из моделей машинного обучения.

    Пример обогащения также содержит сведения из оценки правил, таких как решение, имя правила и имя предложения, которое было активировано. Вы можете использовать любое из этих свойств в скорости. Используйте знак по адресу (@), чтобы ссылаться на них (например, @"user.firstName".

Системные (по умолчанию) скорости

Защита от мошенничества создает несколько системных скоростей для каждой среды. Например, можно добавить следующие скорости по умолчанию.

  • По умолчанию — скорости электронной почты
  • По умолчанию — скорости инструмента оплаты
  • По умолчанию — скорости IP-адресов
  • Значение по умолчанию — идентификатор устройства

Некоторые функции защиты от мошенничества основаны на скоростях по умолчанию, таких как страница результатов поиска для защиты покупок.

Нельзя изменять или удалять системные скорости. Однако их можно клонировать, а затем изменить или удалить клоны.

Управление наборами скоростей

  • Чтобы изменить существующий опубликованный набор скоростей, выберите скорость и нажмите кнопку "Изменить".

    Создается черновик опубликованной скорости и отображается только вам. Все изменения, внесенные в черновик, автоматически сохраняются.

    Когда вы будете готовы отправить изменения в рабочую среду, выберите "Опубликовать". Ранее опубликованный набор скоростей перезаписан с изменениями.

    Примечание.

    Любые изменения, внесенные в скорость, влияют только на значения, вычисляемые с этого момента вперед. Они не влияют на предыдущие данные события.

  • Чтобы удалить существующий набор скоростей, выберите многоточие (...), а затем нажмите кнопку "Удалить".

    Примечание.

    Невозможно удалить набор скоростей, если в опубликованном правиле ссылается какая-либо из его скоростей.

  • Чтобы обновить имя или описание набора скоростей, выберите многоточие (...), а затем выберите "Переименовать".

  • Чтобы изменить состояние набора скоростей, нажмите кнопку "Активировать " или "Деактивировать".

    • Скорости в наборе скоростей, помеченном как активные , постоянно обновляются как новые события в защиту от мошенничества.
    • Скорость в наборе скоростей, помеченная как неактивная , никогда не обновляется.

Использование скорости в правилах

Чтобы использовать ваши скорости для принятия решений о входящих событиях оценки, необходимо ссылаться на них в правилах. Например, следующая скорость определяется как часть набора скоростей.

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

В правиле можно выполнить скорость проверка с помощью следующего синтаксиса.

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

Первый параметр — ключ. Этот параметр используется для поиска скорости. В предыдущем определении скорости для totalSpending инструкция GROUPBY\ @"user.userId" указывает, что значения будут агрегированы для каждого обнаруженного идентификатора пользователя. При ссылке на скорость из правила ключевой параметр указывает идентификатор пользователя для получения значения скорости. Если параметр ключа имеет значение NULL или пуст, защита от мошенничества возвращает значение 0.

Второй параметр — timeWindow. Этот параметр указывает период времени, который требуется наблюдать за скоростью. Можно выбрать интервал времени между одной секундой и девяносто днями. В настоящее время все допустимые периоды времени:

  • [1–59]s
  • [1–59]m
  • [1–23]h
  • [1–90]d

Примечание.

Период времени начинается в начале предыдущей единицы измерения. Например, если текущая дата и время 11:04 04 1 апреля 2021 г. и вы проверка скорость в течение двухчасового (2 ч)), данные будут отображаться с 9:00 утра, а не с 9:04 утра.

Если скорость не возвращает значение из-за ошибки, возвращается значение по умолчанию 0 , а правило продолжает выполняться.

Типы скоростей обновляются с текущим событием после оценки правила. Таким образом, если вы ссылаетесь на скорость в правиле, она не будет включать текущее событие, обрабатываемое.

Также могут вызываться в функциях скорости. См. дополнительные сведения о функциях.

Использование правил для просмотра значений скорости

Помимо возврата решений правила могут использовать такие функции наблюдения, как Output() для печати определенных значений в ответ API. Например, пользователь может написать следующее предложение, которое не принимает решение, но просто выводит значения нескольких скоростей в ответе API.

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

Каждое событие оценки, которое активирует это правило, выводит следующий раздел в ответе API:

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

Вместо печати значений скорости непосредственно в ответ API можно использовать трассировку событий для отправки значений в собственный экземпляр Центры событий Azure или Хранилище BLOB-объектов Azure. Например, создайте следующее правило.

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

Если вы подписаны на событие FraudProtection.Trace.Rule, следующие сведения будут отправлены в рамках каждого события.

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

Дополнительные ресурсы