準實時異常檢測系統

weixin_33843409發表於2019-02-26

案例與解決方案彙總頁:
阿里雲實時計算產品案例&解決方案彙總

本文為您介紹利用實時計算設計準實時(延遲在100ms以內)異常檢測系統。

背景介紹

比如一家銀行要做一個實時的交易檢測,判斷每筆交易是否是正常交易:如果使用者的使用者名稱和密碼被盜取,系統能夠在盜取者發起交易的瞬間檢測到風險來決定是否凍結這筆交易。這種場景對實時性的要求非常高,否則會阻礙使用者正常交易,所以叫做準實時系統。

由於行動者可能會根據系統的結果進行調整,所以規則也會更新,實時計算和離線的處理用來研究規則是否需要更新以及規則如何更新。

準實時異常檢測系統架構與模組綜述

準實時異常檢測系統架構: 
系統架構
  • 線上系統:完成線上檢測功能,可以是Web服務的形式:
    • 針對單條事件進行檢測。
    • 根據全域性上下文進行檢測,比如全域性黑名單。
    • 根據使用者畫像或近期一段時間的資訊進行檢測,比如最近20次交易時間與地點。
  • Kafka:把事件與檢測的結果及其原因傳送到下游。
  • 實時計算近實時處理
    • 彙總統計全域性的檢測狀態,並做同期對比,比如某條規則的攔截率突然發生較大變化、全域性通過率突然增高或降低等等。
    • 近實時的更新使用者的屬性,比如最近的交易時間和地點。
  • Maxcompute/Hadoop儲存與離線分析:用於保留歷史記錄,並由業務&開發人員探索性的研究有沒有新的模式。
  • HBase:儲存使用者畫像。

關鍵模板

  • 線上檢測系統

    以Web伺服器為例,它的主要任務就是檢閱到來的事件並反饋同意或拒絕。

    針對每一個進入的事件,可以進行三個層次的檢測:

    • 事件級檢測

      只用該事件本身就能完成檢測,比如格式判斷或基本規則驗證(a屬性必須大於10小於30,b屬性不能為空等等)。

    • 全域性上下文檢測

      在全域性資訊中的上下文中,比如存在一個全域性的黑名單,判斷該使用者是否在黑名單中。或者某屬性大於或小雨全域性的平均值等。

    • 畫像內容檢測

      針對該行動者本身的跨多條記錄分析,比如該使用者前100次交易都發生在杭州,而本次交易發生在北京且距上次交易只有10分鐘,那就有理由發出異常訊號。

    所以這個系統至少要儲存三方面的資訊,

    • 整個檢測的過程
    • 進行判斷的規則
    • 所需的全域性資料

    除此之外,根據需要決定是否把使用者畫像在本地做快取。

  • Kafka

    Kafka主要用來把檢測的事件、檢測的結果、拒絕或通過的原因等資料傳送到下游,供實時計算和離線計算進行處理。

  • 實時計算近實時處理

    使用Kafka處理後的資料針對當前的策略進行新一輪的防禦性檢測。

    系統應該關注一些巨集觀指標,比如總量,平均值,某個群體的行為等等。這些指標發生了變化往往表示某些規則已經失效。

    舉例如下:

    • 某條規則之前的攔截率是20%,突然降低到了5%;
    • 某天規則上線後,大量的正常使用者均被攔截掉了;
    • 某個人在電子產品上的花費突然增長了100倍,但同時其他人也有很多類似的行為,這可能具有某種說得通的解釋(比如iphone上市);
    • 某人連續幾次行為,單次都正常,但不應該有這麼多次,比如一天內連續買了100次同一產品;
    • 識別某種組合多條正常行為的組合,這種組合是異常的,比如使用者買菜刀是正常的,買車票是正常的,買繩子也是正常的,去加油站加油也是正常的,但短時間內同時做這些事情就不是正常的。通過全域性分析能夠發現這種行為的模式。

    業務人員根據實時計算產生的近實時結果能夠及時發現規則有沒有問題,進而對規則作出調整。

  • Maxcompute/Hadoop離線儲存於探索性分析

    通過指令碼、SQL或機器學習演算法來進行探索性分析,發現新的模型,比如通過聚類演算法把使用者進行聚類、對行為打標後進行模型的訓練等等。

  • HBase使用者畫像

    HBase儲存著實時計算&離線計算產生的使用者畫像,供檢測系統使用。之所以選擇HBase主要是為了滿足實時查詢的需求。

總結

上面給出了一個準實時異常檢測系統的概念性設計,業務邏輯雖然簡單,但整個系統本身是非常完整且具有良好擴充套件性的,您可以在這個基礎上進一步去完善。

相關文章