張小萍,黃海明
(廣西大學(xué) 計算機(jī)與電子信息學(xué)院,廣西 南寧 530004)
信息時代由惡意代碼引起的網(wǎng)絡(luò)安全事件在網(wǎng)絡(luò)安全事故中占據(jù)了很大的比例,但是針對這些惡意代碼的檢測技術(shù)卻不能在很短的時間內(nèi)發(fā)明出來,這就導(dǎo)致了惡意代碼有機(jī)會在短時間內(nèi)會造成了巨大的損失[1].盡管目前已有很多專家、學(xué)者對這方面做了大量研究,但是惡意攻擊者技術(shù)也在不斷提升,為躲避現(xiàn)有的檢測方法的檢測,他們編寫的惡意代碼越來越復(fù)雜,種類繁多,代碼變異速度超過專家、學(xué)者提出檢測方法的速度.在這種情況下,惡意代碼仍會嚴(yán)重威脅著廣大網(wǎng)絡(luò)用戶的電腦安全.
網(wǎng)頁惡意代碼就是指通過利用計算機(jī)的安全漏洞來執(zhí)行網(wǎng)頁內(nèi)的ActiveX或者JavaScript腳本來達(dá)到某種惡意目的的代碼.當(dāng)這些惡意代碼不小心被用戶觸發(fā)時,會造成用戶主機(jī)可能會被入侵,系統(tǒng)中的資源可能會被盜取、刪除,或系統(tǒng)注冊表設(shè)置及程序配置被強(qiáng)制修改等危害[2].網(wǎng)頁惡意代碼編寫者通過把代碼插入到網(wǎng)頁并發(fā)布出去傳播.當(dāng)有用戶主動或者被動地訪問這些惡意網(wǎng)頁,網(wǎng)頁里的惡意代碼就可以利用用戶瀏覽器的漏洞來植入病毒[3].根據(jù)近些年網(wǎng)頁惡意代碼的發(fā)展來看,它具有變化快,種類繁多等特點,因此防治網(wǎng)頁惡意代碼是一項長久的任務(wù).
通常惡意網(wǎng)頁是采用被動攻擊的模式在網(wǎng)上傳播和實施攻擊的[4].首先攻擊者會絞盡腦汁、想法設(shè)法地獲取服務(wù)器的控制權(quán),方法有SQL注入、跨站腳本攻擊(Cross Site Scripting)、利用服務(wù)器漏洞等.成功獲取服務(wù)器控制權(quán)后,攻擊者就可以在服務(wù)器上的網(wǎng)頁中植入編寫好的JavaScript惡意代碼或者
1.用戶訪問服務(wù)器上已經(jīng)被嵌入惡意代碼的網(wǎng)頁.
2.服務(wù)器收到用戶請求后返回用戶想訪問的網(wǎng)頁.
3.由于返回的網(wǎng)頁已經(jīng)被惡意攻擊者嵌入了惡意代碼,所以用戶瀏覽器有可能會遭到攻擊,或者網(wǎng)頁經(jīng)過重定向最終跳轉(zhuǎn)到攻擊者事先設(shè)好的惡意網(wǎng)頁.
4.用戶訪問到包含惡意代碼的惡意網(wǎng)頁.網(wǎng)頁對用戶的系統(tǒng)環(huán)境進(jìn)行檢測,查看是否有漏洞可利用,從而實施攻擊.
5.如果漏洞觸發(fā),攻擊者就可以拿到用戶計算機(jī)的控制權(quán),任意做他想做的事情.
支持向量機(jī)(Support Vector Machine,SVM)[5]是一個基于統(tǒng)計學(xué)習(xí)理論的經(jīng)典的分類算法,由Corinna Cortes和Vapnik等人在1995年首先提出的.它是通過一種非線性映射,把樣本數(shù)據(jù)從較低維映射到一個更高維的特征空間中,然后在高維空間內(nèi)建立一個最大間隔超平面,分隔開不同類型的數(shù)據(jù).
圖1 支持向量機(jī)分類圖
如圖1所示,在這個二維的特征空間中,不同類別的樣本被分隔在邊界的兩邊.所以確定好決策邊界就可以解決對樣本分類的問題,即邊界f:wx+b=0的問題.針對這個邊界函數(shù),如果我們確定了向量w和參數(shù)b,那邊界f也可以確定,那樣本分類的問題也將迎刃而解.所以支持向量機(jī)的分類難題在于尋找決策邊界.
在特征空間中,決策邊界往往不止一個,有可能有很多個,它們可能是相互平行的,也可能是不同方向的邊界,為了盡可能保證對樣本進(jìn)行準(zhǔn)確的分類,SVM要找出最佳的分離決策邊界,這個邊界要使得樣本之間的邊緣(margin)最大,從而達(dá)到更好的分類效果.
在支持向量機(jī)中,決策函數(shù)也被稱為核函數(shù).整個訓(xùn)練過程,除了提高訓(xùn)練效果之外,其實就是在確定一個最佳核函數(shù),使模型達(dá)到最好的效果.
貝葉斯分類算法,是一類運用概率統(tǒng)計知識來分類的算法,其中較為經(jīng)典的貝葉斯分類算法是樸素貝葉斯算法.樸素貝葉斯分類算法假設(shè)一個類中的各個特征之間互不影響、相互獨立,即特征A是否存在與特征B、特征C等等其他特征是否在都無關(guān).實際情況這樣的設(shè)定通常很難成立.所以為了保證分類的準(zhǔn)確率,就有了一些降低屬性之間依賴關(guān)系的貝葉斯分類算法.
在樸素貝葉斯分類算法中,所有樣本被設(shè)為用一個n維特征向量X來表示(其中X=x1,x2,x3,…,xn),這些數(shù)據(jù)樣本可分為m個類,為C1,C2,C3,…,Cm.當(dāng)預(yù)測一個新的數(shù)據(jù)樣本X時,若這個分類方法將它標(biāo)記為Ci,則表示X被分到i類時具最高后驗概率,如公式(1)所示.
P(Ci|X)>P(Cj|X) 1≤j≤m,j≠i
(1)
根據(jù)貝葉斯定理,P(Ci|X)的計算方法如公式(2)所示.
P(Ci|X)=P(X|Ci)·P(Ci) /P(X).
(2)
在給定預(yù)測數(shù)據(jù)樣本后,P(X)是常數(shù),對數(shù)據(jù)樣本分類不會有影響,因此要得到最大的P(Ci|X)就只需要計算出最大的P(X|Ci)·P(Ci)就行了.其中,P(Ci)和P(X|Ci)的計算方法分別如公式(3)和(4)所示.
P(Ci)=Si/S
(3)
在(3)式中,S為數(shù)據(jù)樣本總數(shù),Si為屬于類別為Ci的數(shù)據(jù)樣本數(shù).
(4)
根據(jù)(4)可以計算出數(shù)據(jù)樣本最終屬于哪一類的概率.屬于哪一類的概率比較大,最終數(shù)據(jù)樣本就會被歸類為哪一類.比如我們現(xiàn)在的網(wǎng)頁惡意代碼檢測,含惡意代碼的概率大于不含惡意代碼的概率,那么被測網(wǎng)頁就會被歸類會惡意網(wǎng)頁,反之歸類為正常網(wǎng)頁.
人工神經(jīng)網(wǎng)絡(luò)(Artificial Neural Network,縮寫ANN),簡稱神經(jīng)網(wǎng)絡(luò)(Neural Network,縮寫NN)或類神經(jīng)網(wǎng)絡(luò).它被用于對數(shù)據(jù)進(jìn)行預(yù)測和分類,對有干擾能力的噪點數(shù)據(jù)具有很好的適應(yīng)能力.
圖2 神經(jīng)網(wǎng)絡(luò)示意圖
人工神經(jīng)網(wǎng)絡(luò)模型大多為BP網(wǎng)絡(luò)(Back Propagation Network,BP),一種反向傳播學(xué)習(xí)算法.如圖2所示,是一個三層神經(jīng)網(wǎng)絡(luò),每一層都是由一些神經(jīng)元構(gòu)成的.除了輸入層之外,它還有隱含層和輸出層兩層處理單元.當(dāng)然一個神經(jīng)網(wǎng)絡(luò)模型不一定如圖示一樣只有一層隱含層,它可以有更多層隱含層.
該神經(jīng)網(wǎng)絡(luò)是向前反饋的,當(dāng)輸出層或隱含層收到反饋時,如果效果還未達(dá)標(biāo),就會修改權(quán)重來繼續(xù)訓(xùn)練.通過不斷收到反饋,對修改權(quán)重來減少誤差,最終達(dá)到訓(xùn)練效果,完成學(xué)習(xí)任務(wù).
檢測網(wǎng)頁的整體工作流程具體步驟如下:
1.接受待檢測網(wǎng)頁源代碼文件.
2.使用正則表達(dá)式對網(wǎng)頁源代碼處理,提取