牛紅峰,朱蓉蓉,李永明,丁潔,蔡忠閩
(1.西安交通大學(xué)智能網(wǎng)絡(luò)與網(wǎng)絡(luò)安全教育部重點實驗室,710049,西安;2.西安交通大學(xué)電子與信息學(xué)部,710049,西安)
人機(jī)檢測是網(wǎng)絡(luò)系統(tǒng)分辨人和腳本機(jī)器人的技術(shù)。腳本機(jī)器人是指自動訪問和操作信息系統(tǒng)人類操作界面的程序或腳本。腳本機(jī)器人是一把雙刃劍:一方面,它們能代替人完成枯燥、重復(fù)的工作,如搜索引擎通過網(wǎng)絡(luò)爬蟲大規(guī)模采集網(wǎng)站信息,建立索引方便人們快速定位到需要的網(wǎng)絡(luò)資源;另一方面,利用網(wǎng)絡(luò)機(jī)器人可實現(xiàn)拖庫、撞庫等攻擊,給用戶的信息、財產(chǎn)等造成極大的安全隱患。更為嚴(yán)重的是,基于腳本機(jī)器人的搶票、游戲外掛、刷單等行為破壞了互聯(lián)網(wǎng)經(jīng)濟(jì)的公平性。因此,區(qū)分人機(jī)的檢測技術(shù)對互聯(lián)網(wǎng)生態(tài)系統(tǒng)至關(guān)重要[1]。
針對人機(jī)檢測問題,很多檢測方法,如短信驗證、郵箱驗證、CAPTCHA(俗稱“驗證碼”)[2]等,被相繼提出。由于短信驗證的成本較高以及郵箱驗證的遲滯性,目前大多數(shù)采用基于CAPTCHA的方式進(jìn)行人機(jī)檢測,常見有的文本輸入式、滑動式、點選式等類型。然而,隨著人工智能的發(fā)展尤其是圖像識別技術(shù)的發(fā)展,通過CAPTCHA的方式檢測腳本機(jī)器人的能力逐漸弱化[3]?;贑APTCHA原理研制的reCAPTCHA是一種具有廣泛影響力的人機(jī)驗證技術(shù),也早在2017年被Brown等破解[4]。隨著深度學(xué)習(xí)方法在圖像領(lǐng)域的深入應(yīng)用,快速、高精度地識別CAPTCHA成為了可能[5]。
基于行為的檢測技術(shù)是人機(jī)檢測領(lǐng)域的另一個重要方向。Miashima等通過分析正常用戶和游戲機(jī)器人在服務(wù)器端日志數(shù)據(jù)中的速度和動作頻率等行為模式對游戲機(jī)器人進(jìn)行檢測[6]。Chung等通過用戶的行為相似性來觀察和分組用戶的游戲行為,為每個玩家群開發(fā)了一個本地機(jī)器人檢測模型[7]。Kantepe等提出通過分析推特用戶在語義、句法、網(wǎng)絡(luò)流等方面的行為差異區(qū)分機(jī)器人賬戶與正常人類賬戶[8]。Chu等將基于行為的人機(jī)檢測方法應(yīng)用于網(wǎng)頁端,通過分析不同復(fù)雜程度的腳本機(jī)器人與正常人的鍵盤、鼠標(biāo)等操作行為的差異性,進(jìn)行人機(jī)檢測[9]。van der Walt等提出利用機(jī)器學(xué)習(xí)的方法對比正常人類與腳本機(jī)器人產(chǎn)生的虛假賬戶的不同[10]。上述研究利用基于行為的人機(jī)檢測方法取得了不錯的檢測效果,驗證了基于行為的方法用于人機(jī)檢測的有效性。然而,以上研究都采用二分類方法進(jìn)行人機(jī)檢測。在實際檢測中,腳本機(jī)器人種類復(fù)雜多樣,防御方無法獲取所有類型的機(jī)器人樣本數(shù)據(jù),因此二分類方法無法對新型未知機(jī)器人進(jìn)行訓(xùn)練、建模。但是,單分類方法能夠針對某一類目標(biāo)樣本進(jìn)行單獨建模[11]、設(shè)定目標(biāo)類邊界、區(qū)分異常類與目標(biāo)類,常用于異常檢測[12]、入侵檢測[13]等樣本極度不平衡或者樣本較難獲取的場景中。
因此,本文提出基于單分類的人機(jī)檢測方法,通過收集正常用戶的鼠標(biāo)行為數(shù)據(jù)[14],建立僅利用正常用戶的鼠標(biāo)行為的人機(jī)檢測模型。該方法解決了人機(jī)檢測領(lǐng)域中面對新型機(jī)器人層出不窮導(dǎo)致的檢測效果不理想的問題,具有較高的泛化能力。
本文提出的基于單分類方法的人機(jī)檢測模型框架如圖1所示,包括鼠標(biāo)行為獲取、特征構(gòu)建及單分類人機(jī)檢測模型共3個模塊。
圖1 單分類人機(jī)檢測框架
本文以典型的網(wǎng)頁登錄頁面為數(shù)據(jù)獲取場景,將編寫好的JavaScript內(nèi)嵌在網(wǎng)頁中用于捕獲用戶操作鼠標(biāo)時的行為數(shù)據(jù)。本文設(shè)計的登錄場景頁面如圖2所示,用戶首先通過客戶端瀏覽器打開網(wǎng)頁登錄頁面,然后通過鼠標(biāo)拖動依次完成輸入用戶名、密碼、驗證碼、點擊登錄等操作,完成正常的網(wǎng)頁登錄。JavaScript會自動采集上述過程的鼠標(biāo)行為數(shù)據(jù)。
圖2 本文設(shè)計的登錄場景頁面
用戶在登錄頁面的操作通常由鼠標(biāo)和鍵盤共同組成,鼠標(biāo)操作被鍵盤操作分割為多段移動過程。本文將每一段連續(xù)的鼠標(biāo)數(shù)據(jù)進(jìn)行單獨處理提取相應(yīng)的特征,得到描述每段鼠標(biāo)移動的特征向量,將每次登錄操作中多段鼠標(biāo)移動的特征向量求均值,得到描述本次登錄鼠標(biāo)行為的特征向量。
表1 鼠標(biāo)行為的特征
圖3 鼠標(biāo)軌跡片段
該模塊包含模型訓(xùn)練與檢測兩個階段。
訓(xùn)練階段:正常用戶的鼠標(biāo)行為樣本經(jīng)過數(shù)據(jù)預(yù)處理及特征提取之后,以特征向量的形式輸入單分類器,單分類器利用正常用戶樣本的特征向量構(gòu)建單分類檢測模型并保存。
檢測階段:該階段的樣本為未知樣本,未知樣本以特征向量形式輸入已訓(xùn)練的檢測模型,模型根據(jù)設(shè)定的閾值判定樣本是否屬于正常用戶。
本文選取模式識別中常用的4種單分類器進(jìn)行人機(jī)檢測,基本原理如下。
(1)Parzen窗。Parzen窗是一種具有堅實理論基礎(chǔ)和優(yōu)秀性能的非參數(shù)函數(shù)估計方法[15],該方法利用一組樣本中一定范圍內(nèi)各點密度的平均值對總體密度函數(shù)進(jìn)行估計,能夠較好地描述一維或多維數(shù)據(jù)的分布情況。Parzen窗利用參與訓(xùn)練的正常用戶樣本來估計描述正常用戶樣本的特征空間,從而實現(xiàn)對正常用戶樣本的建模。Parzen窗有多種核函數(shù),本文采用正態(tài)核函數(shù)。
(2)支持向量數(shù)據(jù)描述(SVDD)。SVDD方法在映射到高維特征空間中找出一個包圍目標(biāo)樣本點的超球體,通過最小化超球體的體積讓目標(biāo)樣本點盡可能地被包圍在超球體中,而非目標(biāo)樣本點盡可能地在超球體外,從而達(dá)到兩類之間劃分的目的[16]。利用SVDD方法能夠計算出正常用戶樣本特征空間的最小超球體中心及半徑,從而將超球體之外的樣本判定為來自腳本機(jī)器人。
(3)k均值。k均值方法假定屬于正常用戶樣本之間的距離相互較近,而正常用戶與異常用戶樣本之間的距離相對較遠(yuǎn)[17]。在訓(xùn)練階段,每k個簇的質(zhì)心被認(rèn)為是正常用戶。在測試階段,輸入的未知樣本特征向量到最近質(zhì)心的歐幾里德距離被認(rèn)為是該樣本的分類得分,通過設(shè)定不同閾值來判定該樣本是來自正常用戶還是來自腳本機(jī)器人。
(4)k近鄰(knn)。knn方法基于新樣本與訓(xùn)練集中樣本的相似度來建立模型[18]。在訓(xùn)練階段,分類器通過計算正常用戶樣本中兩兩樣本的曼哈頓距離從而建立起正常用戶樣本的距離矩陣,決定了分類器的分類閾值。在檢測階段,分類器計算未知樣本與正常用戶每個樣本的曼哈頓距離。該樣本到最近的前k個樣本均值被用作knn分類器的檢測得分。如果該未知樣本的得分閾值低于決策得分,那么該樣本將會被看成由腳本機(jī)器人生成。
(1)硬件參數(shù)。整個實驗在相同采集環(huán)境下進(jìn)行,實驗設(shè)備為1臺PC機(jī),具體參數(shù)如下:操作系統(tǒng)為Windows 7,顯示器型號為HP ModelL 1710,顯示器分辨率為1 280×1 024,內(nèi)存為2 GB,CPU型號為Pentium(R) Dual-Core 3.06 GHz。
(2)數(shù)據(jù)信息。采集的信息包含一系列鼠標(biāo)事件標(biāo)簽、運動軌跡的坐標(biāo)、時間戳、屏幕分辨率、瀏覽器信息等。
(3)正常用戶數(shù)據(jù)的獲取。召集了30名在校大學(xué)生完成數(shù)據(jù)采集任務(wù),其中22名男生、8名女生,全部習(xí)慣右手操控鼠標(biāo),每次采集5組數(shù)據(jù),連續(xù)采集6周,每人共采集30組數(shù)據(jù)。
(4)腳本機(jī)器人的設(shè)計。腳本機(jī)器人設(shè)計者在針對具有行為防御手段的網(wǎng)頁進(jìn)行腳本機(jī)器人攻擊時,為逃避服務(wù)器對腳本機(jī)器人的檢測,會盡可能地讓腳本機(jī)器人模擬正常用戶的操作行為。因此,設(shè)計者在設(shè)計腳本機(jī)器人時,需要了解正常用戶的操作行為并使腳本機(jī)器人產(chǎn)生擬人的操作行為(如鼠標(biāo)移動、鍵盤點擊等)以規(guī)避服務(wù)器的檢測。
目前,雖有一些可以模擬人類操作行為的公開工具箱(如按鍵精靈、Auto KeyBoard等),但并沒有公開真正意義上進(jìn)行人類行為模擬的腳本機(jī)器人,更沒有相關(guān)的公開數(shù)據(jù)。因此,本文根據(jù)腳本機(jī)器人相關(guān)資料,設(shè)計并實現(xiàn)了一種具有一定代表性模擬人類行為的腳本機(jī)器人,用于驗證本文提出的單分類人機(jī)檢測方法的實用性和有效性。
正常用戶在訪問頁面時,會產(chǎn)生鼠標(biāo)移動、鍵盤點擊等基本操作行為,本文在設(shè)計腳本機(jī)器人時,會最大限度地模擬正常用戶在網(wǎng)頁端登錄場景中的行為。腳本機(jī)器人在網(wǎng)頁上的操作行為從鼠標(biāo)移動軌跡形狀和速度這2方面進(jìn)行描述。在鼠標(biāo)移動軌跡方面,設(shè)計了直線、規(guī)則曲線、不規(guī)則曲線共3類代表不同復(fù)雜程度的軌跡形狀,用于驗證單分類器對不同類型的腳本機(jī)器人均具有良好的檢測性能。選取拋物線形狀作為規(guī)則曲線軌跡的代表,利用計算機(jī)圖形學(xué)中的貝塞爾曲線[19]生成方法實現(xiàn)上述3種軌跡形狀。在鼠標(biāo)移動速度方面,通過計算30人的鼠標(biāo)移動速度統(tǒng)計屬性,設(shè)計產(chǎn)生3種不同速度:恒定速度,符合均勻分布的速度,符合高斯分布的速度。本文設(shè)計的3類共9種腳本機(jī)器人的屬性如表2所示,每類腳本機(jī)器人分別產(chǎn)生300個樣本。
表2 3類共9種腳本機(jī)器人的屬性
區(qū)分性較差的特征和冗余特征會對模型產(chǎn)生較大影響,導(dǎo)致訓(xùn)練時間浪費及分類模型復(fù)雜。此外,直接使用全部特征集會導(dǎo)致建模過程中產(chǎn)生過擬合等問題,從而降低模型的泛化性能。因此,本文剔除對分類模型貢獻(xiàn)較少的特征,保留性能較好的特征子集,利用篩選出的特征子集進(jìn)行模型的訓(xùn)練,從而提高模型的泛化能力。
本文采用機(jī)器學(xué)習(xí)中廣泛用于特征選擇的Fisher Score方法[20]進(jìn)行特征選擇,具體過程如下:
(1)從正常用戶樣本和直線腳本機(jī)器人樣本中隨機(jī)抽取等量樣本并以特征向量的形式保存;
(2)為正常用戶樣本與直線腳本機(jī)器人樣本分別標(biāo)注為1和0;
(3)將標(biāo)注好的特征向量送入Fisher Score特征選擇器;
(4)特征選擇器輸出各特征的Fisher Score,用SFisher表示。
表3為15個特征的SFisher,得分越高表明特征區(qū)分度越明顯,可以看出:自編號15開始的8個特征的得分較低且趨于穩(wěn)定,因此選出編號為1、2、11、6、7、12、5共7個具有較高得分的特征進(jìn)行實驗。
表3 15個特征的SFisher
收集30人的數(shù)據(jù)為正樣本,腳本機(jī)器人在登錄時產(chǎn)生的數(shù)據(jù)為負(fù)樣本。訓(xùn)練階段選取一定數(shù)量的正樣本作為訓(xùn)練集,為每種單分類器創(chuàng)建正常用戶檢測模型。測試階段分別選用剩余正樣本與負(fù)樣本來測試檢測模型。
為了實驗公平性,正常用戶的測試樣本和訓(xùn)練樣本由不同用戶群產(chǎn)生。為降低隨機(jī)因素對實驗的影響,每種實驗進(jìn)行500次,取均值作為實驗結(jié)果。
誤識率表示腳本機(jī)器人樣本被誤認(rèn)為正常用戶樣本的數(shù)量占測試集中所有腳本機(jī)器人樣本的比例。拒識率表示正常用戶樣本被誤認(rèn)為腳本機(jī)器人樣本的數(shù)量占測試集中所有的正常樣本的比例。等錯誤率REE表示誤識率與拒識率相等時的錯誤率,本文采用REE作為評估模型檢測性能的指標(biāo)。
本實驗對比分析4種常見單分類器在人機(jī)檢測方面的性能。采用10折交叉驗證的方法,隨機(jī)抽取27人,得到共27×30個樣本數(shù)據(jù)進(jìn)行訓(xùn)練,選取剩余3人共3×30個樣本數(shù)據(jù)用于測試。為保證測試集內(nèi)正常用戶樣本與腳本機(jī)器人樣本平衡,從每類腳本機(jī)器人中,隨機(jī)選取90個樣本參與測試。表4呈現(xiàn)了4種分類器分別利用7個特征與15個特征進(jìn)行檢測時的REE。
表4 單分類器對不同類型腳本機(jī)器人檢測的REE
注:表中加粗?jǐn)?shù)據(jù)為最優(yōu)值。
從表4可以得出:單分類器對腳本機(jī)器人檢測效果最好時REE為7.25%、最差時為28.37%,能夠?qū)崿F(xiàn)對腳本機(jī)器人的有效檢測;利用經(jīng)過特征選擇后的特征子集參與檢測,檢測性能從高到低的分類器依次為SVDD、Parzen窗、knn、k均值;利用全部15種特征參與檢測,檢測性能從高到低的分類器依次為Parzen窗、SVDD、knn、k均值;SVDD與Parzen窗在不同的特征集中均表現(xiàn)出較好的檢測性能;隨曲線軌跡復(fù)雜程度的提高,單分類器的檢測效果逐漸降低;相較于使用全部15種特征,采用經(jīng)過特征選擇之后得出的7種特征子集進(jìn)行檢測時,單分類器的性能有較大的提升,如SVDD對直線類型腳本機(jī)器人檢測時,REE從15.88%降低至7.25%,證明了特征選擇的有效性。
為探索訓(xùn)練樣本規(guī)模對單分類人機(jī)檢測方法的影響,選取3.1節(jié)實驗中檢測性能最好的SVDD和Parzen窗這2種單分類器,利用經(jīng)特征選擇后的特征子集進(jìn)行檢測。隨機(jī)選取3人的全部樣本作為測試集,根據(jù)測試集中正常用戶樣本的數(shù)量,隨機(jī)從不同類型腳本機(jī)器人樣本中抽取等量的測試樣本,使測試集中正常用戶樣本和腳本機(jī)器人樣本的數(shù)量始終保持平衡。訓(xùn)練集從除測試集以外的27人中抽取,本實驗依次隨機(jī)選取9、12、15、18、21、24、27人的全部樣本作為訓(xùn)練集,分析訓(xùn)練集增加過程中檢測效果的變化。表5為不同訓(xùn)練規(guī)模下2種分類器對3種不同復(fù)雜程度的腳本機(jī)器人檢測結(jié)果。
表5 不同訓(xùn)練規(guī)模下人機(jī)檢測的REE
注:表中加粗?jǐn)?shù)據(jù)為最優(yōu)值。
從表5可以看出,隨著訓(xùn)練樣本規(guī)模的增大,無論檢測何種類型的腳本機(jī)器人,2種分類器的檢測性能均越來越好,即REE隨著訓(xùn)練規(guī)模的增大逐漸降低。以SVDD分類器為例,在對直線軌跡的腳本機(jī)器人檢測時,隨著訓(xùn)練規(guī)模從9人增至27人,檢測的REE從7.99%逐漸降至7.25%。這是因為更多的訓(xùn)練樣本能夠使單分類器更全面地針對目標(biāo)類樣本進(jìn)行建模,得到更好的檢測模型,從而能更好地區(qū)分正常用戶和腳本機(jī)器人。此外,在對同種類型腳本機(jī)器人檢測時,SVDD分類器均優(yōu)于Parzen窗分類器,推測是因為SVDD分類器可以彌補(bǔ)先驗知識的不足,將分類問題轉(zhuǎn)化為二次優(yōu)化問題,使其仍然能保持相對較高的準(zhǔn)確性[21]。
為進(jìn)一步說明單分類方法的有效性,與經(jīng)典的二分類方法支持向量機(jī)(SVM)和knn進(jìn)行比較實驗。在對已知類型的腳本機(jī)器人檢測時,部分正常用戶參與訓(xùn)練,剩余的正常用戶樣本參與測試,參與訓(xùn)練和檢測的機(jī)器人樣本來自同種類型的腳本機(jī)器人。在對未知類型的腳本機(jī)器人檢測時,訓(xùn)練樣本為部分正常用戶樣本和某類腳本機(jī)器人樣本,測試樣本為剩余正常用戶樣本和異于訓(xùn)練集中機(jī)器人類型的腳本機(jī)器人樣本。利用經(jīng)過特征選擇后的7個特征參與實驗,具體結(jié)果如表6和表7所示。
表6 二分類器對已知類型腳本機(jī)器人檢測的REE
表7 二分類器對未知類型腳本機(jī)器人檢測的REE
注:表中加粗?jǐn)?shù)據(jù)為最優(yōu)值。
分析表6和表7可得:二分類器對已知類型腳本機(jī)器人具有較好的檢測效果,但對未知類型腳本機(jī)器人的檢測效果大幅下降;SVM和knn這2種二分類器對未知類型腳本機(jī)器人檢測效果最好的REE僅為22.12%、20.56%,而在第3.1節(jié)的實驗中,單分類器對未知類型的規(guī)則曲線和非規(guī)則曲線腳本機(jī)器人檢測效果最好的REE分別為9.45%、12.70%。由此得出:二分類器建立針對已知類型腳本機(jī)器人的檢測模型,適用于對已知類型腳本機(jī)器人的檢測,對未知類型腳本機(jī)器人會出現(xiàn)較大的檢測誤差,可泛化能力較弱;單分類器基于正常用戶樣本建立人機(jī)檢測模型,不用考慮腳本機(jī)器人類型的改變,可泛化能力較強(qiáng)。
本文提出一種基于行為的人機(jī)檢測技術(shù),采用單分類方法建立人的鼠標(biāo)行為模型,實現(xiàn)對帶有行為模擬功能高級腳本機(jī)器人的檢測。以網(wǎng)頁端登錄場景中的鼠標(biāo)行為為研究對象,僅利用正常用戶鼠標(biāo)行為數(shù)據(jù),建立基于單分類方法的人機(jī)檢測模型,實現(xiàn)對3種不同復(fù)雜程度軌跡的腳本機(jī)器人的檢測。實驗結(jié)果表明:經(jīng)過特征選擇之后,性能表現(xiàn)最好的SVDD單分類器對直線類型腳本機(jī)器人檢測的REE為7.25%,單分類方法的可行性得到了驗證;單分類器的檢測性能隨著訓(xùn)練規(guī)模的增大而提升,當(dāng)訓(xùn)練人數(shù)為9時,SVDD分類器對直線類型腳本機(jī)器人檢測的REE為7.99%,當(dāng)訓(xùn)練人數(shù)為27時,REE為7.25%;knn與SVM這2種二分類器在面對未知類型腳本機(jī)器人時,檢測性能表現(xiàn)最好的為knn基于規(guī)則曲線腳本機(jī)器人建立的檢測模型對直線類型腳本機(jī)器人的檢測,此時REE為20.56%,但仍大大低于本文所用單分類器對未知類型腳本機(jī)器人的檢測性能;單分類方法在面對新型未知樣本腳本機(jī)器人時展示了較強(qiáng)的泛化性。
由于在實際場景中腳本機(jī)器人類型復(fù)雜多變、未知性強(qiáng),因此本文提出的人機(jī)檢測方法具有較強(qiáng)實際應(yīng)用意義,可為人機(jī)檢測提供一種新的思路。