康璐璐,范興容,王茜竹,楊曉雅,明 蕊
(1.重慶郵電大學通信與信息工程學院,重慶 400065;2.重慶工商大學計算機科學與信息工程學院,重慶 400067;3.重慶郵電大學電子信息與網絡工程研究院,重慶 400065)
隨著互聯(lián)網行為式驗證碼技術的快速發(fā)展,以拖動滑塊為代表的鼠標軌跡識別因其傳輸數(shù)據(jù)小、暴力破解難度大等特點,已經廣泛運用于多種人機驗證產品中。然而,攻擊者仍可通過黑產工具產生的類人軌跡批量操作來躲避檢測,并在對抗過程中不斷升級其偽造數(shù)據(jù)以持續(xù)躲過同樣升級的檢測技術。因此,研究一種新型的鼠標軌跡識別技術來增強人機攻防識別性能,在保障網站抵御黑客攻擊、用戶惡意大規(guī)模訪問與機器批量在線投票等方面具有重要的現(xiàn)實意義。
鼠標軌跡是用戶在使用鼠標拖動滑塊的過程中,經過采樣獲得水平方向、垂直方向和時間3 個維度的軌跡點集。鼠標軌跡時間序列數(shù)據(jù)相較傳統(tǒng)時間序列具有以下6 個特點:多變量,即鼠標軌跡包括水平方向x軸、垂直方向y軸和時間t軸3 個維度;不規(guī)則采樣,即由于網絡延時等原因使得每個采樣點之間的時長不同;長度不等,即由于鼠標軌跡采樣間隔不確定,導致每一條軌跡的長度不等;變量之間存在關聯(lián)性,即x、y、t3 個維度在時間和空間上存在關聯(lián)性;數(shù)據(jù)不平衡,即人類軌跡樣本數(shù)遠多于機器軌跡樣本數(shù);標記樣本少,即考慮到標記數(shù)據(jù)獲取困難、標記代價高等問題,導致訓練樣本數(shù)量少。因此,鼠標軌跡識別可以看作一種特殊的時間序列二分類問題,同時也是一個典型的人機識別問題。
傳統(tǒng)時間序列分類方法[1-3]不能直接用于鼠標軌跡的識別,如鼠標軌跡時間序列的長度不等,將會導致其不能直接作為傳統(tǒng)時間序列分類方法的輸入。雖然動態(tài)時間規(guī)整(Dynamic Time Warping,DTW)方法[4]能夠處理長度不同的時間序列分類,但是由于鼠標軌跡序列的采樣時間不等,因此不能進行準確的序列相似性判斷。為此,本文對鼠標軌跡數(shù)據(jù)進行充分挖掘,從不同視角提取基礎特征組和輔助特征組,提出一種基于特征組分層和半監(jiān)督學習的鼠標軌跡識別方法。利用半監(jiān)督隨機森林算法對標記樣本進行擴充,采用隨機抽樣改善數(shù)據(jù)不平衡問題,并通過將半監(jiān)督隨機森林算法與特征組分層策略相結合來提升鼠標軌跡的識別性能。
目前,針對不規(guī)則采樣與長度不等的時間序列分類問題主要有兩類解決方法。
第一類是基于模型的方法,如文獻[5]通過高斯過程(Gaussian Process,GP)后驗重新表示每個時間序列,然后在GP 后驗空間上定義核函數(shù),并應用基于核函數(shù)的方法進行時間序列分類。文獻[6]對腎小球濾過率時間序列進行自動分類,先采用高斯回歸過程填補特殊時間序列的缺失值,并轉換為長度相等的時間序列,再使用KNN/SVM 算法對其分類。文獻[7]從單個時間序列中推導出時間連續(xù)的動力系統(tǒng)模型,并用推導出的模型表示時間序列,使用分類器對模型上的后驗分布進行分類。上述研究在實驗中均取得滿意的效果,但這些方法都是基于二維時間序列,且沒有提出針對數(shù)據(jù)不平衡以及標記樣本量較少的處理方法,因此不適用于本文鼠標軌跡數(shù)據(jù)具有的多變量、變量之間存在關聯(lián)性、數(shù)據(jù)不平衡與標記樣本量少等實際情況。
第二類是基于特征的方法,該方法用一組特征來表征時間序列信息,從而解決時間序列不規(guī)則問題。如文獻[8]提出一種基于特征的時間序列分類方法,該方法從時間序列中提取數(shù)千個可解釋的特征,并使用貪婪前向特征選擇方法選擇出信息量最大的特征。文獻[9]將時間序列預測與不同的特征選擇相結合,實現(xiàn)一個更為簡單的建模過程。針對鼠標軌跡識別的實際問題,目前國內外的研究都較少,且多數(shù)采用基于特征的分類方法。如文獻[10]對提取的鼠標行為特征進行分析,證明了利用行為特征進行身份認證的可行性。文獻[11-13]基于有監(jiān)督學習構建出鼠標軌跡識別方法,利用軌跡信息分別構建特征工程,并采用梯度提升模型與樸素貝葉斯模型等模型進行人機識別,且取得較好的識別結果。但這些方法存在特征挖掘不充分且沒有考慮類別不平衡等問題,使得模型的泛化性能較弱。文獻[14]提出一種融合并行投票決策樹和半監(jiān)督學習的鼠標軌跡識別方法,該方法提取出105 個鼠標軌跡特征,采用基于半監(jiān)督的策略與并行決策投票樹的思想進行識別。然而,該方法仍然不能解決數(shù)據(jù)不平衡問題,且特征工程過于冗余,造成識別效果有限。
針對上述方法存在的特征挖掘不充分且鼠標軌跡數(shù)據(jù)存在標記樣本少、數(shù)據(jù)不平衡等問題,本文提出一種基于特征組分層和半監(jiān)督學習的鼠標軌跡識別方法。該方法通過構建有層次的鼠標軌跡特征組,描述用戶滑動鼠標軌跡的移動規(guī)律,增加鼠標軌跡識別置信度。借鑒半監(jiān)督學習的思想,利用多個隨機森林模型對未標記樣本進行偽標記,抽取標簽預測一致且高置信度的部分樣本加入到訓練集合中,再基于基礎特征組和輔助特征組,在擴充的訓練樣本集上重新訓練隨機森林算法,實現(xiàn)鼠標軌跡的人機識別。
本文的實驗數(shù)據(jù)來源于某人機驗證產品經過脫敏后的鼠標軌跡數(shù)據(jù)[15],其主要字段為唯一編號id、鼠標軌跡水平坐標x、鼠標軌跡垂直坐標y、鼠標軌跡采樣時間t、軌跡目標點水平坐標xa和軌跡目標點垂直坐標ya。鼠標軌跡的數(shù)據(jù)字段說明如表1所示。
表1 鼠標軌跡數(shù)據(jù)字段說明Table 1 Field description of mouse trajectory data
本文分別從描述人類軌跡特性和強化人機軌跡差異性的角度來提取基礎特征組和輔助特征組。
2.2.1 基于人類軌跡特性的基礎特征組
基礎特征組是從基于人類鼠標軌跡特性的角度而構建的,這是因為人類軌跡特征具有較好的穩(wěn)定性,且主要體現(xiàn)在以下3 個方面:
1)擬合過程:人們拖動滑塊接近目標位置時存在擬合現(xiàn)象,會緩慢將滑塊放到目標位置(拖拽速度逐漸變?。?,而機器軌跡速度則不會有明顯的變化趨勢。不同鼠標軌跡的水平移動速度如圖1 所示。
2)無規(guī)律性:人類軌跡的移動偏移量是不停變化的,而機器軌跡受黑客程序控制,其偏移量一般有規(guī)律可尋,具體如圖2 所示。
3)回退現(xiàn)象:人們在拖動滑塊接近目標位置時,由于慣性會出現(xiàn)拖離目標點又重新拖動回來的現(xiàn)象,而機器軌跡到達目標點后則會立即停止,不存在回退現(xiàn)象,具體如圖3 所示。
圖1 人類軌跡與機器軌跡的水平移動速度Fig.1 Horizontal moving speed of human trajectory and machine trajectory
圖2 人類軌跡與機器軌跡的水平移動偏移量Fig.2 Horizontal movement offset of human trajectory and machine trajectory
圖3 人類軌跡與機器軌跡的回退現(xiàn)象Fig.3 Regression phenomenon of human trajectory and machine trajectory
基于上述規(guī)律,本文主要提取以下基礎特征:
1)水平坐標最大值與目標值之差xovs和水平坐標最大值與最小值之差xdiffer。假設X=[x1,x2,…,xn]為軌跡水平坐標(n為鼠標軌跡采樣點數(shù)),則有:
其中,xa為軌跡目標點的水平坐標,max(x)函數(shù)和min(x)函數(shù)用來返回數(shù)組的最大值與最小值。
2)水平坐標偏移量最小值dxmin和水平坐標偏移量標準差dxstd。假設dX=[dx1,dx2,…,dxn-1]為軌跡水平坐標的偏移量,則有:
3)回退軌跡(拖離目標點后重新拖動回來產生的軌跡,無回退軌跡則取軌跡后10 個點)水平坐標偏移量最小值和回退軌跡水平坐標偏移量中程數(shù)。假設為回退軌跡水平坐標(m為回退軌跡采樣點數(shù)),為其偏移量,則有:
4)回退軌跡速度最大值和回退軌跡速度末尾值。假設為回退軌跡移動速度,則有:
其中,end(v)函數(shù)用來返回數(shù)組末尾值。
2.2.2 強化人機軌跡差異性的輔助特征組
輔助特征組是從基于強化人機軌跡差異的角度而構建的,主要提取不明顯的人機差異性,但在數(shù)據(jù)規(guī)模較大時依然不能忽略的特征(如y維度和t維度的特征)用于輔助判斷,增加軌跡識別置信度。
1)垂直坐標最小值ymin和垂直坐標改變次數(shù)ychg。假設Y=[y1,y2,…,yn]為軌跡垂直坐標,則有:
其中,cnt(y)函數(shù)用來返回數(shù)組中數(shù)據(jù)不重復的個數(shù)。
2)垂直坐標偏移量初始值dyinit。假設dY=[dy1,dy2,…,dyn-1]為垂直坐標的偏移量,則有:
其中,init(dy)函數(shù)用來返回數(shù)組初始值。
3)采樣時間初始值tinit,采樣時間中位數(shù)tmed和鼠標第一次移動到目標點所需時間taim。假設T=[t1,t2,…,tn]為軌跡采樣時間,則有:
其中,ta為鼠標第一次移動到目標點的時間,median(t)函數(shù)用來返回數(shù)組中位數(shù)。
4)采樣時間偏移量初始值dtinit。假設dT=[dt1,dt2,…,dtn-1]為時間的偏移量,則有:
本文提出一種基于特征組分層和半監(jiān)督學習的鼠標軌跡識別方法。假設v=v1×v2為鼠標軌跡特征空間,其中v1和v2分別表示人類軌跡特性和人機軌跡差異性2 個視角。本文所提方法的實現(xiàn)框圖如圖4 所示。
圖4 本文所提方法的實現(xiàn)框圖Fig.4 Implementation block diagram of the proposed method
隨機森林算法[16]具有訓練速度快、模型泛化能力強以及可平衡誤差等優(yōu)勢,因此本文采用隨機森林作為基礎分類算法。從v1視角提取特征構成標記樣本集L,將標記樣本以自助(bootstrap)采樣的方式抽取N份,單獨訓練N個單視角隨機森林分類器{R1,R2,…,RN},并使用這N個分類器對未標記樣本U進行預測,其中任意一個分類器Ri對未標記樣本的預測置信度和偽標簽計算過程如下所示:
假設Ri中的單棵決策樹fid(xu)=f(xu,θid),θid表示第d棵決策樹構建過程中的隨機因素(如特征的隨機選擇),單視角隨機森林分類器Ri={fi1,fi2,…,fiD},D為決策樹個數(shù),則分類器Ri將樣本xu預測為k類的概率為:
其中,pi,d(k|xu)為第d棵決策樹中葉節(jié)點的類別預測概率。
樣本xu的預測置信度定義為:
其中,C∈{0,1}表示樣本類別集合。
樣本xu的偽標簽為:
在單視角隨機森林分類器的迭代過程中引入了半監(jiān)督學習的思想[17-19],并將部分未標記樣本加入標記樣本中,利用新的樣本重新進行分類器的訓練。
假設{R1(xu),R2(xu),…,RN(xu)}為未標記樣本xu在N個分類器上的表示形式,則樣本在N個分類器上的偽標簽和預測為該標簽的置信度分別為:
由于對樣本的偽標記正確與否對后續(xù)多視角隨機森林分類器的識別性能起至關重要的作用,因此本文從偽標簽和置信度2 個方面對未標記樣本進行選擇,即標記條件為:
1)樣本在N個分類器中的偽標簽一致,則pl1(xu)=pl2(xu)=…=plN(xu)。
2)樣本在N個分類器中預測置信度大于閾值參數(shù)θ的個數(shù)至少有ε個,即countif(Conn(xu)≥θ(n=1,2,…,N))≥ε,其中countif 為計數(shù)函數(shù),若滿足括號內條件則再加1。
由于數(shù)據(jù)樣本類別的不平衡性(人類軌跡遠多于機器軌跡),如果將所有滿足標記條件的未標記樣本全部添加,可能會導致模型在第ω+1 輪更新后劣于第ω輪的模型。為了達到類別平衡的目的,按照標記樣本類別之間的樣本比率對未標記樣本進行隨機抽樣,通過逐步縮小多數(shù)類別使得數(shù)據(jù)趨于平衡,具體抽樣過程如下:
假設第ω輪迭代時標記樣本集中人類樣本和機器樣本的比率為β,滿足標記條件的未標記樣本中人類樣本B1和機器樣本B2的數(shù)量分別為b1和b2,則有:
其中,′ 和分別表示人類樣本和機器樣本的抽樣個數(shù),和表示最終要擴充進標記樣本的人類樣本集和機器樣本集,subsample(b,B)函數(shù)表示在B集中隨機抽取b個樣本。
將上述未標記樣本及其偽標簽加入到標記樣本中,并從未標記樣本中剔除。當進行分類器的迭代訓練時直至滿足迭代終止條件時停止。通過分類器的多次訓練,逐步實現(xiàn)了標記樣本的擴充,并改善了數(shù)據(jù)不平衡與標記樣本量不足的問題。
經過多次迭代訓練后,鼠標軌跡的標記樣本集得到擴充,數(shù)據(jù)類別不平衡問題也得到改善,此時從v1×v2視角提取特征構成多視角隨機森林分類器訓練樣本L′={(xi,yi,ci)}(i=1,2,…,|L′|),其中xi和yi分別表示從視角v1和視角v2中提取的基礎特征組和輔助特征組,ci為類別標簽,|L′|為標記樣本和添加進的未標記樣本的數(shù)量總和??梢钥吹酱藭r樣本的數(shù)量相比之前得到擴充,因此在特征中加入v2視角,并利用此樣本集訓練多視角隨機森林分類器,最終實現(xiàn)鼠標軌跡的人機識別,且識別算法如算法1 所示。
算法1基于特征組分層和半監(jiān)督學習的鼠標軌跡識別方法
算法1 中的PseSample 為未標記樣本中滿足標記條件的樣本抽樣函數(shù),MeasureError 函數(shù)的作用是估計R1&R2&…&RN組合的分類錯誤率。本文使用初始標記樣本來計算分類錯誤率,假設該樣本集中假設滿足標記條件的樣本有z個,其中有z′個的分類是正確的,則分類錯誤率e=(z-z′)/z。如果第ω+1 次迭代訓練后模型的分類錯誤率小于第ω次,則繼續(xù)迭代,從而保證模型向性能提升的方向更新。
1)數(shù)據(jù)設置。本文數(shù)據(jù)來源于某人機驗證產品經過脫敏后的鼠標軌跡數(shù)據(jù),經過數(shù)據(jù)篩選后,共有103 000 條,其中人類軌跡82 600 條,機器軌跡20 400 條,數(shù)據(jù)比約為4∶1,可以看出數(shù)據(jù)類別存在不平衡現(xiàn)象。將其中3 000 條數(shù)據(jù)樣本用于模型訓練,其中標記樣本比例選用20%,未標記樣本的比例選用80%,100 000 條用于模型測試。
2)特征選擇。實驗共選取17 個特征,包含描述人類軌跡特性的基礎特征組10 個,用f1~f10表示,強化人機軌跡差異的輔助特征組有7 個,用f11~f17表示。
3)仿真平臺。本文采用MATLAB2017a 軟件,在Windows7 64 位操作系統(tǒng)Intel i5 處理器的惠普電腦上進行實驗測試。
本文采用精確率P、召回率R與調和均值Fα作為模型的評價指標,計算方法如下所示:
其中,TP 為被正確識別為機器軌跡的樣本數(shù),F(xiàn)P 為被錯誤識別為機器軌跡的樣本數(shù),F(xiàn)N 為被錯誤識別為人類軌跡的樣本數(shù)。
為保障網站抵御黑客攻擊等網絡安全問題,通常要求盡可能地識別出機器軌跡(即偏重召回率),以避免漏識別機器軌跡導致不可挽回的損失,但又不能使得用戶驗證體驗太差(保證較高的精確率)。因此,在衡量人機軌跡識別性能時引入了調和均值Fα,其計算方法為:
其中,α<1 表示合適的偏重召回率。
為評估不同特征對識別效果的影響,本文采用隨機森林自帶的評估特征重要性方法計算本文所提取特征f1~f17的重要性得分,結果如圖5 所示。
圖5 本文提取特征的重要性得分Fig.5 Importance score of features extracted in this paper
從圖5 可以看出,基礎特征組f1~f10相較于輔助特征組f11~f17,其總體重要性得分更高,這是因為基礎特征組是基于人類鼠標軌跡特性的角度去構建的,能夠更好地區(qū)分人機軌跡,而輔助特征組主要用于輔助判斷,增加軌跡識別置信度。
文獻[20]給出了隨機森林分類算法中決策樹各節(jié)點選取的特征個數(shù)mtry滿足時,算法的性能最佳。其中,d為數(shù)據(jù)集的特征個數(shù)。在本文方法中,單視角隨機森林分類器的參數(shù)mtry1=3、決策樹個數(shù)ntree1=50,多視角隨機森林分類器的參數(shù)mtry2=4、決策樹個數(shù)ntree2=100。由于參數(shù)N和θ是影響本文算法性能的重要參數(shù),因此通過對這2 個參數(shù)設置不同的取值進行實驗來找到參數(shù)的最優(yōu)值。
圖6 給出了參數(shù)N和θ在不同取值下鼠標軌跡的識別結果。從圖6 可以看出,當N=3,θ=0.8 時,本文方法在召回率、精確率和調和均值上都具有較好的性能。如果參數(shù)過大,則未標記樣本得不到充分利用,并且無法解決數(shù)據(jù)不平衡、標記樣本不足的問題。如果參數(shù)過小,則會導致訓練樣本中引入過多的噪聲數(shù)據(jù),極大影響最終的識別效果。
圖6 參數(shù)N 和θ 對識別性能的影響Fig.6 Effect of parameters N and θ on recognition performance
5.3.1 特征組分層有效性分析
為了驗證本文提出的特征組分層對鼠標軌跡識別性能的影響,實驗分別比較了引入特征組分層和不引入特征組分層這兩種方式下的識別性能,結果如表2 所示。可以看出,引入特征組分層時模型的精確率、召回率和調和均值較不引入時分別提高了6.4、11.27 和8.5 個百分點,這說明在半監(jiān)督學習的基礎上引入特征組分層在鼠標軌跡識別中能夠有效提高模型的識別性能。
表2 特征組分層有效性分析結果Table 2 Analysis results of hierarchical effectiveness of feature group %
5.3.2 方法運行時間分析
表3 給出了參數(shù)N在不同取值下本文方法的訓練耗時和測試耗時結果??梢钥闯?,隨著分類器個數(shù)N的增加,測試耗時相差不大,但訓練耗時逐漸增加。因此,本文方法需要選取合適的N值,在保證分類性能的同時降低運行時間。
表3 分類器個數(shù)對本文方法運行時間的影響Table 3 Effect of the number of classifiers on the running time of the proposed methods
5.3.3 方法對比分析
實驗將本文所提方法與基于樸素貝葉斯的鼠標軌跡識別方法[11]和基于梯度提升決策樹的鼠標軌跡識別方法[12]在同一數(shù)據(jù)集上進行性能對比,結果如表4 所示。其中,文獻[11]提取8 個特征,并使用加權樸素貝葉斯模型實現(xiàn)人機識別,文獻[12]提取6 個軌跡特征,使用梯度提升決策樹模型對鼠標軌跡進行識別。由于這2 種方法都采用監(jiān)督學習,不涉及未標記樣本的使用,因此在訓練模型時只采用訓練集中的標記樣本。
表4 3 種鼠標軌跡識別方法的性能對比Table 4 Performance comparison of three mouse trajectory recognition methods %
從表4 可以看出:本文方法的精確率、召回率和調和均值較文獻[11]分別提高8.32、12.37和10.06個百分點,較文獻[12]分別提高6.1、16.59 和10.8 個百分點。造成上述結果主要有以下2 個原因:1)文獻[11-12]沒有對軌跡特征進行充分挖掘,使得軌跡特征不能完整地刻畫人機軌跡;2)本文方法采用半監(jiān)督學習策略,充分利用了大量未標記樣本提升模型性能,且通過隨機抽樣改善數(shù)據(jù)不平衡現(xiàn)象,而文獻[11-12]采用有監(jiān)督方法,未考慮鼠標軌跡數(shù)據(jù)不平衡和標記樣本量少的實際情況,造成最終識別性能較低。
本文提出一種基于特征組分層和半監(jiān)督學習的鼠標軌跡識別方法,該方法從特征和數(shù)據(jù)2 個層面對鼠標軌跡識別方法進行改進。在特征層面,根據(jù)不同視角特征在不同階段所起的作用構建出有層次的特征組并分層添加至模型中,避免在訓練樣本數(shù)量過少的情況下盲目添加特征而造成模型過擬合問題。在數(shù)據(jù)層面,利用半監(jiān)督學習方法擴充訓練樣本,解決數(shù)據(jù)類別不平衡、標記樣本量不足的問題,并通過將兩者融合實現(xiàn)提升鼠標軌跡識別效果的目的。實驗結果表明,本文方法能夠有效提升鼠標軌跡識別任務的性能。針對未來黑客攻擊呈現(xiàn)方式多元化的問題,下一步將采用深度學習動態(tài)提取特征,以應對黑客攻擊方式的轉變。