天天看點

準實時異常檢測系統

案例與解決方案彙總頁: 阿裡雲實時計算産品案例&解決方案彙總 本文為您介紹利用實時計算設計準實時(延遲在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主要是為了滿足實時查詢的需求。

總結

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

繼續閱讀