專利名稱:進(jìn)程行為分析方法及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計(jì)算機(jī)安全技術(shù),尤其涉及一種進(jìn)程行為分析方法及系統(tǒng)。
背景技術(shù):
計(jì)算機(jī)安全已成為人們?nèi)找骊P(guān)注的問題,進(jìn)程行為分析是重要的計(jì)算機(jī)安全監(jiān)控技術(shù)之一,其通過對(duì)程序代碼運(yùn)行中的行為進(jìn)行分析確定相應(yīng)程序的行為目的,使得計(jì)算機(jī)安全技術(shù)人員可以根據(jù)這些行為目的確定采取相應(yīng)的安全防范措施?,F(xiàn)有技術(shù)中,進(jìn)程行為分析一般采用對(duì)計(jì)算機(jī)的一個(gè)進(jìn)程的行為進(jìn)行分析,判斷出該進(jìn)程執(zhí)行的程序代碼的行為功能。例如目前很多惡意進(jìn)程都具有將自身代碼注入到正常進(jìn)程中的行為,以達(dá)到隱藏運(yùn)行的目的,這些惡意進(jìn)程僅僅是一個(gè)注入代碼,目前對(duì)其進(jìn)行進(jìn)程行為分析,是對(duì)其注入行為進(jìn)程進(jìn)行分析或者對(duì)惡意進(jìn)程本身進(jìn)行分析,因此可以獲取這些惡意進(jìn)程的注入行為或者惡意進(jìn)程自身的行為目的。然而這種方法對(duì)其注入到正常進(jìn)程后的行為等是分析不到的,使得計(jì)算機(jī)安全技術(shù)人員對(duì)惡意進(jìn)程的行為無法達(dá)到全面了解,從而影響進(jìn)程行為分析的質(zhì)量效率。
發(fā)明內(nèi)容
本發(fā)明提供一種進(jìn)程行為分析方法及系統(tǒng),用以對(duì)與一個(gè)進(jìn)程相關(guān)的所有進(jìn)程的行為進(jìn)行全面地分析,提高進(jìn)程行為分析的質(zhì)量效率。本發(fā)明的第一個(gè)方面是提供一種進(jìn)程行為分析方法,包括:獲取對(duì)預(yù)設(shè)的敏感進(jìn)程進(jìn)行監(jiān)控的監(jiān)控記錄數(shù)據(jù);根據(jù)所述監(jiān)控記錄數(shù)據(jù)模擬重現(xiàn)監(jiān)控過程中的句柄、進(jìn)程和線程,獲取分別與所述句柄、進(jìn)程和線程對(duì)應(yīng)的虛擬表項(xiàng),所述虛擬表項(xiàng)記錄敏感進(jìn)程創(chuàng)建的句柄、進(jìn)程和線程及對(duì)應(yīng)的屬性;設(shè)定敏感進(jìn)程的相關(guān)進(jìn)程,根據(jù)所述虛擬表項(xiàng)將相關(guān)進(jìn)程對(duì)應(yīng)的句柄、進(jìn)程和線程操作及對(duì)應(yīng)的屬性關(guān)聯(lián)到敏感進(jìn)程的進(jìn)程行為分析結(jié)果中。本發(fā)明的第二個(gè)方面是提供一種進(jìn)程行為分析系統(tǒng),包括:監(jiān)控模塊,用于獲取對(duì)預(yù)設(shè)的敏感進(jìn)程進(jìn)行監(jiān)控的監(jiān)控記錄數(shù)據(jù);分析模塊,用于根據(jù)所述監(jiān)控記錄數(shù)據(jù)模擬重現(xiàn)監(jiān)控過程中的句柄、進(jìn)程和線程,獲取分別與所述句柄、進(jìn)程和線程對(duì)應(yīng)的虛擬表項(xiàng),所述虛擬表項(xiàng)記錄敏感進(jìn)程創(chuàng)建的句柄、進(jìn)程和線程及對(duì)應(yīng)的屬性;關(guān)聯(lián)模塊,用于設(shè)定敏感進(jìn)程的相關(guān)進(jìn)程,根據(jù)所述虛擬表項(xiàng)將相關(guān)進(jìn)程對(duì)應(yīng)的句柄、進(jìn)程和線程操作及對(duì)應(yīng)的屬性關(guān)聯(lián)到敏感進(jìn)程的進(jìn)程行為分析結(jié)果中。本發(fā)明通過根據(jù)監(jiān)控記錄數(shù)據(jù)模擬重現(xiàn)監(jiān)控過程中的句柄、進(jìn)程和線程,獲取記錄敏感進(jìn)程創(chuàng)建的句柄、進(jìn)程和線程及對(duì)應(yīng)的屬性的虛擬表項(xiàng),再根據(jù)所述虛擬表項(xiàng)將設(shè)定的相關(guān)進(jìn)程對(duì)應(yīng)的句柄、進(jìn)程和線程操作及對(duì)應(yīng)的屬性關(guān)聯(lián)到敏感進(jìn)程的進(jìn)程行為分析結(jié)果中,使得對(duì)敏感進(jìn)程的行為分析的更加完整充分,保證了進(jìn)程行為分析的質(zhì)量效率。
圖1為本發(fā)明進(jìn)程行為分析方法實(shí)施例一的流程圖;圖2為圖1中模擬重現(xiàn)監(jiān)控過程中的句柄的原理圖;圖3為圖1所示實(shí)施例中將相關(guān)進(jìn)程的操作關(guān)聯(lián)到敏感進(jìn)程的原理圖;圖4為圖1所示實(shí)施例的具體應(yīng)用實(shí)例圖;圖5為本發(fā)明進(jìn)程行為分析方法實(shí)施例二的流程圖;圖6為圖5所示實(shí)施例中預(yù)定義的二進(jìn)制文件結(jié)構(gòu)示意圖;圖7為本發(fā)明進(jìn)程行為分析系統(tǒng)實(shí)施例一的結(jié)構(gòu)示意圖;圖8為本發(fā)明進(jìn)程行為分析系統(tǒng)實(shí)施例二的結(jié)構(gòu)示意圖;圖9為圖8所示實(shí)施例的實(shí)際應(yīng)用例的結(jié)構(gòu)示意圖。
具體實(shí)施例方式以下結(jié)合附圖對(duì)本發(fā)明的實(shí)施例進(jìn)行詳細(xì)說明。圖1為本發(fā)明進(jìn)程行為分析方法實(shí)施例一的流程圖,如圖1所示,本實(shí)施例的方法包括:步驟101、獲取對(duì)預(yù)設(shè)的敏感進(jìn)程進(jìn)行監(jiān)控的監(jiān)控記錄數(shù)據(jù)。為對(duì)預(yù)設(shè)的敏感進(jìn)程進(jìn)行進(jìn)程行為分析,首先要對(duì)敏感進(jìn)程的進(jìn)程行為進(jìn)行監(jiān)控,獲取監(jiān)控記錄數(shù)據(jù),以便于后續(xù)對(duì)進(jìn)程行為分析時(shí)根據(jù)監(jiān)控記錄數(shù)據(jù)進(jìn)行分析。本發(fā)明實(shí)施例中的敏感進(jìn)程可以預(yù)設(shè)為與操作系統(tǒng)內(nèi)的安全相關(guān)、系統(tǒng)關(guān)鍵數(shù)據(jù)操作相關(guān)的應(yīng)用程序接口調(diào)用操作,當(dāng)對(duì)敏感進(jìn)程進(jìn)行監(jiān)控時(shí),可以在對(duì)操作系統(tǒng)內(nèi)的與安全相關(guān)、系統(tǒng)關(guān)鍵數(shù)據(jù)操作相關(guān)的應(yīng)用程序接口(Application ProgrammingInterface,簡稱API)調(diào)用的頭部和尾部設(shè)置監(jiān)控?cái)帱c(diǎn);之后監(jiān)控模塊根據(jù)設(shè)置的監(jiān)控?cái)帱c(diǎn)觸發(fā)監(jiān)控,并將應(yīng)用程序接口調(diào)用開始及返回處的參數(shù)值記錄為監(jiān)控記錄數(shù)據(jù),以作為后續(xù)分析模塊進(jìn)行進(jìn)程行為分析時(shí)使用的原始數(shù)據(jù),這里對(duì)進(jìn)程行為的監(jiān)控可以是現(xiàn)有的任一監(jiān)控技術(shù)。步驟102、根據(jù)所述監(jiān)控記錄數(shù)據(jù)模擬重現(xiàn)監(jiān)控過程中的句柄、進(jìn)程和線程,獲取分別與所述句柄、進(jìn)程和線程對(duì)應(yīng)的虛擬表項(xiàng),所述虛擬表項(xiàng)記錄敏感進(jìn)程創(chuàng)建的句柄、進(jìn)程和線程及對(duì)應(yīng)的屬性。當(dāng)進(jìn)程行為分析系統(tǒng)在上述步驟101獲取監(jiān)控記錄數(shù)據(jù)后,按照時(shí)間順序逐條對(duì)監(jiān)控記錄數(shù)據(jù)進(jìn)行依次處理,即將監(jiān)控記錄數(shù)據(jù)中記錄監(jiān)控過程中的句柄、進(jìn)程和線程等動(dòng)態(tài)模擬重現(xiàn),獲取監(jiān)控過程中的進(jìn)程變化情況,從而得到進(jìn)程行為分析中用到的句柄、進(jìn)程和線程等所對(duì)應(yīng)的具體對(duì)象,如操作對(duì)象、操作路徑等相關(guān)聯(lián)的屬性,并將具體對(duì)象與句柄、進(jìn)程和線程的對(duì)應(yīng)關(guān)系存入相應(yīng)的虛擬表項(xiàng)中,從而虛擬表項(xiàng)記錄了敏感進(jìn)程創(chuàng)建的句柄、進(jìn)程和線程及對(duì)應(yīng)的屬性。圖2為圖1中模擬重現(xiàn)監(jiān)控過程中的句柄的原理圖,如圖2所示,若真實(shí)系統(tǒng)中句柄操作為NtCreateFile, NtReadFile等,其對(duì)應(yīng)的表項(xiàng)為圖2中左邊的句柄表,其對(duì)應(yīng)著進(jìn)程執(zhí)行過程中各個(gè)句柄值對(duì)應(yīng)的具體對(duì)象,由于監(jiān)控模塊在監(jiān)控過程中記錄的是NtCreateFile, NtReadFile等句柄操作函數(shù)及句柄值,但僅僅有這些參數(shù)操作并不能完整的解析出對(duì)象的完整屬性,例如監(jiān)控模塊記錄的一條數(shù)據(jù)為NtReadFile函數(shù),但此函數(shù)中對(duì)分析有意義的是文件句柄參數(shù),即NtReadFile函數(shù),但是僅僅依靠文件句柄參數(shù)是不能分析出文件的路徑的。本發(fā)明實(shí)施例中,分析模塊根據(jù)這些句柄操作及句柄值可以模擬出對(duì)應(yīng)的如圖2中右邊的虛擬句柄表,由于虛擬句柄表中記錄了敏感進(jìn)程創(chuàng)建的句柄、進(jìn)程和線程及對(duì)應(yīng)的屬性,可以獲取如對(duì)象路徑等信息,從而使后續(xù)能夠?qū)εc敏感進(jìn)程相關(guān)的所有進(jìn)程進(jìn)行關(guān)聯(lián)分析時(shí),進(jìn)程分析的結(jié)果更加詳細(xì)可靠,保證了進(jìn)程行為分析的質(zhì)量效率。步驟103、設(shè)定敏感進(jìn)程的相關(guān)進(jìn)程,根據(jù)所述虛擬表項(xiàng)將相關(guān)進(jìn)程對(duì)應(yīng)的句柄、進(jìn)程和線程操作及對(duì)應(yīng)的屬性關(guān)聯(lián)到敏感進(jìn)程的進(jìn)程行為分析結(jié)果中。在動(dòng)態(tài)模擬重現(xiàn)敏感進(jìn)程創(chuàng)建的句柄、進(jìn)程和線程及對(duì)應(yīng)的屬性后,本步驟采用進(jìn)程關(guān)聯(lián)方式將敏感進(jìn)程的相關(guān)進(jìn)程對(duì)應(yīng)的句柄、進(jìn)程和線程操作及相關(guān)屬性都關(guān)聯(lián)到當(dāng)前敏感進(jìn)程的進(jìn)程行為分析中,從而保證了進(jìn)程分析的完整性。具體應(yīng)用中,對(duì)敏感進(jìn)程進(jìn)行進(jìn)程分析時(shí),可以根據(jù)分析需求設(shè)定敏感進(jìn)程的相關(guān)進(jìn)程,也可以根據(jù)設(shè)定的條件獲取。例如可以根據(jù)應(yīng)用程序接口調(diào)用函數(shù)及參數(shù)確定所述應(yīng)用程序接口調(diào)用影響的進(jìn)程是否為敏感進(jìn)程的相關(guān)進(jìn)程;若是,則以應(yīng)用程序接口函數(shù)調(diào)用的標(biāo)識(shí)號(hào)為關(guān)聯(lián)點(diǎn),根據(jù)虛擬表項(xiàng)將相關(guān)進(jìn)程在所述關(guān)聯(lián)點(diǎn)之后的所有句柄、進(jìn)程和線程操作關(guān)聯(lián)到敏感進(jìn)程的進(jìn)程行為分析結(jié)果中。具體來說,當(dāng)應(yīng)用程序接口調(diào)用函數(shù)及參數(shù)對(duì)應(yīng)于創(chuàng)建進(jìn)程操作、注入操作和本地進(jìn)程調(diào)用時(shí),可以將所述應(yīng)用程序接口調(diào)用影響的進(jìn)程設(shè)定為敏感進(jìn)程的相關(guān)進(jìn)程,如windows系統(tǒng)中,創(chuàng)建進(jìn)程操作的應(yīng)用程序接口調(diào)用包括:NtCreateProcess, NtCreateProcessEx, NtCreateUserProcess ;注入操作的應(yīng)用程序接 口調(diào)用包括:NtUserSetWindowsHookEx, NtffriteVirtualMemory,NtCreateThread, NtCreateThreadEx, NtMapViewOfSection ;本地進(jìn)程調(diào)用操作的應(yīng)用程序接口調(diào)用包括:NtRequestWaitReplyPort, NtReplyWaitReceivePortEx。還可以直接將敏感進(jìn)程進(jìn)行的能夠影響其他進(jìn)程流程的操作,如創(chuàng)建子進(jìn)程、注入進(jìn)程、本地進(jìn)程調(diào)用(localProcedure call,簡稱LPC)、遠(yuǎn)程COM調(diào)用和/或窗口消息操作的進(jìn)程設(shè)定為敏感進(jìn)程的相關(guān)進(jìn)程。上述創(chuàng)建進(jìn)程操作、注入操作和本地進(jìn)程調(diào)用等當(dāng)然也適用于其他操作系統(tǒng),本發(fā)明對(duì)此不作限制。本實(shí)施例中通過API調(diào)用的參數(shù)來判斷API影響的進(jìn)程是否為被監(jiān)控的敏感進(jìn)程的相關(guān)進(jìn)程,由于每一個(gè)API調(diào)用都對(duì)應(yīng)唯一的ID,這個(gè)ID是按監(jiān)控過程的函數(shù)調(diào)用依次遞增的,當(dāng)確定某個(gè)API調(diào)用影響的進(jìn)程為相關(guān)進(jìn)程時(shí),將該API調(diào)用的ID作為關(guān)聯(lián)點(diǎn),并將相關(guān)進(jìn)程在關(guān)聯(lián)點(diǎn)之后的所有操作都關(guān)聯(lián)到當(dāng)前敏感進(jìn)程的分析結(jié)果中。圖3為圖1所示實(shí)施例中將相關(guān)進(jìn)程的操作關(guān)聯(lián)到敏感進(jìn)程的原理圖,如圖3所示,進(jìn)程A為設(shè)定的惡意的敏感進(jìn)程,進(jìn)程B為正常進(jìn)程,設(shè)進(jìn)程B為進(jìn)程A的相關(guān)進(jìn)程,若在關(guān)聯(lián)點(diǎn),即在進(jìn)程B的操作2之后,進(jìn)程A對(duì)進(jìn)程B進(jìn)行了通信注入等操作,則進(jìn)程A的操作會(huì)對(duì)正常進(jìn)程B產(chǎn)生影響,現(xiàn)有技術(shù)中,由于進(jìn)程B為正常進(jìn)程,對(duì)進(jìn)程A分析時(shí)是不對(duì)進(jìn)程B進(jìn)行分析的,因此,進(jìn)程A對(duì)進(jìn)程B產(chǎn)生了何種影響及注入進(jìn)程A后,進(jìn)程B發(fā)生了哪些變化,在進(jìn)程A的進(jìn)程行為分析中是得不到體現(xiàn)的,因此,這種進(jìn)程分析方法存在不完善的地方,如圖3所示,本發(fā)明實(shí)施例中在進(jìn)程A的分析結(jié)果中包括了關(guān)聯(lián)點(diǎn)之后的進(jìn)程B的所有操作,從而根據(jù)這些操作及A進(jìn)程的所有操作可以全面了解進(jìn)程A的行為,這樣就將惡意進(jìn)程A所有的行為都完整的體現(xiàn)出來,保證了進(jìn)程行為分析的完整性,使惡意進(jìn)程的行為一目了然,大大提高了惡意軟件分析技術(shù)人員的工作質(zhì)量和效率。圖4為圖1所示實(shí)施例的具體應(yīng)用實(shí)例圖,如圖4所示,當(dāng)獲取的監(jiān)控記錄數(shù)據(jù)存儲(chǔ)于監(jiān)控記錄數(shù)據(jù)庫中后,后續(xù)進(jìn)程分析系統(tǒng)進(jìn)行進(jìn)程分析時(shí),首先對(duì)系統(tǒng)進(jìn)行初始化,初始化完成以后分析在數(shù)據(jù)庫提取記錄信息,并按時(shí)間排序,對(duì)每條記錄進(jìn)行依次處理,每條數(shù)據(jù)的處理是分為兩層的,從上到下依次處理,即包括:第一層的句柄、進(jìn)程、線程的重組,動(dòng)態(tài)模擬系統(tǒng)表項(xiàng);以及第二層的進(jìn)程行為統(tǒng)計(jì)。在第一層分析模塊根據(jù)數(shù)據(jù)庫提供的監(jiān)控?cái)?shù)據(jù)來對(duì)監(jiān)控過程中的句柄、進(jìn)程、線程等虛擬表項(xiàng)來動(dòng)態(tài)模擬回放監(jiān)控過程中的變化情況,從而恢復(fù)第二層分析進(jìn)程行為中的句柄、進(jìn)程等所對(duì)應(yīng)的具體的對(duì)象如路徑等。本實(shí)施例通過動(dòng)態(tài)模擬關(guān)鍵數(shù)據(jù)結(jié)構(gòu)的管理機(jī)制來實(shí)現(xiàn)句柄等動(dòng)態(tài)數(shù)據(jù)的還原,既記錄與句柄管理相關(guān)的所有函數(shù),包括添加、刪除、復(fù)制等操作,又記錄句柄和其相關(guān)聯(lián)的屬性,即按照這些函數(shù)記錄的順序來動(dòng)態(tài)的模擬重現(xiàn)監(jiān)控過程中真實(shí)系統(tǒng)對(duì)句柄表的管理,從而在后續(xù)對(duì)相關(guān)進(jìn)程進(jìn)行關(guān)聯(lián)時(shí),使用到此句柄的時(shí)候向模擬的虛擬句柄表進(jìn)行查詢即可,這種動(dòng)態(tài)模擬方式同樣適用于進(jìn)程、線程等。本實(shí)施例通過根據(jù)監(jiān)控記錄數(shù)據(jù)模擬重現(xiàn)監(jiān)控過程中的句柄、進(jìn)程和線程,獲取記錄敏感進(jìn)程創(chuàng)建的句柄、進(jìn)程和線程及對(duì)應(yīng)的屬性的虛擬表項(xiàng),再根據(jù)所述虛擬表項(xiàng)將設(shè)定的相關(guān)進(jìn)程對(duì)應(yīng)的句柄、進(jìn)程和線程操作及對(duì)應(yīng)的屬性關(guān)聯(lián)到敏感進(jìn)程的進(jìn)程行為分析結(jié)果中,使得對(duì)敏感進(jìn)程的行為分析的更加完整充分,保證了進(jìn)程行為分析的質(zhì)量效率。在實(shí)際應(yīng)用中,進(jìn)程分析過程比較耗時(shí),而監(jiān)控過程記錄了大量數(shù)據(jù),若不及時(shí)處理,將導(dǎo)致數(shù)據(jù)丟失或使虛擬機(jī)監(jiān)控效率降低,因此,本發(fā)明還對(duì)監(jiān)控過程中記錄的數(shù)據(jù)進(jìn)行了數(shù)據(jù)轉(zhuǎn)換緩存,以便于后續(xù)使用時(shí)從轉(zhuǎn)換緩存的數(shù)據(jù)庫中獲取。圖5為本發(fā)明進(jìn)程行為分析方法實(shí)施例二的流程圖,圖6為圖5所示實(shí)施例中預(yù)定義的二進(jìn)制文件結(jié)構(gòu)示意圖,如圖5和圖6所示,本實(shí)施例在上述圖1所示實(shí)施例的基礎(chǔ)上,進(jìn)一步包括將監(jiān)控記錄中獲取的數(shù)據(jù)進(jìn)行緩存轉(zhuǎn)換的過程,以提高虛擬機(jī)監(jiān)控的效率。本實(shí)施例的方法包括:步驟201、獲取對(duì)預(yù)設(shè)的敏感進(jìn)程進(jìn)行監(jiān)控的監(jiān)控記錄數(shù)據(jù)。步驟202、將所述監(jiān)控記錄數(shù)據(jù)存入預(yù)定義的二進(jìn)制文件中。步驟203、將所述二進(jìn)制文件導(dǎo)入監(jiān)控記錄數(shù)據(jù)庫中。操作系統(tǒng)的虛擬機(jī)監(jiān)控中,由于存儲(chǔ)記錄數(shù)據(jù)中寫數(shù)據(jù)庫的操作比較耗時(shí),本實(shí)施例中進(jìn)一步將監(jiān)控記錄數(shù)據(jù)采集到自定義的二進(jìn)制文件中,然后再將二進(jìn)制文件記錄的數(shù)據(jù)導(dǎo)入到數(shù)據(jù)庫中,這樣將虛擬機(jī)寫數(shù)據(jù)的耗時(shí)轉(zhuǎn)到后面耗時(shí)較長的進(jìn)程分析上,大大提高了虛擬機(jī)的執(zhí)行效率,同時(shí)也提高了用戶接口的友好程度。當(dāng)然記錄文件也可以使用其他結(jié)構(gòu),圖6僅為本發(fā)明實(shí)施例中使用的結(jié)構(gòu)。步驟204、根據(jù)所述監(jiān)控記錄數(shù)據(jù)庫中存儲(chǔ)的二進(jìn)制文件模擬重現(xiàn)監(jiān)控過程中的句柄、進(jìn)程和線程,獲取分別與所述句柄、進(jìn)程和線程對(duì)應(yīng)的虛擬表項(xiàng),所述虛擬表項(xiàng)記錄敏感進(jìn)程創(chuàng)建的句柄、進(jìn)程和線程及對(duì)應(yīng)的屬性;步驟205、設(shè)定敏感進(jìn)程的相關(guān)進(jìn)程,根據(jù)所述虛擬表項(xiàng)將相關(guān)進(jìn)程對(duì)應(yīng)的句柄、進(jìn)程和線程操作及對(duì)應(yīng)的屬性關(guān)聯(lián)到敏感進(jìn)程的進(jìn)程行為分析結(jié)果中。本實(shí)施例在上述圖1所示實(shí)施例達(dá)到的技術(shù)效果的基礎(chǔ)上,進(jìn)一步通過將所述監(jiān)控記錄數(shù)據(jù)存入預(yù)定義的二進(jìn)制文件中,以及將所述二進(jìn)制文件導(dǎo)入監(jiān)控記錄數(shù)據(jù)庫中,使得監(jiān)控記錄過程中獲取的數(shù)據(jù)能夠及時(shí)地存儲(chǔ)在數(shù)據(jù)庫中,當(dāng)后續(xù)使用時(shí)直接從數(shù)據(jù)庫中獲取即可,有利于提高虛擬機(jī)監(jiān)控的效率,同時(shí)還有利于避免監(jiān)控?cái)?shù)據(jù)丟失。本領(lǐng)域普通技術(shù)人員可以理解:實(shí)現(xiàn)上述方法實(shí)施例的全部或部分步驟可以通過程序指令相關(guān)的硬件來完成,前述的程序可以存儲(chǔ)于一計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中,該程序在執(zhí)行時(shí),執(zhí)行包括上述方法實(shí)施例的步驟;而前述的存儲(chǔ)介質(zhì)包括:R0M、RAM、磁碟或者光盤等各種可以存儲(chǔ)程序代碼的介質(zhì)。圖7為本發(fā)明進(jìn)程行為分析系統(tǒng)實(shí)施例一的結(jié)構(gòu)示意圖,如圖7所示,本實(shí)施例的系統(tǒng)包括:監(jiān)控模塊10、分析模塊20和關(guān)聯(lián)模塊30,其中,監(jiān)控模塊10,用于獲取對(duì)預(yù)設(shè)的敏感進(jìn)程進(jìn)行監(jiān)控的監(jiān)控記錄數(shù)據(jù);分析模塊20,用于根據(jù)所述監(jiān)控記錄數(shù)據(jù)模擬重現(xiàn)監(jiān)控過程中的句柄、進(jìn)程和線程,獲取分別與所述句柄、進(jìn)程和線程對(duì)應(yīng)的虛擬表項(xiàng),所述虛擬表項(xiàng)記錄敏感進(jìn)程創(chuàng)建的句柄、進(jìn)程和線程及對(duì)應(yīng)的屬性;關(guān)聯(lián)模塊30,用于設(shè)定敏感進(jìn)程的相關(guān)進(jìn)程,根據(jù)所述虛擬表項(xiàng)將相關(guān)進(jìn)程對(duì)應(yīng)的句柄、進(jìn)程和線程操作及對(duì)應(yīng)的屬性關(guān)聯(lián)到敏感進(jìn)程的進(jìn)程行為分析結(jié)果中。本實(shí)施例中,監(jiān)控模塊10根據(jù)監(jiān)控需求預(yù)設(shè)的敏感進(jìn)程對(duì)敏感進(jìn)程進(jìn)行監(jiān)控,并獲取監(jiān)控記錄數(shù)據(jù),分析模塊20根據(jù)監(jiān)控模塊獲取的監(jiān)控記錄數(shù)據(jù)動(dòng)態(tài)模擬監(jiān)控過程,獲取監(jiān)控過程相應(yīng)的虛擬表項(xiàng),從而恢復(fù)真實(shí)監(jiān)控過程,關(guān)聯(lián)模塊30根據(jù)設(shè)定的相關(guān)進(jìn)程及分析模塊20獲取的虛擬表項(xiàng)將相關(guān)進(jìn)程的操作關(guān)聯(lián)到敏感進(jìn)程的進(jìn)程行為分析結(jié)果中,從而保證了進(jìn)程行為分析的完整性和有效性。所述敏感進(jìn)程為與安全相關(guān)、系統(tǒng)關(guān)鍵數(shù)據(jù)操作相關(guān)的應(yīng)用程序接口調(diào)用,實(shí)際應(yīng)用中,監(jiān)控模塊10具體用于在對(duì)操作系統(tǒng)內(nèi)的與安全相關(guān)、系統(tǒng)關(guān)鍵數(shù)據(jù)操作相關(guān)的應(yīng)用程序接口調(diào)用的頭部和尾部設(shè)置監(jiān)控?cái)帱c(diǎn);以及根據(jù)設(shè)置的監(jiān)控?cái)帱c(diǎn)觸發(fā)監(jiān)控,并將應(yīng)用程序接口調(diào)用開始及返回處的參數(shù)值記錄為監(jiān)控記錄數(shù)據(jù)。在一種實(shí)現(xiàn)方式中,關(guān)聯(lián)模塊30可以包括確定單元和關(guān)聯(lián)單元(未示出),確定單元,用于根據(jù)應(yīng)用程序接口調(diào)用函數(shù)及參數(shù)確定所述應(yīng)用程序接口調(diào)用影響的進(jìn)程是否為敏感進(jìn)程的相關(guān)進(jìn)程;關(guān)聯(lián)單元,用于以應(yīng)用程序接口調(diào)用的標(biāo)識(shí)號(hào)為關(guān)聯(lián)點(diǎn),根據(jù)虛擬表項(xiàng)將相關(guān)進(jìn)程在所述關(guān)聯(lián)點(diǎn)之后的所有句柄、進(jìn)程和線程操作及對(duì)應(yīng)的屬性關(guān)聯(lián)到敏感進(jìn)程的進(jìn)程行為分析結(jié)果中。具體應(yīng)用中,確定單元,可用于當(dāng)應(yīng)用程序接口調(diào)用的參數(shù)對(duì)應(yīng)于創(chuàng)建進(jìn)程操作、注入操作和本地進(jìn)程調(diào)用時(shí),將所述應(yīng)用程序接口調(diào)用影響的進(jìn)程確定為敏感進(jìn)程的相關(guān)進(jìn)程,如windows系統(tǒng)中,創(chuàng)建進(jìn)程操作的應(yīng)用程序接口調(diào)用包括:NtCreateProcess, NtCreateProcessEx, NtCreateUserProcess ;注入操作的應(yīng)用程序接口調(diào)用包括:NtUserSetWindowsHookEx, NtffriteVirtualMemory, NtCreateThread,NtCreateThreadEx, NtMapViewOfSection ;本地進(jìn)程調(diào)用操作的應(yīng)用程序接口調(diào)用包括:NtRequestffaitReplyPort, NtRepIyffaitReceiVePortEx0 當(dāng)然,上述創(chuàng)建進(jìn)程操作、注入操作和本地進(jìn)程調(diào)用等也適用于其他操作系統(tǒng),本發(fā)明對(duì)此不作限制。在另一種實(shí)現(xiàn)方式中,關(guān)聯(lián)模塊30具體用于將敏感進(jìn)程進(jìn)行的創(chuàng)建子進(jìn)程、注入進(jìn)程、本地進(jìn)程調(diào)用、遠(yuǎn)程COM調(diào)用和/或窗口消息操作的進(jìn)程設(shè)定為敏感進(jìn)程的相關(guān)進(jìn)程,根據(jù)所述虛擬表項(xiàng)將相關(guān)進(jìn)程對(duì)應(yīng)的句柄、進(jìn)程和線程操作及相關(guān)屬性關(guān)聯(lián)到敏感進(jìn)程的進(jìn)程行為分析結(jié)果中。
本實(shí)施例可用于執(zhí)行上述圖1所示方法實(shí)施例的操作,其工作原理及達(dá)到的技術(shù)效果類似,不再詳細(xì)贅述。圖8為本發(fā)明進(jìn)程行為分析系統(tǒng)實(shí)施例二的結(jié)構(gòu)示意圖,如圖8所示,在上述圖7所示實(shí)施例的基礎(chǔ)上,進(jìn)一步還包括:轉(zhuǎn)換模塊40,用于將所述監(jiān)控記錄數(shù)據(jù)存入預(yù)定義的二進(jìn)制文件中;以及將所述二進(jìn)制文件導(dǎo)入監(jiān)控記錄數(shù)據(jù)庫中;從而分析模塊20,具體用于根據(jù)所述監(jiān)控記錄數(shù)據(jù)庫中存儲(chǔ)的二進(jìn)制文件模擬重現(xiàn)監(jiān)控過程中的句柄、進(jìn)程和線程,獲取分別與所述句柄、進(jìn)程和線程對(duì)應(yīng)的虛擬表項(xiàng),所述虛擬表項(xiàng)記錄敏感進(jìn)程創(chuàng)建的句柄、進(jìn)程和線程及對(duì)應(yīng)的屬性。本實(shí)施例在上述圖7所示實(shí)施例達(dá)到的技術(shù)效果的基礎(chǔ)上,進(jìn)一步通過轉(zhuǎn)換模塊將監(jiān)控獲取的監(jiān)控記錄數(shù)據(jù)進(jìn)行了轉(zhuǎn)換緩存,保證了虛擬機(jī)的監(jiān)控效率,避免了監(jiān)控?cái)?shù)據(jù)丟失。圖9為圖8所示實(shí)施例的實(shí)際應(yīng)用例的結(jié)構(gòu)示意圖,如圖9所示,監(jiān)控模塊獲取監(jiān)控記錄數(shù)據(jù)后,將監(jiān)控記錄數(shù)據(jù)發(fā)送給轉(zhuǎn)換模塊并以二進(jìn)制記錄形式保存,之后再將該二進(jìn)制記錄轉(zhuǎn)存入數(shù)據(jù)庫中,當(dāng)后續(xù)分析時(shí),分析模塊從數(shù)據(jù)庫中獲取相應(yīng)的數(shù)據(jù)進(jìn)行分析,獲取分析結(jié)果。最后應(yīng)說明的是:以上實(shí)施例僅用以說明本發(fā)明的技術(shù)方案而非對(duì)其進(jìn)行限制,盡管參照較佳實(shí)施例對(duì)本發(fā)明進(jìn)行了詳細(xì)的說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:其依然可以對(duì)本發(fā)明的技術(shù)方案進(jìn)行修改或者等同替換,而這些修改或者等同替換亦不能使修改后的技術(shù)方案脫離本發(fā)明技術(shù)方案的精神和范圍。
權(quán)利要求
1.一種進(jìn)程行為分析方法,其特征在于,包括: 獲取對(duì)預(yù)設(shè)的敏感進(jìn)程進(jìn)行監(jiān)控的監(jiān)控記錄數(shù)據(jù); 根據(jù)所述監(jiān)控記錄數(shù)據(jù)模擬重現(xiàn)監(jiān)控過程中的句柄、進(jìn)程和線程,獲取分別與所述句柄、進(jìn)程和線程對(duì)應(yīng)的虛擬表項(xiàng),所述虛擬表項(xiàng)記錄敏感進(jìn)程創(chuàng)建的句柄、進(jìn)程和線程及對(duì)應(yīng)的屬性; 設(shè)定敏感進(jìn)程的相關(guān)進(jìn)程,根據(jù)所述虛擬表項(xiàng)將相關(guān)進(jìn)程對(duì)應(yīng)的句柄、進(jìn)程和線程操作及對(duì)應(yīng)的屬性關(guān)聯(lián)到敏感進(jìn)程的進(jìn)程行為分析結(jié)果中。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,根據(jù)所述監(jiān)控記錄數(shù)據(jù)模擬重現(xiàn)監(jiān)控過程中的句柄、進(jìn)程和線程之前,還包括: 將所述監(jiān)控記錄數(shù)據(jù)存入預(yù)定義的二進(jìn)制文件中; 將所述二進(jìn)制文件導(dǎo)入監(jiān)控記錄數(shù)據(jù)庫中; 相應(yīng)地,根據(jù)所述監(jiān)控記錄數(shù)據(jù)模擬重現(xiàn)監(jiān)控過程中的句柄、進(jìn)程和線程,具體為: 根據(jù)所述監(jiān)控記錄數(shù)據(jù)庫中存儲(chǔ)的二進(jìn)制文件模擬重現(xiàn)監(jiān)控過程中的句柄、進(jìn)程和線程。
3.根據(jù)權(quán)利要求1或2所述的方法,其特征在于,所述敏感進(jìn)程為與安全相關(guān)、系統(tǒng)關(guān)鍵數(shù)據(jù)操作相關(guān)的應(yīng)用程序接口調(diào)用, 相應(yīng)地,獲取對(duì)預(yù)設(shè)的敏 感進(jìn)程進(jìn)行監(jiān)控的監(jiān)控記錄數(shù)據(jù),包括: 在對(duì)操作系統(tǒng)內(nèi)的與安全相關(guān)、系統(tǒng)關(guān)鍵數(shù)據(jù)操作相關(guān)的應(yīng)用程序接口調(diào)用的頭部和尾部設(shè)置監(jiān)控?cái)帱c(diǎn); 根據(jù)設(shè)置的監(jiān)控?cái)帱c(diǎn)觸發(fā)監(jiān)控,并將應(yīng)用程序接口調(diào)用開始及返回處的參數(shù)值記錄為監(jiān)控記錄數(shù)據(jù)。
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,設(shè)定敏感進(jìn)程的相關(guān)進(jìn)程,根據(jù)所述虛擬表項(xiàng)將相關(guān)進(jìn)程對(duì)應(yīng)的句柄、進(jìn)程和線程操作及對(duì)應(yīng)的屬性關(guān)聯(lián)到敏感進(jìn)程的進(jìn)程行為分析結(jié)果中,包括: 根據(jù)應(yīng)用程序接口調(diào)用函數(shù)及參數(shù)確定所述應(yīng)用程序接口調(diào)用影響的進(jìn)程是否為敏感進(jìn)程的相關(guān)進(jìn)程; 若是,則以應(yīng)用程序接口調(diào)用的標(biāo)識(shí)號(hào)為關(guān)聯(lián)點(diǎn),根據(jù)虛擬表項(xiàng)將相關(guān)進(jìn)程在所述關(guān)聯(lián)點(diǎn)之后的所有句柄、進(jìn)程和線程操作及對(duì)應(yīng)的屬性關(guān)聯(lián)到敏感進(jìn)程的進(jìn)程行為分析結(jié)果中。
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,當(dāng)應(yīng)用程序接口調(diào)用函數(shù)及參數(shù)對(duì)應(yīng)于創(chuàng)建進(jìn)程操作、注入操作和本地進(jìn)程調(diào)用時(shí),將所述應(yīng)用程序接口調(diào)用影響的進(jìn)程設(shè)定為敏感進(jìn)程的相關(guān)進(jìn)程。
6.根據(jù)權(quán)利要求1或2所述的方法,其特征在于,設(shè)定敏感進(jìn)程的相關(guān)進(jìn)程包括: 將敏感進(jìn)程進(jìn)行的創(chuàng)建子進(jìn)程、注入進(jìn)程、本地進(jìn)程調(diào)用、遠(yuǎn)程COM調(diào)用和/或窗口消息操作的進(jìn)程設(shè)定為敏感進(jìn)程的相關(guān)進(jìn)程。
7.—種進(jìn)程行為分析系統(tǒng),其特征在于,包括: 監(jiān)控模塊,用于獲取對(duì)預(yù)設(shè)的敏感進(jìn)程進(jìn)行監(jiān)控的監(jiān)控記錄數(shù)據(jù); 分析模塊,用于根據(jù)所述監(jiān)控記錄數(shù)據(jù)模擬重現(xiàn)監(jiān)控過程中的句柄、進(jìn)程和線程,獲取分別與所述句柄、進(jìn)程和線程對(duì)應(yīng)的虛擬表項(xiàng),所述虛擬表項(xiàng)記錄敏感進(jìn)程創(chuàng)建的句柄、進(jìn)程和線程及對(duì)應(yīng)的屬性; 關(guān)聯(lián)模塊,用于設(shè)定敏感進(jìn)程的相關(guān)進(jìn)程,根據(jù)所述虛擬表項(xiàng)將相關(guān)進(jìn)程對(duì)應(yīng)的句柄、進(jìn)程和線程操作及對(duì)應(yīng)的屬性關(guān)聯(lián)到敏感進(jìn)程的進(jìn)程行為分析結(jié)果中。
8.根據(jù)權(quán)利要求7所述的系統(tǒng),其特征在于,還包括: 轉(zhuǎn)換模塊,用于將所述監(jiān)控記錄數(shù)據(jù)存入預(yù)定義的二進(jìn)制文件中;以及將所述二進(jìn)制文件導(dǎo)入監(jiān)控記錄數(shù)據(jù)庫中; 所述分析模塊,具體用于根據(jù)所述監(jiān)控記錄數(shù)據(jù)庫中存儲(chǔ)的二進(jìn)制文件模擬重現(xiàn)監(jiān)控過程中的句柄、進(jìn)程和線程,獲取分別與所述句柄、進(jìn)程和線程對(duì)應(yīng)的虛擬表項(xiàng),所述虛擬表項(xiàng)記錄敏感進(jìn)程創(chuàng)建的句柄、進(jìn)程和線程及對(duì)應(yīng)的屬性。
9.根據(jù)權(quán)利要求7或8所述的系統(tǒng),其特征在于,所述敏感進(jìn)程為與安全相關(guān)、系統(tǒng)關(guān)鍵數(shù)據(jù)操作相關(guān)的應(yīng)用程序接口調(diào)用, 所述監(jiān)控模塊,具體用于在對(duì)操作系統(tǒng)內(nèi)的與安全相關(guān)、系統(tǒng)關(guān)鍵數(shù)據(jù)操作相關(guān)的應(yīng)用程序接口調(diào)用的頭部和尾部設(shè)置監(jiān)控?cái)帱c(diǎn);以及根據(jù)設(shè)置的監(jiān)控?cái)帱c(diǎn)觸發(fā)監(jiān)控,并將應(yīng)用程序接口調(diào)用開始及返回處的參數(shù)值記錄為監(jiān)控記錄數(shù)據(jù)。
10.根據(jù)權(quán)利要求9所述的系統(tǒng),其特征在于,所述關(guān)聯(lián)模塊包括: 確定單元,用于根據(jù)應(yīng)用程序接口調(diào)用的參數(shù)確定所述應(yīng)用程序接口調(diào)用影響的進(jìn)程是否為敏感進(jìn)程的相關(guān)進(jìn)程; 關(guān)聯(lián)單元,用于以應(yīng)用程序接口調(diào)用的標(biāo)識(shí)號(hào)為關(guān)聯(lián)點(diǎn),根據(jù)虛擬表項(xiàng)將相關(guān)進(jìn)程在所述關(guān)聯(lián)點(diǎn)之后的所有句柄、進(jìn)程和線程操作及對(duì)應(yīng)的屬性關(guān)聯(lián)到敏感進(jìn)程的進(jìn)程行為分析結(jié)果中。
11.根據(jù)權(quán)利要求10所述的系統(tǒng),其特征在于,所述確定單元,具體用于當(dāng)應(yīng)用程序接口調(diào)用函數(shù)及參數(shù)對(duì)應(yīng) 于創(chuàng)建進(jìn)程操作、注入操作和本地進(jìn)程調(diào)用時(shí),將所述應(yīng)用程序接口調(diào)用影響的進(jìn)程確定為敏感進(jìn)程的相關(guān)進(jìn)程。
12.根據(jù)權(quán)利要求7或8所述的系統(tǒng),其特征在于,所述關(guān)聯(lián)模塊,具體用于將敏感進(jìn)程進(jìn)行的創(chuàng)建子進(jìn)程、注入進(jìn)程、本地進(jìn)程調(diào)用、遠(yuǎn)程COM調(diào)用和/或窗口消息操作的進(jìn)程設(shè)定為敏感進(jìn)程的相關(guān)進(jìn)程,根據(jù)所述虛擬表項(xiàng)將相關(guān)進(jìn)程對(duì)應(yīng)的句柄、進(jìn)程和線程操作及對(duì)應(yīng)的屬性關(guān)聯(lián)到敏感進(jìn)程的進(jìn)程行為分析結(jié)果中。
全文摘要
本發(fā)明公開了一種進(jìn)程行為分析方法及系統(tǒng),其中進(jìn)程行為分析方法,包括獲取對(duì)預(yù)設(shè)的敏感進(jìn)程進(jìn)行監(jiān)控的監(jiān)控記錄數(shù)據(jù);根據(jù)所述監(jiān)控記錄數(shù)據(jù)模擬重現(xiàn)監(jiān)控過程中的句柄、進(jìn)程和線程,獲取分別與所述句柄、進(jìn)程和線程對(duì)應(yīng)的虛擬表項(xiàng),所述虛擬表項(xiàng)記錄敏感進(jìn)程創(chuàng)建的句柄、進(jìn)程和線程及對(duì)應(yīng)的屬性;設(shè)定敏感進(jìn)程的相關(guān)進(jìn)程,根據(jù)所述虛擬表項(xiàng)將相關(guān)進(jìn)程對(duì)應(yīng)的句柄、進(jìn)程和線程操作及對(duì)應(yīng)的屬性關(guān)聯(lián)到敏感進(jìn)程的進(jìn)程行為分析結(jié)果中。本發(fā)明對(duì)與一個(gè)進(jìn)程相關(guān)的所有進(jìn)程的行為進(jìn)行全面地分析,提高進(jìn)程行為分析的質(zhì)量效率。
文檔編號(hào)G06F21/50GK103164649SQ201310052560
公開日2013年6月19日 申請(qǐng)日期2013年2月18日 優(yōu)先權(quán)日2013年2月18日
發(fā)明者劉業(yè)欣, 曲富平, 邱鵬 申請(qǐng)人:北京神州綠盟信息安全科技股份有限公司, 北京神州綠盟科技有限公司