導讀:所謂黑灰產,包含網絡黑產、灰產兩條產業鏈,隨着互聯網的飛速發展,網絡黑灰產也在不斷演變,當前網絡黑灰產已經趨於平臺化、專業化、精細化運做。基於黑灰產攻擊特色,咱們提出了一種基於社羣編碼的黑灰產攻擊識別方法,社羣發現部分基於圖關係,編碼部分引入大規模的圖嵌入表示學習。相比於傳統的圖譜關係挖掘,能夠更好的識別和度量未知攻擊。並且咱們還提出了基於異步準實時的工程化實現,對頻繁變化的黑灰產攻擊有更強的應變靈活性。node
全文4424字,預計閱讀時間12分鐘。算法
1、背景
所謂黑灰產,包含網絡黑產、灰色兩條產業鏈,隨着互聯網的飛速發展,網絡黑灰產也在不斷髮展,當前網絡黑灰產已經造成了一個平臺化、專業化、精細化,相互獨立又緊密協做的產業鏈。從近幾年多起重大網絡安全事故看,黑灰產已經再也不侷限在半公開化的純攻擊模式,而是轉化成爲斂財工具和商業競爭的不良手段,據不徹底統計,當前網絡黑灰產的市場規模已經超過千億元人民幣,在這千億級的市場規模下,發展出了很是多的細分領域,如木馬病毒,養號刷單,薅羊毛,電信詐騙,知識盜版,流量劫持等。安全
各互聯網平臺爲了防止被網絡黑灰產攻擊,開發了不少防護及識別技術,最常被廣大用戶感知到的驗證碼技術就是其中之一,在驗證碼技術背後,還有很是多的識別方法,例如經過規則引擎依據防攻擊規則進行分析攔截,經過行爲序列建模對單次請求進行黑灰產行爲斷定,經過圖譜關係挖掘用戶之間的相關性以識別黑灰產團伙,基於層次聚類、均值聚類、高斯混合等聚類模型對黑灰產攻擊進行無監督識別,這些方法均能在不一樣程度上對黑灰產起到識別和防護做用。cookie
基於以上黑灰產攻擊特色,咱們提出了一種基於社羣編碼的黑灰產攻擊識別方法,社羣發現部分基於圖關係,編碼部分引入了大規模的圖嵌入表示學習方法,相比於已有的圖譜關係挖掘,能夠更好的識別和度量未知攻擊,並且咱們也提出了基於異步準實時的工程化算法實現,對頻繁變化的黑灰產攻擊有更強的應變靈活性。網絡
2、社羣結構
基於社羣編碼的黑灰產攻擊識別方法,在原有圖譜挖掘的基礎上,引入了大規模的圖嵌入表示學習技術,除了能挖掘出黑灰產自己的關聯關係,還能識別出潛在的黑灰產網絡結構,讓識別過程更加準確穩定。併發
該方法基於的關聯圖有兩種,分別是同構圖和異構圖,這也是黑灰產挖掘過程當中常常會遇到的關聯圖結構。同構圖表示網絡圖中全部節點的類型都相同,如對於一個帳號關聯而言,網絡圖中的節點有都是用戶的帳號ID。異構圖則表示網絡圖中全部節點的類型多是不一樣的,如在帳號關聯網絡中,網絡圖中的節點除了帳號ID外,可能還有IP地址,設備號,手機號等其餘類型的節點。異步
下圖表示了同構和異構的兩種示意圖,同構圖表示全部帳號ID組成的網絡結構,異構圖表示由帳號ID、設備ID、手機號和IP地址組成的網絡結構。分佈式
對於圖結構網絡,除了邊關係,節點自身也會不少固有屬性,如對於一個帳號ID的UGC場景,會有不一樣的活躍時間,不一樣的業務場景(如瀏覽圖文,瀏覽視頻,發表圖文等),不一樣的操做類型(如發文、評論,點贊,轉發等)。這類節點自身屬性以下圖中表格所示。函數
爲了便於說明通常狀況,後文說明中默認全是異構圖結構,由於同構圖做爲異構圖的一種特殊狀況,即便是實際推廣中是同構圖,也不影響使用異構圖的方法進行分析。實際場景中圖網絡關係以下圖例所示。工具
爲了識別出關聯結構圖中的社羣,目前已經有比較多的識別方法,經常使用的有基於節點的統計特徵,基於節點出入度的分佈變化,基於關聯邊的自定義權重,人工標註等方法,此類方法能識別不少關聯社羣,可是因爲圖譜關聯中難以定義邊的權重,會存在較多誤召,因此咱們在實踐中基於已有社羣挖掘結果進行編碼以提高黑灰產識別效果,同時嵌入式圖編碼還能夠基於節點的鄰居關係進行類似性的無監督學習。
3、圖嵌入式編碼
圖嵌入式編碼是一種將節點編碼成向量的node2vec方法,咱們採用的圖嵌入式編碼方法爲斯坦福大學William L. Hamilton、Rex Ying和Jure Leskovec等人在2016年提出的GraphSAGE,與node2vec相比較而言,node2vec是在圖的節點級別上進行嵌入,GraphSAGE則是在整個圖的級別上進行嵌入。GraphSAGE同時利用節點特徵信息和結構信息獲得Graph Embedding的映射,相比以前保存映射結果的方法,GraphSAGE保存了生成embedding的映射,可擴展性更強,對於節點分類和連接預測問題的表現也更加突出。
GraphSAGE算法流程包含三個步驟:
(1)對圖中每一個節點鄰居節點進行採樣,由於每一個節點的度是不一致的,因此爲了計算高效,爲每一個節點採樣固定數量的鄰居。
(2)根據聚合函數聚合鄰居頂點蘊含的信息。
(3)獲得圖中各頂點的向量表示供下游任務使用。
下圖爲該算法做者在論文中提供的採樣和聚合示意圖。
使用下圖所示的方法進行節點採樣。每一層的node由上一層生成,與本層無關,如此,1層的帳號ID 1已經聚合了0層設備ID 1和手機號2的信息,在二層,手機號2再聚合IP地址1的信息,通過兩層採樣,就能夠擴展到帳號ID 1的2階鄰居包含設備ID 一、手機號一、設備ID 二、手機號二、帳號ID 2和IP地址1的全部信息。
採樣過程當中固定採樣層數(本實踐使用2層)和每層採樣點的節點數(如鄰居節點數上限爲200個),能夠控制每次採樣過程對內存的消耗和運算耗時,該方法適用於大規模數據集,對大數據集下的黑灰產社羣挖掘很是有效。
咱們採用的聚合函數爲均值聚合,直接對目標節點和全部鄰居emebdding中每一個維度取平均,後再非線性轉換,原論文中相應函數表達式以下:
其主要思想是將目標頂點和鄰居頂點的第k−1層向量進行拼接,而後對向量的每一個維度進行求均值的操做,將獲得的結果作一次非線性變換產生目標頂點的第k層表示向量。不一樣的聚合函數計算方法不一樣,除均值聚合函數外,還有池化聚合器、LSTM聚合器等可選,通過測試,對於黑灰產社羣挖掘而言,不一樣的聚合函數差別並不明顯。
如此,通過以上對黑灰產社羣的採樣與鄰居聚合,能夠獲得每個節點在網絡圖上的向量表示。如上面採用圖示中帳號ID 1的向量就包含了設備ID 一、手機號一、設備ID 二、手機號二、帳號ID 2和IP地址1的網絡結構信息,同時包含了這些ID在不一樣時間點、不一樣業務場景、不一樣操做類型上的行爲特徵。
4、模型訓練
基於上面的採樣和聚合函數,開始進行參數學習,GraphSAGE不一樣的損失函數表明了不一樣的參數學習方法,以下所示損失函數就是一種無監督的損失,傾向於使得相鄰的頂點有類似的表示,相互遠離的頂點的表示差別變大。
上式表示節點 u 和隨機遊走到的鄰居節點 v 有類似的embedding表示,而與通過負採樣獲得的不相鄰節點 vn 有不類似的embedding表示。
對於無監督損失學習到的節點embedding,可繼續供下游任務使用,本實踐就是採用的該方法。固然,對於特定分類任務,也可使用特定的損失函數,如使用交叉熵進行分類預測。
咱們經過節點的統計特徵,人工標註肯定了正負樣本,使用節點的編碼向量做爲特徵進行分類模型訓練,下圖所示即爲部分數據的挖掘結果可視化。
直觀而言,對於社羣團伙的挖掘仍是比較合理的,整體分爲三類,紅色爲一社羣,黃色爲一社羣,其他(綠色)自動歸爲一類。
5、工程化實現
爲了在實際應用中發揮編碼的價值,咱們提出了一種異步準實時的黑灰產識別方案。下圖表示了這種識別方案的流程結構。
一個用戶開始請求客戶端,能夠採集到用戶的關鍵因子信息,如帳號ID、IP地址、設備號、手機號等,將這部分日誌信息寫入暫存區,暫存區存儲着全部在過去10分鐘(也能夠是其餘某個時間段,通常而言,日誌量越大,暫存區時間越短,反之越長)內請求過該客戶端的用戶的關鍵因子信息。
超過10分鐘的關鍵信息則存入離線的分區日誌庫,基於分區日誌庫進行圖譜構建,黑灰產社羣挖掘,社羣編碼,以及使用向量表示訓練分類模型,分類模型能夠不用實時訓練,按期使用過去一段時間的分區日誌訓練便可。
對於還在暫存區的關鍵因子,會對請求的用戶進行實時圖譜構建,以該用戶爲中心進行節點採樣並作向量表示,使用已經訓練好的分類模型對該用戶的表示向量進行黑灰產預測,若是預測爲正經常使用戶,則容許用戶在客戶端上的操做,若是預測該用戶爲黑灰產用戶,則拒絕該用戶進行客戶端操做。
下圖是訓練部分較詳細的過程:
下圖是預測部分的較詳細過程:
6、創新點
本實踐提出的一種基於社羣編碼的黑灰產攻擊識別方法,主要創新技術點包括:
基於社羣編碼對黑灰產進行有監督識別的方法,相比於既有圖譜挖掘算法,該方法不直接依賴於單個節點屬性,而是將整個社羣的關聯結構編碼到一個表示向量中,對黑灰產的表示更加準確,並且對於歷史上未出現的黑灰產帳號,也能經過網絡結構之間的類似性,經過向量表示進行識別。同時能夠有效避免由於噪聲關係(如黑灰產帳號鏈接了商場wifi)致使的錯誤識別。
因爲圖編碼結果自己就具有鄰居之間的強類似性,非鄰居之間的弱類似性。故使用編碼後的向量進行無監督學習(如密度聚類和層次聚類),也能夠識別出部分黑灰產在IP、帳號ID、手機號及設備號之間的內在關係,挖掘出類似黑灰產組成的聚類簇。
使用暫存區將大規模的圖嵌入表示學習方法與小數據集的異步預測結合在一塊兒,並使用編碼後的有監督模型進行快速預測,爲實際工程化應用提供了參考方法。
7、部分實踐效果
搭建的因子編碼模型包含有ip(IP地址)、cookie_id(cookie信息)、device_id(設備ID)、userid(用戶ID)、mobile(手機號)等共計5個關鍵因子,編碼的特徵包含 scence(業務場景), page(頁面), risk(風險程度)等信息(編碼特徵需依據具體場景而定)。
按10分鐘爲一個暫存區窗口,獲取因子數量百萬量級,編碼的關係數量近千萬,編碼的向量長度300左右。通過人工校驗,對embding結果使用有監督方式例行化產出ip維度的風險,使用其餘策略交叉校驗,該策略準確率能達到95%左右。無監督模型實踐中效果較差,沒有實際使用。
8、發展與思考
基於以上實踐發現,社羣編碼方法在黑灰產識別中具備較好的正向效果,但在實際生產過程當中,仍然面臨一些問題,如下做簡要探討。
計算問題:圖計算很是消耗計算資源,並且完整過程當中須要短期進行大量預測,當前結合mini batch訓練預測,在獨立的GPU環境中,完整計算一個日誌分區約須要半小時。
關鍵因子和編碼特徵的選擇問題:圖算法的結果很是依賴於圖結構和特徵屬性,這爲前期的因子選擇和特徵工程帶來巨大挑戰。
識別過程的自動化問題:GraphSAGE算法自己具有無監督識別的能力,但黑灰產識別過程當中發現這很是容易受到中心節點的影響(這能夠經過權重優化獲得必定程度解決),故當前仍然須要提早作部分社羣定義,而該過程須要人工或其餘建模方法介入,難以實現徹底自動化。
招聘信息:
百度移動生態事業部MEG,用戶中心招聘研發崗位(PHP/GO/C++)。咱們主要負責公司Passport、用戶資產、屬性、百度APP會員等核心業務方向,致力於打造高效、便捷、安全的用戶體系。若是你對Passport、百萬級QPS服務、分佈式設計&治理感興趣歡迎加入咱們。
關注同名公衆號百度Geek說,輸入內推便可,咱們期待你的加入!
推薦閱讀:
---------- END ----------
百度Geek說
百度官方技術公衆號上線啦!
技術乾貨 · 行業資訊 · 線上沙龍 · 行業大會
招聘信息 · 內推信息 · 技術書籍 · 百度周邊
歡迎各位同窗關注