基于數(shù)據(jù)挖掘的多軌跡惡意程序特征檢測(cè)方法
【專利說(shuō)明】基于數(shù)據(jù)挖掘的多軌跡惡意程序特征檢測(cè)方法 (一) 、技術(shù)領(lǐng)域:
[0001] 本發(fā)明涉及一種惡意程序特征檢測(cè)方法,特別是涉及一種基于數(shù)據(jù)挖掘的多軌跡 惡意程序特征檢測(cè)方法。 (二) 、【背景技術(shù)】:
[0002] 目前,基于靜態(tài)逆向的檢測(cè)方法難以突破惡意代碼的防反匯編技術(shù),無(wú)法提取出 惡意代碼特征并實(shí)施檢測(cè);基于特征碼匹配機(jī)制的商用殺毒軟件的病毒庫(kù)的更新存在嚴(yán)重 的滯后。但惡意代碼及其變種的惡意行為是不變的,所以對(duì)惡意代碼的特征提取要從其運(yùn) 行時(shí)的行為進(jìn)行動(dòng)態(tài)分析。
[0003] 1.惡意代碼檢測(cè):
[0004] 惡意代碼檢測(cè)方法可以分為基于啟發(fā)式(heuristic, based)的檢測(cè)方法和基于 特征(signature, based)的檢測(cè)方法兩大類?;趩l(fā)式的檢測(cè)方法通過(guò)比較系統(tǒng)上層 信息和取自內(nèi)核的系統(tǒng)狀態(tài)來(lái)識(shí)別隱藏的文件、進(jìn)程及注冊(cè)表信息,啟發(fā)式檢測(cè)可以發(fā)現(xiàn) 未知的惡意程序,但其規(guī)則的生成依賴于分析人員的經(jīng)驗(yàn),在應(yīng)用中易存在高誤報(bào)及漏報(bào) 率,因此,在檢測(cè)系統(tǒng)中特別是商用殺毒軟件中應(yīng)用較少?;谔卣鞯臋z測(cè)方法是根據(jù)由惡 意代碼中提取的特征進(jìn)行檢測(cè),與啟發(fā)式檢測(cè)方法相比,其具有檢測(cè)效率高、誤報(bào)率低的優(yōu) 點(diǎn),因此被廣泛應(yīng)用于惡意代碼檢測(cè)工具中,也是目前惡意代碼檢測(cè)的主流方法。
[0005] 基于特征的檢測(cè)方法分為靜態(tài)特征檢測(cè)和動(dòng)態(tài)特征檢測(cè)。靜態(tài)特征檢測(cè)方法是指 通過(guò)靜態(tài)分析文件的PE結(jié)構(gòu)、二進(jìn)制字節(jié)碼、反匯編后的代碼等手段,獲取惡意代碼的特 征進(jìn)行檢測(cè),基于靜態(tài)特征的檢測(cè)不需實(shí)際運(yùn)行惡意代碼程序,實(shí)現(xiàn)相對(duì)比較簡(jiǎn)單,目前基 于靜態(tài)特征檢測(cè)的研究比較多,靜態(tài)檢測(cè)建立在對(duì)PE文件靜態(tài)分析的基礎(chǔ)上的,其優(yōu)點(diǎn)是 不用執(zhí)行惡意代碼,不會(huì)對(duì)系統(tǒng)造成破壞,但是目前許多惡意軟件都采用加殼、混淆技術(shù)干 擾反匯編,如果脫殼或解壓不成功,PE文件的靜態(tài)分析也就無(wú)法完成,將導(dǎo)致檢測(cè)失敗,而 且,API序列的時(shí)間信息被篡改也可以逃過(guò)檢測(cè)程序。基于動(dòng)態(tài)特征的檢測(cè)方法是將惡意 代碼程序放在虛擬環(huán)境中執(zhí)行,并監(jiān)控其行為獲得其行為特征,某些惡意程序會(huì)檢測(cè)到虛 擬殺毒中的虛擬環(huán)境,通過(guò)在代碼中加入特殊指令或構(gòu)造特殊結(jié)構(gòu)從而繞過(guò)檢測(cè)程序,導(dǎo) 致殺毒軟件無(wú)法檢測(cè)到惡意程序,在虛擬動(dòng)態(tài)檢測(cè)中存在程序執(zhí)行多路徑問(wèn)題,惡意程序 在實(shí)際運(yùn)行過(guò)程中會(huì)因輸入數(shù)據(jù)不同執(zhí)行不同的路徑,動(dòng)態(tài)獲取程序的惡意行為無(wú)法獲得 其全部的惡意行為,從而導(dǎo)致檢測(cè)中出現(xiàn)漏報(bào)情況。
[0006] 2.基于數(shù)據(jù)挖掘的惡意代碼檢測(cè)方法:
[0007] 序列模式的發(fā)現(xiàn)(即在序列數(shù)據(jù)庫(kù)中找出所有的頻繁子序列)是數(shù)據(jù)挖掘領(lǐng)域一 個(gè)活躍的研究分支。數(shù)據(jù)挖掘中序列模式算法在對(duì)惡意代碼檢測(cè)中有著很好的應(yīng)用。目前 已有采用機(jī)器代碼的字節(jié)序列變長(zhǎng)N-gram作為特征提取方法,用加權(quán)信息增益作為特征 選擇方法,使用決策樹(shù)、支持向量機(jī)、樸素貝葉斯等多種分類器進(jìn)行惡意代碼檢測(cè);也有采 用數(shù)據(jù)挖掘中類Apriori算法實(shí)現(xiàn)對(duì)惡意代碼的檢測(cè)。但是上述方法都是靜態(tài)提取行為特 征,仍無(wú)法克服靜態(tài)檢測(cè)的缺陷。 (三)、
【發(fā)明內(nèi)容】
:
[0008] 本發(fā)明要解決的技術(shù)問(wèn)題是:提供一種檢測(cè)準(zhǔn)確率高的基于數(shù)據(jù)挖掘的多軌跡惡 意程序特征檢測(cè)方法。
[0009] 本發(fā)明的技術(shù)方案:一種基于數(shù)據(jù)挖掘的多軌跡惡意程序特征檢測(cè)方法,含有行 為軌跡獲取步驟、分片步驟、特征提取與特征庫(kù)構(gòu)建步驟、度量檢測(cè)步驟;
[0010] 行為軌跡獲取步驟獲取程序動(dòng)態(tài)運(yùn)行的系統(tǒng)調(diào)用序列,是模型的基礎(chǔ);
[0011] 分片步驟對(duì)獲取到的軟件行為軌跡進(jìn)行分片,以適應(yīng)挖掘過(guò)程的需要;
[0012] 特征提取與特征庫(kù)構(gòu)建步驟采用數(shù)據(jù)挖據(jù)中改進(jìn)的序列模式挖掘算法 (prefixspan-x算法)獲取文件流、網(wǎng)絡(luò)流和資源流行為頻繁子序列集,并剔除正常程序行 為軌跡片段,構(gòu)造惡意行為特征庫(kù);
[0013] 度量檢測(cè)步驟依據(jù)構(gòu)建的三維特征庫(kù)對(duì)實(shí)時(shí)運(yùn)行的程序進(jìn)行度量檢測(cè)。
[0014] 行為軌跡獲取步驟采用Iinux系統(tǒng)工具strace對(duì)程序進(jìn)行動(dòng)態(tài)跟蹤,并獲取其運(yùn) 行時(shí)的執(zhí)行軌跡。
[0015] 訓(xùn)練集中獲取的行為軌跡需進(jìn)行分片處理,分片的大小決定這系統(tǒng)的效率和準(zhǔn)確 性。
[0016] 特征提取與特征庫(kù)構(gòu)建步驟中:
[0017] 改進(jìn)的序列模式挖掘算法(prefixspan-x算法)通過(guò)在搜索滿足最小支持度的序 列時(shí)用AC自動(dòng)機(jī)進(jìn)行優(yōu)化,并在構(gòu)造投影數(shù)據(jù)庫(kù)過(guò)程中舍棄不滿足最小長(zhǎng)度的頻繁序列, 從而優(yōu)化挖掘過(guò)程中的時(shí)空開(kāi)銷;
[0018] 特征庫(kù)(Signature Database,SD)是由一系列表現(xiàn)惡意程序的特征構(gòu)成的數(shù)據(jù) 庫(kù);
[0019] 數(shù)據(jù)挖掘中序列模式挖掘的算法能夠很好解決在龐大的序列數(shù)據(jù)庫(kù)中挖掘軟件 行為特征問(wèn)題,本發(fā)明采用改進(jìn)的序列模式挖掘算法Prefixspan-x進(jìn)行序列挖掘,并用正 常行為軌跡訓(xùn)練集剔除挖掘到的頻繁序列中的正常行為片段,構(gòu)建特征庫(kù);
[0020] 在序列模式挖掘算法中,prefixspan與其它算法相比有較好的性能,改進(jìn)的序列 模式挖掘算法prefixspan-x效率更高,能適應(yīng)大量序列模式挖掘提取惡意代碼特征序列。 [0021 ] 特征庫(kù)由三維特征向量空間構(gòu)成:文件流特征向量空間、網(wǎng)絡(luò)流特征向量空間和 資源流特征向量空間;
[0022]
[0023] 式⑴中代表文件流特征向量空間,瓦代表網(wǎng)絡(luò)流特征庫(kù)向量空間,S代表 資源流特征向量空間。
[0024] 特征庫(kù)構(gòu)建分為兩個(gè)階段,階段一是基于改進(jìn)的序列模式挖掘算法 (Prefixspan-x算法)的頻繁子序列的挖掘,階段二為對(duì)階段一提取的頻繁子序列集進(jìn)行 精簡(jiǎn);
[0025] 階段一的具體過(guò)程如下:對(duì)給定訓(xùn)練集中的惡意程序,獲取惡意程序的文件流 行為軌跡、網(wǎng)絡(luò)流行為軌跡、資源控制流行為軌跡,并分別初始化文件流行為軌跡訓(xùn)練 集、網(wǎng)絡(luò)流行為軌跡訓(xùn)練集、資源控制流行為軌跡訓(xùn)練集;采用改進(jìn)的序列模式挖掘算法 (Prefixspan-x算法)挖掘出頻繁子序列集;
[0026] 階段二是對(duì)正常行為軌跡片段的過(guò)濾,在階段一中提取的頻繁子序列集中不但包 含了惡意行為軌跡的片段,也包含了正常行為軌跡的片段,過(guò)濾掉正常行為軌跡片段,可生 成惡意行為特征向量空間;正常行為軌跡的數(shù)據(jù)集采用初始操作系統(tǒng)中正常的程序運(yùn)行后 的行為軌跡。
[0027] 度量檢測(cè)步驟采用多軌跡度量算法,依據(jù)程序運(yùn)行時(shí)的文件操作軌跡、網(wǎng)絡(luò)訪問(wèn) 軌跡和內(nèi)存資源使用軌跡對(duì)獲取到的行為序列實(shí)時(shí)度量,根據(jù)度量結(jié)果,依據(jù)評(píng)估標(biāo)準(zhǔn)與 準(zhǔn)則對(duì)程序的實(shí)時(shí)行為進(jìn)行評(píng)估,評(píng)估結(jié)果反饋至系統(tǒng)管控進(jìn)程,實(shí)現(xiàn)對(duì)于惡意程序的動(dòng) 態(tài)檢測(cè)。
[0028] 本發(fā)明的有益效果:
[0029] 本發(fā)明針對(duì)當(dāng)前惡意程序行為特征檢測(cè)存在準(zhǔn)確率低、誤報(bào)率高等問(wèn)題,根據(jù)惡 意程序的行為特征,采用多軌跡交叉檢測(cè)方法,用文件操作、網(wǎng)絡(luò)訪問(wèn)、內(nèi)存資源訪問(wèn)的行 為特征構(gòu)建三維惡意行為特征庫(kù),提高匹配的精確度;針對(duì)特征庫(kù)構(gòu)建效率和準(zhǔn)確度問(wèn)題, 設(shè)計(jì)了數(shù)據(jù)挖掘改進(jìn)的算法一prefixspan-x,在構(gòu)造投影數(shù)據(jù)庫(kù)過(guò)程中結(jié)合AC自動(dòng)機(jī)優(yōu) 化頻繁序列查詢,并舍去不滿足最小長(zhǎng)度頻繁序列,從而優(yōu)化惡意行為特征挖掘效率;本發(fā) 明采用動(dòng)態(tài)提取惡意軟件行為特征庫(kù),并進(jìn)行閾值匹配,能夠克服靜態(tài)反匯編方式獲取軟 件行為軌跡中軟件加殼、混淆帶來(lái)的檢測(cè)困難,從而獲得較高的準(zhǔn)確率。本發(fā)明能實(shí)現(xiàn)在 Linux系統(tǒng)中運(yùn)行的程序?qū)嵤﹦?dòng)態(tài)監(jiān)控,保證系統(tǒng)和數(shù)據(jù)安全。 (四) 、【附圖說(shuō)明】:
[0030] 圖1為基于數(shù)據(jù)挖掘的多軌跡惡意程序特征檢測(cè)方法的流程示意圖。 (五) 、【具體實(shí)施方式】:
[0031] 基于數(shù)據(jù)挖掘的多軌跡惡意程序特征檢測(cè)方法(如圖1所示)含有行為軌跡獲取 步驟、分片步驟、特征提取與特征庫(kù)構(gòu)建步驟、度量檢測(cè)步驟;
[0032] 行為軌跡獲取步驟獲取程序動(dòng)態(tài)運(yùn)行的系統(tǒng)調(diào)用序列,是模型的基礎(chǔ);
[0033] 分片步驟對(duì)獲取到的軟件行為軌跡進(jìn)行分片,以適應(yīng)挖掘過(guò)程的需要;
[0034] 特征提取與特征庫(kù)構(gòu)建步驟采用數(shù)據(jù)挖據(jù)中改進(jìn)的序列模式挖掘算法 (prefixspan-x算法)獲取文件流、網(wǎng)絡(luò)流和資源流行為頻繁子序列集,并剔除正常程序行 為軌跡片段,構(gòu)造惡意行為特征庫(kù);
[0035] 度量檢測(cè)步驟依據(jù)構(gòu)建的三維特征庫(kù)對(duì)實(shí)時(shí)運(yùn)行的程序進(jìn)行度量檢測(cè)。
[0036] 彳丁為軌跡獲取步驟米用Iinux系統(tǒng)工具strace對(duì)程序進(jìn)彳丁動(dòng)態(tài)跟蹤,并獲取其運(yùn) 行時(shí)的執(zhí)行軌跡。
[0037]訓(xùn)練集中獲取的行為軌跡需進(jìn)行分片處理,分片的大小決定這系統(tǒng)的效率和準(zhǔn)確 性。
[0038] 特征提取與特征庫(kù)構(gòu)建步驟中:
[0039] 改進(jìn)的序列模式挖掘算法(prefixspan-x算法)通過(guò)在搜索滿足最小支持度的序 列時(shí)用AC自動(dòng)機(jī)進(jìn)行優(yōu)化,并在構(gòu)造投影數(shù)據(jù)庫(kù)過(guò)程中舍棄不滿足最小長(zhǎng)度的頻繁序列, 從而優(yōu)化挖掘過(guò)程中的時(shí)空開(kāi)銷;
[0040] 特征庫(kù)(Signature Database,SD)是由一系列表現(xiàn)惡意程序的特征構(gòu)成的數(shù)據(jù) 庫(kù);
[0041] 數(shù)據(jù)挖掘中序列模式挖掘的算法能夠很好解決在龐大的序列數(shù)據(jù)庫(kù)中挖掘軟件 行為特征問(wèn)題,本發(fā)明采用改進(jìn)的序列模式挖掘算法Prefixspan-x進(jìn)行序列挖掘,并用正 常行為軌跡訓(xùn)練集剔除挖掘到的頻繁序列中的正常行為片段,構(gòu)建特征庫(kù);
[0042] 在序列模式挖掘算法中,prefixspan與其它算法相比有較好的性能,改進(jìn)的序列 模式挖掘算法prefixspan-x效率更高,能適應(yīng)大量序列模式挖掘提取惡意代碼特征序列。
[0043] 特征庫(kù)由三維特征向量空間構(gòu)成:文件流特征向量空間、網(wǎng)絡(luò)流特征向量空間和 資源流特征向量空間;
[0044]
[0045] 式⑴中g(shù)代表文件流特征向量空間,瓦代表網(wǎng)絡(luò)流特征庫(kù)向量空間,5代表 資源流特征向量空間。
[0046] 度量檢測(cè)步驟采用多軌跡度量算法,依據(jù)程序運(yùn)行時(shí)的文件操作軌跡、網(wǎng)絡(luò)訪問(wèn) 軌跡和內(nèi)存資源使用軌跡對(duì)獲取到的行為序列實(shí)時(shí)度量,根據(jù)度量結(jié)果,依據(jù)評(píng)估標(biāo)準(zhǔn)與 準(zhǔn)則對(duì)程序的實(shí)時(shí)行為進(jìn)行評(píng)估,評(píng)估結(jié)果反饋至系統(tǒng)管控進(jìn)程,實(shí)現(xiàn)對(duì)于惡意程序的動(dòng) 態(tài)檢測(cè)。
[0047] 為了更透徹、更直觀地理解基于數(shù)據(jù)挖掘的多軌跡惡意程序特征檢測(cè)方法,下面 對(duì)其進(jìn)行更加詳細(xì)的描述:
[0048] 1.改進(jìn)的序列模式挖掘算法Prefixspan-x :
[0049] prefixSpan算法在挖掘過(guò)程中不產(chǎn)生候選序列,且相對(duì)于原始的序列數(shù)據(jù)庫(kù),投 影數(shù)據(jù)庫(kù)的規(guī)模不斷減小。然而構(gòu)造投影數(shù)據(jù)庫(kù)的開(kāi)銷巨大,不能很好地解決密數(shù)據(jù)集或 長(zhǎng)模式的挖掘問(wèn)題。遞歸地構(gòu)建大量投影數(shù)據(jù)庫(kù)和算法執(zhí)行過(guò)程中反復(fù)掃描投影數(shù)據(jù)庫(kù)是 算法的主要開(kāi)銷。減少投影數(shù)據(jù)庫(kù)的規(guī)模和優(yōu)化掃描時(shí)間是改進(jìn)PrefixSpas算法的主要 途徑。Prefixspan-x算法通過(guò)在搜索滿足最小支持度的序列時(shí)用AC自動(dòng)機(jī)進(jìn)行優(yōu)化,并 在構(gòu)造投影數(shù)據(jù)庫(kù)過(guò)程中舍棄不滿足最小長(zhǎng)度的頻繁序列,從而優(yōu)化挖掘過(guò)程中的時(shí)空開(kāi) 銷。
[0050] Pref ixspan-x 算法如下:
[0051] 輸入:input (S,min_sup, L_min) //S是序列數(shù)據(jù)庫(kù),min_sup為最小支持閾 值,L_min是頻繁序列最小長(zhǎng)度
[0052] 輸出:〇utput(Ml) //Ml是滿足最小支持度和最小長(zhǎng)度頻繁序列集
[0053] 方法:prefixspan-x (〈>,0, S,L_min)
[0054] 子程序:prefixspan-x(a, I (a), S|a,