準實時異常檢測系統
案例與解決方案彙總頁:
阿里雲實時計算產品案例&解決方案彙總
本文為您介紹利用實時計算設計準實時(延遲在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主要是為了滿足實時查詢的需求。
總結
上面給出了一個準實時異常檢測系統的概念性設計,業務邏輯雖然簡單,但整個系統本身是非常完整且具有良好擴充套件性的,您可以在這個基礎上進一步去完善。
相關文章
- Kafka+Flink 實現準實時異常檢測系統Kafka
- 基於實時計算(Flink)與高斯模型構建實時異常檢測系統模型
- 異常檢測
- 序列異常檢測
- [譯] 時間序列異常檢測演算法演算法
- DataPipeline王睿:業務異常實時自動化檢測 — 基於人工智慧的系統實戰API人工智慧
- 微信域名檢測官方介面 微信域名實時檢測系統
- [譯] 時間順序的價格異常檢測
- 華為AGC提包檢測報告:檢測異常GC
- Win10電腦管家檢測系統盤異常怎麼辦Win10
- 執行時異常和檢查性異常區別
- 異常檢測(Anomaly Detection)方法與Python實現Python
- 【機器學習】李宏毅——Anomaly Detection(異常檢測)機器學習
- 異常聲音檢測總結
- C++檢測異常assert()函式C++函式
- 異常-自定義異常的實現和測試
- 在Linux中,如何檢視和審計系統日誌檔案以檢測異常活動?Linux
- 異常中的異常——藉助系統異常處理特例實現匪夷所思的漏洞利用
- AI賦能一鍵自動檢測:頁面異常、控制元件異常、文字異常AI控制元件
- SAP IQ - 配置系統異常時候core dump file
- [python] 基於PyOD庫實現資料異常檢測Python
- 異常點檢測演算法小結演算法
- 機器學習-異常檢測演算法(二):LocalOutlierFactor機器學習演算法
- 自動化時序異常檢測的可擴充套件通用框架套件框架
- 異常值檢測!最佳統計方法實踐(程式碼實現)!⛵
- 解決異常:公共語言執行時檢測到無效的程式
- 異常測試實踐與梳理
- 多角度分析,通訊時序資料的預測與異常檢測挑戰
- 用netstat命令檢視系統是否有病毒或其它異常
- 作業系統 中斷異常系統呼叫作業系統
- Laravel 郵件推送系統異常Laravel
- 安全通道異常識別系統
- 白話異常檢測演算法Isolation Forest演算法REST
- 吳恩達機器學習筆記 —— 16 異常點檢測吳恩達機器學習筆記
- 異常點/離群點檢測演算法——LOF演算法
- 表空間檢測異常的問題診斷
- 如何在實際場景中使用異常檢測?阿里雲Prometheus智慧檢測運算元來了阿里Prometheus
- 一文讀懂!異常檢測全攻略!從統計方法到機器學習 ⛵機器學習