国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

混淆惡意JavaScript代碼的多特征檢測識(shí)別與分析

2018-09-29 02:38曲文鵬趙連軍鄧旭
關(guān)鍵詞:機(jī)器學(xué)習(xí)

曲文鵬 趙連軍 鄧旭

摘 要:JavaScript目前已經(jīng)成為交互式網(wǎng)頁和動(dòng)態(tài)網(wǎng)頁中一項(xiàng)廣泛采用的技術(shù),惡意的JavaScript代碼也變得活躍起來,已經(jīng)被當(dāng)作基于網(wǎng)頁的一種攻擊手段。通過對大量JavaScript惡意代碼的研究,對混淆惡意JavaScript代碼進(jìn)行特征提取與歸類,從基于屬性特征、基于重定向特征、基于可疑關(guān)鍵詞特征、基于混淆特征四大類中總共提取了82個(gè)特征,其中47個(gè)是四大類中的新特征。從真實(shí)環(huán)境中收集了總數(shù)為5 525份JavaScript正常與混淆的惡意代碼用于訓(xùn)練與測試,利用多種有監(jiān)督的機(jī)器學(xué)習(xí)算法通過異常檢測模式來評估數(shù)據(jù)集。實(shí)驗(yàn)結(jié)果表明,通過引入新的特征,所有分類器的檢測率較未引入新特征相比有所提升,并且誤檢率(False Negative Rate)有所下降。

關(guān)鍵詞:機(jī)器學(xué)習(xí); 惡意代碼; 異常檢測; 混淆; JavaScript

Abstract: JavaScript has become a widely used technology in interactive and dynamic webpages, malicious JavaScript code also becomes active and has been used as an attack method based on Web pages. Based on the study of a large number of JavaScript malicious code, the paper makes the feature extraction and classification on obfuscated malicious JavaScript code. From the four categories: based on attribute features, redirection features, suspicious keyword features and confusion features, a total of 82 features are extracted, of which 47 are new features in the four major categories. 5 525 JavaScript-based pages are collected in a real environment for training and testing, and data sets are further evaluated through anomaly detection patterns using a variety of supervised machine learning algorithms. Experiment shows that compared with not introducing new features, the detection rate of all classifiers is improved by introducing new features, and the False Negative Rate has decreased.

Key words: machine learning; malicious code; anomaly detection; obfuscation; JavaScript

引言

作為一種動(dòng)態(tài)的客戶端腳本語言,JavaScript已經(jīng)廣泛應(yīng)用于交互式Web的開發(fā),可以將某些計(jì)算轉(zhuǎn)移到用戶端來幫助減輕服務(wù)器端的壓力,從而提高網(wǎng)頁的訪問速度。發(fā)展至今,躋身主流的各家瀏覽器均可支持這項(xiàng)腳本語言。然而,最近幾年JavaScript已經(jīng)成為了普通常見和極易攻陷的解釋性語言。為了瀏覽大多數(shù)的正常網(wǎng)頁,客戶必須在瀏覽器中啟用JavaScript功能,但與此同時(shí)卻很難阻止惡意代碼下載到用戶的電腦中。因?yàn)楣粽邥?huì)利用各種方法誘導(dǎo)用戶打開受感染的Web內(nèi)容,比如彈出式廣告、釣魚網(wǎng)站、病毒郵件、親朋好友發(fā)送的鏈接等等。惡意的JavaScript代碼可以內(nèi)嵌于網(wǎng)頁當(dāng)中,并在瀏覽器加載該網(wǎng)頁時(shí)自動(dòng)運(yùn)行。運(yùn)行后,惡意的JavaScript代碼會(huì)產(chǎn)生一些惡意的行為,比如在后臺(tái)自動(dòng)下載惡意軟件、自動(dòng)安裝惡意軟件、在網(wǎng)頁中不斷彈出垃圾廣告、發(fā)送垃圾郵件等等。這些惡意的代碼為了應(yīng)對殺毒軟件的檢測通常都進(jìn)行了混淆處理,若僅是選擇普通的靜態(tài)特征用于分析和檢測則會(huì)遇到一些問題,混淆的手法包括使用一些十六進(jìn)制的ASCII碼、利用邏輯異或運(yùn)算、分割字符串、壓縮字符串等。這些混淆技術(shù)已經(jīng)使原來的代碼變得越來越復(fù)雜,這就將對惡意代碼的檢測與去除混淆的技術(shù)提出了更高的要求。

根據(jù)惡意腳本的執(zhí)行方式,可以通過基于靜態(tài)混淆字符串分析[1]和基于動(dòng)態(tài)JavaScript代碼分析相結(jié)合的方法來提高惡意JavaScript代碼的檢測速度與檢測質(zhì)量。其中,靜態(tài)分析方法利用代碼的靜態(tài)特征,即代碼的結(jié)構(gòu)來識(shí)別惡意代碼。動(dòng)態(tài)分析方法通過觀察代碼的執(zhí)行狀態(tài)和進(jìn)程來檢測惡意代碼[2]。在具有大量特征集的情況下使用機(jī)器學(xué)習(xí)方法會(huì)獲得更好的效果和更高的精度,故而可通過機(jī)器學(xué)習(xí)來展開檢測分析。

本研究基于真實(shí)數(shù)據(jù),提出了一種基于靜態(tài)的混淆惡意JavaScript代碼多特征檢測識(shí)別與分析方法。首先,從基于屬性特征、基于重定向特征、基于可疑關(guān)鍵詞特征、基于混淆特征四大分類中總共提取了82個(gè)特征,其中47個(gè)是四大分類中的新特征,再利用一類支持向量機(jī)(One-class SVM)、樸素貝葉斯(Naive Bayes)、主成分分析法(PCA)、交替決策樹(ADTree)等4種機(jī)器學(xué)習(xí)算法,對代碼進(jìn)行分析與提取,檢測出混淆惡意JavaScript代碼。通過實(shí)驗(yàn),最終得出新老特征檢測效率的對比結(jié)果。

1 相關(guān)工作

時(shí)下,已陸續(xù)涌現(xiàn)多種不同的方法可用來靜態(tài)檢測混淆惡意JavaScript代碼或者動(dòng)態(tài)分析。Wang等[2]發(fā)表了一種新的檢測惡意JavaScript代碼的方法,可將異常檢測與仿真相結(jié)合來識(shí)別惡意JavaScript代碼,并且開發(fā)了一個(gè)項(xiàng)目,可以通過使用多個(gè)JavaScript特征和機(jī)器學(xué)習(xí)技術(shù)來檢測JavaScript代碼是否為惡意的。Curtsinger等[3]提出了一種從JavaScript代碼的抽象語法樹中使用層次工程特征的方法,檢測惡意代碼。Kolter等[4]使用多種分類的方法,比如樸素貝葉斯,來檢測惡意的可執(zhí)行文件。Rieck等[5]用n-gram方法對網(wǎng)頁特征進(jìn)行提取,結(jié)合ADSandbox工具提供靜態(tài)方法和動(dòng)態(tài)方法相結(jié)合的分析與檢測,但是訓(xùn)練數(shù)據(jù)同時(shí)使用了正常樣本和惡意樣本。Cova等[6]提出了以代碼中字符型函數(shù)定義和使用的頻率、重定向的數(shù)量、動(dòng)態(tài)函數(shù)調(diào)用的次數(shù)等10個(gè)特征,作為檢測惡意JavaScript代碼攻擊的特征。此外,文獻(xiàn)[7]設(shè)計(jì)了一種基于靜態(tài)分析的JavaScript惡意代碼檢測方法,針對網(wǎng)頁中JavaScript代碼進(jìn)行4類特征分析與提取。文獻(xiàn)[8]又探討了一種通過使用多特征的方法,來提高惡意代碼檢測效率的方法。文獻(xiàn)[9]中,研究分別從采集并且分類惡意網(wǎng)頁代碼樣本、利用網(wǎng)頁的靜態(tài)代碼分析技術(shù)創(chuàng)建模板、獲取正常網(wǎng)頁代碼樣本和隨機(jī)采樣評估這4個(gè)步驟進(jìn)行了實(shí)驗(yàn),把惡意網(wǎng)頁代碼樣本劃分為不同的類別,每一類都含有一種惡意網(wǎng)頁代碼以及對應(yīng)的變形。

本文研究提出的是一種基于靜態(tài)的混淆惡意JavaScript代碼多特征檢測識(shí)別與分析方法,在提取與文獻(xiàn)[7-8]中相類似的基本統(tǒng)計(jì)特征外,又進(jìn)一步著重從基于屬性特征、基于重定向特征、基于可疑關(guān)鍵詞特征、基于混淆特征四大分類中同時(shí)進(jìn)行新舊特征的對比,不僅覆蓋大部分混淆惡意JavaScript代碼的特征,而且具有較高的對比性。

2 特征提取

混淆惡意JavaScript代碼的多特征檢測識(shí)別與分析主要由數(shù)據(jù)收集、數(shù)據(jù)篩選、特征提取、特征分類、異常檢測、結(jié)果輸出與分析等部分組成。特征提取及檢測流程如圖1所示。

2.1 特征提取及檢測方法

首先通過Python構(gòu)建抓捕器抓取目標(biāo)網(wǎng)站的代碼,抓取后解析HTML源代碼,然后構(gòu)建代碼分離器保存其中的JavaScript腳本標(biāo)簽源代碼,并對JavaScript腳本核心內(nèi)容開啟提取特征向量工作,選取具有惡意性的特征。選擇JavaScript腳本代碼特征的過程后,就會(huì)梳理總結(jié)各類特征,找出可以用來使用機(jī)器學(xué)習(xí)的算法,再利用機(jī)器學(xué)習(xí)進(jìn)行預(yù)測。

2.2 特征提取

根據(jù)當(dāng)下已有的一些方法,研究收集了這些方法中使用過的一些特征,并且進(jìn)行了分類,在已提取的舊特征的基礎(chǔ)上,可為每個(gè)分類增加了新特征。每個(gè)類別所對應(yīng)的新、舊特征可見表1~表4。

研究總共提取了82個(gè)特征并劃分為四大類,其中新特征有47個(gè)。在進(jìn)行實(shí)驗(yàn)檢測時(shí),就會(huì)針對舊特征和新、舊結(jié)合特征分別進(jìn)行檢測。

3 檢測算法

3.1 一類支持向量機(jī)

通常一類問題出現(xiàn)在需要對訓(xùn)練樣本進(jìn)行一定比例的篩選,或者已知的訓(xùn)練樣本都是正樣本,而負(fù)樣本卻很少的情況。這種情況下,往往需要訓(xùn)練一個(gè)對于訓(xùn)練樣本緊湊的分類邊界,此時(shí)即需啟用負(fù)樣本實(shí)驗(yàn)。在本實(shí)驗(yàn)中,可以通過已知的混淆惡意JavaScript代碼的特征來訓(xùn)練一個(gè)一類分類器,得到一個(gè)緊湊的分類邊界,超出這個(gè)邊界就可斷定為是正常的JavaScript代碼。實(shí)驗(yàn)時(shí),設(shè)計(jì)上是以正常的代碼作為訓(xùn)練集。

文獻(xiàn)[10]提出一類支持向量機(jī)(One-class SVM)用于解決訓(xùn)練數(shù)據(jù)只有一類的問題,描述如下。

3.3 主成分分析法

主成分分析法(PCA)是一種數(shù)學(xué)變換的方法, 是把給定的一組相關(guān)變量通過線性變換轉(zhuǎn)變?yōu)榱硪唤M不相關(guān)的變量,這些新的變量按照方差依次遞減的順序逐一排列。PCA的原理為從原來眾多的向量中提取若干個(gè)變量,提取的這若干個(gè)變量可以最大程度地刻畫表示原來數(shù)據(jù)的信息量。一般用于降維處理后,再進(jìn)行檢測實(shí)驗(yàn)。

3.4 交替決策樹

交替決策樹(ADTree)是一種用于分類的機(jī)器學(xué)習(xí)算法,其中概括了決策樹并且與提升相關(guān),重點(diǎn)是由一個(gè)決策節(jié)點(diǎn)組成,而且指定了預(yù)測條件和預(yù)測節(jié)點(diǎn)。過程中,總是以預(yù)測節(jié)點(diǎn)作為根和葉,通過遵循所有決策節(jié)點(diǎn)都為真的全部路徑并且對所遍歷的任何預(yù)測節(jié)點(diǎn)進(jìn)行求和來對實(shí)例劃定分類。在設(shè)計(jì)上也不同于二進(jìn)制分類樹,例如CART算法和C4.5算法。

4 實(shí)驗(yàn)結(jié)果及分析

4.1 實(shí)驗(yàn)數(shù)據(jù)與實(shí)驗(yàn)環(huán)境

實(shí)驗(yàn)樣本包括惡意的JavaScript樣本和安全的JavaScript樣本。研究將從Alexa Top sites(http://www.alexa.com/topsites)和Top ChinaZ(http://top.chinaz.com/)公布的網(wǎng)站中獲取的JavaScript代碼定義為正常行為的數(shù)據(jù),利用30天的時(shí)間,獲取了5 404份定義為正常的JavaScript代碼。關(guān)于惡意樣本,其中分別由卡巴斯基安全實(shí)驗(yàn)室提供的部分混淆惡意JavaScript代碼樣本和網(wǎng)絡(luò)中搜集到的內(nèi)容聯(lián)合組成,共選取惡意JavaScript代碼121份。

實(shí)驗(yàn)中,將所有的數(shù)據(jù)樣本中的70%作為已知部分且只包含正常的數(shù)據(jù)作為訓(xùn)練數(shù)據(jù),剩余的30%樣本作為測試數(shù)據(jù),測試數(shù)據(jù)中包含所有的惡意JavaScript代碼樣本?;煜龕阂釰avaScript代碼檢測使用的測試環(huán)境可見表5。

研究中,定義混淆惡意的JavaScript代碼樣本為負(fù)樣本,正常的JavaScript代碼為正樣本,由此得到分類器列聯(lián)表可詳見表6。

4.2 實(shí)驗(yàn)結(jié)果

為了使實(shí)驗(yàn)兼具代表性及更好的準(zhǔn)確性,可將實(shí)驗(yàn)分為2組。一組只使用四大分類中的舊特征,另一組使用四大特征分類中新、舊結(jié)合的特征,并且每一組實(shí)驗(yàn)均采用十折交叉驗(yàn)證,把所有的數(shù)據(jù)分成10份,將其中的1份作為測試集,另外的9份作為訓(xùn)練集,每組依次輪流10次進(jìn)行實(shí)驗(yàn),同時(shí)采用了4種分類算法。4種算法檢測效果可見表7。

從表7中可以看出,在四大特征分類中使用新特征后,PCA、ADTree、One-class SVM、Naive Bayes這4種算法的檢測效率相比沒有使用新特征全部得到了提高,4種算法的誤檢率相比沒有使用新特征全部得到了降低。其中,Naive Bayes的準(zhǔn)確率提升的幅度最大,提升了9.4個(gè)百分點(diǎn)。One-class SVM的誤檢率降低的幅度最大,降低了2.7個(gè)百分點(diǎn)。

5 結(jié)束語

通過對大量惡意代碼的研究,對混淆惡意JavaScript代碼進(jìn)行四大特征分類,并且基于四大特征類中的新、舊特征展開了研究與檢測分析,獲得了滿意的結(jié)果。過程中研究了大量混淆代碼,試圖提取出盡可能多的靜態(tài)混淆特征,但是攻擊者仍然在繼續(xù)開發(fā)著不同的混淆技術(shù),致力于掩蓋JavaScript的真實(shí)結(jié)構(gòu)。因此在某些情況下,某些被混淆的惡意JavaScript代碼是無法被檢測到的。此后的下一步工作是繼續(xù)深入研究,找出共性,還原其本質(zhì),通過提取新特征以及改進(jìn)檢測算法來提高運(yùn)行結(jié)果的檢測效率,在攻與防的對立統(tǒng)一中,尋求重大的技術(shù)突破。

參考文獻(xiàn)

[1] 馬洪亮, 王偉, 韓臻. 混淆惡意JavaScript代碼的檢測與反混淆方法研究[J]. 計(jì)算機(jī)學(xué)報(bào), 2017, 40(7):1699-1713.

[2] WANG Weihong, LV Yinjun, CHEN Huibing, et al. A static malicious JavaScript detection using SVM[C]//Proceedings of the 2nd International Conference on Computer Science and Electronics Engineering. Paris, France:Atlantis Press, 2013:214-217.

[3] CURTSINGER C, LIVSHITS B, ZORN B G, et al. ZOZZLE: Fast and precise in-browser JavaScript malware detection[C]// 20th Usenix Security Symposium. San Francisco, CA:Usenix, 2011: 33-48.

[4] KOLTER J Z, MALOOF M A. Learning to detect and classify malicious executables in the wild[J]. Journal of Machine Learning Research, 2006, 7: 2721-2744.

[5] RIECK K, KRUEGER T, DEWALD A. Cujo: Efficient detection and prevention of drive-by-download attacks[C]//Proceedings of the 26th Annual Computer Security Applications Conference.Austin,Texas,USA:ACM, 2010: 31-39.

[6] COVA M, KRUEGEL C, VIGNA G. Detection and analysis of drive-by-download attacks and malicious JavaScript code[C]//Proceedings of the 19th International Conference on World Wide Web. Raleigh, North Carolina:ACM, 2010: 281-290.

[7] 徐青, 朱焱, 唐壽洪,等. 分析多類特征和欺詐技術(shù)檢測JavaScript惡意代碼[J]. 計(jì)算機(jī)應(yīng)用與軟件, 2015, 32(7):293-296.

[8] PATIL D R, PATIL J B. Detection of malicious JavaScript code in Web pages[J]. Indian Journal of Science and Technology, 2017, 10(19):1-12.

[9] FERNANDEZ F. Heuristic engines[C]//Proceedings of the 20th Virus Bulletin Conference. Vancouver:[s.n.],2011:407-444.

[10]SCHLKOPF B, PLATT J C, SHAWE-TAYLOR J, et al. Estimating the support of a high-dimensional distribution[J]. Neural computation, 2001, 13(7): 1443-1471.

猜你喜歡
機(jī)器學(xué)習(xí)
基于詞典與機(jī)器學(xué)習(xí)的中文微博情感分析
基于網(wǎng)絡(luò)搜索數(shù)據(jù)的平遙旅游客流量預(yù)測分析
前綴字母為特征在維吾爾語文本情感分類中的研究
基于支持向量機(jī)的金融數(shù)據(jù)分析研究
機(jī)器學(xué)習(xí)理論在高中自主學(xué)習(xí)中的應(yīng)用
鄂伦春自治旗| 泽州县| 墨脱县| 原平市| 花莲县| 六枝特区| 望城县| 三门峡市| 麦盖提县| 南昌市| 喀喇沁旗| 祁阳县| 威宁| 准格尔旗| 潜山县| 凤阳县| 句容市| 郴州市| 昌都县| 高雄县| 宜君县| 资源县| 马鞍山市| 乌拉特中旗| 宁波市| 平陆县| 工布江达县| 临湘市| 涞源县| 古蔺县| 兴隆县| 吴旗县| 桦甸市| 皋兰县| 太康县| 道孚县| 宜兰县| 石家庄市| 霍城县| 元江| 镇原县|