趙 峰, 鐵治欣, 謝 磊
(浙江理工大學 信息學院,杭州 310018)
隨著科學技術的迅猛發展,計算機在人類日常的學習、生活、工作中扮演著越來越重要的角色. 而鍵盤作為計算機的主要輸入工具,其重要性不言而喻. 此外,諸如機房、網吧等公共場所使用計算機人群眾多且復雜,實時地對計算機鍵盤實施異常檢測可以減輕不必要的經濟損失,同時亦可提高用戶的滿意度,因此對鍵盤的異常檢測十分具有現實意義.
異常檢測是基于行為的檢測,即根據使用者的行為或者資源的使用狀況來判斷異常情況是否發生,因為我們每個人都有不同的生物特征,即每個人對鍵盤的敲擊習慣都是不同的,如擊鍵的輕重,快慢等,所以我們可以選用它作為識別用戶的信息源[1]. 常用的生物技術有語音識別技術,指紋識別,人臉識別,擊鍵認證.本文采用的就是擊鍵認證,由每個人的擊鍵行為,在鍵盤上產生的按鍵時間序列,通過一些特征變換衍生,構建出識別模型,用來對鍵盤的異常情況進行識別. 擊鍵特征是一種能夠反映用戶行為的動態特征,通常情況下無需借助其他設備我們便可以捕獲個人的擊鍵特征.我們通過訓練出的模型和定義異常指數,檢測出鍵盤是否發生異常.
支持向量機方法在檢測方面已經應用于多個領域,如:馮慧玲等[2]提出的基于拉普拉斯分值和超球支持向量機的軸承故障診斷方法設計; 郝英等[3]提出的基于支持向量機的民航發動機故障檢測研究; 以及張餛等[4]提出的基于支持向量機的異常入侵檢測系統和郭月玲[5]對支持向量機在語音識別中的應用研究. 目前,對于鍵盤的異常檢測方法并不多,考慮到超球支持向量機適合處理非線性,多維模式的小樣本數據識別問題,且在處理不均衡樣本中有獨特的優勢[6],而人們的擊鍵時間序列正是非線性,不均衡,小樣本數據,所以本文提出了一種基于超球支持向量機的鍵盤異常檢測方法.
支持向量機是以統計學習理論為基礎的一種新的機器學習算法,它具有簡潔的數學形式、標準快捷的訓練方法,基本思想是通過一個非線性變換將輸入空間變換到一個高維特征空間,然后構造平面對樣本進行劃分. 支持向量機具有更堅實的理論基礎、更強的泛化能力,性能也更加優異,且適合處理小樣本多特征的數據,因此成為主流的機器學習算法之一. 目前,常用的異常檢測的支持向量機模型有兩種,其中一種是就是本文應用的超球模型,它是Tax提出來的,它比另一種超平面模型具有更大的優勢. 超平面模型的不足在于特征空間內的原點被先驗地認為是異常樣本區域的中心,然后尋找超平面使得正常樣本區域盡量遠離該中心. 且超平面只是將兩類樣本分開,由于超平面把空間一分為二,兩邊的地位都是相等的,對于第三類樣本無法做出相應的處理. 而超球模型不僅可以處理第三類樣本,還具有訓練速度快,檢測效率高的優點. 通過控制超球的大小和范圍,使超球的含義不僅僅是分開兩類,而且還有把球里面的樣本盡量包“牢”和包“純”,拒絕其它類樣本的進入.
Tax提出的超球模型思路如下:在樣本特征空間內尋找一個中心為a,半徑為R的超球,正常樣本點位于超球內,異常點位于超球之外,所謂異常點就是比如我們要將10 000個樣本進行分類,我們可以找到一個分類面將9999個樣本正確分類,但只有一個樣本錯誤分類,那我們就不需要不斷調整分類面直到將10 000個樣本完全正確分類了. 優化目標是超球體積盡量小,同時位于超球外的樣本點也要盡量少. 該模型目標函數如下:

其中,為松弛變量(把奇異點排除在超球體外面),C為權系數(C=1/(n.v)),n為樣本數,v為訓練樣本中允許的異常點的百分數即拒絕率,xi為第i個樣本點.定義Lagrange函數L(R,a,αi,ξi)為:ξiξi

其中,αi≥ 0,γi≥ 0R,a,ξi為Lagrange乘子. Lagrange函數對分別求偏導并令等于0,可得:

將式(3)帶入Lagrange函數,可得到:

其中,(xi,xj)表示歐式空間的內積,用核函數進行替換后得:

其中,k(xi,xj)(α)為核函數,這樣原問題的對偶問題就轉化為maxW

對式(5)進行優化求出α,其中αi>0對應樣本點為支持向量,0< αi<c對應的點位于超球面上. 利用超球面上的點,結合式(3)可求出超球中心a和半徑R,若被測試樣本z滿足:

則判斷z為異常點.
本文選用徑向基核函數作為HSSVM核函數,公式如下:

其中xi,xj分別為第i,j個樣本,σ為核參數.
粒子群算法(PSO)是一種迭代尋優方法[11]. 該算法來源于對鳥群捕食行為的研究,具有智能搜索的性質,同時,它利用速度與位置的更新策略,致使算法簡單易操作. 算法可以描述為:設在n維空間中分布一個粒子種群,該種群由m個粒子組成,每個粒子的位置對應求解問題中一個潛在解,每個粒子同時還具備向其它粒子飛行的速度,該速度決定它們飛行的方向和距離. 首先隨機產生一組粒子的初始位置和速度,根據預定的適應度函數計算每個粒子當前位置的適應度值,此時,各個粒子本身的最優解稱為個體極值,整個種群的最優解稱為全局極值. 然后,粒子按公式(9)、(10)通過更新自身速度和位置,完成多次迭代后,最終
實現個體在自由空間的尋優.


其中,ωmin,ωmax分別為ω 最小值和最大值,f為當前個體的適應度,fmin,favg分別為最小適應度和平均適應度. 標準的粒子群算法學習因子一般都取2,為了加快種群的搜索速度,提高找到全局最優解的效率,本文采用動態變化的學習因子,公式如下:

由于超球支持向量機中模型參數對分類結果有較大影響[13],本文利用粒子群優化算法對超球體支持向量機中的參數進行優化,其整個建模流程如下;
1) 讀入訓練樣本集;
3) 定義PSO的適應度函數來進行粒子的適應度值計算和評估,選取最為常用的均方誤差(MSE)作為為適應度函數. 公式如(13)所示:

式中xi為估計值,yi為實際值;
4) 根據粒子的適應值來更新粒子本身和群體所對應的最佳適應值,根據公式對粒子的速度,位置,學習因子以及慣性權重進行調整,得到新的粒子群;
5) 如未滿足結束條件或達到最大迭代次數,返回步驟3)否則輸出最優參數值;
6) 把最優參數值代入超球支持向量機得到鍵盤異常模型,并用測試樣本集對模型檢測準確率進行驗證.
在用戶整個敲擊鍵盤的過程中,用戶實際上完成了一套連續按下彈起行為,每個這樣的按鍵行為都是按鍵被輸入進了電腦[14]. 一個按鍵被電腦識別,一共會產生兩次的時間記錄,一次是按鍵按下(DOWN)的時間,另一次則是按鍵彈開(UP)的時間. Windows系統是建立在事件驅動的機制上的,說穿了就是整個系統都是通過消息的傳遞來實現的. 而鉤子是Windows系統中非常重要的系統接口,它的種類是有很多種,每一種鉤子都可以截獲并處理相應的消息,得到此消息的控制權,此時在鉤子函數中就可以對截獲的消息進行加工處理,甚至可以強制結束消息的傳遞,用它可以截獲并處理送給其他應用程序的消息,來完成普通應用程序難以實現的功能. 所以,本文在Windows操作系統中,通過開發的鉤子(hook)程序捕獲鍵盤的擊鍵消息,并記錄下每個鍵按下(DOWN)和彈開(UP)的時間間隔以及任意兩個鍵之間的時間間隔(即前一個鍵彈開(UP)和下一個鍵按下(DOWN)的時間間隔).
鍵盤的異常特征是可以通過按鍵之間的時間序列來較好判斷的. 因為模型算法是來檢測現實情況下的鍵盤異常情況的,所以訓練樣本的質量尤為關鍵,必須真實有效,能夠反映用戶習慣的數據. 實驗數據來源一部分是讓用戶在正常情況下連續打印了課外閱讀中一篇完整的文章,另一部分是讓一位不太熟悉計算機的中年人打印同樣一篇文章并加入一些人為模擬出的異常數據組合起來作為異常樣本,因為各個按鍵之間的頻率是不一樣的,本文從采集的數據樣本中找出按鍵頻率較高的幾種數據作為樣本,通過觀察采集的數據和參考國內外相關文獻[15,16],我們發現其中a鍵按下和彈開,a鍵彈開之后再按下n鍵,a鍵彈開之后再按下i鍵,i鍵彈開之后再按下a鍵,h鍵彈開之后再按下a鍵出現的頻率較高,所以采集的數據樣本較多,本文中把其時間間隔分別記為Taa,Tan,Tai,Tia,Tha,單位為秒. 從而組成一組樣本點數據x(Taa,Tan,Tai,Tia,Tha),包含用戶敲擊a鍵的5個擊鍵特征作為指標. 通過收集和整理,最終選取了230組數據,其中100組數據作為訓練集,其余130組數據作為訓練集(包含100組正常數據和30組異常數據). 鉤子程序是在Visual Stdio 2010環境中開發的,表1是采集數據時的部分整理數據.

表1 采集數據時的部分整理數據
訓練樣本集即是對 maxw(α)進行優化,該優化過程本文是在MATLAB環境中來實現的,得到它的全局最優解. 因為MATLAB最優化函數功能強大,我們利用其中的fmincon函數名(求解非線性帶約束函數的最小值點),而這里我們是要求最大值,所以我們可以求最優化出 -w(α)的最小值,其中fmincon函數是默認從給定的x0為中心開始搜索,直到找到最小值,并返回距離x0最近的函數最小值對應的x值,從而可以得到最優化值點a的各個值. 從實際實驗計算結果可以看出,多數ai將為0,只有少量的對應的這些樣本稱為支持向量機,只有這些少量的支持向量才能決定a和R的值,其他非支持向量因其對應的在計算時被忽略.
HSSVM鍵盤異常檢測模型主要由3部分構成:
1) 數據采集整理部分,由每個人的擊鍵行為,利用鉤子(hook)程序采集在鍵盤上產生的按鍵時間序列,從中選出能反映人們擊鍵行為的按鍵時間間隔作為擊鍵特征,組成訓練集和測試集,以適用于實驗分析需要.
2) IPSO算法部分,通過粒子動態更新速度,位置,學習因子和慣性權重,并根據訓練集計算適應度值,找到最佳的一組搜索參數以提升HSSVM算法的整體性能.
3) HSSVM算法部分,通過訓練集的監督學習,建立對應HSSVM鍵盤異常檢測的分類器,再使用測試集驗證模型檢測準確率.
算法流程圖如圖1所示.

圖1 HSSVM模型流程
實驗相關參數設置:粒子種群規模sizepop為20,加速度系數最大迭代數maxgen為50,ωmin=0.3,ωmax=0.9,懲罰因子C取值范圍均為[0.01,100],核函數參數 σ 取值范圍為[0.01,20]. 根據實驗得到的一組最優參數帶入超球支持向量機,IPSO算法優化參數的迭代效果如圖2所示,并和標準的PSO算法迭代相比較. 從圖2中可以看出IPSO算法收斂速度要比PSO算法快,且精度更高.
為進一步對鍵盤異常狀態程度進行衡量,且方便對模型輸出效果的直觀表示,根據公式(7)改寫定義一個異常指數NI形式如下:

其中z為被測樣本,a為超球中心,R為超球半徑,若NI<1,則判z為正常樣本; 若NI>1,則判z為故障樣本,且NI越大,表明故障越嚴重或者發生異常的可能性越大. 選用測試集中100組正常樣本和30組異常樣本作為測試樣本來檢測模型的輸出情況,并和沒有經過改進的粒子群算法優化過參數的HSSVM相比較,檢測結果統計如表2所示.

圖2 兩種粒子群算法的迭代過程對比

表2 參數優化前后模型檢測準確率對比

圖3 正常樣本集異常指數
從圖3中可以看出,選取的100個正常樣本,采用IPSO-HSSVM模型時異常指數大于1的有7個,所以誤判個數為7個,準確率為93%,而未優化參數前采用HSSVM模型時異常指數大于1的有15個,準確率為85%,從圖4中我們可以看出,30個異常樣本中,采用IPSO-HSSVM模型時異常指數小于1的有1個,所以誤判個數為1個,準確率為96.7%,而未優化參數前采用HSSVM模型時異常指數大于1的有4個,準確率為87%,整體測試樣本采用IPSO-HSSVM模型時誤判 8個,準確率為 93%,而未優化參數前采用HSSVM模型時誤判樣本19個,準確率只為85%,對比可知,IPSO-HSSVM的測試樣本準確率均高于HSSVM,驗證了IPSO-HSSVM用于鍵盤異常檢測是有效可行的,且較為理想的.

圖4 異常樣本集的異常指數
異常檢測是基于行為的檢測,本文根據人們的擊鍵行為提取到擊鍵特征,在采集按鍵的時間序列時,采用的是鍵盤鉤子程序,它可以在windows平臺捕獲鍵盤動作,將其掛入系統,通過對采集的大量數據進行觀察比較整理,組成能夠反映擊鍵行為特征的數據作為訓練集和測試集,以滿足實驗要求. 由于模型參數的選擇對實驗結果的影響是非常大,所以模型參數的選取就顯得尤為重要,本文采用IPSO進行尋優,根據實驗得到一組最好的模型參數,帶入此模型進行訓練. 實驗結果表明:IPSO-HSSVM模型用于鍵盤異常檢測模型有效可行,檢測準確率達到93.8%,在理想范圍之內,并和參數優化前相比較,測試樣本判斷準確率均有所提高.齊晉. 基于支持向量機的擊鍵輔助認證系統[碩士學位論
1 文]. 成都:西南財經大學,2014.
2 馮慧玲,常國權,孔娟. 基于拉普拉斯分值和超球支持向量機的軸承故障診斷方法設計. 計算機測量與控制,2015,23(4):1102-1105.
3 郝英,孫健國,楊國慶,等. 基于支持向量機的民航發動機故障檢測研究. 航空學報,2005,26(4):434-438.
4 張琨,許滿武,劉鳳玉,等. 基于支持向量機的異常入侵檢測系統. 計算機工程,2004,30(18):43-45. [doi:10.3969/j.issn.1000-3428.2004.18.017]
5 郭月玲. 支持向量機在語音識別中的應用研究[碩士學位論文]. 太原:太原理工大學,2009.
6 吳小豪,張躍文,孫培廷,等. 基于超球支持向量機的船舶高溫淡水系統狀態評估. 船舶工程,2017,39(2):49-52,93.
7 Tax DMJ,Duin RPW. Support vector data description.Machine Learning,2004,54(1):45-66. [doi:10.1023/B:MACH.0000008084.60811.49]
8 Tax DMJ,Duin RPW. Support vector domain description.Pattern Recognition Letters,1999,20(11-13):1191-1199. [doi:10.1016/S0167-8655(99)00087-2]
9 龍熙華,張兵,高凱. 超球體支持向量機在測井巖性識別中的應用. 數學的實踐與認識,2013,43(18):110-115. [doi:10.3969/j.issn.1000-0984.2013.18.015]
10 劉其琛,穆煒煒. 最小二乘支持向量機的核函數及參數選擇算法研究. 電腦知識與技術,2015,11(19):160-162.
11 黃太安,生佳根,徐紅洋,等. 一種改進的簡化粒子群算法.計算機仿真,2013,30(2):327-330,335.
12 吳華偉,陳特放,胡春凱,等. 一種改進的約束優化粒子群算法. 計算機應用研究,2012,29(3):859-861.
13 王啟明,鄭均輝. 基于支持向量機的網絡參數模型研究. 現代電子技術,2015,38(12):23-24.
14 高艷,管曉宏,孫國基,等. 基于實時擊鍵序列的主機入侵檢測. 計算機學報,2004,27(3):396-401.
15 Fu MY,Tian Y,Wu F. Step-wise support vector machines for classification of overlapping samples. Neurocomputing,2015,155:159-166. [doi:10.1016/j.neucom.2014.12.035]
16 李晨,張功萱,岳寶玲,等. 一種基于條件隨機場的擊鍵特征身份鑒別方法. 計算機應用研究,2014,31(7):2112-2115.