作者:顔國平
摘要:最近幾年,電商行業飛速發展,各種創業公司猶如雨後春筍大量湧現,商家通過各種活動形式的補貼來擷取使用者、培養使用者的消費習慣,即将到來的“ 購物狂歡節”尤其明顯。但任何一件事情都具有兩面性,高額的補貼、優惠同時了也催生了“羊毛黨”。“羊毛黨”的行為距離欺詐隻有一步之遙,他們的存在嚴重破環了活動的目的,侵占了活動的資源,使得正常的使用者享受不到活動的直接好處。這篇文章主要分享下騰訊自己是如何通過大資料、使用者畫像、模組化來防止被刷、惡意撞庫的。
“羊毛黨”一般先利用自動機注冊大量的目标網站賬号,當目标網站搞促銷、優惠等活動的時候,利用這些賬号參與活動刷取較多的優惠,最後通過某寶等電商平台轉賣獲益。
據初步估計,全國“羊毛黨”在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++開發實作,所有的資料通過共享記憶體的方式進行存儲,相比其他的系統,安全系統更有他自己特殊的情況,是以這裡我們可以使用“有損”的思路來實作,大大降低了開發成本和難度。
但這裡在安全政策方面,可能會面臨一個挑戰:多台機器,使用共享記憶體,如何保障資料一緻性?其實,安全政策不需要做到強資料一緻性。
從安全本身的角度看,風險本身就是一個機率值,不确定,是以有一點資料不一緻,不影響全局。但是安全系統也有自己的特點,安全系統一般突發流量比較大,我們這裡就需要設定各種應急開關,而且需要微信号、短信等方式友善快速切換,避免将影響擴散到後端系統。
通過剖析騰訊對抗“羊毛黨”刷單的防刷系統技術架構與原理,我們了解到了天禦系統可以幫助咱們電商企業在促銷、優惠活動時,有效打擊黑産刷單團夥。特别是馬上到來的雙十一“購物狂歡節”,該系統将讓廣大電商企業更好地服務使用者,真正為使用者帶來貼心的實惠與好處。
天禦系統可适應的場景包括但不限于:
電商o2o刷單、刷券、刷紅包
防止虛假賬号注冊
防止使用者名、密碼被撞庫
防止惡意登入
那麼如何接入并使用天禦系統呢?其實,電商企業接入天禦系統僅需要四步,見下圖9:
其中:第一步離線資料分析與第二步搭建實時模型為前期的準備工作,第三步正式接入其實并不耗費多少時間,不過第四步上線後,還需要持續的優化,以進一步提高對抗的能力。
圖9 企業接入天禦系統步驟
業務接入天禦系統後的架構圖,見下圖10:
圖10 業務接入天禦防刷後的架構圖
從上圖可以看到,接入天禦防刷是旁路接入,不需要調整現有業務任何核心邏輯、關鍵流程,可以快速上線。另外,運作過程中,即使天禦防刷有任何異常也不會影響業務主邏輯。
Q&A
Q:風險學習引擎是自研的,還是使用的開源庫?
風險學習引擎包括兩個部分,線上和線下兩部分:
線上:自己利用c/c++來實作。
線下:涉及利用python開源庫來做的,主要是一些通用算法的訓練和調優。
Q:請問魔方平台中用到的MongDB是不是經過改造?因為MongDB一直不被看好,出現問題也比較多。
我們做了部分改造,主要是DB的引擎方面。
Q:請問黑分類器和白分類器有什麼差別?
白分類器主要用來識别正常使用者,黑分類器識别虛假使用者。
Q:風險機率的權重名額是如何考慮的?
先通過正負樣本進行訓練,并且做參數顯著性檢查;然後,人工會抽查一些參數的權重,看看跟經驗是否相符。
Q:安全跟風控職責如何區分呢?
相比安全,風控的外延更豐富,更注重宏觀全局;針對一個公司來講,風控是包括安全、法務、公關、媒體、客服等在内一整套應急處理預案。
Q:如果識别錯了,誤傷了正常使用者會造成什麼後果麼?比如影響單次操作還是會一直失敗。
如果識别錯了正常使用者不會被誤傷,但是會導緻體驗多加了一個環節,如彈出驗證碼、或者人工客服核對等。
作者:顔國平,原騰訊雲-天禦系統研發負責人。一直負責騰訊自有驗證碼、業務安全、防刷、賬号安全等研發工作。内部支援的産品(遊戲、電商、騰訊投資的O2O企業)非常廣泛。在業務安全領域項目經驗豐富,并且具備深度學習、大資料架構搭建等實戰經驗。
免費試用活動防刷服務
一站式滿足電商節雲計算需求的秘訣