SynchroTrap : 一個月內檢測 200 萬欺詐帳戶

awesome_hao發表於2017-10-09

網際網路上氾濫著各種欺詐行為。特別是社交網路誕生以來,許多職業黑客和黑色產業鏈便通過欺詐行為謀生。一個常見的欺詐行為便是大量的同時虛假點贊行為,也就是會有大量的使用者在短期內大量地給同一個頁面點贊(Synchronized Attack)。針對這種特定的欺詐行為,學術界的研究者和工業界的工程師專門研究了一種叫做 SynchroTrap 的演算法。這種演算法被部署在 Facebook 和 Instagram 的系統中,在一個月的時間內檢測出了 200 萬欺詐帳戶和 1156 次大規模網路攻擊。

SynchroTrap 的演算法非常簡單, 最根本的原理就是利用 Jaccard 相似性挑選出在某一個時間視窗內行為特別相近的那些使用者。

下面我們來直觀的感受一下 Synchronized Attack 和正常使用者行為之間的差異:

enter image description here

上圖中 (a) 顯示的是 Synchronized Attack ,可以看到大量的使用者在很短的時間區間內幾乎同時產生了某種行為;而圖中 (b) 的使用者行為更多的是一種隨機的分佈。

為了更好的理解 Synchronized Attack 這種欺詐行為,我們先來看一下欺詐行為的經濟學約束條件:

1.通常由於計算資源和運營成本的原因。欺詐使用者通常在有限的時間內控制大量的使用者。 2.因為黑色經濟的原因,欺詐行為通常都是任務性質的,也就是有任務時間限制的。

為了更好的解決 Synchronized Attack 問題,我們首先定義“匹配”的概念。所謂匹配是指: enter image description here

其中 U 是使用者 id ,C 是使用者的行為集合,而 T 是行為集合產生的時間。

定義使用者與使用者之間的 Jaccard 相似度為: enter image description here

其中:

enter image description here

計算完使用者與使用者之間的相似性後,我們得到了一張以使用者為節點的圖。然後我們採用單連結凝聚層次聚類的方法對使用者進行聚類: enter image description here

SynchroTrap 的時間複雜度是 O(r*n^2)。

SynchroTrap 演算法的原理非常的簡單, 把檢測 Synchronized Attack 問題轉化成了聚類問題。聚類問題不可避免的需要涉及到點和點之間距離的計算,SynchroTrap 的作者用常用的相似性距離計算度量 Jaccard Distance 來表示點和點之間的距離。然後採用了凝聚層次聚類的方法進行了聚類。整個演算法的過程非常的簡潔流暢。 enter image description here

上圖顯示的是在 11 周的時間裡每週被檢測的使用者數。

原文:Uncovering Large Groups of Active Malicious Accounts in Online Social Networks   原文作者:Qiang Cao , Xiaowei Yang , Jieqi Yu , Christopher Palow

相關文章