基于機(jī)器學(xué)習(xí)算法的惡意代碼檢測(cè)_第1頁(yè)
基于機(jī)器學(xué)習(xí)算法的惡意代碼檢測(cè)_第2頁(yè)
基于機(jī)器學(xué)習(xí)算法的惡意代碼檢測(cè)_第3頁(yè)
基于機(jī)器學(xué)習(xí)算法的惡意代碼檢測(cè)_第4頁(yè)
基于機(jī)器學(xué)習(xí)算法的惡意代碼檢測(cè)_第5頁(yè)
已閱讀5頁(yè),還剩27頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

基于機(jī)器學(xué)習(xí)算法的惡意代碼檢測(cè)

機(jī)器學(xué)習(xí)算法檢測(cè)惡意代碼天津理工大學(xué)計(jì)算機(jī)機(jī)房總共750臺(tái)電腦,由于某種原因,機(jī)房?jī)?nèi)的電腦突然出現(xiàn)卡頓,上網(wǎng)異常等奇怪現(xiàn)象,花費(fèi)一番精力后,已經(jīng)檢查了250臺(tái)計(jì)算機(jī),發(fā)現(xiàn)有些系統(tǒng)已經(jīng)感染了惡意代碼,有些則是正常的。但是還有500臺(tái)機(jī)子沒(méi)有檢查,于是王老師交代給小王一個(gè)任務(wù),現(xiàn)在想要使用一種省時(shí)可行的方案來(lái)判斷這500臺(tái)計(jì)算機(jī)是否感染了惡意代碼。情景假設(shè)惡意代碼的分析方法惡意代碼靜態(tài)分析方法惡意代碼基于代碼特征的分析方法惡意代碼常用于對(duì)執(zhí)行程序類型的惡意代碼進(jìn)行分析c語(yǔ)言編寫的程序中存在一條語(yǔ)句CreateMuetex(NULL,NULL,“MYTEST”);那么在生成的PE文件中會(huì)存在一個(gè)靜態(tài)數(shù)據(jù)“MYTEST”,通過(guò)分析PE結(jié)構(gòu)可以從靜態(tài)數(shù)據(jù)節(jié)中提取靜態(tài)數(shù)據(jù)。用C語(yǔ)言編寫的惡意代碼中使用下面的語(yǔ)句URLDownloadToFile(0,"/a.exe","c:\\a.exe",0,0)從網(wǎng)站下載可執(zhí)行程序到C盤根目錄,這個(gè)動(dòng)作很有可能是進(jìn)行惡意代碼升級(jí)基于代碼語(yǔ)義的分析方法惡意代碼基于代碼語(yǔ)義的分析過(guò)程,首先使用反匯編工具對(duì)惡意代碼執(zhí)行體進(jìn)行反匯編,然后通過(guò)理解惡意代碼的反匯編程序了解惡意代碼的功能。從理論上講通過(guò)這種方法可以得到惡意代碼所有功能特征。但是,目前基于語(yǔ)義的惡意代碼分析方法主要還是依靠人工來(lái)完成,人工分析的過(guò)程需要花費(fèi)分析人員的大量時(shí)間,對(duì)分析人員本身的要求也很高。動(dòng)態(tài)分析方法惡意代碼外部觀察法惡意代碼惡意代碼作為一段程序在運(yùn)行過(guò)程中通常會(huì)對(duì)系統(tǒng)造成一定的影響,有些惡意代碼為了保證自己的自啟動(dòng)功能和進(jìn)程隱藏的功能,通常會(huì)修改系統(tǒng)注冊(cè)表和系統(tǒng)文件,或者會(huì)修改系統(tǒng)配置。1、通過(guò)網(wǎng)絡(luò)進(jìn)行傳播、繁殖和拒絕服務(wù)攻擊等破壞活動(dòng)2、通過(guò)網(wǎng)絡(luò)進(jìn)行詐騙等犯罪活動(dòng)3、通過(guò)網(wǎng)絡(luò)將搜集到的機(jī)密信息傳遞給惡意代碼的控制者4、在本地開啟一些端口、服務(wù)等后門等待惡意代碼控制者對(duì)受害主機(jī)的控制訪問(wèn)跟蹤調(diào)試法惡意代碼在實(shí)際分析過(guò)程中,跟蹤調(diào)試可以有兩種方法。1.單步跟蹤惡意代碼執(zhí)行過(guò)程,監(jiān)視惡意代碼的每一個(gè)執(zhí)行步驟,在分析過(guò)程中也可以在適當(dāng)?shù)臅r(shí)候執(zhí)行惡意代碼的一個(gè)片斷,這種分析方法可以全面監(jiān)視惡意代碼的執(zhí)行過(guò)程,但是分析過(guò)程相當(dāng)耗時(shí)。2.利用系統(tǒng)hook技術(shù)監(jiān)視惡意代碼執(zhí)行過(guò)程中的系統(tǒng)調(diào)用和API使用狀態(tài)來(lái)分析惡意代碼的功能,這種方法經(jīng)常用于惡意代碼檢測(cè)。惡意代碼分析方法比較分析內(nèi)容代碼特征分析法代碼語(yǔ)義分析法外部觀察法跟蹤調(diào)試法隱藏功能能能加密功能能能能觸發(fā)功能能能自啟動(dòng)功能能能能自主攻擊和繁殖功能能部分能破壞功能能部分能對(duì)分析人員的依賴程度低較高低高對(duì)分析環(huán)境的破壞否否大可控1、背景

機(jī)器學(xué)習(xí)是近20多年興起的一門多領(lǐng)域交叉學(xué)科,涉及概率論、統(tǒng)計(jì)學(xué)、逼近、凸分析、算法復(fù)雜度理論等多門學(xué)科。機(jī)器學(xué)習(xí)理論主要是設(shè)計(jì)和分析一些讓計(jì)算機(jī)可以自動(dòng)“學(xué)習(xí)”的算法。即從數(shù)據(jù)中自動(dòng)分析獲得規(guī)律,并利用規(guī)律對(duì)未知數(shù)據(jù)進(jìn)行預(yù)測(cè)的算法。2、機(jī)器學(xué)習(xí)算法的定義:

機(jī)器學(xué)習(xí)是一種讓計(jì)算機(jī)在沒(méi)有事先明確地編程的情況下做出正確反應(yīng)的科學(xué)。3、算法

機(jī)器學(xué)習(xí)的算法很多。讓人們困惑的是,很多算法是一類算法,而有些算法又是從其他算法中延伸出來(lái)的。這里,我們從兩個(gè)方面來(lái)給大家介紹:機(jī)器學(xué)習(xí)常見算法分類匯總

機(jī)器學(xué)習(xí)常見算法分類匯總學(xué)習(xí)方式監(jiān)督學(xué)習(xí)無(wú)監(jiān)督學(xué)習(xí)機(jī)器學(xué)習(xí)算法統(tǒng)計(jì)分類回歸分析聚類關(guān)聯(lián)規(guī)則機(jī)器學(xué)習(xí)算法的主要任務(wù)是分類和回歸。分類主要應(yīng)用于離散型數(shù)據(jù),回歸主要用于預(yù)測(cè)數(shù)值型連續(xù)的數(shù)據(jù),例如擬合曲線等。

使用機(jī)器學(xué)習(xí)算法首先考慮目的,如果想要預(yù)測(cè)目標(biāo)變量,則可以選擇監(jiān)督學(xué)習(xí)算法,否則可以選擇無(wú)監(jiān)督學(xué)習(xí)算法。其次考慮數(shù)據(jù)問(wèn)題,主要了解特征值是離散還是連續(xù),是否存在缺失及異常。一般來(lái)說(shuō)發(fā)現(xiàn)好算法的關(guān)鍵是反復(fù)試錯(cuò)的迭代過(guò)程?!稒C(jī)器學(xué)習(xí)實(shí)戰(zhàn)》決策樹KNN邏輯回歸樸素貝葉斯監(jiān)督學(xué)習(xí)算法

機(jī)器學(xué)習(xí)常見算法分類匯總神經(jīng)網(wǎng)絡(luò)隨機(jī)森林SVM監(jiān)督學(xué)習(xí)算法

機(jī)器學(xué)習(xí)常見算法分類匯總AdaBoost遺傳算法算法優(yōu)化

機(jī)器學(xué)習(xí)常見算法分類匯總K-meansBIRCHApriori無(wú)監(jiān)督學(xué)習(xí)算法

機(jī)器學(xué)習(xí)常見算法分類匯總惡意代碼檢測(cè)的發(fā)展及現(xiàn)狀惡意代碼檢測(cè)的幾個(gè)思路:1、行為特征

攻擊樹,行為:API調(diào)用,威脅指數(shù)stv(Parent)=∑sty(Child)*weight2、歸一化

惡意代碼歸一化,再進(jìn)行特征碼匹配,針對(duì)惡意代碼變形3、紋理指紋

惡意代碼映射為無(wú)壓縮灰階圖片,結(jié)合圖像分析技術(shù)分析代碼變種4、有效窗口和樸素貝葉斯有效窗口降低惡意代碼噪音,樸素貝葉斯進(jìn)行分類注釋:前三種思想主要利用了惡意代碼的特征,第四種方法核心思想認(rèn)為對(duì)惡意代碼的分類,因此采用了樸素貝葉斯,這也是近年來(lái)較為流行的方法5、機(jī)器學(xué)習(xí)算法:基本思想就是,利用數(shù)據(jù)挖掘可以從已存在的大量數(shù)據(jù)中挖掘出有意義的模式,利用機(jī)器學(xué)習(xí)可以幫助歸納出已知惡意代碼的識(shí)別知識(shí),以此來(lái)進(jìn)行相似性搜索,幫助發(fā)現(xiàn)未知惡意代碼。實(shí)現(xiàn)基于數(shù)據(jù)挖掘和機(jī)器學(xué)習(xí)的惡意代碼檢測(cè)系統(tǒng),有兩個(gè)關(guān)鍵:選擇于分類相關(guān)的特征;選擇最有效的分類器。惡意代碼有多種特征,可以通過(guò)API(AIplicationProgramInterface)函數(shù)調(diào)用序列、指令序列、PE文件頭、機(jī)器碼字節(jié)序列、字符串等特征來(lái)實(shí)現(xiàn)惡意代碼檢測(cè)。機(jī)器學(xué)習(xí)檢測(cè)惡意代碼基本框架

主要分為以下五個(gè)步驟:第一步:特征提取,可分為兩類:1、靜態(tài)特征,如字節(jié)序列,PE字符串序列等;2、動(dòng)態(tài)特征,如API系統(tǒng)調(diào)用序列、文件與進(jìn)程操作等。第二步:特征處理,便于后續(xù)學(xué)習(xí)。方法主要兩類:1、不進(jìn)行任何處理,直接選擇提取的特征信息;2、利用N-gram滑動(dòng)窗口,提取特征序列。第三步:特征降維,如信息增益、Relife、Fisher、SHI等。第四步:分類學(xué)習(xí),對(duì)降維處理后的數(shù)據(jù)集利用不同學(xué)習(xí)算法,如決策樹、支持向量機(jī)、貝葉斯估計(jì)等,進(jìn)行學(xué)習(xí),利用學(xué)習(xí)的分類器對(duì)測(cè)試集進(jìn)行測(cè)試。第五步:對(duì)測(cè)試集進(jìn)行分析與評(píng)估。關(guān)于惡意代碼檢測(cè)的想法

根據(jù)惡意代碼API調(diào)用序列特征生成動(dòng)作曲線,多個(gè)動(dòng)作曲線重合概率較多的點(diǎn)篩選出,這些點(diǎn)稱為可以動(dòng)作點(diǎn),將可疑動(dòng)作點(diǎn)擬合為可疑動(dòng)作曲線,根據(jù)可疑動(dòng)作曲線的重合率判斷惡意代碼,利用貝葉斯算法測(cè)試。1.典型惡意代碼API調(diào)用序列2.可疑動(dòng)作曲線的優(yōu)點(diǎn)在于相比于典型惡意代碼API,減少API序列的隨機(jī)性,進(jìn)而減少漏判誤判。關(guān)于惡意代碼檢測(cè)的想法Polymorphic(多態(tài)化)模糊流程關(guān)于惡意代碼檢測(cè)的想法

提取惡意代碼動(dòng)態(tài)行為特征分析檢測(cè)基本架構(gòu)如左圖所示。

第一步:搭建運(yùn)行惡意代碼的虛擬環(huán)境,便于加殼等一些處理過(guò)的惡意代碼分析。

第二步:虛擬環(huán)境中執(zhí)行惡意代碼,并提取惡意代碼動(dòng)態(tài)行為語(yǔ)義特征。本課題選取惡意代碼執(zhí)行期間調(diào)用的API序列作為語(yǔ)義特征。

第三步:使用提取的語(yǔ)義特征進(jìn)行模型建立,即組織語(yǔ)義信息建立語(yǔ)義模型。本課題對(duì)運(yùn)行API調(diào)用序列加工,抽象為代表語(yǔ)義特征的動(dòng)作曲線。

第四步:建立模型庫(kù),采用樸素貝葉斯進(jìn)行檢測(cè)。

注釋:后期會(huì)考慮貝葉斯計(jì)算使用MapReduce進(jìn)行并行計(jì)算優(yōu)化,提升計(jì)算效率。機(jī)器學(xué)習(xí)算法檢測(cè)惡意代碼嘗試編寫一串指令來(lái)了解正常主機(jī)處理器和內(nèi)存使用情況,然后同被感染主機(jī)上的處理器和內(nèi)存使用情況進(jìn)行比較。一旦發(fā)現(xiàn)這兩組數(shù)據(jù)集中有一些不同的信息,就可以向計(jì)算機(jī)發(fā)送指令將這些信息應(yīng)用到收集到從未知/未分類的系統(tǒng)收集的數(shù)據(jù)上。這樣,讓計(jì)算機(jī)來(lái)判斷系統(tǒng)是否感染上惡意代碼。機(jī)器算法惡檢測(cè)意代碼的思路:

cpu、內(nèi)存使用情況檢測(cè)惡意代碼實(shí)現(xiàn)方法

將記錄的所有系統(tǒng)的內(nèi)存和處理器的使用情況保存在一個(gè)execel文件中,host記錄了主機(jī)名,proc和mem分別記錄了cpu和內(nèi)存的使用情況,而state記錄了是否感染惡意代碼,部分?jǐn)?shù)據(jù)如圖所示。實(shí)現(xiàn)方法按照上述算法的第一步,即分別計(jì)算被感染和正常系統(tǒng)中處理器和內(nèi)存的平均使用情況。R代碼:inf<-colMeans(train[train$state=="Infected",c("proc","mem")])nrm<-colMeans(train[train$state=="Normal",c("proc","mem")])print(inf)##procmem##1.1520251.201779print(nrm)##procmem##-0.8701412-0.9386983從注釋中輸出的均值容易發(fā)現(xiàn),感染和未感染惡意代碼的均值間差異較大,所以這個(gè)方法可以較好的實(shí)現(xiàn)算法。實(shí)現(xiàn)方法(1)定義和訓(xùn)練一個(gè)算法: a)計(jì)算一直感染惡意軟件系統(tǒng)的處理器和內(nèi)存的平均使用情況。 b計(jì)算已知正常的系統(tǒng)的處理器和內(nèi)存平均使用情況。(2)使用處理器和內(nèi)存使用情況來(lái)預(yù)測(cè)未知系統(tǒng)是否感染惡意軟件: a)如果處理器和內(nèi)存使用情況更接近感染主機(jī)的平均情況,將該系統(tǒng)標(biāo)記為已感染。 b)如果處理器和內(nèi)存使用情況更接近正常主機(jī)的平均使用情況,將該系統(tǒng)標(biāo)記為正常。注釋:一個(gè)分類器就是一組規(guī)則,或一個(gè)決策模型,它們是通過(guò)對(duì)一組訓(xùn)練數(shù)據(jù)進(jìn)行學(xué)習(xí)而產(chǎn)生的。實(shí)現(xiàn)方法首先,加載數(shù)據(jù)并進(jìn)行檢查。將數(shù)據(jù)進(jìn)行歸一化處理后,這些數(shù)字保持在同一尺度內(nèi)。為了進(jìn)一步探索這些數(shù)據(jù),可將這些數(shù)據(jù)描繪出來(lái)。給基于染而已代碼的狀態(tài)可以比較并區(qū)分處理器和內(nèi)存數(shù)據(jù),如圖所示。R代碼:library(ggplot2)gg<-ggplot(memproc,aes(proc,mem,color=state))gg<-gg+scale_color_brewer(palette="Set2")gg<-gg+geom_point(size=3)+theme_bw()print(gg)注意:歸一化化定義:歸一化化就是要把你需要處理的數(shù)據(jù)經(jīng)過(guò)處理后(通過(guò)某種算法)限制在你需要的一定范圍內(nèi)。首先歸一化是為了后面數(shù)據(jù)處理的方便,其次是保正程序運(yùn)行時(shí)收斂加快。線性函數(shù)轉(zhuǎn)換:

y=(x-MinValue)/(MaxValue-MinValue)實(shí)現(xiàn)方法實(shí)現(xiàn)方法第二步,對(duì)數(shù)據(jù)進(jìn)行預(yù)測(cè)。從需要檢測(cè)的數(shù)據(jù)中,選取其中的“proc”和“mem”值,然后計(jì)算這些值與剛才在算法訓(xùn)練過(guò)程中得到的均值距離有多遠(yuǎn)。在這里,我們采用了幾何中的勾股定理:a2+b2=c2,公式中a和吧是三角的兩條邊,c是斜邊。此處,a是訓(xùn)練和你測(cè)試得到的兩個(gè)proc值的差,b是訓(xùn)練和測(cè)試得到的mem值的差。得到這兩個(gè)距離后,僅作比較即可。R代碼:

predict.malware<-function(data){proc<-as.numeric(data[['proc']])mem<-as.numeric(data[['mem']])inf.a<-inf['proc']-procinf.b<-inf['mem']–mem

inf.dist<-sqrt(inf.a^2+inf.b^2)nrm.a<-nrm['proc']-procnrm.b<-nrm['mem']-mem

nrm.dist<-sqrt(nrm.a^2+nrm.b^2)ifelse(inf.dist<nrm.dist,"Infected","Normal")sum(test$state==prediction)/nrow(test)實(shí)現(xiàn)方法算出距離后,可以得到預(yù)測(cè)值的集合,并將這些預(yù)測(cè)值和真實(shí)值進(jìn)行比較。輸出圖像,如圖所示。實(shí)現(xiàn)方法為了判斷方法的好壞,需要看看在測(cè)試數(shù)據(jù)上預(yù)測(cè)準(zhǔn)確率有多少。使用計(jì)算預(yù)測(cè)準(zhǔn)確的數(shù)量除以預(yù)測(cè)的總數(shù)量。R代碼:sum(test$state==prediction)/nrow(test)##[1]0.8780488根據(jù)輸出的結(jié)果可知,本算法的準(zhǔn)確率約為88%,基本滿足了要求。這個(gè)結(jié)果也可以從上圖定量的觀察出來(lái)。這個(gè)分類器在兩個(gè)均值之間構(gòu)建了一條直線,并垂直于相交線,處于直線上面部分的數(shù)據(jù)被預(yù)測(cè)為感染惡意代碼系統(tǒng),而下面部分的數(shù)據(jù)被預(yù)測(cè)為未感染,分類錯(cuò)誤的個(gè)體在圖中進(jìn)行了

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論