徐華露,湯娟,劉嘉勇
(四川大學(xué)網(wǎng)絡(luò)空間安全學(xué)院,成都610225)
僵尸賬號(hào)[1]通常指由程序操控,模仿人類(lèi)在社交網(wǎng)絡(luò)上的行為,對(duì)正常的社交行為產(chǎn)生影響的特殊賬號(hào)。僵尸賬號(hào)作為社交機(jī)器人[4]的一種,活躍在各大社交平臺(tái)。它常常被用來(lái)擴(kuò)散虛假信息、操縱輿論、竊取個(gè)人信息等[6],對(duì)社交網(wǎng)絡(luò)造成了負(fù)面影響[1]。
在過(guò)去的研究中,通常關(guān)注于對(duì)僵尸賬號(hào)的檢測(cè)問(wèn)題[1,11]。文獻(xiàn)[3,12]將用戶粉絲數(shù)、關(guān)注數(shù)、微博數(shù)等行為特征和機(jī)器學(xué)習(xí)方法相結(jié)合來(lái)檢測(cè)僵尸賬號(hào)。方明等人[8]對(duì)用戶名進(jìn)行分類(lèi)來(lái)檢測(cè)僵尸賬號(hào)。文獻(xiàn)[7,13]則著重于分析用戶粉絲結(jié)構(gòu)等網(wǎng)絡(luò)特征。文獻(xiàn)[12]從urls、@數(shù)等文本特征入手檢測(cè)僵尸賬號(hào)。研究者通過(guò)發(fā)現(xiàn)僵尸賬號(hào)與正常賬號(hào)間的特征差異性,如文本特征[12]、行為特征[13]或網(wǎng)絡(luò)結(jié)構(gòu)特征[9],結(jié)合機(jī)器學(xué)習(xí)的方法來(lái)檢測(cè)僵尸賬號(hào)。
雖然已經(jīng)有許多研究者通過(guò)各種方法分析并檢測(cè)僵尸賬號(hào),但僵尸賬號(hào)不斷發(fā)展,其檢測(cè)仍然是社交網(wǎng)絡(luò)安全研究的重難點(diǎn)。同時(shí),目前針對(duì)僵尸賬號(hào)的研究并未針對(duì)不同類(lèi)別的僵尸賬號(hào),無(wú)法適應(yīng)不同僵尸賬號(hào)的多樣性。本文從不同類(lèi)別的僵尸賬號(hào)的差異性入手,基于基礎(chǔ)特征和內(nèi)容特征,分析五類(lèi)的僵尸賬號(hào)之間的差異性與其和正常賬號(hào)的差異性,結(jié)合隨機(jī)森林算法檢測(cè)僵尸賬號(hào)。實(shí)驗(yàn)結(jié)果表明,各類(lèi)僵尸賬號(hào)與正常賬號(hào)相似度各不相同,其中初級(jí)僵尸賬號(hào)與正常賬號(hào)差距最為明顯,檢測(cè)準(zhǔn)確率最高,而仿真僵尸賬號(hào)最接近正常賬號(hào),準(zhǔn)確率最低。
在泛娛樂(lè)化和商業(yè)化利益的驅(qū)動(dòng)下,對(duì)虛假粉絲的買(mǎi)賣(mài)不斷增多,逐漸形成僵尸賬號(hào)買(mǎi)賣(mài)市場(chǎng)[5]。在目前的市場(chǎng)上,主要有以下五類(lèi)僵尸賬號(hào):
初級(jí)僵尸賬號(hào):注冊(cè)時(shí)間較短,僅在注冊(cè)后幾天發(fā)布微博,無(wú)粉絲及關(guān)注,購(gòu)買(mǎi)后粉絲列表留存率為0,極易被微博系統(tǒng)識(shí)別為僵尸賬號(hào)。
高級(jí)僵尸賬號(hào):注冊(cè)時(shí)間較長(zhǎng),僅在注冊(cè)后幾年更新微博,且與其他僵尸賬號(hào)存在互動(dòng)行為,購(gòu)買(mǎi)后粉絲列表留存率為0,不易被系統(tǒng)識(shí)別。
仿真僵尸賬號(hào):小部分賬號(hào)部分定期更新微博,與其他僵尸賬號(hào)存在極少互動(dòng)行為,購(gòu)買(mǎi)后粉絲列表留存率幾乎為0,易于被系統(tǒng)識(shí)別。
排名僵尸賬號(hào):注冊(cè)時(shí)間長(zhǎng),用戶等級(jí)較高,部分賬號(hào)部分定期更新微博,與其他賬號(hào)存在更多的互動(dòng)行為,粉絲列表留存低,部分難以被系統(tǒng)識(shí)別。
達(dá)人僵尸賬號(hào):注冊(cè)時(shí)間長(zhǎng),有大量粉絲,定期更新微博,購(gòu)買(mǎi)后粉絲列表留存率較高,難以被系統(tǒng)識(shí)別。
蜜罐是收集僵尸賬號(hào)的一種常用手段。本文注冊(cè)5 個(gè)微博賬號(hào)作為蜜罐頁(yè)面,并從一家提供僵尸賬號(hào)服務(wù)的公司購(gòu)買(mǎi)了上述五類(lèi)僵尸賬號(hào),分別注入相應(yīng)蜜罐頁(yè)面,并使用爬蟲(chóng)采集其個(gè)人信息等相關(guān)信息。表1提供了收集的五類(lèi)僵尸賬號(hào)的信息。
表1 蜜罐賬戶的匯總統(tǒng)計(jì)
本文從正常賬號(hào)中隨機(jī)抽取出500 個(gè)賬號(hào),與五類(lèi)僵尸賬號(hào)一同進(jìn)行了基礎(chǔ)特征值分析,做出了相應(yīng)的CDF 比對(duì)圖。其中包括用戶名復(fù)雜度,用戶的粉絲數(shù),用戶的關(guān)注數(shù),注冊(cè)時(shí)間五方面的比對(duì),并繪制了五類(lèi)僵尸賬號(hào)的均值線。比對(duì)結(jié)果如下:
用戶名復(fù)雜度:本文使用Jieba 算法對(duì)六組賬戶中的用戶名進(jìn)行了分詞。設(shè)n為詞的數(shù)量,K為數(shù)詞的個(gè)數(shù),leni為第i個(gè)詞的長(zhǎng)度。則有用戶名復(fù)雜度僵尸賬號(hào)的用戶名復(fù)雜度低于正常賬號(hào)。初級(jí)僵尸賬號(hào)的用戶名結(jié)構(gòu)為文字+隨機(jī)數(shù)字的形式,可讀性較差。達(dá)人僵尸賬號(hào)的用戶名中含有較少的符號(hào),可讀性較強(qiáng)。
注冊(cè)時(shí)間:正常僵尸賬號(hào)的注冊(cè)天數(shù)分布均勻,而五類(lèi)僵尸賬號(hào)的注冊(cè)天數(shù)CDF 圖呈階梯型上升,絕大部分用戶的注冊(cè)時(shí)間具有一致性。其中初級(jí)僵尸賬號(hào)的注冊(cè)時(shí)間均在購(gòu)買(mǎi)粉絲日期的前4 天,CDF 分布圖集中,達(dá)人僵尸賬號(hào)多于早期統(tǒng)一注冊(cè)。
用戶的粉絲數(shù):達(dá)人僵尸賬號(hào)的粉絲數(shù)量分布遠(yuǎn)遠(yuǎn)高出正常賬號(hào)數(shù)倍,正常賬號(hào)的粉絲數(shù)量分布較為均衡,初級(jí)僵尸賬號(hào)幾乎沒(méi)有粉絲,其他幾類(lèi)僵尸賬號(hào)粉絲分布較為集中。
用戶的關(guān)注數(shù):正常用戶的關(guān)注數(shù)量多數(shù)小于500,且與僵尸賬號(hào)有明顯的差別。其中初級(jí)僵尸賬號(hào)幾乎沒(méi)有關(guān)注任何用戶,高級(jí)僵尸賬號(hào)長(zhǎng)期進(jìn)行粉絲買(mǎi)賣(mài)服務(wù),因此具有較大的關(guān)注量,關(guān)注數(shù)絕大部分高于2000。達(dá)人僵尸賬號(hào)的關(guān)注數(shù)集中于1000-2000之間。
綜上所述,較為常見(jiàn)的初級(jí)僵尸賬號(hào)與正常賬號(hào)之間存在較大差異性。絕大多數(shù)達(dá)人僵尸賬號(hào)具有更多的粉絲數(shù)量、較為均衡的關(guān)注數(shù),更集中的注冊(cè)時(shí)間,更具可讀性的用戶名,普通用戶更難從海量賬號(hào)中區(qū)分出達(dá)人僵尸賬號(hào)。
圖1 基礎(chǔ)特征CDF圖
為了了解五類(lèi)僵尸賬號(hào)之間,五類(lèi)僵尸賬號(hào)與正常賬號(hào)之間的傳播特性差異。本文比較分析了僵尸賬號(hào)與正常賬號(hào)的微博傳播特征和內(nèi)容特征。
表2 比對(duì)了僵尸賬號(hào)與正常賬號(hào)的微博傳播特性。從表中可以看出,仿真僵尸賬號(hào)、初級(jí)僵尸賬號(hào)和達(dá)人僵尸賬號(hào)的微博被轉(zhuǎn)發(fā)概率、點(diǎn)贊概率以及微博的評(píng)論概率99%以上都為0,并且?guī)缀鯖](méi)有數(shù)據(jù)在10以上,與正常賬號(hào)相比有明顯差異。排名僵尸賬號(hào)則被轉(zhuǎn)發(fā)率、點(diǎn)贊率,和評(píng)論率則更接近正常賬號(hào)。高級(jí)僵尸賬號(hào)其次。
表2 微博傳播特征匯總
表3 比對(duì)了僵尸賬號(hào)與正常賬號(hào)的微博傳播內(nèi)容特性。從表中可以看出,初級(jí)僵尸賬號(hào)與其他四類(lèi)僵尸賬號(hào)之間具有明顯的傳播性差異,它們發(fā)布的微博數(shù)量較少,幾乎不存在URL,@或是#標(biāo)簽,且微博也較短。達(dá)人僵尸賬號(hào)的行為與初級(jí)僵尸賬號(hào)的行為類(lèi)似,但其發(fā)布的微博較長(zhǎng),接近平均水平。超級(jí)僵尸賬號(hào)與排名僵尸賬號(hào)發(fā)布了大量的微博,且存在較多的URL、@和#標(biāo)簽。其中超級(jí)僵尸賬號(hào)的URL 的比例遠(yuǎn)高于正常賬號(hào),甚至一條微博中帶有多個(gè)URL 連接。仿真僵尸賬號(hào)雖然微博較多,但其中含有的URL、@和#話題標(biāo)簽比率都較少,和達(dá)人僵尸賬號(hào)的傳播特征較為類(lèi)似。
表3 微博傳播內(nèi)容特征匯總
綜上所述,在傳播特性方面,五類(lèi)僵尸賬號(hào)之間具有較大的差異性。初級(jí)僵尸賬號(hào)、仿真僵尸賬號(hào)以及達(dá)人僵尸賬號(hào)的傳播行為較少,遠(yuǎn)低于正常值。而高級(jí)僵尸賬號(hào)以及排名僵尸賬號(hào)的各項(xiàng)傳播特征遠(yuǎn)高于正常值。五類(lèi)僵尸賬號(hào)從事的業(yè)務(wù)不同,導(dǎo)致其產(chǎn)生差異性。
基于隨機(jī)森林的僵尸賬號(hào)檢測(cè)模型如圖2 所示,該模型主要包括兩部分:數(shù)據(jù)特征提取模塊以及隨機(jī)森林檢測(cè)模塊。本文使用Python 爬蟲(chóng)獲取到原始數(shù)據(jù)集,對(duì)原始數(shù)據(jù)集進(jìn)行清洗以及預(yù)處理后,進(jìn)行基礎(chǔ)特征分析和傳播特征分析,轉(zhuǎn)化為特征集向量。最后,本文將數(shù)據(jù)集隨機(jī)分為80%的訓(xùn)練數(shù)據(jù)集和20%的測(cè)試數(shù)據(jù)集,根據(jù)特征集向量對(duì)數(shù)據(jù)進(jìn)行訓(xùn)練和檢測(cè)。
圖2 檢測(cè)模型框架
隨機(jī)森林是一個(gè)包含多個(gè)決策樹(shù)的分類(lèi)器,隨機(jī)森林可以處理大量的輸入變數(shù),并且可以平衡誤差,產(chǎn)生高準(zhǔn)確度的分類(lèi)器。本文提取出每個(gè)用戶的特征組,其中隨機(jī)選擇80%的樣本作為訓(xùn)練集N_train,余下部分為測(cè)試集N_test。要建立m 棵樹(shù)的隨機(jī)森林的具體步驟大致如下:
(1)構(gòu)建訓(xùn)練集與測(cè)試集:通過(guò)Bogging 方法從N_train 中通過(guò)重采樣的方式產(chǎn)生n 個(gè)樣本。
(2)構(gòu)建標(biāo)準(zhǔn)特征集:對(duì)特征樣本集F 進(jìn)行標(biāo)準(zhǔn)化處理,將數(shù)據(jù)按比例縮放,使之落入(0,1)的特定區(qū)間內(nèi),得到標(biāo)準(zhǔn)特征集F_standard。
(3)選取特征并構(gòu)建決策樹(shù):F_standard 特征數(shù)目為11,用基尼指數(shù)選擇其中5 個(gè)最優(yōu)特征,若基尼值為則屬性a 的基尼指數(shù)為:根據(jù)使基尼指數(shù)最小的屬性進(jìn)行選擇,決定最優(yōu)二值切分點(diǎn)進(jìn)行分裂。
(4)構(gòu)建隨機(jī)森林:重復(fù)步驟(3)m 次,產(chǎn)生m 棵決策樹(shù)。
(5)測(cè)試數(shù)據(jù):每一棵決策樹(shù)都對(duì)N_test 中的每一條數(shù)據(jù)進(jìn)行分類(lèi),統(tǒng)計(jì)m 個(gè)分類(lèi)結(jié)果,票數(shù)最多的類(lèi)別,即為該樣本的最終類(lèi)別。
本文通過(guò)Python 爬蟲(chóng),獲取了2,496 個(gè)僵尸賬號(hào)的數(shù)據(jù),10,000 個(gè)正常用戶的數(shù)據(jù),以及共12,496 條用戶相關(guān)數(shù)據(jù)。提取出的每個(gè)用戶的特征組如表4 所示,包括用戶名復(fù)雜度、用戶的粉絲數(shù)、用戶的關(guān)注數(shù)、用戶注冊(cè)時(shí)間、用戶發(fā)布微博數(shù)、用戶微博原創(chuàng)率、用戶微博轉(zhuǎn)發(fā)率、微博中所包含的url、話題和@比率、微博平均長(zhǎng)度。
表4 特征分類(lèi)描述
本文在計(jì)算每類(lèi)賬號(hào)評(píng)估指標(biāo)時(shí),將該類(lèi)作為正類(lèi),其他類(lèi)別統(tǒng)一視為負(fù)類(lèi),將多分類(lèi)問(wèn)題轉(zhuǎn)換為二分類(lèi)問(wèn)題。實(shí)驗(yàn)的采用的評(píng)估指標(biāo)如下:
本文將數(shù)據(jù)集隨機(jī)分為80%的訓(xùn)練數(shù)據(jù)集和20%的測(cè)試數(shù)據(jù)集,根據(jù)上述特征使用隨機(jī)森林對(duì)僵尸賬號(hào)進(jìn)行了檢測(cè)。在檢測(cè)過(guò)程中,將被檢測(cè)的一類(lèi)僵尸賬號(hào)作為正類(lèi),其余類(lèi)別的僵尸賬號(hào)和正常賬號(hào)一起作為負(fù)類(lèi),得到實(shí)驗(yàn)結(jié)果如表5 所示。結(jié)果表明,初級(jí)僵尸賬號(hào)檢測(cè)準(zhǔn)確率最高,其精確率、召回率及F1 值也較高。說(shuō)明初級(jí)僵尸賬號(hào)的特征較為明顯,更易于識(shí)別。而仿真僵尸賬號(hào)擁有最低的準(zhǔn)確率和精確率,說(shuō)明其特征近似于正常賬號(hào),因此較難檢測(cè)。
表5 各類(lèi)僵尸賬號(hào)檢測(cè)的性能指標(biāo)對(duì)比
本文專(zhuān)注于研究五類(lèi)微博僵尸賬號(hào)的特征與檢測(cè)。通過(guò)基于蜜罐的比較分析法,描繪出目前五類(lèi)僵尸賬號(hào)的特征:僵尸賬號(hào)產(chǎn)業(yè)的控制者在不斷生產(chǎn)并培養(yǎng)僵尸賬號(hào),根據(jù)業(yè)務(wù)需求提升僵尸賬號(hào)的仿真程度,因此導(dǎo)致不同種類(lèi)的僵尸賬號(hào)具有不同的特征。最終,本文隨機(jī)森林對(duì)僵尸賬號(hào)進(jìn)行檢測(cè),其中初級(jí)僵尸賬號(hào)與正常賬號(hào)差異較為明顯,得到的準(zhǔn)確率最優(yōu),而仿真僵尸賬號(hào)則最接近于正常賬號(hào),其準(zhǔn)確率最低。