亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

針對(duì)惡意行為的多層語(yǔ)義標(biāo)注及檢測(cè)方法

文檔序號(hào):6466072閱讀:199來(lái)源:國(guó)知局
專(zhuān)利名稱(chēng):針對(duì)惡意行為的多層語(yǔ)義標(biāo)注及檢測(cè)方法
針對(duì)惡意行為的多層語(yǔ)義標(biāo)注及檢測(cè)方法
一、 技術(shù)領(lǐng)域-
本發(fā)明涉及一種針對(duì)計(jì)算機(jī)惡意行為代碼的多層標(biāo)注和檢測(cè)方法,屬于計(jì) 算機(jī)安全技術(shù)領(lǐng)域,特別適用于二進(jìn)制可執(zhí)行代碼中惡意行為代碼的分析與識(shí) 別技術(shù)。
背景技術(shù)
長(zhǎng)期以來(lái),計(jì)算機(jī)病毒一直困擾著計(jì)算機(jī)專(zhuān)家和用戶(hù)。計(jì)算機(jī)病毒的復(fù)制 能力、傳播能力和破壞能力使它嚴(yán)重威脅計(jì)算機(jī)的正常使用。最近幾年,網(wǎng)絡(luò) 的飛速發(fā)展使計(jì)算機(jī)病毒的傳布更加便捷,計(jì)算機(jī)病毒程序的數(shù)量成爆炸性增 長(zhǎng)方式,對(duì)計(jì)算機(jī)系統(tǒng)和信息安全造成了嚴(yán)重的威脅。簡(jiǎn)單的計(jì)算機(jī)病毒生成 工具的出現(xiàn)使計(jì)算機(jī)病毒的編寫(xiě)成為普遍現(xiàn)象,這些都使計(jì)算機(jī)病毒防御的形 勢(shì)日益嚴(yán)峻。
代碼混淆技術(shù)是一種能夠有效抵抗代碼逆向分析,從而保護(hù)軟件自身知識(shí) 產(chǎn)權(quán)的一項(xiàng)技術(shù),但隨著該技術(shù)應(yīng)用于惡意軟件的編寫(xiě)工作,對(duì)目標(biāo)程序的分 析以及對(duì)已知病毒的檢測(cè)都造成了很大干擾。傳統(tǒng)惡意代碼分析的手段主要依 賴(lài)計(jì)算機(jī)病毒專(zhuān)家的人工分析,尤其是針對(duì)二進(jìn)制可執(zhí)行代碼的分析工作來(lái)說(shuō), 工作繁雜冗長(zhǎng),不僅容易出錯(cuò),而且耗時(shí)不菲,不能夠滿(mǎn)足社會(huì)應(yīng)對(duì)計(jì)算機(jī)病 毒的能力需求。當(dāng)前惡意代碼檢測(cè)方面使用的技術(shù)主要為特征碼掃描技術(shù),即 在目標(biāo)二進(jìn)制代碼中搜尋或匹配特定的特征碼序列或正則表達(dá)式,從而判定目 標(biāo)文件中是否包含特定特征碼信息。這種方法具有掃描速度快、開(kāi)銷(xiāo)較小等優(yōu) 點(diǎn),而且也積累了數(shù)量龐大的病毒特征碼庫(kù)。但另一方面,該方法無(wú)法有效應(yīng) 對(duì)各種多態(tài)和變形病毒產(chǎn)生的變體,也無(wú)法有效檢測(cè)出經(jīng)過(guò)混淆變形的病毒特
征碼,對(duì)于新的特征碼提取工作需要由病毒專(zhuān)家來(lái)完成,造成查毒軟件總是落 后于病毒出現(xiàn)之后一段較長(zhǎng)時(shí)間。因此需要推出新型惡意代碼分析輔助工具和 檢測(cè)工具,從而幫助計(jì)算機(jī)安全專(zhuān)家提高工作效率,并且進(jìn)一步提升計(jì)算機(jī)安 全防護(hù)類(lèi)軟件的防護(hù)能力。
發(fā)明內(nèi)容
本發(fā)明針對(duì)二進(jìn)制代碼中惡意行為的檢測(cè)問(wèn)題,提出 一種基于程序語(yǔ)義分 析的多層軟件惡意行為的標(biāo)注方法,以及在此標(biāo)注方法上的惡意行為監(jiān)測(cè)系統(tǒng), 主要用于解決未知計(jì)算機(jī)病毒的分析效率問(wèn)題和在更高層面上計(jì)算機(jī)惡意行為 的檢測(cè)問(wèn)題。
技術(shù)方案
本發(fā)明共分為兩個(gè)部分程序語(yǔ)義多層標(biāo)注方法Multilayer Denotation on Program Semantics (MDPS)和基于多層標(biāo)注的惡意行為檢測(cè)策略。
標(biāo)注子模塊在每一層針對(duì)特定的分析目標(biāo)對(duì)象(分別為二進(jìn)制代碼、線(xiàn)性指 令序列、過(guò)程控制流圖、文件過(guò)程調(diào)用圖和應(yīng)用程序文件)進(jìn)行標(biāo)注;檢測(cè)子 模塊基于適應(yīng)不同分析目標(biāo)對(duì)象的分析策略和算法對(duì)標(biāo)注信息在各個(gè)層面對(duì)惡 意行為進(jìn)行檢測(cè);標(biāo)注及檢測(cè)的各層之間利用分析過(guò)程中產(chǎn)生的中間檢測(cè)結(jié)果 傳遞信息,不同層次的分析相對(duì)于其他層次來(lái)說(shuō)是獨(dú)立的。
MDPS在逆向分析并提升的過(guò)程中,從五個(gè)不同層面對(duì)未知二進(jìn)制程序進(jìn) 行標(biāo)注,這五個(gè)層面分別為二進(jìn)制語(yǔ)義層L0、線(xiàn)性指令語(yǔ)義層L1、控制流圖 語(yǔ)義層L2、過(guò)程調(diào)用圖語(yǔ)義層L3和應(yīng)用程序級(jí)語(yǔ)義層L4。其中二進(jìn)制語(yǔ)義層 面LO的分析用于獲取二進(jìn)制文件的文件字段、惡意代碼特征碼、文件屬性等信 息,并進(jìn)行標(biāo)注;線(xiàn)性指令語(yǔ)義層面L1對(duì)那些指令間存在線(xiàn)性執(zhí)行順序關(guān)系的 指令序列進(jìn)行標(biāo)注,通常為基本塊內(nèi)部的指令序列;控制流圖語(yǔ)義層面L2在控
制流圖的基礎(chǔ)上,重點(diǎn)考慮對(duì)過(guò)程內(nèi)基本塊之間的聯(lián)系和特征進(jìn)行標(biāo)注;過(guò)程 調(diào)用圖語(yǔ)義層面L3分析當(dāng)前文件內(nèi)部存在的調(diào)用圖信息,其標(biāo)注的主要對(duì)象為 函數(shù)過(guò)程;應(yīng)用程序級(jí)語(yǔ)義層面L4結(jié)合LO層獲取的動(dòng)態(tài)鏈接文件彼此之間的 關(guān)聯(lián)信息,對(duì)當(dāng)前整個(gè)應(yīng)用程序進(jìn)行全面分析和標(biāo)注。
在多層標(biāo)注信息的基礎(chǔ)上,基于各個(gè)層分別對(duì)程序行為進(jìn)行定義,并結(jié)合 該定義構(gòu)造惡意行為分析庫(kù)。程序行為Program Behavior (pb)是指一系列有效 語(yǔ)句的序列列表,PB中語(yǔ)句之間的關(guān)系運(yùn)算定義如下
<formula>formula see original document page 7</formula>其中的關(guān)系符號(hào)解釋如下 s 表示空序列行為; a 表示單個(gè)語(yǔ)句;
- 表示線(xiàn)性順序,即不可互換位置,滿(mǎn)足左結(jié)合規(guī)則;滿(mǎn)足傳遞性質(zhì);
IS 表示兩端的子項(xiàng)可以整體互換位置,滿(mǎn)足左結(jié)合規(guī)則;滿(mǎn)足交換和傳
遞性質(zhì);
: 表示兩端的子項(xiàng)中選取其中一項(xiàng),滿(mǎn)足左結(jié)合規(guī)則;滿(mǎn)足交換和傳遞
性質(zhì);
表示兩端的子項(xiàng)相容,即將兩個(gè)pb進(jìn)行混合,在新的pb中保持原子項(xiàng)
中的既有順序;滿(mǎn)足左結(jié)合規(guī)則;滿(mǎn)足交換和傳遞性質(zhì); ()+表示括號(hào)內(nèi)的PB至少重復(fù)一次循環(huán),即PB-PB….PBo
至£^~次室復(fù)
另外,以上運(yùn)算之間滿(mǎn)足一定的優(yōu)先級(jí)關(guān)系,即()+》>)Ji>.,與此同時(shí),還 可以使用()來(lái)表示運(yùn)算優(yōu)先級(jí)。因此,可以將PB表示為一顆樹(shù)結(jié)構(gòu),其中中間 節(jié)點(diǎn)表示上述關(guān)系運(yùn)算符,葉子節(jié)點(diǎn)為程序語(yǔ)句。如對(duì)于PB-a 'p.(Y)+.SlK來(lái) 說(shuō),可以將其表示為如附圖2所示。 定義頭子行為
給定一個(gè)行為序列PB, ct。為包含的所有語(yǔ)句,對(duì)于3el,n],定義
及[cti,cg之間滿(mǎn)足的行為關(guān)聯(lián)規(guī)則一起構(gòu)成行為序列PB的頭子行為。 在此之外,還需要定義三個(gè)函數(shù)來(lái)幫助操作,如下 head : PB X PB — (T,P) tai! : PB X PB — PB mstch ; PB X P3 — {T,F}
其中head函數(shù)接收兩個(gè)PB, 一旦第二個(gè)PB是第一個(gè)PB的頭子行為,則返回T,否 則返回F;
teil函數(shù)也接收兩個(gè)PB,如果第二個(gè)PB是第一個(gè)PB的頭子行為,則返回剩下的部 分,否則返回第一個(gè)PB; mateh函數(shù)則匹配兩個(gè)PB, 一旦兩個(gè)PB相同,則返回T, 否則返回F。
在惡意行為檢測(cè)過(guò)程中,在不同層面結(jié)合相關(guān)惡意行為庫(kù)檢測(cè)目標(biāo)軟件中 是否存在庫(kù)中定義的內(nèi)容。整不檢測(cè)過(guò)程依據(jù)反編譯逆向分析技術(shù)為驅(qū)動(dòng),將 目標(biāo)二進(jìn)制文件逆向提升為不同層面的表示形式,從而進(jìn)一步進(jìn)行行為分析和 檢測(cè)。MDPS的優(yōu)點(diǎn)在于能夠充分利用現(xiàn)有的惡意代碼檢測(cè)機(jī)制,并且根據(jù)不 同層面的特點(diǎn),簡(jiǎn)化程序分析任務(wù)需求,在各個(gè)層面中積累相關(guān)分析的結(jié)果信 息,最終完成對(duì)于整個(gè)程序的分析。
針對(duì)一段未知代碼來(lái)說(shuō),可以通過(guò)分析得出該代碼段中是否包含有行為庫(kù) 中的完整行為或部分行為。為簡(jiǎn)化操作,僅分析出現(xiàn)頭匹配的情況,因此需要 結(jié)合程序的控制流走向進(jìn)行分析。當(dāng)匹配出一個(gè)完整PB時(shí),則在相應(yīng)的節(jié)點(diǎn)上 標(biāo)注出該陀對(duì)應(yīng)的說(shuō)明信息;當(dāng)完成了head匹配,即未知代碼中包含行為庫(kù)中某 行為的頭子行為,則將相關(guān)的行為tail部分加入臨時(shí)行為庫(kù),以有助于進(jìn)行進(jìn)一 步分析,直到匹配出整個(gè)行為,或者匹配失敗。
在數(shù)據(jù)流分析結(jié)果的基礎(chǔ)上,通過(guò)切片算法簡(jiǎn)化程序分析目標(biāo)代碼描述。
結(jié)合基本塊內(nèi)數(shù)據(jù)流分析結(jié)果,針對(duì)部分匹配的程序行為進(jìn)行簡(jiǎn)化,并將簡(jiǎn) 化后程序行為加入臨時(shí)行為匹配模板庫(kù)。
結(jié)合過(guò)程內(nèi)部分析結(jié)果,利用過(guò)程調(diào)用參數(shù)及返回值分析,連接跨過(guò)程的 數(shù)據(jù)傳輸鏈,針對(duì)部分匹配的程序行為進(jìn)行化簡(jiǎn),并將簡(jiǎn)化后的程序行為加入 臨時(shí)行為匹配模板庫(kù)。
本發(fā)明的有益效果
1、 本發(fā)明的針對(duì)惡意行為的多層語(yǔ)義標(biāo)注及檢測(cè)方法,能夠有效地將惡意 行為檢測(cè)的復(fù)雜性分解,充分利用各種不同檢測(cè)機(jī)制具有的優(yōu)點(diǎn),避開(kāi)不同機(jī) 制固有的缺陷,從而提高惡意行為檢測(cè)的適應(yīng)性和準(zhǔn)確性。
2、 本發(fā)明的針對(duì)惡意行為的多層語(yǔ)義標(biāo)注及檢測(cè)方法,提供新型惡意代碼 分析輔助工具和檢測(cè)工具,能幫助計(jì)算機(jī)安全專(zhuān)家提高工作效率,并且進(jìn)一步 提升計(jì)算機(jī)安全防護(hù)類(lèi)軟件的防護(hù)能力。


圖1為惡意行為代碼的多層標(biāo)注和檢測(cè)系統(tǒng)實(shí)現(xiàn)框架圖; 圖2為PB的樹(shù)形表示形式示例圖; 圖3為線(xiàn)性語(yǔ)句檢測(cè)層實(shí)現(xiàn)框架圖; 圖4為控制結(jié)構(gòu)流圖層實(shí)現(xiàn)框架圖5為過(guò)程調(diào)用圖層實(shí)現(xiàn)框架圖。 五具體實(shí)施例方式
參見(jiàn)圖l、圖2、圖3、圖4、圖5, 一種在惡意行為檢測(cè)中,應(yīng)多層語(yǔ)義標(biāo) 注技術(shù)記錄分析中間結(jié)果,并在此基礎(chǔ)上分層檢測(cè)標(biāo)注信息的方法,即針對(duì)惡 意行為的多層語(yǔ)義標(biāo)注及檢測(cè)方法。包括標(biāo)注子模塊和檢測(cè)子模塊,其中標(biāo)注 子模塊和檢測(cè)子模塊包括對(duì)二進(jìn)制語(yǔ)義層LO、對(duì)線(xiàn)性指令語(yǔ)義層L1、控制流圖 語(yǔ)義層L2、過(guò)程調(diào)用圖語(yǔ)義層L3和應(yīng)用程序級(jí)語(yǔ)義層L4分別標(biāo)注和檢測(cè);標(biāo) 注子模塊在每一層針對(duì)特定的分析目標(biāo)對(duì)象進(jìn)行標(biāo)注;檢測(cè)子模塊基于相應(yīng)的 分析策略和算法對(duì)標(biāo)注信息在各個(gè)層面對(duì)惡意行為進(jìn)行檢測(cè);標(biāo)注及檢測(cè)的各 層之間利用分析中間結(jié)果傳遞信息,不同層次的分析相對(duì)于其他層次來(lái)說(shuō)是獨(dú) 立的。其中二進(jìn)制語(yǔ)義層面LO的分析用于獲取二進(jìn)制文件的文件字段、惡意代 碼特征碼、文件屬性等信息,并進(jìn)行標(biāo)注;線(xiàn)性指令語(yǔ)義層面Ll對(duì)那些指令間 存在線(xiàn)性執(zhí)行順序關(guān)系的指令序列進(jìn)行標(biāo)注,通常為基本塊內(nèi)部的指令序列; 控制流圖語(yǔ)義層面L2在控制流圖的基礎(chǔ)上,重點(diǎn)考慮對(duì)過(guò)程內(nèi)基本塊之間的聯(lián) 系和特征進(jìn)行標(biāo)注;過(guò)程調(diào)用圖語(yǔ)義層面L3分析當(dāng)前文件內(nèi)部存在的調(diào)用圖信 息,其標(biāo)注的主要對(duì)象為函數(shù)過(guò)程,在調(diào)用圖基礎(chǔ)上針對(duì)跨過(guò)程惡意行為形式 進(jìn)行標(biāo)注,結(jié)合過(guò)程內(nèi)部分析結(jié)果,利用過(guò)程調(diào)用參數(shù)及返回值分析,連接跨 過(guò)程的數(shù)據(jù)傳輸鏈,針對(duì)部分匹配的程序行為進(jìn)行化簡(jiǎn),并將簡(jiǎn)化后的程序行 為加入臨時(shí)行為匹配模板庫(kù);應(yīng)用程序級(jí)語(yǔ)義層面L4結(jié)合L0層獲取的動(dòng)態(tài)鏈 接文件彼此之間的關(guān)聯(lián)信息,對(duì)當(dāng)前整個(gè)應(yīng)用程序進(jìn)行全面分析和標(biāo)注。
本發(fā)明基于反編譯逆向分析技術(shù)驅(qū)動(dòng),并且將分析信息轉(zhuǎn)變?yōu)楦颖阌陂?讀、理解和檢測(cè)的標(biāo)注形式。
L0層面結(jié)合目標(biāo)二進(jìn)制文件格式進(jìn)行分析,獲取目標(biāo)文件相關(guān)基本信息,
包括文件名、文件大小、主入口點(diǎn)地址、文件段名、段屬性信息值、文件導(dǎo)入 表和文件導(dǎo)出表等。
Ll層主要是針對(duì)程序中間表示基本塊進(jìn)行分析的,這是因?yàn)樵诨緣K內(nèi)能 夠保證語(yǔ)句之間維持線(xiàn)性關(guān)系。Ll層面立足與對(duì)二進(jìn)制文件進(jìn)行正確裝載并解 碼的基礎(chǔ)之上,將原二進(jìn)制指令流等價(jià)替換為由中間表示形式構(gòu)成的程序語(yǔ)句 流,并且對(duì)文件進(jìn)行正確的基本塊劃分。通過(guò)分析獲得每個(gè)基本塊的定值變量 集合和外部引用變量集合,可以針對(duì)該基本塊的定值變量集合進(jìn)行切片操作。 可知,由于基本塊內(nèi)語(yǔ)句之間是線(xiàn)性關(guān)系的,因此獲得切片的語(yǔ)句也是線(xiàn)性關(guān) 系?;緣K內(nèi)分析主要有三種情況完全匹配、不匹配和頭匹配,需要涉及的 相關(guān)函數(shù)為head和mato!i。結(jié)合分析內(nèi)容,需要標(biāo)注當(dāng)前基本塊完全匹配和頭匹 配的行為序列集合,對(duì)于頭匹配來(lái)說(shuō),還需要標(biāo)注出己經(jīng)檢測(cè)出的頭子行為序 列。
L2層針對(duì)過(guò)程內(nèi)控制流圖進(jìn)行分析。當(dāng)控制流圖中的一個(gè)基本塊BB來(lái)說(shuō), 如果出現(xiàn)頭匹配,則取出相關(guān)頭子行為和原匹配行為,并使用taU函數(shù)在BB后 繼的基本塊中作L1層檢測(cè)。當(dāng)分析完整個(gè)過(guò)程后,即可在過(guò)程中標(biāo)注出當(dāng)前過(guò) 程內(nèi)完全匹配和頭匹配的行為序列集合,并且標(biāo)注已經(jīng)匹配的頭子行為序列。
L3層則針對(duì)文件內(nèi)調(diào)用圖進(jìn)行分析。根據(jù)L0層分析獲取的文件導(dǎo)入表獲 取文件入口。 一個(gè)文件可能存在一個(gè)或多個(gè)調(diào)用入口,因此該文件的調(diào)用圖則 表現(xiàn)為一個(gè)擁有一個(gè)或多個(gè)起點(diǎn)有向圖結(jié)構(gòu)。結(jié)合L2層匹配的信息,若出現(xiàn)頭 匹配節(jié)點(diǎn),則在該節(jié)點(diǎn)后續(xù)節(jié)點(diǎn)過(guò)程中針對(duì)相關(guān)PB的tail子行為進(jìn)行L2或Ll層 檢測(cè)。L3層基本完成PB分析。
L4層分析則針對(duì)包含有多個(gè)動(dòng)態(tài)載入文件的應(yīng)用程序系統(tǒng)。通過(guò)各個(gè)文件的導(dǎo)
入表和導(dǎo)出表信息,建立應(yīng)用程序文件之間的關(guān)聯(lián)情況,從而載入各個(gè)相關(guān)的
動(dòng)態(tài)鏈接文件,以執(zhí)行L0 L3層的分析操作,并標(biāo)注分析結(jié)果。
如圖1所示,整個(gè)檢測(cè)過(guò)程表現(xiàn)為一個(gè)循環(huán)載入相關(guān)文件,并按照不同階 段進(jìn)行分析的過(guò)程。每一層的分析針對(duì)不同的分析對(duì)象,OOl模塊裝載目標(biāo)二進(jìn) 制文件,并且執(zhí)行LO層分析標(biāo)注策略。然后將分析結(jié)果提交至006模塊,結(jié)合 LO層特征庫(kù)中的內(nèi)容,最終完成LO層檢測(cè),并給出檢測(cè)結(jié)果。經(jīng)過(guò)001模塊 的分析,可以將二進(jìn)制文件進(jìn)行分解,并提取其中的二進(jìn)制指令流入口點(diǎn)信息, 從而在002模塊即可獲得以該入口點(diǎn)為起點(diǎn)的二進(jìn)制指令流。002模塊需要完成 指令解碼操作,將二進(jìn)制指令提升為語(yǔ)義等價(jià)的中間表示語(yǔ)句,并且完成基本 塊劃分與控制流圖構(gòu)建的工作。在002模塊結(jié)果的基礎(chǔ)上,可以在基本塊內(nèi)部 完成相關(guān)分析和切片操作,從而將基本塊細(xì)化為一個(gè)個(gè)關(guān)聯(lián)語(yǔ)句的序列,并在 此基礎(chǔ)上執(zhí)行L1層行為檢測(cè)和標(biāo)注。003模塊的輸入為各個(gè)過(guò)程的控制流圖, 在模塊內(nèi)部需要對(duì)過(guò)程控制流圖進(jìn)行分析和簡(jiǎn)化,識(shí)別其中隱含的條件分支結(jié) 構(gòu)和循環(huán)結(jié)構(gòu)信息。在此基礎(chǔ)上可以執(zhí)行L2層行為檢測(cè)和標(biāo)注。004模塊則需 要構(gòu)建整個(gè)程序的調(diào)用圖,并且分析過(guò)程間參數(shù)/返回值信息。在004模塊的分 析結(jié)果之上執(zhí)行L3層行為檢測(cè)和標(biāo)注操作,進(jìn)一步完成對(duì)整個(gè)文件的PB分析和 檢測(cè)過(guò)程。005模塊的任務(wù)是構(gòu)建整個(gè)應(yīng)用程序的系統(tǒng)級(jí)視圖,執(zhí)行該模塊之前, 需要提前裝載所有主應(yīng)用程序可執(zhí)行文件相關(guān)的動(dòng)態(tài)鏈接文件。對(duì)于某些已經(jīng) 經(jīng)過(guò)分析的文件來(lái)說(shuō),則可以直接讀取分析標(biāo)注信息執(zhí)行下一步分析。
圖3為L(zhǎng)2層具體實(shí)現(xiàn)框架圖,指令編碼庫(kù)用來(lái)記錄目標(biāo)機(jī)器指令的編碼方 式和策略,相關(guān)信息可以從該目標(biāo)機(jī)器文檔中獲取。在解碼模塊201中,結(jié)合 編碼庫(kù)信息對(duì)照二進(jìn)制指令流,對(duì)二進(jìn)制指令進(jìn)行逐條識(shí)別,并且轉(zhuǎn)變?yōu)橄鄳?yīng)
的中間表示語(yǔ)句流。在本發(fā)明專(zhuān)利中使用SSA語(yǔ)句作為程序分析所需中間表示 形式。在解碼過(guò)程中,202模塊還要對(duì)指令語(yǔ)義進(jìn)行初步分析。通過(guò)分析指令流 中存在的過(guò)程調(diào)用指令、返回指令、跳轉(zhuǎn)指令和其它改變控制流走向的指令, 劃分程序基本塊結(jié)構(gòu),構(gòu)建整個(gè)文件的過(guò)程調(diào)用圖和控制流圖,并按照跳轉(zhuǎn)指 令的目標(biāo)地址開(kāi)始進(jìn)一步解碼操作。該方法被稱(chēng)為行進(jìn)遞歸解碼方法。203模塊 負(fù)責(zé)對(duì)一個(gè)給定基本塊中的語(yǔ)句執(zhí)行數(shù)據(jù)流分析操作,獲得該基本塊內(nèi)部語(yǔ)句 定值或外部引用的變量集合,之后在204模塊中針對(duì)該基本塊定值變量集合進(jìn) 行程序切片操作。由于基本塊內(nèi)部語(yǔ)句之間的關(guān)系是線(xiàn)性的,因此切片內(nèi)部語(yǔ) 句也保持線(xiàn)性關(guān)系。205模塊負(fù)責(zé)對(duì)切片內(nèi)部語(yǔ)句進(jìn)行數(shù)據(jù)依賴(lài)分析,并將基本 塊內(nèi)部語(yǔ)句轉(zhuǎn)化為PB表示形式,在206模塊結(jié)合PB行為庫(kù)中定義的已知惡意行 為模板進(jìn)行匹配操作,并于207模塊中將匹配分析信息標(biāo)注于表示基本塊信息 的數(shù)據(jù)結(jié)構(gòu)對(duì)象。
圖4表示L3層分析的具體實(shí)現(xiàn)框架圖。該模塊接受L2層的分析結(jié)果,在 控制流圖的基礎(chǔ)上,301模塊識(shí)別流圖中存在的分支結(jié)構(gòu)和循環(huán)結(jié)構(gòu)信息,將使 用跳轉(zhuǎn)語(yǔ)句表示的控制流信息轉(zhuǎn)變?yōu)槭褂酶呒?jí)控制結(jié)構(gòu)(如IF...ELSE、 DO...UNTIL和WHILE...DO結(jié)構(gòu))表示的控制流信息。在302模塊中,遍歷流 圖信息中存在的路徑,303模塊在不同路徑下,利用基本塊間的數(shù)據(jù)依賴(lài)關(guān)系將 線(xiàn)性PB拼接為內(nèi)容更加豐富的PB描述。與此同時(shí),303模塊還需要提取基本塊內(nèi) 部標(biāo)注的部分行為匹配信息,利用tail函數(shù)獲取后續(xù)相關(guān)行為,加PB描述庫(kù)。304 模塊利用改變后的行為庫(kù)信息進(jìn)行行為匹配,并在305模塊將匹配分析結(jié)果標(biāo) 注于表示程序過(guò)程的數(shù)據(jù)結(jié)構(gòu)對(duì)象之上。
圖5為L(zhǎng)4層分析的具體實(shí)現(xiàn)框圖。其中401模塊負(fù)責(zé)分析過(guò)程之間的調(diào)用
關(guān)系,尤其是針對(duì)遞歸調(diào)用信息進(jìn)行分析,這主要是因?yàn)檫f歸調(diào)用往往在調(diào)用
圖中構(gòu)成環(huán)狀結(jié)構(gòu),因此可以通過(guò)分析簡(jiǎn)化調(diào)用圖的分析難度。402模塊則進(jìn)行 過(guò)程間數(shù)據(jù)流分析,依據(jù)數(shù)據(jù)流分析結(jié)果確定過(guò)程間傳遞的參數(shù)和返回值變量。 因此,403模塊在入口點(diǎn)到出口,點(diǎn)的每一條執(zhí)行路徑之上,便可以利用參數(shù)及返 回值信息,對(duì)PB進(jìn)行拼接,并且在404模塊中結(jié)合PB行為信息庫(kù)進(jìn)行匹配檢測(cè) 分析,在405模塊中將分析結(jié)果標(biāo)注于表示整個(gè)文件的調(diào)用圖結(jié)構(gòu)之上。
權(quán)利要求
1、一種針對(duì)惡意行為的多層語(yǔ)義標(biāo)注及檢測(cè)方法,包括標(biāo)注子模塊和檢測(cè)子模塊,其中標(biāo)注子模塊和檢測(cè)子模塊包括對(duì)二進(jìn)制語(yǔ)義層的標(biāo)注和檢測(cè),其特征在于(1)標(biāo)注子模塊和檢測(cè)子模塊還包括對(duì)線(xiàn)性指令語(yǔ)義層、控制流圖語(yǔ)義層、過(guò)程調(diào)用圖語(yǔ)義層和應(yīng)用程序級(jí)語(yǔ)義層分別標(biāo)注和檢測(cè);(2)標(biāo)注子模塊在每一層針對(duì)特定的分析目標(biāo)對(duì)象進(jìn)行標(biāo)注,所述分析目標(biāo)分別為二進(jìn)制代碼、線(xiàn)性指令序列、過(guò)程控制流圖、文件過(guò)程調(diào)用圖和應(yīng)用程序文件;(3)檢測(cè)子模塊基于適應(yīng)不同分析目標(biāo)對(duì)象的分析策略和算法對(duì)標(biāo)注信息在各個(gè)層面對(duì)惡意行為進(jìn)行檢測(cè);(4)標(biāo)注及檢測(cè)的各層之間利用分析過(guò)程中產(chǎn)生的中間檢測(cè)結(jié)果傳遞信息,不同層次的分析相對(duì)于其他層次來(lái)說(shuō)是獨(dú)立的。
2、 根據(jù)權(quán)利要求1所述的多層語(yǔ)義標(biāo)注及檢測(cè)方法,其特征在于在五個(gè) 層面對(duì)代碼語(yǔ)義進(jìn)行分析,分別為(1) 在二進(jìn)制層面,對(duì)二進(jìn)制目標(biāo)文件中惡意行為代碼進(jìn)行分析和標(biāo)注, 然后將分析結(jié)果結(jié)合該層特征庫(kù)中的內(nèi)容比較,最終完成對(duì)該層的檢測(cè),并給 出檢測(cè)結(jié)果;(2) 在線(xiàn)性指令層面,對(duì)二進(jìn)制文件分解,提取其中的二進(jìn)制指令流入口 點(diǎn)信息;對(duì)二進(jìn)制指令流進(jìn)行解碼和語(yǔ)義分析,在機(jī)器指令解碼塊內(nèi)部執(zhí)行針 對(duì)線(xiàn)性惡意行為進(jìn)行標(biāo)注、分析,然后將分析結(jié)果結(jié)合該層序列庫(kù)內(nèi)容進(jìn)行對(duì) 該層的檢測(cè),并給出檢測(cè)結(jié)果; (3) 在控制流圖層面,結(jié)合程序控制流關(guān)系,將指令語(yǔ)義層的線(xiàn)性行為分 析結(jié)果進(jìn)行提升與拼接,在線(xiàn)性代碼的分析基礎(chǔ)上,分析帶有分支和循環(huán)結(jié)構(gòu) 的惡意行為,并對(duì)其進(jìn)行標(biāo)注,結(jié)合該層序列庫(kù)內(nèi)容進(jìn)行對(duì)該層的檢測(cè),并給 出檢測(cè)結(jié)果;(4) 在過(guò)程調(diào)用圖層面,從文件整體角度出發(fā),對(duì)過(guò)程間數(shù)據(jù)流進(jìn)行分析, 依據(jù)過(guò)程內(nèi)部行為分析結(jié)果,在調(diào)用圖基礎(chǔ)上針對(duì)跨過(guò)程惡意行為形式進(jìn)行標(biāo) 注,結(jié)合該層行為庫(kù)內(nèi)容進(jìn)行對(duì)該層的檢測(cè),并給出檢測(cè)結(jié)果;(5) 在應(yīng)用程序級(jí)層面,從整個(gè)應(yīng)用程序角度出發(fā),構(gòu)建應(yīng)用程序級(jí)文件 視圖,依據(jù)文件內(nèi)部行為分析結(jié)果,分析并標(biāo)注出整個(gè)目標(biāo)軟件系統(tǒng)中可能存 在的惡意行為,結(jié)合該層行為庫(kù)內(nèi)容進(jìn)行對(duì)該層的檢測(cè),并給出檢測(cè)結(jié)果。
3、 根據(jù)權(quán)利要求1所述的多層語(yǔ)義標(biāo)注及檢測(cè)方法,其特征在于所述分 析策略為基于對(duì)反編譯逆向分析的目標(biāo)程序行為進(jìn)行分析。
4、 根據(jù)權(quán)利要求1所述的多層語(yǔ)義標(biāo)注及檢測(cè)方法,其特征在于所述程 序行為被定義為Backus-Naul范式,并且利用五種語(yǔ)句間的關(guān)系運(yùn)算來(lái)刻畫(huà)程序 行為,以及應(yīng)用于惡意代碼檢測(cè)的基于Backus-Naul范式的惡意行為信息描述 庫(kù)。
5、 根據(jù)權(quán)利要求2所述的多層語(yǔ)義標(biāo)注及檢測(cè)方法,其特征在于在線(xiàn)性 指令層面的分析包括獲取二進(jìn)制文件的文件字段、惡意代碼特征碼、文件屬性 信息,并進(jìn)行標(biāo)注。
6、 根據(jù)權(quán)利要求2所述的多層語(yǔ)義標(biāo)注及檢測(cè)方法,其特征在于在控制流圖語(yǔ)義層面在控制流圖的基礎(chǔ)上,重點(diǎn)考慮對(duì)過(guò)程內(nèi)基本塊之間的聯(lián)系和特征進(jìn)行標(biāo)注。
7、 根據(jù)權(quán)利要求2所述的多層語(yǔ)義標(biāo)注及檢測(cè)方法,其特征在于過(guò)程調(diào) 用圖語(yǔ)義層面分析當(dāng)前文件內(nèi)部存在的調(diào)用圖信息,其標(biāo)注的主要對(duì)象為函數(shù) 過(guò)程,在調(diào)用圖基礎(chǔ)上針對(duì)跨過(guò)程惡意行為形式進(jìn)行標(biāo)注;結(jié)合過(guò)程內(nèi)部分析 結(jié)果,利用過(guò)程調(diào)用參數(shù)及返回值分析,連接跨過(guò)程的數(shù)據(jù)傳輸鏈,針對(duì)部分 匹配的程序行為進(jìn)行化簡(jiǎn),并將簡(jiǎn)化后的程序行為加入臨時(shí)行為匹配模板庫(kù)。
8、 根據(jù)權(quán)利要求2所述的多層語(yǔ)義標(biāo)注及檢測(cè)方法,其特征在于從應(yīng)用 程序角度出發(fā),依據(jù)文件內(nèi)部行為分析結(jié)果,應(yīng)用程序級(jí)語(yǔ)義層面結(jié)合二進(jìn)制 語(yǔ)義層面層獲取的動(dòng)態(tài)鏈哮文件彼此之間的關(guān)聯(lián)信息,對(duì)當(dāng)前整個(gè)目標(biāo)軟件系 統(tǒng)中可能存在的惡意行為進(jìn)行全面分析和標(biāo)注。
9、 根據(jù)權(quán)利要求6所述的多層語(yǔ)義標(biāo)注及檢測(cè)方法,其特征在于在數(shù)據(jù) 流分析結(jié)果的基礎(chǔ)上,通過(guò)切片算法簡(jiǎn)化程序分析目標(biāo)代碼描述。
10、 根據(jù)權(quán)利要求9所述的多層語(yǔ)義標(biāo)注及檢測(cè)方法,其特征在于結(jié)合 基本塊內(nèi)數(shù)據(jù)流分析結(jié)果,針對(duì)部分匹配的程序行為進(jìn)行簡(jiǎn)化,并將簡(jiǎn)化后程 序行為加入臨時(shí)行為匹配模板庫(kù)。
全文摘要
本發(fā)明涉及一種在惡意行為檢測(cè)中,應(yīng)用多層語(yǔ)義標(biāo)注技術(shù)記錄分析中間結(jié)果,并在此基礎(chǔ)上分層檢測(cè)標(biāo)注信息的方法。所述模型包括兩個(gè)部分,標(biāo)注子模塊和檢測(cè)子模塊。其中標(biāo)注子模塊包括二進(jìn)制語(yǔ)義層、線(xiàn)性指令語(yǔ)義層、控制流圖語(yǔ)義層、過(guò)程調(diào)用圖語(yǔ)義層和應(yīng)用程序級(jí)語(yǔ)義層。每一層針對(duì)特定的分析目標(biāo)對(duì)象進(jìn)行標(biāo)注。檢測(cè)子模塊基于相應(yīng)的分析策略和算法對(duì)標(biāo)注信息在多個(gè)層面對(duì)惡意行為進(jìn)行檢測(cè)。其優(yōu)點(diǎn)在于能夠有效地將惡意行為檢測(cè)的復(fù)雜性分解,充分利用各種不同檢測(cè)機(jī)制具有的優(yōu)點(diǎn),避開(kāi)不同機(jī)制固有的缺陷,從而提高惡意行為檢測(cè)的適應(yīng)性和準(zhǔn)確性。
文檔編號(hào)G06F21/00GK101359351SQ20081014145
公開(kāi)日2009年2月4日 申請(qǐng)日期2008年9月25日 優(yōu)先權(quán)日2008年9月25日
發(fā)明者文 付, 劉曉楠, 龐建民, 張靖博, 強(qiáng) 王, 白莉莉, 趙榮彩, 韓小素 申請(qǐng)人:中國(guó)人民解放軍信息工程大學(xué)
網(wǎng)友詢(xún)問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1