徐華露,湯娟,劉嘉勇
(四川大學網絡空間安全學院,成都610225)
僵尸賬號[1]通常指由程序操控,模仿人類在社交網絡上的行為,對正常的社交行為產生影響的特殊賬號。僵尸賬號作為社交機器人[4]的一種,活躍在各大社交平臺。它常常被用來擴散虛假信息、操縱輿論、竊取個人信息等[6],對社交網絡造成了負面影響[1]。
在過去的研究中,通常關注于對僵尸賬號的檢測問題[1,11]。文獻[3,12]將用戶粉絲數、關注數、微博數等行為特征和機器學習方法相結合來檢測僵尸賬號。方明等人[8]對用戶名進行分類來檢測僵尸賬號。文獻[7,13]則著重于分析用戶粉絲結構等網絡特征。文獻[12]從urls、@數等文本特征入手檢測僵尸賬號。研究者通過發現僵尸賬號與正常賬號間的特征差異性,如文本特征[12]、行為特征[13]或網絡結構特征[9],結合機器學習的方法來檢測僵尸賬號。
雖然已經有許多研究者通過各種方法分析并檢測僵尸賬號,但僵尸賬號不斷發展,其檢測仍然是社交網絡安全研究的重難點。同時,目前針對僵尸賬號的研究并未針對不同類別的僵尸賬號,無法適應不同僵尸賬號的多樣性。本文從不同類別的僵尸賬號的差異性入手,基于基礎特征和內容特征,分析五類的僵尸賬號之間的差異性與其和正常賬號的差異性,結合隨機森林算法檢測僵尸賬號。實驗結果表明,各類僵尸賬號與正常賬號相似度各不相同,其中初級僵尸賬號與正常賬號差距最為明顯,檢測準確率最高,而仿真僵尸賬號最接近正常賬號,準確率最低。
在泛娛樂化和商業化利益的驅動下,對虛假粉絲的買賣不斷增多,逐漸形成僵尸賬號買賣市場[5]。在目前的市場上,主要有以下五類僵尸賬號:
初級僵尸賬號:注冊時間較短,僅在注冊后幾天發布微博,無粉絲及關注,購買后粉絲列表留存率為0,極易被微博系統識別為僵尸賬號。
高級僵尸賬號:注冊時間較長,僅在注冊后幾年更新微博,且與其他僵尸賬號存在互動行為,購買后粉絲列表留存率為0,不易被系統識別。
仿真僵尸賬號:小部分賬號部分定期更新微博,與其他僵尸賬號存在極少互動行為,購買后粉絲列表留存率幾乎為0,易于被系統識別。
排名僵尸賬號:注冊時間長,用戶等級較高,部分賬號部分定期更新微博,與其他賬號存在更多的互動行為,粉絲列表留存低,部分難以被系統識別。
達人僵尸賬號:注冊時間長,有大量粉絲,定期更新微博,購買后粉絲列表留存率較高,難以被系統識別。
蜜罐是收集僵尸賬號的一種常用手段。本文注冊5 個微博賬號作為蜜罐頁面,并從一家提供僵尸賬號服務的公司購買了上述五類僵尸賬號,分別注入相應蜜罐頁面,并使用爬蟲采集其個人信息等相關信息。表1提供了收集的五類僵尸賬號的信息。

表1 蜜罐賬戶的匯總統計
本文從正常賬號中隨機抽取出500 個賬號,與五類僵尸賬號一同進行了基礎特征值分析,做出了相應的CDF 比對圖。其中包括用戶名復雜度,用戶的粉絲數,用戶的關注數,注冊時間五方面的比對,并繪制了五類僵尸賬號的均值線。比對結果如下:
用戶名復雜度:本文使用Jieba 算法對六組賬戶中的用戶名進行了分詞。設n為詞的數量,K為數詞的個數,leni為第i個詞的長度。則有用戶名復雜度僵尸賬號的用戶名復雜度低于正常賬號。初級僵尸賬號的用戶名結構為文字+隨機數字的形式,可讀性較差。達人僵尸賬號的用戶名中含有較少的符號,可讀性較強。
注冊時間:正常僵尸賬號的注冊天數分布均勻,而五類僵尸賬號的注冊天數CDF 圖呈階梯型上升,絕大部分用戶的注冊時間具有一致性。其中初級僵尸賬號的注冊時間均在購買粉絲日期的前4 天,CDF 分布圖集中,達人僵尸賬號多于早期統一注冊。
用戶的粉絲數:達人僵尸賬號的粉絲數量分布遠遠高出正常賬號數倍,正常賬號的粉絲數量分布較為均衡,初級僵尸賬號幾乎沒有粉絲,其他幾類僵尸賬號粉絲分布較為集中。
用戶的關注數:正常用戶的關注數量多數小于500,且與僵尸賬號有明顯的差別。其中初級僵尸賬號幾乎沒有關注任何用戶,高級僵尸賬號長期進行粉絲買賣服務,因此具有較大的關注量,關注數絕大部分高于2000。達人僵尸賬號的關注數集中于1000-2000之間。
綜上所述,較為常見的初級僵尸賬號與正常賬號之間存在較大差異性。絕大多數達人僵尸賬號具有更多的粉絲數量、較為均衡的關注數,更集中的注冊時間,更具可讀性的用戶名,普通用戶更難從海量賬號中區分出達人僵尸賬號。

圖1 基礎特征CDF圖
為了了解五類僵尸賬號之間,五類僵尸賬號與正常賬號之間的傳播特性差異。本文比較分析了僵尸賬號與正常賬號的微博傳播特征和內容特征。
表2 比對了僵尸賬號與正常賬號的微博傳播特性。從表中可以看出,仿真僵尸賬號、初級僵尸賬號和達人僵尸賬號的微博被轉發概率、點贊概率以及微博的評論概率99%以上都為0,并且幾乎沒有數據在10以上,與正常賬號相比有明顯差異。排名僵尸賬號則被轉發率、點贊率,和評論率則更接近正常賬號。高級僵尸賬號其次。

表2 微博傳播特征匯總
表3 比對了僵尸賬號與正常賬號的微博傳播內容特性。從表中可以看出,初級僵尸賬號與其他四類僵尸賬號之間具有明顯的傳播性差異,它們發布的微博數量較少,幾乎不存在URL,@或是#標簽,且微博也較短。達人僵尸賬號的行為與初級僵尸賬號的行為類似,但其發布的微博較長,接近平均水平。超級僵尸賬號與排名僵尸賬號發布了大量的微博,且存在較多的URL、@和#標簽。其中超級僵尸賬號的URL 的比例遠高于正常賬號,甚至一條微博中帶有多個URL 連接。仿真僵尸賬號雖然微博較多,但其中含有的URL、@和#話題標簽比率都較少,和達人僵尸賬號的傳播特征較為類似。

表3 微博傳播內容特征匯總
綜上所述,在傳播特性方面,五類僵尸賬號之間具有較大的差異性。初級僵尸賬號、仿真僵尸賬號以及達人僵尸賬號的傳播行為較少,遠低于正常值。而高級僵尸賬號以及排名僵尸賬號的各項傳播特征遠高于正常值。五類僵尸賬號從事的業務不同,導致其產生差異性。
基于隨機森林的僵尸賬號檢測模型如圖2 所示,該模型主要包括兩部分:數據特征提取模塊以及隨機森林檢測模塊。本文使用Python 爬蟲獲取到原始數據集,對原始數據集進行清洗以及預處理后,進行基礎特征分析和傳播特征分析,轉化為特征集向量。最后,本文將數據集隨機分為80%的訓練數據集和20%的測試數據集,根據特征集向量對數據進行訓練和檢測。

圖2 檢測模型框架
隨機森林是一個包含多個決策樹的分類器,隨機森林可以處理大量的輸入變數,并且可以平衡誤差,產生高準確度的分類器。本文提取出每個用戶的特征組,其中隨機選擇80%的樣本作為訓練集N_train,余下部分為測試集N_test。要建立m 棵樹的隨機森林的具體步驟大致如下:
(1)構建訓練集與測試集:通過Bogging 方法從N_train 中通過重采樣的方式產生n 個樣本。
(2)構建標準特征集:對特征樣本集F 進行標準化處理,將數據按比例縮放,使之落入(0,1)的特定區間內,得到標準特征集F_standard。
(3)選取特征并構建決策樹:F_standard 特征數目為11,用基尼指數選擇其中5 個最優特征,若基尼值為則屬性a 的基尼指數為:根據使基尼指數最小的屬性進行選擇,決定最優二值切分點進行分裂。
(4)構建隨機森林:重復步驟(3)m 次,產生m 棵決策樹。
(5)測試數據:每一棵決策樹都對N_test 中的每一條數據進行分類,統計m 個分類結果,票數最多的類別,即為該樣本的最終類別。
本文通過Python 爬蟲,獲取了2,496 個僵尸賬號的數據,10,000 個正常用戶的數據,以及共12,496 條用戶相關數據。提取出的每個用戶的特征組如表4 所示,包括用戶名復雜度、用戶的粉絲數、用戶的關注數、用戶注冊時間、用戶發布微博數、用戶微博原創率、用戶微博轉發率、微博中所包含的url、話題和@比率、微博平均長度。

表4 特征分類描述
本文在計算每類賬號評估指標時,將該類作為正類,其他類別統一視為負類,將多分類問題轉換為二分類問題。實驗的采用的評估指標如下:

本文將數據集隨機分為80%的訓練數據集和20%的測試數據集,根據上述特征使用隨機森林對僵尸賬號進行了檢測。在檢測過程中,將被檢測的一類僵尸賬號作為正類,其余類別的僵尸賬號和正常賬號一起作為負類,得到實驗結果如表5 所示。結果表明,初級僵尸賬號檢測準確率最高,其精確率、召回率及F1 值也較高。說明初級僵尸賬號的特征較為明顯,更易于識別。而仿真僵尸賬號擁有最低的準確率和精確率,說明其特征近似于正常賬號,因此較難檢測。

表5 各類僵尸賬號檢測的性能指標對比
本文專注于研究五類微博僵尸賬號的特征與檢測。通過基于蜜罐的比較分析法,描繪出目前五類僵尸賬號的特征:僵尸賬號產業的控制者在不斷生產并培養僵尸賬號,根據業務需求提升僵尸賬號的仿真程度,因此導致不同種類的僵尸賬號具有不同的特征。最終,本文隨機森林對僵尸賬號進行檢測,其中初級僵尸賬號與正常賬號差異較為明顯,得到的準確率最優,而仿真僵尸賬號則最接近于正常賬號,其準確率最低。