乾貨 | 構建風控系統之排坑掃雷(二)

規則之坑

黑白名單的「陷阱」

在業務風控里,黑白名單是最好用的,也是最簡單粗暴的,簡單粗暴意味著容易出現問題,一不留神就會把自己「坑死」,一次隨意添加黑名單數據可能會直接侵害大部分的正常用戶,同樣的,白名單的隨意添加直接可能為惡意用戶打開便捷之門。

一般我們在建立風控策略的時候,黑白名單策略永遠是我們的第一個選擇,矗立於所有策略前,原因有兩點

1) 黑白名單應該是我們最有把握的,黑白名單的每一次添加和移除都需要經過深思熟慮嚴格審核,我們來分別看下黑白名單:

黑名單的來源與注意點:

從歷史惡意樣本中提取,這部分數據由於是從業務歷史數據中提取出來,是最貼近業務的,也是後期風險模型最為寶貴的數據源,通常我們會從中提煉出一些黑設備、黑IP、黑身份證等信息。

第三方平台,論壇、IM、收碼平台、代理/VPN IP、司法公示信息等都可以作為有用的信息來源,在獲取上可以通過一些爬蟲手段來豐富數據來源,對於爬蟲,不同語言都有不少較為成熟的框架,如heritrix、scrapy等。亦可以通過一些特定環境下的技術手段,如埠掃描,目標論壇的已有賬戶爆破等,此類獲取途徑一般都具有極強的針對性。

其他來源,惡意用戶一定會使自己的成本(貓池設備的花銷,卡的維護,購買泄露賬號信息等等)利益最大化,在各家業務的「風眼」進行薅羊毛、多頭借貸,此時「互聯」的思想在風控過程中尤為重要,眾人拾材火焰高,所以黑名單也需要考慮從其他公司進行共享,聯防,但這部分數據加入到黑名單需要通過業務的契合對比和較長時間的灰度測試,在後期應用時也需要做一定的區分

另外黑名單還尤為值得注意的是「進」和「出」,對於「進」,黑名單不能只是個大池子,內部必須切分成多個小池子,在進行黑名單匹配的時候應該也必須有能力去觀察是否在哪幾個池子中出現,標籤是個不錯的選擇。而對於「出」,縱使對某個黑數據再置信,都需要對其有洗白的機制,不然這個「暗雷」總有一天會爆發,通常,洗白的手段有通過設置過期時間(TTL),被特定業務場景觸發等,這裡我們簡單描述下過期時間(TTL)如何制定,一般TTL的制定分固定時間和動態時間兩種,前者更為方便和普遍,這裡主要說下後者,本人更偏向使用動態時間來指定TTL,所謂動態時間,即通過不同的因素制定權重來設定TTL,通過影響其的因子有以下幾類:

數據的置信度,不同數據源對TTL的貢獻需要被權重化,通常歷史惡意樣本的權重會相對更高

業務的契合度,相同數據在不同業務場景的得分也會不同,這裡需要考慮業務場景的契合情況

數據類型,不同維度的數據類型對於TTL的影響也相當大,如IP的黑屬性躍遷將明顯比手機頻繁

還有一種比較普遍的方法是通過計算得分來判斷是否達到了黑屬性的閾值,此時一般就不再使用過期時間,而是通過數據在池子中的時間來做衰弱遞減,並結合其他的因子給出不同的得分情況,當得分隨著時間推移衰減導致最終得分小於黑名單的閾值,則認為不命中黑名單。這種方式去除了過期的概念,而將風險屬性分值化,時間也作為一個因子參與評分。

我們再說下白名單,白名單的來源會相對更為集中:

通常白名單來源會有一些公司出口IP、移動運營出口IP,特殊的設備指紋等

還有一些企業允許用戶可以通過客服或者IVR來進行添加白名單的自助服務

這裡需要注意的白名單的添加需要謹慎,如果所有的添加都是由風控人員操作的,那麼只需要關注添加的篩選方式,而如果部分添加是暴露給用戶的,那麼需要關注自助添加的流程是否存在漏洞,是否可能被惡意用戶進行利用來規避規則命中情況的發生。

2)黑白名單矗立於所有策略前的另外一個原因是效率,很多時候在一些複雜場景下,風控人員會配置大量的規則策略,有些是可以通過自有變數直接計算的,有些是維護在內存中進行累計對比的,還有需要做一次甚至多次關係型資料庫的檢索結果對比的,

當然也可能是大數據離線任務做的准實時結果參與的計算,這些都告訴我們,策略規則的計算是非常「重」的,從邏輯上講,當事件命中了某個黑名單或是白名單,後續的策略也沒有必要繼續下去,風控結果也會直接返回。從技術角度出發,每次過「重」的策略規則將佔據大量的線程資源、內存資源,也會造成不必要的資源浪費,在某些極端情況可能會造成線程排隊等情況的發生。

常見風控規則的「陷阱」

除了剛提到的黑白名單策略,風控系統應該還具備配置其他的常見策略,而這些常見策略在配置過程中很多時候也會遇到不少雷區,這裡我們不討論具體策略,一起來看下可能遇到的問題

基於次數的統計類策略

對於頻繁訪問,頻繁交易,緩慢定點攻擊等場景,我們第一反應會考慮使用統計類策略來進行防禦,將那些具備相同特徵的用戶、IP、設備等維度擋在風控的牆外,這裡會遇到的問題是對於「頻繁」的解讀,何為頻繁?多少次算頻繁?如何定性閾值就成了關鍵,定小了,查准率無法保證容易誤傷,定大了,查全率又下降的厲害,並且又由於節假日,業務高峰、低谷、活動營銷等多種因素,導致固定的閾值可能會帶來很多問題,這裡更傾向於變數,此時比較合理的做法是將閾值支持公式載入,而不是常量,比如你可以任性的使用99線的x倍、平均數的y倍、中位數的z倍等作為一個一直在變化的閾值,有能力的話,依賴於模型會更好。

用戶畫像策略

同樣的,在建立一些用戶畫像策略時候也會遇到這樣的問題,如常用地策略,在風控中,我們經常會去判斷用戶當前行為的設備、地理位置等是否是其常用設備、常用地,而對於常用的概念也推薦是可配置的,因為一旦固化,那麼被繞過的可能性將大幅增大(可配置本身並不能提高任何安全性,但是它卻可以幫助我們快速變更策略,並且可以結合模型來適應當前環境)。

舉個常用歸屬地的配置參數:

1.常用維度定性:

X天里出現過Y天

X次里出現過Y次

X周期內出現百分比大於Y%

混合使用

2.是否去除干擾:

短期內連續出現是否需去燥

單位周期內連續出現是否需去燥

3.應對極端情況:

無歷史數據的或少量歷史數據時(如新用戶或冷號)如何篩選

極大量歷史數據如何截取有效數據區間

另外一些投資購買偏好等畫像更需要跟隨業務做快速變更,一旦業務發生調整,或有新的業務線或者活動,策略也應該快速變更。這裡還有一點需要注意,每一個策略的作用域一定要控制,這就如同永遠不要在sql里使用select *,拋開性能不談,一旦如果在中間插入某列,你原來的代碼就極其有可能需要改造,所以同樣的,如果你沒辦法讓所有的業務方第一時間通知你新上的業務,那麼你在運行的策略就得與新業務保持距離。

CEP策略

越來越多的規則引擎都崇尚對CEP策略的支持,但一來規則引擎本身維護CEP策略的方式就很「黑盒」,需要技術人員專門對其進行深入了解,如內存的管理,性能的調優,這裡暫且拋開技術不談,個人並不是非常推薦使用CEP策略,原因是過於複雜,風控策略可以從各個維度去側寫,一個場景可以有多條,但是個人認為每一條應該儘可能保持簡單,就如同你可以將多個策略編寫成一個複雜策略集,但這樣其實會讓可讀性下降,保持多個簡單策略可以讓風控運營人員在人工審核時更便捷。如果一些無法避免的場景需要用到複雜策略的時候,一定要將邏輯和邊界寫清楚,否則會埋下很多「伏筆」。

本文為 歲歲 原創稿件,授權嘶吼獨家發布,未經許可禁止轉載,如若轉載,請聯繫嘶吼編輯: 構建風控系統之排坑掃雷(二)

推薦閱讀:

銀監會首次點名要求清理現金貸,在這個現金貸的高速發展期,是先觀望還是強勢出擊?
互聯網金融產品如何利用大數據做風控?

TAG:风险控制 | 大数据风控 |