一、背景介紹顏國平,騰訊雲-天御系統研發負責人。
一直負責騰訊自有驗證碼、業務安全、防刷、賬號安全等研發工作。
內部支援的產品(遊戲、電商、騰訊投資的O2O企業)非常廣泛。
在業務安全領域專案經驗豐富,並且具備深度學習、大資料架構搭建等實戰經驗。
最近1~2年電商行業飛速發展,各種創業公司猶如雨後春筍大量湧現,商家通過各種活動形式的補貼來獲取使用者、培養使用者的消費習慣。
但任何一件事情都具有兩面性,高額的補貼、優惠同時了也催生了“羊毛黨”。
“羊毛黨”的行為距離欺詐只有一步之遙,他們的存在嚴重破壞了活動的目的,侵佔了活動的資源,使得正常的使用者享受不到活動的直接好處。
今天主要分享下騰訊自己是如何通過大資料、使用者畫像、建模來防止被刷、惡意撞庫的。
二、黑產現狀介紹“羊毛黨”一般先利用自動機註冊大量的目標網站的賬號,當目標網站搞促銷、優惠等活動的時候,利用這些賬號參與活動刷取較多的優惠,最後通過淘寶等電商平臺轉賣獲益。
一、羊毛黨分工
他們內部有著明確的分工,形成了幾大團伙,全國在20萬人左右:
二、“羊毛黨”從業特點
這些黑產團隊,有三個特點:
專業化:專業團隊、人員、機器來做。團伙化:黑產已經形成一定規模的團伙,而且分工明確;從刷單軟體製作、簡訊代收發平臺、電商刷單到變賣套現等環節,已經形成完整的刷單團伙。地域化:黑產刷單團伙基本分佈在沿海的一些經濟發達城市,比如,北京、上海、廣東等城市,這或許跟發達城市更加容易接觸到新事物、新觀念有關。三、對抗刷單的思路
對抗刷單,一般來講主要從三個環節入手:
註冊環節:識別虛假註冊、減少“羊毛黨”能夠使用的賬號量。在註冊環節識別虛假註冊的賬號,並進行攔截和打擊。登入場景:提高虛假賬號登入門檻,從而減少能夠到達活動環節的虛假賬號量。比如,登入環節通過驗證碼、簡訊驗證碼等手段來降低自動機的登入效率,從而達到減少虛假賬號登入量、減輕活動現場安全壓力的目的。活動環節:這個是防刷單對抗的主戰場,也是減少“羊毛黨”獲利的直接戰場;這裡的對抗措施,一般有兩個方面:1)通過驗證碼(簡訊、語音)降低黑產刷單的效率。2)大幅度降低異常賬號的優惠力度。三、騰訊內部防刷架構一、騰訊內部防刷的架構圖
二、模組詳細介紹
1、風險學習引擎
風險學習引擎:效率問題。由於主要的工作都是線下進行,所以線上系統不存在學習的效率問題。線上採用的都是C++實現的DBScan等針對大資料的快速聚類演算法,基本不用考慮效能問題。
風險學習引擎:採用了黑/白雙分類器風險判定機制。之所以採用黑/白雙分類器的原因就在於減少對正常使用者的誤傷。
例如,某個IP是惡意的IP,那麼該IP上可能會有一些正常的使用者,比如大閘道器IP。
再比如,黑產通過ADSL撥號上網,那麼就會造成惡意與正常使用者共用一個IP的情況。
黑分類器:根據特徵、機器學習演算法、規則/經驗模型,來判斷本次請求異常的概率。
白分類器:判斷屬於正常請求的概率。
2、矩陣式邏輯框架
我們以黑分類器為例來剖析下分類器的整個邏輯框架。
總的來講我們採用了矩陣式的邏輯框架,最開始的黑分類器我們也是一把抓,隨意的建立一個個針對黑產的檢測規則、模型。
結果發現不是這個邏輯漏過了,而是那個邏輯誤傷量大,要對那一類的賬號加強安全打擊力度,改動起來也非常麻煩。
因此我們就設計了這個一個矩陣式的框架來解決上述問題。
矩陣的橫向採用了Adaboost方法,該方法是一種迭代演算法,其核心思想是針對同一個訓練集訓練不同的弱分類器,然後把這些分類器集合起來,構成一個最終的分類器。
而我們這裡每一個弱分類器都只能解決一種帳號型別的安全風險判斷,集中起來才能解決所有賬戶的風險檢測。
那麼在工程實踐上帶來三個好處:
便於實現輕重分離,比如某平臺虛假賬號集中在郵箱賬號,策略就可以加大對郵箱賬號的打擊力度,影響範圍也侷限在郵箱帳號,而不是該平臺所有的賬號。減少模型訓練的難度,模型訓練最大的難度在於樣本的均衡性問題,拆分成子問題,就不需要考慮不同賬號型別之間的資料配比、均衡性問題,大大降低了模型訓練時正負樣本比率的問題。邏輯的健壯性,某一個分類器的訓練出現了問題,受影響的範圍不至於擴充套件到全域性。矩陣縱向採用了Bagging方法,該方法是一種用來提高學習演算法準確度的方法,該方法在同一個訓練集合上構造預測函式系列,然後以一定的方法將他們組合成一個預測函式,從而來提高預測結果的準確性。
上面講的部分東西,理解起來會比較艱澀,這裡大家先理解框架,後續再理解實現細節。
四、騰訊大資料收集緯度
大資料一直在安全對抗領域發揮著重要的作用,從我們的對抗經驗來看,大資料不僅僅是資料規模很大,而且還包括兩個方面:
資料廣度:要有豐富的資料型別。比如,不僅僅要有社交領域的資料、還要有遊戲、支付、自媒體等領域的資料,這樣就提供了一個廣闊的視野讓我們來看待黑產的行為特點。資料深度:黑產的對抗。我們一直強調縱深防禦,我們不僅僅要有註冊資料,還要有登入,以及賬號的使用的資料,這樣我們才能更好的識別惡意。所以想要做風控和大資料的團隊,一定要注意在自己的產品上多埋點,拿到足夠多的資料,先沉澱下來。
五、騰訊大資料處理平臺-魔方
我們的團隊研發了一個叫魔方的大資料處理和分析的平臺,底層我們集成了MySQL、MongoDB,Spark、Hadoop等技術,在使用者層面我們只需要寫一些簡單的SQL語句、完成一些配置就可以實現例行分析。
這裡我們收集了社交、電商、支付、遊戲等場景的資料,針對這些資料我們建立一些模型,發現哪些是惡意的資料,並且將資料沉澱下來。
沉澱下來的對安全有意義的資料,一方面就儲存在魔方平臺上,供線下審計做模型使用;另一方面會做成實時的服務,提供給線上的系統查詢使用。
一、騰訊使用者畫像沉澱方法
畫像,本質上就是給賬號、裝置等打標籤。
使用者畫像 = 打標籤
我們這裡主要從安全的角度出發來打標籤,比如IP畫像,我們會標註IP是不是代理IP,這些對我們做策略是有幫助的。
以QQ的畫像為例,比如,一個QQ只登入IM、不登入其他騰訊的業務、不聊天、頻繁的加好友、被好友刪除、QQ空間要麼沒開通、要麼開通了QQ空間但是評論多但回覆少,這種號碼我們一般會標註QQ養號(色情、營銷),類似的我們也會給QQ打上其他標籤。
標籤的類別和明細,需要做風控的人自己去設定,比如:地理位置,按省份標記。性別,按男女標記。其他細緻規則以此規律自己去設定。
一般的業務都有針對IP的頻率、次數限制的策略,那麼黑產為了對抗,必然會大量採用代理IP來繞過限制。
既然代理IP的識別如此重要,那我們就以代理IP為例來談下騰訊識別代理IP的過程。
識別一個IP是不是代理IP,技術不外乎就是如下四種:
反向探測技術:掃描IP是不是開通了80,8080等代理伺服器經常開通的埠,顯然一個普通的使用者IP不太可能開通如上的埠。HTTP頭部的X_Forwarded_For:開通了HTTP代理的IP可以通過此法來識別是不是代理IP;如果帶有XFF資訊,該IP是代理IP無疑。Keep-alive報文:如果帶有Proxy-Connection的Keep-alive報文,該IP毫無疑問是代理IP。檢視IP上埠:如果一個IP有的埠大於10000,那麼該IP大多也存在問題,普通的家庭IP開這麼大的埠幾乎是不可能的。以上代理IP檢測的方法幾乎都是公開的,但是盲目去掃描全網的IP,被攔截不說,效率也是一個很大的問題。
因此,我們的除了利用網路爬蟲爬取代理IP外,還利用如下辦法來加快代理IP的收集:通過業務建模,收集惡意IP(黑產使用代理IP的可能性比較大)然後再通過協議掃描的方式來判斷這些IP是不是代理IP。每天騰訊都能發現千萬級別的惡意IP,其中大部分還是代理IP。
二、騰訊使用者畫像類別概覽
三、接入系統
適應的場景包括:
電商o2o刷單、刷券、刷紅包防止虛假賬號註冊防止使用者名稱、密碼被撞庫防止惡意登入Q&A
Q:風險學習引擎是自研的,還是使用的開源庫?
風險學習引擎包括兩個部分,線上和線下兩部分:
線上:自己利用c/c++來實現。線下:涉及利用python開源庫來做的,主要是一些通用演算法的訓練和調優。Q:請問魔方平臺中用到的MongDB是不是經過改造?因為MongDB一直不被看好,出現問題也比較多。
我們做了部分改造,主要是DB的引擎方面。
Q:請問黑分類器和白分類器有什麼區別?
白分類器主要用來識別正常使用者,黑分類器識別虛假使用者。
Q:風險概率的權重指標是如何考慮的?
先通過正負樣本進行訓練,並且做引數顯著性檢查;然後,人工會抽查一些引數的權重,看看跟經驗是否相符。
Q:安全跟風控職責如何區分呢?
相比安全,風控的外延更豐富,更注重巨集觀全域性;針對一個公司來講,風控是包括安全、法務、公關、媒體、客服等在內一整套應急處理預案。
Q:如果識別錯了,誤傷了正常使用者會造成什麼後果麼?比如影響單次操作還是會一直失敗。
如果識別錯了正常使用者不會被誤傷,但是會導致體驗多加了一個環節,如彈出驗證碼、或者人工客服核對等。