다음을 통해 공유


속도 검사 수행

사용자 또는 엔터티의 이벤트 빈도(예: 신용 카드)는 의심스러운 활동 및 잠재적 사기를 나타낼 수 있습니다. 예를 들어 사기꾼이 몇 가지 개별 주문을 시도한 후 단일 크레딧 카드 사용하여 단일 IP 주소 또는 장치에서 많은 주문을 신속하게 처리하는 경우가 많습니다. 또한 다양한 크레딧 카드 사용하여 신속하게 많은 주문을 할 수 있습니다. 속도 검사 이러한 유형의 이벤트 패턴을 식별하는 데 도움이 됩니다. 속도를 정의하여 이러한 유형의 패턴에 대해 들어오는 이벤트를 감시하고 규칙을 사용하여 패턴을 의심스러운 것으로 처리하려는 임계값을 정의할 수 있습니다.

Microsoft Dynamics 365 Fraud Protection 인스턴스에 여러 환경이 있는 경우 환경 전환기를 사용하여 특정 환경에서 속도 집합을 정의할 수 있습니다. 해당 환경에 정의된 규칙에서만 속도를 참조할 수 있습니다. 부모 환경에서 속도가 생성되고 규칙이 동일한 환경에 정의된 경우 부모 수준 규칙이 실행될 때 자식 환경의 트랜잭션이 속도에 포함됩니다.

속도 정의

속도 집합은 개별 속도로 구성됩니다. 다음 구조에서 SELECT, FROM, WHENGROUPBY 키워드(keyword) 사용하여 Dynamics 365 Fraud Protection의 속도를 정의합니다.

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

참고 항목

배열은 속도 정의에서 GROUPBY에 사용할 수 없습니다.

  • SELECT 이후 집계 메서드인 Count, DistinctCount 또는 Sum을 지정합니다. 그런 다음 AS 키워드(keyword) 사용하여 속도의 이름을 지정합니다. 그런 다음 이 이름을 사용하여 규칙의 속도를 참조할 수 있습니다.

    집계 메서드에 대한 설명은 다음과 같습니다.

    집계 방법 설명 예시
    Count 이 메서드는 이벤트가 발생한 횟수를 반환합니다. SELECT Count() AS numPurchases
    DistinctCount 이 메서드는 지정된 속성에 대한 고유 값의 수를 반환합니다. 들어오는 이벤트에 대해 지정된 속성이 null이거나 비어 있으면 이벤트가 집계에 영향을 주지 않습니다. SELECT DistinctCount(@"device.ipAddress") AS distinctIPaddresses
    Sum 이 메서드는 지정된 숫자 속성에 대한 값의 합계를 반환합니다. SELECT Sum(@"totalAmount") AS totalSpending
  • FROM 이후 속도를 관찰할 평가 또는 관찰 이벤트를 지정합니다. 속도를 관찰하거나 그룹화하려는 필드는 API 호출의 일부여야 합니다. 교차 이벤트 속도를 관찰하려면 평가 또는 관찰 이벤트에서 여러 이벤트를 지정합니다.

  • WHEN 문은 선택 사항입니다. 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. Fraud Protection 포털의 왼쪽 탐색 영역에서 속도를 선택한 다음 새 속도 집합을 선택합니다.

    Fraud Protection은 사용자(작성자)에게만 표시되는 초안 속도 집합을 만듭니다. 초안에 적용된 모든 변경 내용은 자동으로 저장됩니다.

  2. 선택 사항: 조건 필드에 부울 조건을 입력합니다. 또는 필드를 비워 둡니다.

    이 조건과 일치하는 이벤트만 집계에서 고려됩니다. 다른 이벤트는 무시됩니다. 예를 들어 속도 집합의 속도가 미국 발생하는 이벤트만 집계하도록 하려면 다음 조건을 정의합니다.

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

  3. 처음부터 새 속도를 정의하려면 새 속도를 선택합니다. 속도를 정의하는 방법에 대한 자세한 내용은 이 문서의 앞부분에 있는 속도 정의 섹션을 참조하세요.

    기존 속도 템플릿에서 시작하려면 새 속도오른쪽에 있는 화살표를 선택합니다. 기존 템플릿 및 해당 콘텐츠의 전체 목록을 보려면 모두 보기를 선택합니다.

    집합에 최대 10속도를 추가할 수 있습니다.

  4. 속도를 게시하려면 게시를 선택합니다.

  5. 확인 대화 상자에서 속도의 이름, 설명 또는 상태 변경할 수 있습니다. 준비가 되면 게시를 선택합니다.

속도가 게시되면 속도 집합의 속도가 모든 사용자에게 표시됩니다. 사기 방지를 통해 이벤트가 흐르면 속도가 데이터 집계를 시작합니다.

참고 항목

속도가 게시되면 해당 시점부터 데이터를 집계하기 시작합니다. 기록 데이터는 고려되지 않습니다.

속도를 사용하여 의사 결정을 내리는 방법에 대한 자세한 내용은 이 문서의 뒷부분에 있는 규칙 섹션에서 속도 사용 섹션을 참조하세요.

샘플 창 이해

속도 집합 을 만들거나 편집하면 페이지 오른쪽에 샘플 창이 나타납니다.

  • 샘플 창에는 속도에서 참조할 수 있는 모든 이벤트 속성이 표시됩니다. 이러한 속성은 속도가 관찰하는 이벤트 유형에 따라 달라집니다. 창 맨 위에 있는 이벤트 필드에서 이벤트 유형을 선택합니다.

  • 페이로드 샘플 섹션에는 평가를 위해 요청 API에서 보낼 수 있는 속성의 예가 포함되어 있습니다.

  • 보강 샘플 섹션에는 초기 요청이 전송된 후 Fraud Protection이 이벤트에 추가하는 속성의 예가 포함되어 있습니다. 예를 들어 이러한 속성에는 Fraud Protection의 디바이스 지문 솔루션의 정보와 기계 학습 모델의 위험 및 봇 점수가 포함됩니다.

    보강 샘플에는 의사 결정, 규칙 이름 및 트리거된 절의 이름과 같은 규칙 평가의 정보도 포함됩니다. 속도에서 이러한 속성을 사용할 수 있습니다. at 기호(@)를 사용하여 참조합니다(예: @"user.firstName").

시스템 정의(기본값) 속도

Fraud Protection은 환경당 여러 시스템 정의 속도를 만듭니다. 예를 들어 다음과 같은 기본 속도를 추가할 수 있습니다.

  • 기본값 - 전자 메일 속도
  • 기본값 - 결제 방법 속도
  • 기본값 - IP 속도
  • 기본값 - 디바이스 ID 속도

일부 사기 방지 기능은 구매 보호를 위한 검색 결과 페이지와 같은 기본 속도를 사용합니다.

시스템 정의 속도는 편집하거나 삭제할 수 없습니다. 그러나 복제한 다음 클론을 편집하거나 삭제할 수 있습니다.

속도 집합 관리

  • 게시된 기존 속도 집합을 편집하려면 속도를 선택한 다음 편집을 선택합니다.

    게시된 속도의 초안이 만들어지고 사용자에게만 표시됩니다. 초안에 적용된 모든 변경 내용은 자동으로 저장됩니다.

    변경 내용을 프로덕션 환경에 푸시할 준비가 되면 게시를 선택합니다. 이전에 게시된 속도 집합은 변경 내용으로 덮어씁니다.

    참고 항목

    속도에 대한 변경 내용은 해당 시점부터 계산된 값에만 영향을 미칩니다. 이전 이벤트 데이터에는 영향을 주지 않습니다.

  • 기존 속도 집합을 삭제하려면 줄임표(...)를 선택한 다음 삭제를 선택합니다.

    참고 항목

    게시된 규칙에서 해당 속도 집합을 참조하는 경우 속도 집합을 삭제할 수 없습니다.

  • 속도 집합의 이름 또는 설명을 업데이트하려면 줄임표(...)를 선택한 다음 이름 바꾸기를 선택합니다.

  • 속도 집합의 상태 변경하려면 활성화 또는 비활성화를 선택합니다.

    • 활성으로 표시된 속도 집합의 속도는 새 이벤트가 사기 방지로 흐르면서 지속적으로 업데이트됩니다.
    • 비활성으로 표시된 속도 집합의 속도는 업데이트되지 않습니다.

규칙에서 속도 사용

속도를 사용하여 들어오는 평가 이벤트에 대한 결정을 내리려면 규칙에서 참조해야 합니다. 예를 들어 다음 속도는 속도 집합의 일부로 정의됩니다.

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" 문은 발생한 각 사용자 ID에 대해 값이 집계됨을 나타냅니다. 규칙 에서 속도를 참조하는 경우 키 매개 변수는 속도 값을 검색할 사용자 ID를 지정합니다. 키 매개 변수가 null이거나 비어 있으면 Fraud Protection은 0을 반환합니다.

두 번째 매개 변수는 timeWindow입니다. 이 매개 변수는 속도를 관찰하려는 시간 창을 지정합니다. 1초에서 90일 사이의 시간 창을 선택할 수 있습니다. 현재, 다음은 모두 유효한 시간 창입니다.

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

참고 항목

시간 창은 이전 측정 단위의 시작 부분에 시작됩니다. 예를 들어 현재 날짜와 시간이 2021년 4월 1일 오전 11:04이고 2시간(2시간) 기간 동안 속도를 검사 경우 오전 9시 이후가 아니라 오전 9시 이후의 데이터가 표시됩니다.

오류로 인해 속도가 값을 반환하지 못하면 기본값 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 Event Hubs 또는 Azure Blob Storage의 사용자 고유 인스턴스로 값을 보낼 수 있습니다. 예를 들어 다음 규칙을 만듭니다.

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
}

추가 리소스