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