隨着同黑產對抗的升級,對己方數據進行挖掘成爲防守一方的重要武器,機器學習也隨之成爲防守方的制勝法寶。

機器學習在風控中的應用同一般的應用場景有所不同,主要體現在以下幾個方面:

①標註標籤成本較高,導致標籤較少甚至無標籤

②壞 人會主動改進作弊策略,導致原有模型失效

③需要實時或近實時的返回結果

④場景多種多樣:撞庫盜號、黃牛領券、積分牆、反爬蟲等

下文將從三個具體的例子來闡述我們(小米帳號安全)是如何利用機器學習解決帳號風控面臨的具體問題。 一、規則太多,如何減輕維護負擔? 對於風控系統而言,規則往往會產生立竿見影的效果,輔之以專家經驗,可以在很長的時間內發揮重要作用。但是隨着時間的推移,越來越多的規則被加入系統中,越來越多的邊際條件需要權衡,甚至會出現牽一髮而動全身的情況。如何更好的維護這些歷史規則? 通過分析這些歷史規則,我們發現規則實際是對異常的一種人肉歸納量化,例如:如果某IP每分鐘訪問次數大於50次且都是登陸失敗比例大於90%,就ban掉該IP。那麼更好的維護規則這一問題就變成了:在給定樣本及特徵後,如何量化異常?我們面臨的初步問題是這樣的: 考慮到無標籤和壞人的“主動性”,我們可以選擇無監督的異常發現模型來區分異常。這其中孤立森林模型算是效果較好的了。它可以達到如下效果:

但是考慮到線上情況的複雜性,我們希望給樣本的異常程度進行打分,以便結合歷史數據進行策略回溯,靈活的確定閾值,從而達到最佳準召,因此最終會輸出異常得分,從而達到量化異常的效果:

最終我們實現了對異常的量化,從而實現了對線上規則的改進,這樣一來,對規則的維護變成了對特徵的維護。只要能夠產生特徵及同模型相關的特徵組合,就可以得到相應的異常量化模型,從而實現了靈活的線上規則管理。同原來的規則攔截相比,模型的覆蓋率達到了規則攔截的80%+,召回率則提升了70%+。
二、無感知驗證碼

隨着對抗的升級,驗證碼用於區分人/機器已經越來越顯得力不從心。攻擊方採用的驗證碼破解手段也早已由人肉打碼升級到了深度學習打碼,普通人面對驗證碼也不得不感嘆:這樣的驗證碼真的有人能答對嗎?可能只有機器能答對吧。

既然驗證碼又不能防機器,又阻礙了正常用戶,那是否有更加用戶友好的手段可以代替驗證碼呢?這裏我們引入了人機識別,採用手機傳感器在用戶無感知的情況下完成人機區分。

智能手機中存在多類傳感器,如加速度傳感器、角速度傳感器(陀螺儀)、重力傳感器、磁場傳感器等,在手機運行的每時每刻,這些傳感器都在以成百上千Hz的頻率將其收集到的X/Y/Z軸數據傳遞給手機的操作系統。
那麼這些傳感器數據是否足以區分人/機呢?我們假定壞人可以通過操縱手機API或外力讓手機產生物理行爲從而產生運動狀態的傳感器數據,對壞人而言可選的操作包括:靜止時、手機震動時和手機置於搖擺裝置中。我們分別收集了這幾個場景產生的傳感器數據,可以對以下4張圖片做肉眼的對比:


圖中從上至下依次對應的操作是:手機靜止、手機震動、手機搖擺和正常點擊操作。
從上圖可以看出,靜止時傳感器仍然存在輕微的抖動,震動時的傳感器的波動更有規律性,搖擺中的傳感器數據像極了正弦波,而正常的點擊操作由於手指的點觸操作會帶來加速度的陡升/陡降。
從這裏可以看出,要區分傳感器數據是否由人類產生,更準確的說:某次滑動或點擊的交互操作時否由當前傳感器產生,正是很適合由機器學習來判斷的二分類問題。
最終產出是人機識別模型,可以判斷SDK採集的傳感器數據是否由人類產生。從線上的攔截效果來看,整體準確率在97.3%,好人誤攔率爲1.8%。

從對抗的角度來說,人機識別的主要目的是降低了好人的進入門檻,而提升壞人作惡門檻只是輔助和次要目標,因爲人機識別的安全性強依賴於SDK的安全性,一旦SDK被破解,壞人會很容易僞造合法輸入。所以在實踐中,我們會在SDK中加入多個特徵進行採集,從而使其起到探針的作用,將主戰場拉回到後端。 三、事後預警機制 通常將風控分爲事前、事中和事後三個部分。出於實時性考慮,事前和事中的攔截很難達到高召回。但是即使在事後,如果能夠儘可能早的以高準召率發現異常並形成攔截策略,仍然是有意義的。 我們知道壞人的行爲經常表現出聚集性,可能是設備、IP等的聚集,也可能是行爲上的同步性:一批UID同時幹同一件事。 這一聚集性和同步性很像傳染病爆發時感染者屬性的聚集和行爲的同步:都居住在某特定區域,都去過某個公共場所。而風控場景的及時事後預警,也很像公共衛生機構在面臨新冠病毒這樣的傳染病時的問題:如何及時發現疫情正在爆發,並且及時鎖定到儘可能多的被感染者? 我們假設衛生機構收集到了如下的患者就診信息(部分): 可以採取的前置步驟是,建立歷史基線,對比當前統計分佈和歷史分佈,找到異常的統計項。 例如,當2020W1的肺炎患者激增,要定位到這一異常項,需要統計出歷史同一時期(上週、上月、上年)的相同指標項,採用統計檢驗(Chi-square test / Fisher exact test等)判定當前指標同歷史指標的差異(p值),可以看到在我們假定的數據中,2020W1的肺炎患者明顯多於歷史同期水平,第一步驟完成。 發現異常指標項後,我們還希望能夠定位到傳染源頭和密切接觸人羣。在傳染病學中,當然需要的是流行病學調查,它的關鍵是找到傳染源和傳播途徑。對風控來說則需要找到壞人的有效特徵以便形成封禁規則。考慮到壞人之間千絲萬縷的聯繫,我們通常會假定:與壞人聯繫越密切的,越可能是壞人。 對於這種問題,理所當然的我們會想到圖相關技術。在傳染病場景,圖技術可以將密切接觸者以海鮮市場爲中心圈出來,在風控場景我們同樣可以通過圖關聯分析將壞人之間暴露出的蛛絲馬跡進行推導,從而找到相應的作惡社羣。在實踐中,我們發現Louvain社區發現算法不需要數據標註,運行速度快,結果準確,有着較好的效果。 總的來說,藉助於機器學習算法,防守方將從已方擁有的海量數據中挖掘出越來越多的洞見和認知,在防守中佔據更加主動的位置。
相關文章