李政廉,舒 輝,康 緋,趙亞新
(數(shù)學(xué)工程與先進(jìn)計(jì)算國家重點(diǎn)實(shí)驗(yàn)室,河南 鄭州450000)
傳統(tǒng)的惡意軟件檢測方法主要是基于特征碼的檢測,特征碼由特定長度的特征字段或者指令段構(gòu)成,通過靜態(tài)掃描惡意可執(zhí)行程序,對特征碼進(jìn)行匹配,其優(yōu)點(diǎn)是效率高,誤報率低。特征碼檢測對于已經(jīng)識別的惡意代碼,具有非常好的檢測效果,但是往往惡意代碼的編寫者通過改變病毒的特征來逃避檢測,這也就決定了特征碼檢測對于未知惡意代碼的檢測效果很差。
利用API調(diào)用信息對惡意代碼進(jìn)行分析是當(dāng)前的熱點(diǎn)方向之一。文獻(xiàn) [1]中,文章提出了一種基于API調(diào)用頻率的檢測方式,通過對敏感API的調(diào)用頻率進(jìn)行分析,對行為的性質(zhì)進(jìn)行判斷,能夠達(dá)到較好的檢測效果。但是,對于正常代碼中的重復(fù)循環(huán)調(diào)用,往往會影響檢測的結(jié)果。文獻(xiàn) [2]中使用API序列作為分析目標(biāo),去除序列中與正常代碼重合的正確序列,提取出惡意代碼的自有特征序列作為判斷標(biāo)準(zhǔn),也能夠達(dá)到較好的檢測效果。這種方法的不足是通過序列進(jìn)行匹配,沒有分析參數(shù)對函數(shù)功能的影響,具有一定的局限性。還有很多人進(jìn)行了類似的工作,如許敏、趙天福等[3]建立的攻擊樹模型、Kyoung-Soo Han[4]的API調(diào)用序列圖、章文等[5]的基于關(guān)聯(lián)規(guī)則的檢測方法,他們都沒有從API調(diào)用關(guān)系的角度深入分析調(diào)用關(guān)系,并不能全面準(zhǔn)確地反映惡意代碼的執(zhí)行過程。
本文對傳統(tǒng)的API序列分析方法加以拓展,采用基于API關(guān)聯(lián)性的行為分析方法,抽取惡意代碼的行為,并用層次化的惡意行為分析模型,提供多維度的分析結(jié)果,最終對惡意代碼的行為目標(biāo)和行為性質(zhì)進(jìn)行判斷。
文章通過建立層次化的行為模型實(shí)現(xiàn)對行為的分析。層次化分析模型由3個層次組成,分別是基本行為層、對象層以及進(jìn)程層。基本行為層主要是針對動態(tài)二進(jìn)制記錄的數(shù)據(jù),抽取基本的行為信息,對象行為層是分析可執(zhí)行程序?qū)γ恳粋€操作目標(biāo)所進(jìn)行的行為操作。進(jìn)程層主要分析可執(zhí)行程序每個進(jìn)程所進(jìn)行的行為操作。從3個層次對行為進(jìn)行分析,提供多維度行為分析視角。系統(tǒng)層次化分析如圖1所示。
圖1 系統(tǒng)層次化分析
1.2.1 API定義
API是windows提供的實(shí)現(xiàn)系統(tǒng)特定功能的函數(shù)接口。通過對大量的windows API調(diào)用進(jìn)行總結(jié)和抽象,得出API的核心特征由三部分組成,首先是API的功能范疇,即該API可以實(shí)現(xiàn)的功能,其次是API的對象信息,即API功能的實(shí)施對象,最后是API的特征數(shù)據(jù)信息,即API實(shí)現(xiàn)功能的輔助數(shù)據(jù)信息。此外,在實(shí)際執(zhí)行過程中,由于API執(zhí)行的先后順序不同,因此API還有時間屬性。
據(jù)此,可以定義API如下:APIApiName×Object-Information×FeatureData×TimeInformation,那么,對于特定api= (n,o,f,t)∈API,n∈ApiName,o∈ObjectInformation,f ∈FeatureData,t∈TimeInformation,該定義表示名稱為n的API參數(shù)對象信息是o,特征數(shù)據(jù)是f,在代碼執(zhí)行過程中的時間序列信息是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的對象信息。對象信息在形式上表現(xiàn)為句柄、對象名稱字符串以及上下文數(shù)據(jù)結(jié)構(gòu)等等。因此,API之間的關(guān)聯(lián)性可以定義為具有相同含義的對象信息。
對于API集合S,對于任意的m1= (n1,o1,f1,t1)∈S和m2=(n2,o2,f2,t2)∈S,如果m1與m2所表示的操作對象相同,那么認(rèn)為o2=o2。因此,可以定義關(guān)聯(lián)關(guān)系R,R={(m1,m2)|o1=o2,m1∈S,m2∈S},表示m1和m2具有相同含義的對象信息,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對應(yīng)的行為信息,那么,該函數(shù)就表示出了API序列與行為之間的聯(lián)系,只有當(dāng)特定的API函數(shù)序列以及參數(shù)滿足對應(yīng)的行為特征時,才能識別該序列對應(yīng)的行為信息。
action的核心特征由三部分組成,分別為API序列、行為操作的目標(biāo)以及行為的特征數(shù)據(jù)信息,以上信息都是從對應(yīng)的序列m1,m2…mn中抽取得到。API序列表示該行為的完整API序列。行為操作的目標(biāo)指行為為實(shí)現(xiàn)功能而進(jìn)行的邏輯操作對象。特征數(shù)據(jù)是指表現(xiàn)相同類型行為之間區(qū)別的數(shù)據(jù)信息。據(jù)此,可以將行為定義為一個四元組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序列中,抽取出這些基本的行為信息。行為抽取的過程,可以分為兩步,首先是對API集合進(jìn)行劃分,然后是對每個子集進(jìn)行行為抽取。
對API集合進(jìn)行劃分就是將進(jìn)行一個基本行為的API序列劃分到一個子集中。劃分的目的是將對特定對象操作的API劃分到一個集合中,便于提取。根據(jù)以上對API的定義以及關(guān)聯(lián)性的分析,可以通過關(guān)聯(lián)關(guān)系對全部的API序列進(jìn)行劃分。
對于API集合S,從關(guān)聯(lián)關(guān)系的定義可知,關(guān)聯(lián)性關(guān)系R 滿足自反性、傳遞性以及對稱性,因此關(guān)聯(lián)關(guān)系R 為等價關(guān)系。依據(jù)該等價關(guān)系,可以對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集合。
對于劃分出的集合Si,i∈1,2…n,根據(jù)其中的API序列m1,m2...mj的TimeInfo 進(jìn)行排序,就可以得到有序的基本行為單元。然后可以將每個基本行為單元轉(zhuǎn)化為一個API向量,即
最終可執(zhí)行程序的全部API形成API矩陣,即
每種行為對應(yīng)的行為識別函數(shù)分別為f1,f2,f3…fk,那么行為識別函數(shù)f的識別矩陣可以定義如下即
然后進(jìn)行運(yùn)算,即可得出行為信息
經(jīng)過運(yùn)算得到行為信息矩陣,每一個ActionSeti表示基本行為單元Si對應(yīng)的行為信息。
在此基礎(chǔ)上,對子集中元素的對象信息和特征數(shù)據(jù)信息,以及API的功能進(jìn)行提取,作為行為的目標(biāo)和功能信息,完成構(gòu)建了行為的數(shù)據(jù)信息。
1.2.5 基本行為關(guān)聯(lián)樹模型以及算法設(shè)計(jì)
由于不同的API所包含的對象信息數(shù)量不同,按數(shù)據(jù)輸入輸出方向區(qū)分,可以分為引用對象信息與創(chuàng)建對象信息。根據(jù)API的定義,可以把ObjectInformation 定義為對象信息集合,那么對于一個API的對象信息集合ObjInfo=ObjInfo_in∪ObjInfo_out,其中ObjInfo_in 表示該API引用對象的集合,ObjInfo_out表示該API輸出的對象集合。那么API的對象信息就可以分為以下5種情況。
表1 API類型
創(chuàng)建型API是創(chuàng)建了某個對象信息,會被后續(xù)的API進(jìn)行引用,完成一組行為。引用創(chuàng)建型是一種過渡創(chuàng)建型API,在引用某個對象信息的同時,以此為基礎(chǔ)進(jìn)一步創(chuàng)建新的邏輯對象信息。引用型是最常見的API,使用對象信息進(jìn)行操作,不創(chuàng)建新的對象信息。結(jié)束型API表示當(dāng)前的對象操作結(jié)束。獨(dú)立型API不涉及對象信息,能夠獨(dú)立完成某項(xiàng)功能。因此在建立API關(guān)聯(lián)樹時,需要將4種情況分別處理,對應(yīng)不同的處理情況。
對API引用類型進(jìn)行分類之后,還需要對進(jìn)行API關(guān)聯(lián)的對象信息進(jìn)行劃分,通過總結(jié)常見的API,主要把對象信息劃分為如下幾類,見表2。
根據(jù)劃分的API類型以及關(guān)聯(lián)對象類型,文章擬采用建立關(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í)行程序處理的對象信息,對象信息節(jié)點(diǎn)下的兒子節(jié)點(diǎn)若為引用創(chuàng)建型節(jié)點(diǎn),那么該節(jié)點(diǎn)的兒子節(jié)點(diǎn)可以包含對象信息節(jié)點(diǎn),其余API節(jié)點(diǎn)下無兒子節(jié)點(diǎn)。如圖2所示。
表2 關(guān)聯(lián)對象類型
圖2 關(guān)聯(lián)樹
API關(guān)聯(lián)樹的建立算法如下:
步驟1 讀取API數(shù)據(jù),提取對象信息,若數(shù)據(jù)處理結(jié)束,轉(zhuǎn)到步驟4;否則轉(zhuǎn)到步驟2。
步驟2 根據(jù)API類型,執(zhí)行對應(yīng)操作:若為引用型,則首先搜索對象信息節(jié)點(diǎn)并判斷是否具有結(jié)束標(biāo)記,搜索到,添加作為兒子節(jié)點(diǎn);搜索不到或者對象有結(jié)束標(biāo)記,則在根節(jié)點(diǎn)下添加對象節(jié)點(diǎn),同時將API作為兒子節(jié)點(diǎn)添加到該節(jié)點(diǎn)下。
若為創(chuàng)建型,則將對象信息添加到根節(jié)點(diǎn)下,同時將API作為兒子節(jié)點(diǎn)添加到該節(jié)點(diǎn)下。若為引用創(chuàng)建型,則搜索對應(yīng)的對象信息節(jié)點(diǎn),添加到該節(jié)點(diǎn)下作為兒子節(jié)點(diǎn)。如果沒有搜索到,那么在根節(jié)點(diǎn)下添加對象信息節(jié)點(diǎn),然后將API作為兒子節(jié)點(diǎn)插入到該節(jié)點(diǎn)下。若為結(jié)束型,則搜索對象的對象信息節(jié)點(diǎn),添加到該節(jié)點(diǎn)下作為兒子節(jié)點(diǎn),同時將為該對象添加操作結(jié)束標(biāo)志。若為獨(dú)立型,則將API直接添加到另外獨(dú)立API關(guān)聯(lián)樹下,單獨(dú)處理。
步驟3 轉(zhuǎn)到步驟1繼續(xù)讀取數(shù)據(jù)。
步驟4 抽取每個對象的API信息,建立行為矩陣進(jìn)行行為識別。
步驟5 抽取每個行為對應(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)是對象節(jié)點(diǎn)的數(shù)據(jù)結(jié)構(gòu),用于存放該節(jié)點(diǎn)下子樹所包含的行為信息。關(guān)聯(lián)樹中的對象節(jié)點(diǎn)中,存放處理過程中的對象信息、行為信息以及額外信息節(jié)點(diǎn),具體節(jié)點(diǎn)信息如下:
其中ObjInfo是存放被節(jié)點(diǎn)的對象信息,vecActionInfo容器用來存放行為信息,對于行為中存在的非對象類型的重要數(shù)據(jù)信息,存放在pData中,pData的類型用dwData-Type表示,例如枚舉進(jìn)程行為中獲取的進(jìn)程信息、文件搜索行為的文件信息等,或者其他某些行為所需額外的特定信息。
根據(jù)行為的定義可知,行為的特征包括對象信息、API序列以及特征數(shù)據(jù)3部分。其中,對象信息是決定行為劃分的核心特征。因此,對于不同行為之間的關(guān)聯(lián),也需要分析不同行為間對象的聯(lián)系。
對象關(guān)聯(lián)是指不同的行為的對象信息都指向相同的實(shí)體對象或者邏輯對象。一般而言,對象關(guān)聯(lián)產(chǎn)生的原因主要有兩方面,一方面是是由于對同一實(shí)體對象的不同表述方式,另一方面是由于使用特定方式對原來的對象進(jìn)行復(fù)制移動之后產(chǎn)生新的對象。對于第一種情況,是由于對象描述的多樣性,一個對象信息可以有多個屬性,包括名稱、句柄等等,不同的行為操作可以通過操作不同的屬性信息,達(dá)到操作對象的目的,而本質(zhì)上行為都是發(fā)生在同一對象上的。第2種情形,是發(fā)生在對象進(jìn)行移動復(fù)制,導(dǎo)致原有的對象屬性信息發(fā)生變化,但是對象內(nèi)容是相同的,例如被移動的文件等,另外,對對象的某個屬性信息進(jìn)行復(fù)制,也可以達(dá)到復(fù)制對象的效果,例如DuplicateHandle實(shí)現(xiàn)Handle屬性的復(fù)制。
在實(shí)際分析過程中,由于對象數(shù)據(jù)信息不同,因此直接進(jìn)行數(shù)據(jù)分析是不能提取出對象關(guān)聯(lián)信息的,所以分析對象關(guān)聯(lián),需要對具有對象復(fù)制或者移動功能的函數(shù)進(jìn)行分析追蹤。對象關(guān)聯(lián)如圖3所示。
對于任 意 的2 個 基 本 行 為action1= (sequence1,objinfo1,feadata1,procinfo1)以 及action2= (sequence2,objinfo2,feadata2,procinfo2),如果2 個行為之間存在對象關(guān)聯(lián),那么定義為objinfo1≈objinfo2。
圖3 對象關(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ù)屬性不相同造成的。對于API本身而言,所有的數(shù)據(jù)都是統(tǒng)一處理,但是,在行為分析過中,需要將數(shù)據(jù)區(qū)分為對象信息數(shù)據(jù)與非對象信息數(shù)據(jù)進(jìn)行處理,進(jìn)而抽取行為。這樣也就造成了在某一行為的API序列中的非對象信息數(shù)據(jù),在其他行為中是對象信息數(shù)據(jù),這樣也就造成了2個行為之間的數(shù)據(jù)關(guān)聯(lián)。常見的情況,例如文件搜索行為搜索到的結(jié)果信息,在文件讀寫行為中,就會作為對象信息進(jìn)行讀寫操作。數(shù)據(jù)關(guān)聯(lián)如圖4所示。
圖4 數(shù)據(jù)關(guān)聯(lián)
對于任意 的2 個 基 本 行 為action1= (sequence1,objinfo1,feadata1,procinfo1)以 及action2= (sequence2,objinfo2,feadata2,procinfo2),如果action1中的特征數(shù)據(jù)中包含action2的對象信息,2個行為存在數(shù)據(jù)關(guān)聯(lián),那么定義為objinfo2∈feadata1。
對于分析的基本行為,進(jìn)行對象層抽象分析。對于任意的2個基本行為action1= (sequence1,objinfo1,feadata1,procinfo1) 以 及action2= (sequence2,objinfo2,feadata2,procinfo2),如果2 個行為之間存在對象關(guān)聯(lián),即objinfo1≈objinfo2,或者存在數(shù)據(jù)關(guān)聯(lián),即objinfo1∈feadata2,或者objinfo2∈feadata1,則2個行為的操作對象具有關(guān)聯(lián)性,那么針對Object對象的對象層結(jié)果如下:
ActionObjectView (Object)= {action|objinfo=Object或objinfo≈Object或Object∈feadata}。
由于大多數(shù)惡意代碼在運(yùn)行過程中,有可能會釋放出很多可執(zhí)行程序,不同的可執(zhí)行程序完成不同的功能。為進(jìn)一步分析惡意代碼不同模塊之間的關(guān)聯(lián),需要進(jìn)行進(jìn)程級行為分析。進(jìn)程層分析,是通過將不同進(jìn)程下的行為進(jìn)行抽象提取,抽取出進(jìn)程的行為信息,為進(jìn)程級的行為分析提供基礎(chǔ)。
進(jìn)程級行為描述,主要包括進(jìn)程的操作對象以及操作行 為, 即 ProcActionView = (ProcObjSet,ProcAction Set)。提取進(jìn)程的行為主要分兩部分進(jìn)行,第1 步是收集進(jìn)程的操作對象,第2步是收集進(jìn)程的行為信息。
對于進(jìn)程exe收集其對象信息,任意行為action= (sequence,objinfo,feadata,procinfo),如 果procinfo=exe,那么就將objinfo 添加到進(jìn)程對象集合ProcObjSet中,收集所有行為的對象信息后,最終的ProcObjSet即為該進(jìn)程的對象信息。
對于進(jìn)程的行為信息ProcActionSet,就是要將屬于進(jìn)程exe的行為添加到其中,即ProcActionSet= {Action|procinfo=exe}。
通過以上步驟,即可提取到進(jìn)程級的行為信息,提供了進(jìn)程的操作對象以及進(jìn)程內(nèi)的行為信息,便于在進(jìn)程的角度分析進(jìn)程間行為。
本文的惡意代碼行為分析原型系統(tǒng),主要由動態(tài)二進(jìn)制平臺、API關(guān)聯(lián)與行為分析模塊、行為間關(guān)聯(lián)性分析模塊以及結(jié)果分析模塊四部分構(gòu)稱,具體如圖5所示。
本系統(tǒng)通過在硬件模擬平臺上運(yùn)行虛擬操作系統(tǒng)windows XP,然后將動態(tài)二進(jìn)制跟蹤平臺部署其中,相信跟蹤記錄惡意代碼執(zhí)行過程中的API序列以及數(shù)據(jù)信息。
基本行為分析模塊,首先是對記錄的API數(shù)據(jù)進(jìn)行時間序列分析,確保執(zhí)行序列的邏輯有序。然后通過API描述文件對每一個API以及其數(shù)據(jù)信息進(jìn)行解析,提出對象參數(shù)以及特征數(shù)據(jù),然后通過關(guān)聯(lián)算法,建立API關(guān)聯(lián)樹,并抽取基本行為信息。
深度行為分析模塊,首先對基本行為進(jìn)行數(shù)據(jù)關(guān)聯(lián)和對象關(guān)聯(lián)性分析,從對象層和進(jìn)程層對行為進(jìn)行抽取,對基本行為進(jìn)行進(jìn)一步關(guān)聯(lián)和綜合。
結(jié)果分析模塊,結(jié)果分析模塊主要是對以上步驟的分析結(jié)果進(jìn)行整理分析,同時通過基本行為信息與深度行為信息,對行為的性質(zhì)做出判斷。
圖5 系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
為了驗(yàn)證系統(tǒng)對惡意行為的分析結(jié)果,從國內(nèi)知名病毒論壇選取了最新收集的樣本包。通過實(shí)際分析表明,系統(tǒng)能夠?qū)崿F(xiàn)對惡意代碼的行為分析,并做出行為性質(zhì)判定,具有較高準(zhǔn)確率。
樣本測試過程,選取了521 個惡意樣本與473 個正常軟件來驗(yàn)證實(shí)驗(yàn)結(jié)果。
下面以其中一例的分析結(jié)果來說明,如圖6 所示。從關(guān)聯(lián)的結(jié)果中可以看出,結(jié)果中列舉了進(jìn)程1.exe的行為,行為的類型包括FileAction、RegAction、ProcessAction、ServAction以及OtherAction五類,分別表示文件行為、注冊表行為、進(jìn)程行為、服務(wù)行為以及其他行為。具體行為如圖6所示。
圖6 行為抽取結(jié)果
經(jīng)手工動態(tài)調(diào)試分析,結(jié)果正確。說明系統(tǒng)基本能夠?qū)崿F(xiàn)行為抽取分析功能。
本文提出了一種基于API關(guān)聯(lián)性分析的層次化惡意行為分析方法。相對于傳統(tǒng)的API分析方法,結(jié)合了API調(diào)用參數(shù)的分析,實(shí)現(xiàn)了對惡意代碼行為和功能的抽取和分析,彌補(bǔ)了傳統(tǒng)序列分析中對參數(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的惡意軟件檢測方法 [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).[許敏,趙天福.基于行為特征的惡意代碼檢測方法 [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ī)則的位置惡意程序檢測技術(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)行為分析的未知病毒檢測方法 [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é)合的惡意軟件行為檢測 [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.