版權聲明:本文由顏國平原創文章,轉載請註明出處:
文章原文連接:https://www.qcloud.com/community/article/177python
來源:騰雲閣 https://www.qcloud.com/communityc++
最近1~2年電商行業飛速發展,各類創業公司猶如雨後春筍大量涌現,商家經過各類活動形式的補貼來獲取用戶、培養用戶的消費習慣。算法
但任何一件事情都具備兩面性,高額的補貼、優惠同時了也催生了「羊毛黨」。後端
「羊毛黨」的行爲距離欺詐只有一步之遙,他們的存在嚴重破環了活動的目的,侵佔了活動的資源,使得正常的用戶享受不到活動的直接好處。安全
今天主要分享下騰訊本身是如何經過大數據、用戶畫像、建模來防止被刷、惡意撞庫的。服務器
「羊毛黨」通常先利用自動機註冊大量的目標網站的帳號,當目標網站搞促銷、優惠等活動的時候,利用這些帳號參與活動刷取較多的優惠,最後經過淘寶等電商平臺轉賣獲益。微信
他們內部有着明確的分工,造成了幾大團伙,全國在20萬人左右:網絡
這些黑產團隊,有三個特色:架構
對抗刷單,通常來說主要從三個環節入手:框架
風險學習引擎:效率問題。因爲主要的工做都是線下進行,因此線上系統不存在學習的效率問題。線上採用的都是C++實現的DBScan等針對大數據的快速聚類算法,基本不用考慮性能問題。
風險學習引擎:採用了黑/白雙分類器風險斷定機制。之因此採用黑/白雙分類器的緣由就在於減小對正經常使用戶的誤傷。
例如,某個IP是惡意的IP,那麼該IP上可能會有一些正常的用戶,好比大網關IP。
再好比,黑產經過ADSL撥號上網,那麼就會形成惡意與正經常使用戶共用一個IP的狀況。
黑分類器:根據特徵、機器學習算法、規則/經驗模型,來判斷本次請求異常的機率。
白分類器:判斷屬於正常請求的機率。
咱們以黑分類器爲例來剖析下分類器的整個邏輯框架。
總的來說咱們採用了矩陣式的邏輯框架,最開始的黑分類器咱們也是一把抓,隨意的創建一個個針對黑產的檢測規則、模型。
結果發現不是這個邏輯漏過了,而是那個邏輯誤傷量大,要對那一類的帳號增強安全打擊力度,改動起來也很是麻煩。
所以咱們就設計了這個一個矩陣式的框架來解決上述問題。
矩陣的橫向採用了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,技術不外乎就是以下四種:
以上代理IP檢測的方法幾乎都是公開的,可是盲目去掃描全網的IP,被攔截不說,效率也是一個很大的問題。
所以,咱們的除了利用網絡爬蟲爬取代理IP外,還利用以下辦法來加快代理IP的收集:經過業務建模,收集惡意IP(黑產使用代理IP的可能性比較大)而後再經過協議掃描的方式來判斷這些IP是否是代理IP。天天騰訊都能發現千萬級別的惡意IP,其中大部分仍是代理IP。
實時系統使用C/C++開發實現,全部的數據經過共享內存的方式進行存儲,相比其餘的系統,安全系統更有他本身特殊的狀況,所以這裏咱們可使用「有損」的思路來實現,大大下降了開發成本和難度。
數據一致性,多臺機器,使用共享內存,如何保障數據一致性?
其實,安全策略不須要作到強數據一致性。
從安全自己的角度看,風險自己就是一個機率值,不肯定,因此有一點數據不一致,不影響全局。
可是安全系統也有本身的特色,安全系統通常突發流量比較大,咱們這裏就須要設置各類應急開關,並且須要微信號、短信等方式方便快速切換,避免將影響擴散到後端系統。
適應的場景包括:
Q:風險學習引擎是自研的,仍是使用的開源庫?
風險學習引擎包括兩個部分,線上和線下兩部分:
線上:本身利用c/c++來實現。
線下:涉及利用python開源庫來作的,主要是一些通用算法的訓練和調優。
Q:請問魔方平臺中用到的MongDB是否是通過改造?由於MongDB一直不被看好,出現問題也比較多。
咱們作了部分改造,主要是DB的引擎方面。
Q:請問黑分類器和白分類器有什麼區別?
白分類器主要用來識別正經常使用戶,黑分類器識別虛假用戶。
Q:風險機率的權重指標是如何考慮的?
先經過正負樣本進行訓練,而且作參數顯著性檢查;而後,人工會抽查一些參數的權重,看看跟經驗是否相符。
Q:安全跟風控職責如何區分呢?
相比安全,風控的外延更豐富,更注重宏觀全局;針對一個公司來說,風控是包括安全、法務、公關、媒體、客服等在內一整套應急處理預案。
Q:若是識別錯了,誤傷了正經常使用戶會形成什麼後果麼?好比影響單次操做仍是會一直失敗。
若是識別錯了正經常使用戶不會被誤傷,可是會致使體驗多加了一個環節,如彈出驗證碼、或者人工客服覈對等。
做者:顏國平,原騰訊雲-天御系統研發負責人。一直負責騰訊自有驗證碼、業務安全、防刷、帳號安全等研發工做。內部支持的產品(遊戲、電商、騰訊投資的O2O企業)很是普遍。在業務安全領域項目經驗豐富,而且具有深度學習、大數據架構搭建等實戰經驗。