基於用戶畫像大數據的電商防刷架構

版權聲明:本文由顏國平原創文章,轉載請註明出處: 
文章原文連接:https://www.qcloud.com/community/article/177python

來源:騰雲閣 https://www.qcloud.com/communityc++

 

最近1~2年電商行業飛速發展,各類創業公司猶如雨後春筍大量涌現,商家經過各類活動形式的補貼來獲取用戶、培養用戶的消費習慣。算法

但任何一件事情都具備兩面性,高額的補貼、優惠同時了也催生了「羊毛黨」。後端

「羊毛黨」的行爲距離欺詐只有一步之遙,他們的存在嚴重破環了活動的目的,侵佔了活動的資源,使得正常的用戶享受不到活動的直接好處。安全

今天主要分享下騰訊本身是如何經過大數據、用戶畫像、建模來防止被刷、惡意撞庫的。服務器

黑產現狀介紹

「羊毛黨」通常先利用自動機註冊大量的目標網站的帳號,當目標網站搞促銷、優惠等活動的時候,利用這些帳號參與活動刷取較多的優惠,最後經過淘寶等電商平臺轉賣獲益。微信

一.羊毛黨分工

他們內部有着明確的分工,造成了幾大團伙,全國在20萬人左右:網絡

  1. 軟件製做團伙:專門製做各類自動、半自動的黑產工具,好比註冊自動機、刷單自動機等;他們主要靠出售各類黑產工具、提供升級服務等形式來獲利。
  2. 短信代接平臺:實現手機短信的自動收發,其實一些平臺亦正亦邪,不但提供給正常的商家使用,一些黑產也會購買相關的服務。
  3. 帳號出售團伙:他們主要是大量註冊各類帳號,經過轉賣帳號來獲利;該團伙與刷單團伙每每屬於同一團伙。
  4. 刷單團伙:到各類電商平臺刷單,獲取優惠,而且經過第三方的電商平臺出售優惠,實現套現。

二.「羊毛黨」從業特色

這些黑產團隊,有三個特色:架構

  1. 專業化:專業團隊、人員、機器來作。
  2. 團伙化:黑產已經造成必定規模的團伙,並且分工明確;從刷單軟件製做、短信代收發平臺、電商刷單到變賣套現等環節,已經造成完整的刷單團伙。
  3. 地域化:黑產刷單團伙基本分佈在沿海的一些經濟發達城市,好比,北京、上海、廣東等城市,這或許跟發達城市更加容易接觸到新事物、新觀念有關。

三.對抗刷單的思路

對抗刷單,通常來說主要從三個環節入手:框架

  1. 註冊環節:識別虛假註冊、減小「羊毛黨」可以使用的帳號量。在註冊環節識別虛假註冊的帳號,並進行攔截和打擊。
  2. 登陸場景:提升虛假帳號登陸門檻,從而減小可以到達活動環節的虛假帳號量。好比,登陸環節經過驗證碼、短信驗證碼等手段來下降自動機的登陸效率,從而達到減小虛假帳號登陸量、減輕活動現場安全壓力的目的。
  3. 活動環節:這個是防刷單對抗的主戰場,也是減小「羊毛黨」獲利的直接戰場;這裏的對抗措施,通常有兩個方面: 1)經過驗證碼(短信、語音)下降黑產刷單的效率。
2)大幅度下降異常帳號的優惠力度。

騰訊內部防刷架構

一.騰訊內部防刷的架構圖

二.模塊詳細介紹

1.風險學習引擎

風險學習引擎:效率問題。因爲主要的工做都是線下進行,因此線上系統不存在學習的效率問題。線上採用的都是C++實現的DBScan等針對大數據的快速聚類算法,基本不用考慮性能問題。

風險學習引擎:採用了黑/白雙分類器風險斷定機制。之因此採用黑/白雙分類器的緣由就在於減小對正經常使用戶的誤傷。

例如,某個IP是惡意的IP,那麼該IP上可能會有一些正常的用戶,好比大網關IP。

再好比,黑產經過ADSL撥號上網,那麼就會形成惡意與正經常使用戶共用一個IP的狀況。

黑分類器:根據特徵、機器學習算法、規則/經驗模型,來判斷本次請求異常的機率。

白分類器:判斷屬於正常請求的機率。

2.矩陣式邏輯框架

咱們以黑分類器爲例來剖析下分類器的整個邏輯框架。

總的來說咱們採用了矩陣式的邏輯框架,最開始的黑分類器咱們也是一把抓,隨意的創建一個個針對黑產的檢測規則、模型。

結果發現不是這個邏輯漏過了,而是那個邏輯誤傷量大,要對那一類的帳號增強安全打擊力度,改動起來也很是麻煩。

所以咱們就設計了這個一個矩陣式的框架來解決上述問題。

矩陣的橫向採用了Adaboost方法,該方法是一種迭代算法,其核心思想是針對同一個訓練集訓練不一樣的弱分類器,而後把這些分類器集合起來,構成一個最終的分類器。

而咱們這裏每個弱分類器都只能解決一種賬號類型的安全風險判斷,集中起來才能解決全部帳戶的風險檢測。

那麼在工程實踐上帶來三個好處:

  1. 便於實現輕重分離,好比某平臺虛假帳號集中在郵箱帳號,策略就能夠加大對郵箱帳號的打擊力度,影響範圍也侷限在郵箱賬號,而不是該平臺全部的帳號。
  2. 減小模型訓練的難度,模型訓練最大的難度在於樣本的均衡性問題,拆分紅子問題,就不須要考慮不一樣帳號類型之間的數據配比、均衡性問題,大大下降了模型訓練時正負樣本比率的問題。
  3. 邏輯的健壯性,某一個分類器的訓練出現了問題,受影響的範圍不至於擴展到全局。

矩陣縱向採用了Bagging方法,該方法是一種用來提升學習算法準確度的方法,該方法在同一個訓練集合上構造預測函數系列,而後以必定的方法將他們組合成一個預測函數,從而來提升預測結果的準確性。

上面講的部分東西,理解起來會比較艱澀,這裏你們先理解框架,後續再理解實現細節。

騰訊大數據收集緯度

大數據一直在安全對抗領域發揮着重要的做用,從咱們的對抗經驗來看,大數據不只僅是數據規模很大,並且還包括兩個方面:

  1. 數據廣度:要有豐富的數據類型。好比,不只僅要有社交領域的數據、還要有遊戲、支付、自媒體等領域的數據,這樣就提供了一個廣闊的視野讓咱們來看待黑產的行爲特色。
  2. 數據深度:黑產的對抗。咱們一直強調縱深防護,咱們不只僅要有註冊數據,還要有登陸,以及帳號的使用的數據,這樣咱們才能更好的識別惡意。

因此想要作風控和大數據的團隊,必定要注意在本身的產品上多埋點,拿到足夠多的數據,先沉澱下來。

騰訊大數據處理平臺-魔方

咱們的團隊研發了一個叫魔方的大數據處理和分析的平臺,底層咱們集成了MySQL、MongoDB,Spark、Hadoop等技術,在用戶層面咱們只須要寫一些簡單的SQL語句、完成一些配置就能夠實現例行分析。

這裏咱們收集了社交、電商、支付、遊戲等場景的數據,針對這些數據咱們創建一些模型,發現哪些是惡意的數據,而且將數據沉澱下來。

沉澱下來的對安全有意義的數據,一方面就存儲在魔方平臺上,供線下審計作模型使用;另外一方面會作成實時的服務,提供給線上的系統查詢使用。

一.騰訊用戶畫像沉澱方法

畫像,本質上就是給帳號、設備等打標籤。

用戶畫像 = 打標籤

咱們這裏主要從安全的角度出發來打標籤,好比IP畫像,咱們會標註IP是否是代理IP,這些對咱們作策略是有幫助的。

以QQ的畫像爲例,好比,一個QQ只登陸IM、不登陸其餘騰訊的業務、不聊天、頻繁的加好友、被好友刪除、QQ空間要麼沒開通、要麼開通了QQ空間可是評論多但回覆少,這種號碼咱們通常會標註QQ養號(色情、營銷),相似的咱們也會給QQ打上其餘標籤。

標籤的類別和明細,須要作風控的人本身去設定,好比:地理位置,按省份標記。性別,安男女標記。其餘細緻規則以此規律本身去設定。

咱們看看騰訊的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。

二.騰訊用戶畫像類別概覽

三.防護邏輯

實時系統使用C/C++開發實現,全部的數據經過共享內存的方式進行存儲,相比其餘的系統,安全系統更有他本身特殊的狀況,所以這裏咱們可使用「有損」的思路來實現,大大下降了開發成本和難度。

數據一致性,多臺機器,使用共享內存,如何保障數據一致性?

其實,安全策略不須要作到強數據一致性。

從安全自己的角度看,風險自己就是一個機率值,不肯定,因此有一點數據不一致,不影響全局。

可是安全系統也有本身的特色,安全系統通常突發流量比較大,咱們這裏就須要設置各類應急開關,並且須要微信號、短信等方式方便快速切換,避免將影響擴散到後端系統。

四.接入系統



適應的場景包括:

  • 電商o2o刷單、刷券、刷紅包
  • 防止虛假帳號註冊
  • 防止用戶名、密碼被撞庫
  • 防止惡意登陸

Q&A

Q:風險學習引擎是自研的,仍是使用的開源庫?

風險學習引擎包括兩個部分,線上和線下兩部分:

線上:本身利用c/c++來實現。

線下:涉及利用python開源庫來作的,主要是一些通用算法的訓練和調優。

Q:請問魔方平臺中用到的MongDB是否是通過改造?由於MongDB一直不被看好,出現問題也比較多。

咱們作了部分改造,主要是DB的引擎方面。

Q:請問黑分類器和白分類器有什麼區別?

白分類器主要用來識別正經常使用戶,黑分類器識別虛假用戶。

Q:風險機率的權重指標是如何考慮的?

先經過正負樣本進行訓練,而且作參數顯著性檢查;而後,人工會抽查一些參數的權重,看看跟經驗是否相符。

Q:安全跟風控職責如何區分呢?

相比安全,風控的外延更豐富,更注重宏觀全局;針對一個公司來說,風控是包括安全、法務、公關、媒體、客服等在內一整套應急處理預案。

Q:若是識別錯了,誤傷了正經常使用戶會形成什麼後果麼?好比影響單次操做仍是會一直失敗。

若是識別錯了正經常使用戶不會被誤傷,可是會致使體驗多加了一個環節,如彈出驗證碼、或者人工客服覈對等。

做者:顏國平,原騰訊雲-天御系統研發負責人。一直負責騰訊自有驗證碼、業務安全、防刷、帳號安全等研發工做。內部支持的產品(遊戲、電商、騰訊投資的O2O企業)很是普遍。在業務安全領域項目經驗豐富,而且具有深度學習、大數據架構搭建等實戰經驗。

相關文章
相關標籤/搜索