• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    基于API關(guān)聯(lián)性的惡意行為層次化分析方法

    2014-12-20 06:56:16李政廉趙亞新
    關(guān)鍵詞:關(guān)聯(lián)性進(jìn)程關(guān)聯(lián)

    李政廉,舒 輝,康 緋,趙亞新

    (數(shù)學(xué)工程與先進(jìn)計(jì)算國(guó)家重點(diǎn)實(shí)驗(yàn)室,河南 鄭州450000)

    0 引 言

    傳統(tǒng)的惡意軟件檢測(cè)方法主要是基于特征碼的檢測(cè),特征碼由特定長(zhǎng)度的特征字段或者指令段構(gòu)成,通過靜態(tài)掃描惡意可執(zhí)行程序,對(duì)特征碼進(jìn)行匹配,其優(yōu)點(diǎn)是效率高,誤報(bào)率低。特征碼檢測(cè)對(duì)于已經(jīng)識(shí)別的惡意代碼,具有非常好的檢測(cè)效果,但是往往惡意代碼的編寫者通過改變病毒的特征來逃避檢測(cè),這也就決定了特征碼檢測(cè)對(duì)于未知惡意代碼的檢測(cè)效果很差。

    利用API調(diào)用信息對(duì)惡意代碼進(jìn)行分析是當(dāng)前的熱點(diǎn)方向之一。文獻(xiàn) [1]中,文章提出了一種基于API調(diào)用頻率的檢測(cè)方式,通過對(duì)敏感API的調(diào)用頻率進(jìn)行分析,對(duì)行為的性質(zhì)進(jìn)行判斷,能夠達(dá)到較好的檢測(cè)效果。但是,對(duì)于正常代碼中的重復(fù)循環(huán)調(diào)用,往往會(huì)影響檢測(cè)的結(jié)果。文獻(xiàn) [2]中使用API序列作為分析目標(biāo),去除序列中與正常代碼重合的正確序列,提取出惡意代碼的自有特征序列作為判斷標(biāo)準(zhǔn),也能夠達(dá)到較好的檢測(cè)效果。這種方法的不足是通過序列進(jìn)行匹配,沒有分析參數(shù)對(duì)函數(shù)功能的影響,具有一定的局限性。還有很多人進(jìn)行了類似的工作,如許敏、趙天福等[3]建立的攻擊樹模型、Kyoung-Soo Han[4]的API調(diào)用序列圖、章文等[5]的基于關(guān)聯(lián)規(guī)則的檢測(cè)方法,他們都沒有從API調(diào)用關(guān)系的角度深入分析調(diào)用關(guān)系,并不能全面準(zhǔn)確地反映惡意代碼的執(zhí)行過程。

    本文對(duì)傳統(tǒng)的API序列分析方法加以拓展,采用基于API關(guān)聯(lián)性的行為分析方法,抽取惡意代碼的行為,并用層次化的惡意行為分析模型,提供多維度的分析結(jié)果,最終對(duì)惡意代碼的行為目標(biāo)和行為性質(zhì)進(jìn)行判斷。

    1 基于API關(guān)聯(lián)性的層次化分析模型

    1.1 系統(tǒng)分析框架

    文章通過建立層次化的行為模型實(shí)現(xiàn)對(duì)行為的分析。層次化分析模型由3個(gè)層次組成,分別是基本行為層、對(duì)象層以及進(jìn)程層。基本行為層主要是針對(duì)動(dòng)態(tài)二進(jìn)制記錄的數(shù)據(jù),抽取基本的行為信息,對(duì)象行為層是分析可執(zhí)行程序?qū)γ恳粋€(gè)操作目標(biāo)所進(jìn)行的行為操作。進(jìn)程層主要分析可執(zhí)行程序每個(gè)進(jìn)程所進(jìn)行的行為操作。從3個(gè)層次對(duì)行為進(jìn)行分析,提供多維度行為分析視角。系統(tǒng)層次化分析如圖1所示。

    圖1 系統(tǒng)層次化分析

    1.2 基于關(guān)聯(lián)性的基本行為層分析

    1.2.1 API定義

    API是windows提供的實(shí)現(xiàn)系統(tǒng)特定功能的函數(shù)接口。通過對(duì)大量的windows API調(diào)用進(jìn)行總結(jié)和抽象,得出API的核心特征由三部分組成,首先是API的功能范疇,即該API可以實(shí)現(xiàn)的功能,其次是API的對(duì)象信息,即API功能的實(shí)施對(duì)象,最后是API的特征數(shù)據(jù)信息,即API實(shí)現(xiàn)功能的輔助數(shù)據(jù)信息。此外,在實(shí)際執(zhí)行過程中,由于API執(zhí)行的先后順序不同,因此API還有時(shí)間屬性。

    據(jù)此,可以定義API如下:APIApiName×Object-Information×FeatureData×TimeInformation,那么,對(duì)于特定api= (n,o,f,t)∈API,n∈ApiName,o∈ObjectInformation,f ∈FeatureData,t∈TimeInformation,該定義表示名稱為n的API參數(shù)對(duì)象信息是o,特征數(shù)據(jù)是f,在代碼執(zhí)行過程中的時(shí)間序列信息是t。

    1.2.2 API間關(guān)聯(lián)性定義

    API間關(guān)聯(lián)性是指API之間存在邏輯聯(lián)系。一般而言,一組連續(xù)的API調(diào)用之間,通過特定的核心數(shù)據(jù)結(jié)構(gòu)傳遞信息,該核心數(shù)據(jù)結(jié)構(gòu)即為API的對(duì)象信息。對(duì)象信息在形式上表現(xiàn)為句柄、對(duì)象名稱字符串以及上下文數(shù)據(jù)結(jié)構(gòu)等等。因此,API之間的關(guān)聯(lián)性可以定義為具有相同含義的對(duì)象信息。

    對(duì)于API集合S,對(duì)于任意的m1= (n1,o1,f1,t1)∈S和m2=(n2,o2,f2,t2)∈S,如果m1與m2所表示的操作對(duì)象相同,那么認(rèn)為o2=o2。因此,可以定義關(guān)聯(lián)關(guān)系R,R={(m1,m2)|o1=o2,m1∈S,m2∈S},表示m1和m2具有相同含義的對(duì)象信息,m1和m2存在關(guān)聯(lián)性。

    1.2.3 行為的定義

    行為是指完成特定功能的一組API的集合。完成特定功能的一組API之間并不是孤立的,而是存在關(guān)聯(lián)性。因此,可以將行為定義為從API信息到行為信息之間的映射,即

    其中m1,m2…mn的定義域?yàn)榇a運(yùn)行的API函數(shù)信息,action為這些API對(duì)應(yīng)的行為信息,那么,該函數(shù)就表示出了API序列與行為之間的聯(lián)系,只有當(dāng)特定的API函數(shù)序列以及參數(shù)滿足對(duì)應(yīng)的行為特征時(shí),才能識(shí)別該序列對(duì)應(yīng)的行為信息。

    action的核心特征由三部分組成,分別為API序列、行為操作的目標(biāo)以及行為的特征數(shù)據(jù)信息,以上信息都是從對(duì)應(yīng)的序列m1,m2…mn中抽取得到。API序列表示該行為的完整API序列。行為操作的目標(biāo)指行為為實(shí)現(xiàn)功能而進(jìn)行的邏輯操作對(duì)象。特征數(shù)據(jù)是指表現(xiàn)相同類型行為之間區(qū)別的數(shù)據(jù)信息。據(jù)此,可以將行為定義為一個(gè)四元組action= (ApiSeqeunce,ObjectInformation,F(xiàn)eature-Data,ProcessInfo),其 中,ApiSequence 表 示 該 行 為 的API序列,ObjectInfomation表示該行為操作的,F(xiàn)eature-Data表示行為的特征數(shù)據(jù)信息,ProcessInfo表示行為的進(jìn)程信息。

    1.2.4 基本行為抽取

    惡意代碼是實(shí)現(xiàn)特定惡意目標(biāo)的一組API序列,實(shí)現(xiàn)該目標(biāo)由若干基本的行為完成。行為抽取的目標(biāo),就是從惡意代碼執(zhí)行的API序列中,抽取出這些基本的行為信息。行為抽取的過程,可以分為兩步,首先是對(duì)API集合進(jìn)行劃分,然后是對(duì)每個(gè)子集進(jìn)行行為抽取。

    對(duì)API集合進(jìn)行劃分就是將進(jìn)行一個(gè)基本行為的API序列劃分到一個(gè)子集中。劃分的目的是將對(duì)特定對(duì)象操作的API劃分到一個(gè)集合中,便于提取。根據(jù)以上對(duì)API的定義以及關(guān)聯(lián)性的分析,可以通過關(guān)聯(lián)關(guān)系對(duì)全部的API序列進(jìn)行劃分。

    對(duì)于API集合S,從關(guān)聯(lián)關(guān)系的定義可知,關(guān)聯(lián)性關(guān)系R 滿足自反性、傳遞性以及對(duì)稱性,因此關(guān)聯(lián)關(guān)系R 為等價(jià)關(guān)系。依據(jù)該等價(jià)關(guān)系,可以對(duì)API集合S進(jìn)行完全劃分為S1、S2、S3…Sn,即S=S1∪S2∪S3…∪Sn,且Si∩Sj=空集,i,j=1,2…n。S1、S2、S3…Sn即為基本行為單元的API集合。

    對(duì)于劃分出的集合Si,i∈1,2…n,根據(jù)其中的API序列m1,m2...mj的TimeInfo 進(jìn)行排序,就可以得到有序的基本行為單元。然后可以將每個(gè)基本行為單元轉(zhuǎn)化為一個(gè)API向量,即

    最終可執(zhí)行程序的全部API形成API矩陣,即

    每種行為對(duì)應(yīng)的行為識(shí)別函數(shù)分別為f1,f2,f3…fk,那么行為識(shí)別函數(shù)f的識(shí)別矩陣可以定義如下即

    然后進(jìn)行運(yùn)算,即可得出行為信息

    經(jīng)過運(yùn)算得到行為信息矩陣,每一個(gè)ActionSeti表示基本行為單元Si對(duì)應(yīng)的行為信息。

    在此基礎(chǔ)上,對(duì)子集中元素的對(duì)象信息和特征數(shù)據(jù)信息,以及API的功能進(jìn)行提取,作為行為的目標(biāo)和功能信息,完成構(gòu)建了行為的數(shù)據(jù)信息。

    1.2.5 基本行為關(guān)聯(lián)樹模型以及算法設(shè)計(jì)

    由于不同的API所包含的對(duì)象信息數(shù)量不同,按數(shù)據(jù)輸入輸出方向區(qū)分,可以分為引用對(duì)象信息與創(chuàng)建對(duì)象信息。根據(jù)API的定義,可以把ObjectInformation 定義為對(duì)象信息集合,那么對(duì)于一個(gè)API的對(duì)象信息集合ObjInfo=ObjInfo_in∪ObjInfo_out,其中ObjInfo_in 表示該API引用對(duì)象的集合,ObjInfo_out表示該API輸出的對(duì)象集合。那么API的對(duì)象信息就可以分為以下5種情況。

    表1 API類型

    創(chuàng)建型API是創(chuàng)建了某個(gè)對(duì)象信息,會(huì)被后續(xù)的API進(jìn)行引用,完成一組行為。引用創(chuàng)建型是一種過渡創(chuàng)建型API,在引用某個(gè)對(duì)象信息的同時(shí),以此為基礎(chǔ)進(jìn)一步創(chuàng)建新的邏輯對(duì)象信息。引用型是最常見的API,使用對(duì)象信息進(jìn)行操作,不創(chuàng)建新的對(duì)象信息。結(jié)束型API表示當(dāng)前的對(duì)象操作結(jié)束。獨(dú)立型API不涉及對(duì)象信息,能夠獨(dú)立完成某項(xiàng)功能。因此在建立API關(guān)聯(lián)樹時(shí),需要將4種情況分別處理,對(duì)應(yīng)不同的處理情況。

    對(duì)API引用類型進(jìn)行分類之后,還需要對(duì)進(jìn)行API關(guān)聯(lián)的對(duì)象信息進(jìn)行劃分,通過總結(jié)常見的API,主要把對(duì)象信息劃分為如下幾類,見表2。

    根據(jù)劃分的API類型以及關(guān)聯(lián)對(duì)象類型,文章擬采用建立關(guān)聯(lián)信息樹的方法構(gòu)建API的關(guān)聯(lián)結(jié)構(gòu)。關(guān)聯(lián)信息樹,是結(jié)合程序執(zhí)行的流程特征設(shè)計(jì)的關(guān)聯(lián)數(shù)據(jù)結(jié)構(gòu),關(guān)聯(lián)樹的根節(jié)點(diǎn)代表當(dāng)前的可執(zhí)行程序,根節(jié)點(diǎn)的兒子節(jié)點(diǎn)是可執(zhí)行程序處理的對(duì)象信息,對(duì)象信息節(jié)點(diǎn)下的兒子節(jié)點(diǎn)若為引用創(chuàng)建型節(jié)點(diǎn),那么該節(jié)點(diǎn)的兒子節(jié)點(diǎn)可以包含對(duì)象信息節(jié)點(diǎn),其余API節(jié)點(diǎn)下無兒子節(jié)點(diǎn)。如圖2所示。

    表2 關(guān)聯(lián)對(duì)象類型

    圖2 關(guān)聯(lián)樹

    API關(guān)聯(lián)樹的建立算法如下:

    步驟1 讀取API數(shù)據(jù),提取對(duì)象信息,若數(shù)據(jù)處理結(jié)束,轉(zhuǎn)到步驟4;否則轉(zhuǎn)到步驟2。

    步驟2 根據(jù)API類型,執(zhí)行對(duì)應(yīng)操作:若為引用型,則首先搜索對(duì)象信息節(jié)點(diǎn)并判斷是否具有結(jié)束標(biāo)記,搜索到,添加作為兒子節(jié)點(diǎn);搜索不到或者對(duì)象有結(jié)束標(biāo)記,則在根節(jié)點(diǎn)下添加對(duì)象節(jié)點(diǎn),同時(shí)將API作為兒子節(jié)點(diǎn)添加到該節(jié)點(diǎn)下。

    若為創(chuàng)建型,則將對(duì)象信息添加到根節(jié)點(diǎn)下,同時(shí)將API作為兒子節(jié)點(diǎn)添加到該節(jié)點(diǎn)下。若為引用創(chuàng)建型,則搜索對(duì)應(yīng)的對(duì)象信息節(jié)點(diǎn),添加到該節(jié)點(diǎn)下作為兒子節(jié)點(diǎn)。如果沒有搜索到,那么在根節(jié)點(diǎn)下添加對(duì)象信息節(jié)點(diǎn),然后將API作為兒子節(jié)點(diǎn)插入到該節(jié)點(diǎn)下。若為結(jié)束型,則搜索對(duì)象的對(duì)象信息節(jié)點(diǎn),添加到該節(jié)點(diǎn)下作為兒子節(jié)點(diǎn),同時(shí)將為該對(duì)象添加操作結(jié)束標(biāo)志。若為獨(dú)立型,則將API直接添加到另外獨(dú)立API關(guān)聯(lián)樹下,單獨(dú)處理。

    步驟3 轉(zhuǎn)到步驟1繼續(xù)讀取數(shù)據(jù)。

    步驟4 抽取每個(gè)對(duì)象的API信息,建立行為矩陣進(jìn)行行為識(shí)別。

    步驟5 抽取每個(gè)行為對(duì)應(yīng)的特征數(shù)據(jù)信息。

    步驟6 處理結(jié)束。

    通過以上步驟,就可以建立了可執(zhí)行程序的行為關(guān)聯(lián)樹模型,并完成行為信息抽取。最終的行為結(jié)果表示為ActionView (Object)= {api|objinfo=Object}。

    1.2.6 相關(guān)數(shù)據(jù)結(jié)構(gòu)

    關(guān)聯(lián)樹的核心數(shù)據(jù)結(jié)構(gòu)是對(duì)象節(jié)點(diǎn)的數(shù)據(jù)結(jié)構(gòu),用于存放該節(jié)點(diǎn)下子樹所包含的行為信息。關(guān)聯(lián)樹中的對(duì)象節(jié)點(diǎn)中,存放處理過程中的對(duì)象信息、行為信息以及額外信息節(jié)點(diǎn),具體節(jié)點(diǎn)信息如下:

    其中ObjInfo是存放被節(jié)點(diǎn)的對(duì)象信息,vecActionInfo容器用來存放行為信息,對(duì)于行為中存在的非對(duì)象類型的重要數(shù)據(jù)信息,存放在pData中,pData的類型用dwData-Type表示,例如枚舉進(jìn)程行為中獲取的進(jìn)程信息、文件搜索行為的文件信息等,或者其他某些行為所需額外的特定信息。

    2 對(duì)象層分析

    2.1 對(duì)象關(guān)聯(lián)

    根據(jù)行為的定義可知,行為的特征包括對(duì)象信息、API序列以及特征數(shù)據(jù)3部分。其中,對(duì)象信息是決定行為劃分的核心特征。因此,對(duì)于不同行為之間的關(guān)聯(lián),也需要分析不同行為間對(duì)象的聯(lián)系。

    對(duì)象關(guān)聯(lián)是指不同的行為的對(duì)象信息都指向相同的實(shí)體對(duì)象或者邏輯對(duì)象。一般而言,對(duì)象關(guān)聯(lián)產(chǎn)生的原因主要有兩方面,一方面是是由于對(duì)同一實(shí)體對(duì)象的不同表述方式,另一方面是由于使用特定方式對(duì)原來的對(duì)象進(jìn)行復(fù)制移動(dòng)之后產(chǎn)生新的對(duì)象。對(duì)于第一種情況,是由于對(duì)象描述的多樣性,一個(gè)對(duì)象信息可以有多個(gè)屬性,包括名稱、句柄等等,不同的行為操作可以通過操作不同的屬性信息,達(dá)到操作對(duì)象的目的,而本質(zhì)上行為都是發(fā)生在同一對(duì)象上的。第2種情形,是發(fā)生在對(duì)象進(jìn)行移動(dòng)復(fù)制,導(dǎo)致原有的對(duì)象屬性信息發(fā)生變化,但是對(duì)象內(nèi)容是相同的,例如被移動(dòng)的文件等,另外,對(duì)對(duì)象的某個(gè)屬性信息進(jìn)行復(fù)制,也可以達(dá)到復(fù)制對(duì)象的效果,例如DuplicateHandle實(shí)現(xiàn)Handle屬性的復(fù)制。

    在實(shí)際分析過程中,由于對(duì)象數(shù)據(jù)信息不同,因此直接進(jìn)行數(shù)據(jù)分析是不能提取出對(duì)象關(guān)聯(lián)信息的,所以分析對(duì)象關(guān)聯(lián),需要對(duì)具有對(duì)象復(fù)制或者移動(dòng)功能的函數(shù)進(jìn)行分析追蹤。對(duì)象關(guān)聯(lián)如圖3所示。

    對(duì)于任 意 的2 個(gè) 基 本 行 為action1= (sequence1,objinfo1,feadata1,procinfo1)以 及action2= (sequence2,objinfo2,feadata2,procinfo2),如果2 個(gè)行為之間存在對(duì)象關(guān)聯(lián),那么定義為objinfo1≈objinfo2。

    圖3 對(duì)象關(guān)聯(lián)

    2.2 數(shù)據(jù)關(guān)聯(lián)

    數(shù)據(jù)關(guān)聯(lián)是指不同的行為之間存在重要數(shù)據(jù)引用關(guān)系。數(shù)據(jù)關(guān)聯(lián)產(chǎn)生的主要原因是由于在不同的API中數(shù)據(jù)屬性不相同造成的。對(duì)于API本身而言,所有的數(shù)據(jù)都是統(tǒng)一處理,但是,在行為分析過中,需要將數(shù)據(jù)區(qū)分為對(duì)象信息數(shù)據(jù)與非對(duì)象信息數(shù)據(jù)進(jìn)行處理,進(jìn)而抽取行為。這樣也就造成了在某一行為的API序列中的非對(duì)象信息數(shù)據(jù),在其他行為中是對(duì)象信息數(shù)據(jù),這樣也就造成了2個(gè)行為之間的數(shù)據(jù)關(guān)聯(lián)。常見的情況,例如文件搜索行為搜索到的結(jié)果信息,在文件讀寫行為中,就會(huì)作為對(duì)象信息進(jìn)行讀寫操作。數(shù)據(jù)關(guān)聯(lián)如圖4所示。

    圖4 數(shù)據(jù)關(guān)聯(lián)

    對(duì)于任意 的2 個(gè) 基 本 行 為action1= (sequence1,objinfo1,feadata1,procinfo1)以 及action2= (sequence2,objinfo2,feadata2,procinfo2),如果action1中的特征數(shù)據(jù)中包含action2的對(duì)象信息,2個(gè)行為存在數(shù)據(jù)關(guān)聯(lián),那么定義為objinfo2∈feadata1。

    2.3 對(duì)象層分析結(jié)果的抽取

    對(duì)于分析的基本行為,進(jìn)行對(duì)象層抽象分析。對(duì)于任意的2個(gè)基本行為action1= (sequence1,objinfo1,feadata1,procinfo1) 以 及action2= (sequence2,objinfo2,feadata2,procinfo2),如果2 個(gè)行為之間存在對(duì)象關(guān)聯(lián),即objinfo1≈objinfo2,或者存在數(shù)據(jù)關(guān)聯(lián),即objinfo1∈feadata2,或者objinfo2∈feadata1,則2個(gè)行為的操作對(duì)象具有關(guān)聯(lián)性,那么針對(duì)Object對(duì)象的對(duì)象層結(jié)果如下:

    ActionObjectView (Object)= {action|objinfo=Object或objinfo≈Object或Object∈feadata}。

    3 進(jìn)程層行為分析

    由于大多數(shù)惡意代碼在運(yùn)行過程中,有可能會(huì)釋放出很多可執(zhí)行程序,不同的可執(zhí)行程序完成不同的功能。為進(jìn)一步分析惡意代碼不同模塊之間的關(guān)聯(lián),需要進(jìn)行進(jìn)程級(jí)行為分析。進(jìn)程層分析,是通過將不同進(jìn)程下的行為進(jìn)行抽象提取,抽取出進(jìn)程的行為信息,為進(jìn)程級(jí)的行為分析提供基礎(chǔ)。

    進(jìn)程級(jí)行為描述,主要包括進(jìn)程的操作對(duì)象以及操作行 為, 即 ProcActionView = (ProcObjSet,ProcAction Set)。提取進(jìn)程的行為主要分兩部分進(jìn)行,第1 步是收集進(jìn)程的操作對(duì)象,第2步是收集進(jìn)程的行為信息。

    對(duì)于進(jìn)程exe收集其對(duì)象信息,任意行為action= (sequence,objinfo,feadata,procinfo),如 果procinfo=exe,那么就將objinfo 添加到進(jìn)程對(duì)象集合ProcObjSet中,收集所有行為的對(duì)象信息后,最終的ProcObjSet即為該進(jìn)程的對(duì)象信息。

    對(duì)于進(jìn)程的行為信息ProcActionSet,就是要將屬于進(jìn)程exe的行為添加到其中,即ProcActionSet= {Action|procinfo=exe}。

    通過以上步驟,即可提取到進(jìn)程級(jí)的行為信息,提供了進(jìn)程的操作對(duì)象以及進(jìn)程內(nèi)的行為信息,便于在進(jìn)程的角度分析進(jìn)程間行為。

    4 系統(tǒng)實(shí)現(xiàn)結(jié)構(gòu)

    本文的惡意代碼行為分析原型系統(tǒng),主要由動(dòng)態(tài)二進(jìn)制平臺(tái)、API關(guān)聯(lián)與行為分析模塊、行為間關(guān)聯(lián)性分析模塊以及結(jié)果分析模塊四部分構(gòu)稱,具體如圖5所示。

    本系統(tǒng)通過在硬件模擬平臺(tái)上運(yùn)行虛擬操作系統(tǒng)windows XP,然后將動(dòng)態(tài)二進(jìn)制跟蹤平臺(tái)部署其中,相信跟蹤記錄惡意代碼執(zhí)行過程中的API序列以及數(shù)據(jù)信息。

    基本行為分析模塊,首先是對(duì)記錄的API數(shù)據(jù)進(jìn)行時(shí)間序列分析,確保執(zhí)行序列的邏輯有序。然后通過API描述文件對(duì)每一個(gè)API以及其數(shù)據(jù)信息進(jìn)行解析,提出對(duì)象參數(shù)以及特征數(shù)據(jù),然后通過關(guān)聯(lián)算法,建立API關(guān)聯(lián)樹,并抽取基本行為信息。

    深度行為分析模塊,首先對(duì)基本行為進(jìn)行數(shù)據(jù)關(guān)聯(lián)和對(duì)象關(guān)聯(lián)性分析,從對(duì)象層和進(jìn)程層對(duì)行為進(jìn)行抽取,對(duì)基本行為進(jìn)行進(jìn)一步關(guān)聯(lián)和綜合。

    結(jié)果分析模塊,結(jié)果分析模塊主要是對(duì)以上步驟的分析結(jié)果進(jìn)行整理分析,同時(shí)通過基本行為信息與深度行為信息,對(duì)行為的性質(zhì)做出判斷。

    圖5 系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)

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

    為了驗(yàn)證系統(tǒng)對(duì)惡意行為的分析結(jié)果,從國(guó)內(nèi)知名病毒論壇選取了最新收集的樣本包。通過實(shí)際分析表明,系統(tǒng)能夠?qū)崿F(xiàn)對(duì)惡意代碼的行為分析,并做出行為性質(zhì)判定,具有較高準(zhǔn)確率。

    樣本測(cè)試過程,選取了521 個(gè)惡意樣本與473 個(gè)正常軟件來驗(yàn)證實(shí)驗(yàn)結(jié)果。

    下面以其中一例的分析結(jié)果來說明,如圖6 所示。從關(guān)聯(lián)的結(jié)果中可以看出,結(jié)果中列舉了進(jìn)程1.exe的行為,行為的類型包括FileAction、RegAction、ProcessAction、ServAction以及OtherAction五類,分別表示文件行為、注冊(cè)表行為、進(jìn)程行為、服務(wù)行為以及其他行為。具體行為如圖6所示。

    圖6 行為抽取結(jié)果

    經(jīng)手工動(dòng)態(tài)調(diào)試分析,結(jié)果正確。說明系統(tǒng)基本能夠?qū)崿F(xiàn)行為抽取分析功能。

    6 結(jié)束語

    本文提出了一種基于API關(guān)聯(lián)性分析的層次化惡意行為分析方法。相對(duì)于傳統(tǒng)的API分析方法,結(jié)合了API調(diào)用參數(shù)的分析,實(shí)現(xiàn)了對(duì)惡意代碼行為和功能的抽取和分析,彌補(bǔ)了傳統(tǒng)序列分析中對(duì)參數(shù)分析的不足,同時(shí)提供了層次化的分析結(jié)果,便于理解和分析惡意代碼的功能,可以很大程度縮減惡意代碼的分析周期,為分析人員提供重要參考,具有較強(qiáng)的實(shí)踐意義。

    [1]BAI Jinrong,WANG Junfeng,ZHAO Zongqu,et al.Malware detection method based on sensitive Native API [J].Computer Engineering,2012,38 (13):9-12 (in Chinese).[白金榮,王俊峰,趙宗渠,等.基于敏感Native API的惡意軟件檢測(cè)方法 [J].計(jì)算機(jī)工程,2012,38 (13):9-12.]

    [2]Kyoung-Soo Han,In-Kyoung Kim,Eul Gyu Im.Malware classification methods using API sequence characteristics[C]//Proceedings of the International Conference on IT Convergence and Security,2011:613-626.

    [3]XU Min,ZHAO Tianfu.Malicious code detection method based on behavior character [J].Network & Information,2009,23 (6):14-16 (in Chinese).[許敏,趙天福.基于行為特征的惡意代碼檢測(cè)方法 [J].網(wǎng)絡(luò)與信息,2009,23(6):14-16.]

    [4]Kyoung-Soo Han,In-Kyoung Kim,Eul Gyu Im.Detection methods for malware variant using API call related graphs[C]//Proceedings of the International Conference on IT Convergence and Security,2011:608-611.

    [5]ZHANG Wen,ZHENG Quan,SHUAI Jianmei,et al.New malicious executables detection based on association rules[J].Computer Engineering,2008,34 (24):172-174 (in Chinese).[章文,鄭烇,帥建梅,等.基于關(guān)聯(lián)規(guī)則的位置惡意程序檢測(cè)技術(shù)[J].計(jì)算機(jī)工程,2008,34 (24):172-174.]

    [6]YAO Xinlei,PANG Jianmin,YUE Feng,et al.Code similarity analysis based on API dependence relation [J].Computer Engineering,2013,39 (1):80-84 (in Chinese). [姚新磊,龐建民,岳峰,等.基于API依賴關(guān)系的代碼相似度分析[J].計(jì)算機(jī)工程,2013,39 (1):80-84.]

    [7]LIU Shuai,WU Yanxia,MA Chunguang,et al.Method of unknown virus detection based on analysis of Win32API behaviors[J].Computer Engineering and Applications,2011,47(27):119-122 (in Chinese). [劉帥,吳艷霞,馬春光,等.采用Win32API相關(guān)行為分析的未知病毒檢測(cè)方法 [J].計(jì)算機(jī)工程與應(yīng)用,2011,47 (27):119-122.]

    [8]HAN Lansheng,GAO Kunlun,ZHAO Baohua,et al.Behavior detection of malware based on combination of API function and its parameters[J].Computer Application and Research,2013,30(11):3407-3410(in Chinese).[韓蘭勝,高昆侖,趙保華,等.基于API函數(shù)及其參數(shù)相結(jié)合的惡意軟件行為檢測(cè) [J].計(jì)算機(jī)應(yīng)用研究,2013,30 (11):3407-3410.]

    [9]Han Lansheng,F(xiàn)u Cai,Zou Deqing,et al.Task-based behavior detection of illegal codes [J].Mathematical and Computer Modelling,2012,55 (1):80-86.

    [10]Seifert C,Welch I,Komisarczuk P.Identification of malicious web pages with static heuristics [C]//Proceedings of the Australasian Telecommunication Networks and Applications Conference,2008:91-96.

    猜你喜歡
    關(guān)聯(lián)性進(jìn)程關(guān)聯(lián)
    債券市場(chǎng)對(duì)外開放的進(jìn)程與展望
    “一帶一路”遞進(jìn),關(guān)聯(lián)民生更緊
    奇趣搭配
    四物湯有效成分的關(guān)聯(lián)性分析
    中成藥(2017年3期)2017-05-17 06:09:05
    智趣
    讀者(2017年5期)2017-02-15 18:04:18
    如何準(zhǔn)確認(rèn)定排污行為和環(huán)境損害之間的關(guān)聯(lián)性
    CRP檢測(cè)與新生兒感染的關(guān)聯(lián)性
    社會(huì)進(jìn)程中的新聞學(xué)探尋
    關(guān)于矩陣的關(guān)聯(lián)性
    我國(guó)高等教育改革進(jìn)程與反思
    兴安盟| 驻马店市| 濮阳县| 贡嘎县| 敦煌市| 花莲市| 宁夏| 广州市| 泸西县| 澄江县| 册亨县| 革吉县| 金昌市| 岳普湖县| 时尚| 黎平县| 金堂县| 乌兰县| 广河县| 晴隆县| 江都市| 扶风县| 贵港市| 盈江县| 汉川市| 唐河县| 高邮市| 剑阁县| 宝应县| 新郑市| 洪雅县| 满洲里市| 黎川县| 武夷山市| 合作市| 和林格尔县| 清镇市| 寿宁县| 明水县| 特克斯县| 瑞丽市|