共用方式為


執行速度檢查

來自使用者或實體的事件頻率(例如信用卡)可能會指出可疑的活動和潛在的詐騙。 例如,在詐騙者嘗試幾個個別訂單之後,他們通常會使用單一信用卡,從單一IP位址或裝置快速訂購許多訂單。 他們也可以使用許多不同的信用卡來快速訂購許多訂單。 速度檢查可協助您識別這些類型的事件模式。 藉由定義速度,您可以監看這些模式類型的傳入事件,並使用規則來定義超出您想要將模式視為可疑的臨界值。

如果您的 Microsoft Dynamics 365 詐騙保護實例有多個環境,您可以使用環境切換器,在特定環境中定義速度設定。 您只能在對應環境中定義的規則中參考速度。 如果在父環境中建立速度,而且規則是在相同的環境中定義,則子環境中的交易會在父層級規則執行時包含在速度中。

定義速度

速度集合是由個別速度所組成。 您可以使用下列結構的 SELECTFROMWHENGROUPBY 關鍵詞,在 Dynamics 365 Fraud Protection 中定義速度。

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

注意

數位無法在速度定義中使用 GROUPBY。

  • 在 SELECT 之後,指定匯總方法:CountDistinctCountSum然後使用 AS 關鍵詞來命名速度。 此名稱接著可用來參考規則中的速度。

    以下是匯總方法的說明。

    匯總方法 描述 範例
    計數 這個方法會傳回事件發生的次數。 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. 在 [詐騙保護] 入口網站的左側導覽中,選取 [速度],然後選取 [新增速度集]。

    詐騙保護會建立一個草稿速度集,只有您(建立者)才能看到。 請注意,您對草稿所做的所有變更都會自動儲存。

  2. 選擇性:在 [ 條件] 字段中,輸入布爾值條件。 或者,將欄位保留空白。

    匯總中只會考慮符合此條件的事件。 會忽略其他事件。 例如,如果您想要將速度中的速度設定為只匯總 美國 中發生的事件,請定義下列條件:

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

  3. 若要從頭開始定義新的速度,請選取 [ 新增速度]。 如需如何定義速度的資訊,請參閱 本文稍早的<定義速度 >一節。

    若要從現有的速度範本開始,請選取 [新增速度] 右邊的 箭號。 若要檢視現有範本及其內容的完整清單,請選取 [ 全部查看]。

    您可以在集合中新增最多10個速度。

  4. 若要發佈速度,請選取 [ 發佈]。

  5. 在確認對話框中,您可以變更速度的名稱、描述或狀態。 當您準備好時,請選取 [ 發佈]。

發佈速度之後,所有使用者都能看到速度集中的速度。 當事件流經詐騙保護時,速度會開始匯總數據。

注意

發佈速度之後,它會開始從該點向前匯總數據。 不會考慮歷程記錄數據。

如需如何使用速度來做出決策的資訊,請參閱 本文稍後的<使用規則 中的速度>一節。

瞭解範例窗格

當您建立或編輯速度集時,[ 範例 ] 窗格會出現在頁面右側。

  • [ 範例 ] 窗格會顯示可在速度中參考的所有事件屬性。 這些屬性會根據速度觀察到的事件類型而有所不同。 在窗格頂端的 [事件] 字段中選取事件類型

  • 承載 範例 區段包含可在要求 API 中傳送評估的屬性範例。

  • 擴充 範例 區段包含詐騙保護在傳送初始要求之後新增至事件的屬性範例。 例如,這些屬性包括來自 Fraud Protection 裝置 指紋 解決方案的資訊,以及機器學習模型的風險和 Bot 分數。

    擴充範例也包含規則評估中的資訊,例如決策、規則名稱,以及觸發之子句的名稱。 您可以在速度中使用任何這些屬性。 使用 at 符號 (@) 來參考它們(例如 @“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" 語句表示將會針對遇到的每個使用者標識碼匯總值。 當您從規則參考速度時, key 參數會指定要擷取速度值的使用者標識碼。 如果密鑰參數為 Null 或空白,則 Fraud Protection 會傳回 0

第二個參數是 timeWindow。 此參數會指定您想要觀察速度超過的時間範圍。 您可以選取一秒到九十天之間的時間範圍。 目前,以下是所有有效的時間範圍:

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

注意

時間範圍從上一個測量單位的開頭開始。 例如,如果目前日期和時間是 2021 年 4 月 1 日上午 11:04,而且您檢查速度超過兩小時 (2h) 時間範圍,則會看到自上午 9:00 之後的數據,而不是從上午 9:04 開始。

如果速度因為錯誤而無法傳回值,則會傳回預設值 0 ,而且您的規則會繼續執行。

在規則評估之後,速度會隨著目前事件更新。 因此,如果您參考規則中的速度,它就不會包含正在處理中的目前事件。

您也可以從 Functions 叫用速度。 如需詳細資訊,請參閱函式

使用規則來檢視速度值

除了傳回決策之外,規則還可以使用 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 事件中樞 或 Azure Blob 儲存體 實例。 例如,您可以建立下列規則。

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
}

其他資源