搭建風控系統道路上踩過的坑(2)-風險分析

上一篇《搭建風控系統道路上踩過的坑01--信息採集》我們介紹了第一點,如何去獲取足夠多的數據,而接下來的事情就是要創建一個機制去靈活的處理這些信息,為自動分析捕捉風險事件提供基礎原料,進而藉助規則引擎從中分析出風險事件。

在開始前,我們還是回顧下業務風控主要做的四件事:

1、拿到足夠多的數據

2、做足夠靈活的分析平台去分析數據

3、產出風險事件進行阻攔風險

4、量化風險攔截的價值和不斷分析案例進行策略優化

接下來,同樣的有三件事情需要考慮:

1讓分析人員可以快速的查詢原始日誌

日誌並不是簡單的存下來,從風控分析的需求來看,通過IP、用戶名、設備等維度在一個較長的跨度中搜索信息是非常高頻的行為,同時還存在在特定類型日誌,比如在訂單日誌或者支付日誌中按特定條件搜索的需求。

而這些主要是為了能夠讓分析人員可以快速的還原風險CASE,例如從客服那邊得到了一個被盜的案例,那麼現在需要從日誌中查詢被盜時間段內這個用戶做了什麼,這個過程如果有一個界面可以去做查詢,顯然比讓分析人員用grep在一大堆文件中查詢要快的多,並且學習門檻也要低得多。

如果在日誌做過標準化的前提下,也可以進行後續的業務語言轉譯,將晦澀難懂的日誌欄位轉化為普通員工都能看得懂的業務語言,也能極大的提升分析師在還原CASE時閱讀日誌的速度。

2實時或定時的計算加工消息成變數&檔案

例如在分析某個帳號被盜CASE的時候,往往需要把被盜期間登錄的IP地址和用戶歷史常用的IP地址進行比對,即使我們現在可以快速的對原始日誌進行查詢,篩選一個用戶的所有歷史登錄IP並察看被盜IP在歷史中出現的比例也是一個非常耗時的工作。

再比如我們的風控引擎在自動判斷用戶當前登錄IP是否為常用IP時,如果每次都去原始日誌裡面查詢聚合做計算也是一個非常「貴」的行為。

那麼,如果能預定義這些變數並提前計算好,就能為規則引擎和人工節省大量的時間了,而根據這些變數性質的不同,採取的計算方式也是不同的。不過還好我們有一個標準可以去辨別:頻繁、對時效敏感的利用實時計算(比如訪問頻率、時間間隔);而相對不頻繁、對時效不敏感的利用定時計算(比如用戶的常用IP、設備,即使少算短期內的登錄記錄,也不會受到太大影響)。

3選擇規則引擎將人工策略自動運行

一個設計優雅的規則引擎是把分析師的經驗決策和數據最終轉化為風險輸出的核心模塊,首先說為什麼需要規則引擎而不是選擇硬編碼邏輯——

筆者無數次遇到過這種場景,一個上午剛剛上線的策略,沒過1個小時,攻擊者或者欺詐者就已經試出繞過策略的方法了,如果你的風險控制邏輯是硬編碼,那麼恭喜你,再走一遍開發測試發布流程。

快速響應是安全的生命線,無法想像還有比被攻擊者胖揍48小時然後才反應過來去擋臉更讓人沮喪的事情了。

所以策略引擎必須能把策略邏輯從業務邏輯中解藕出來,讓防禦者可以靈活配置規則在靜默模式下驗證和實時上線生效,並可以去隨時調整。

類似的開源框架有很多,各有優劣,但如果需要降低學習曲線,必須進行一層包裝(這裡又是一個比較大的話題,就先略過了)。

坑位標註:

1、Sharding會影響到你的策略

為了支持並發和性能,通常在利用集群計算變數的時候我們會用到sharding。

sharding方式會按IP把數據分配到不同的運算單元中去處理,在讀取結果的時候按IP去集群中的某台機器中去拿數據,以大幅提升並發處理讀取計算結果的能力。

那麼,現在如果我想去按某個USER去拿數據的時候,就會發現一個用戶在不同IP下的信息被保存在不同的伺服器上了,所以單一的Sharding分配肯定是不合理的,這點必須要注意。

2、策略中用到的變數,能不用現場算的就不用

有些簡易的策略引擎設計中用到的變數都是到資料庫里現場算的,雖然可以極大的提升靈活性(新的變數不需要考慮歷史數據回補),但會極大的影響穩定性和響應時長,尤其在業務請求爆發的時候幾乎都會出現宕機無響應的問題。

要知道業務研發對安全的結果並不是那麼敏感,但如果出現了問題導致應用不穩定給人添麻煩,被拋棄可能就是早晚的事情,所以變數一定要盡量做到提前計算,並且設立緩存機制。

3、對風險分析要用到的計算資源有充分的認識

毫不誇張的說,合格的風險分析要做的實時、准實時計算量要大過應用內所有計算的總和甚至超過幾倍。

其實這也很好理解,比如一個典型登錄場景,業務要做的邏輯最主要的就是檢查密碼和帳號的身份是否吻合,而風控要把這登錄用戶的歷史檔案全部拉出來看個遍,然後根據風控策略來決定是否放行。所以在規劃風險分析要用到的資源時請不要吝嗇,按業務5X甚至10X的標準來評估風險分析的資源需求。

如果說信息採集主要看的是安全產品經理的溝通協調能力,設計風險分析功能更多的就是考驗安全產品經理的邏輯思維能力。

到了這樣一個階段,外部冗雜的溝通協調已經結束,但如何最大化利用前期打下的基礎,需要對風險問題的分析、決策過程有一個非常清晰的認識,這裡也有一個比較好的標準來去檢驗:

分析平台設計的差,那麼就只有設計者自己會用;

設計的好,你會發現處理投訴的客服、分析師都會很樂意來用你的分析平台為他們解決問題。

結語

下一篇我們會繼續介紹如何把分析出的風險結果自動快速的進行阻斷,歡迎繼續支持我們。如果你在這方面遇到了難點,歡迎留言和我們溝通交流,如果對接下來的內容感興趣,請分享鼓勵一下小編,我們會儘快給出後續的章節。

劉明 豈安科技聯合創始人,首席產品技術官

超過6年的風控和產品相關經驗,曾就職網易,負責《魔獸世界》中國區賬戶體系安全。現帶領豈安互聯網業務風控團隊為客戶提供包括了明星產品Warden和RED.Q的風控服務。

推薦閱讀:

渴望金錢更容易成才
弱勢群體不弱勢
乾貨貼|互聯網金融風控基礎知識(二)
為什麼要提供自有資金

TAG:风险控制 | 踩坑 | 网络安全 |