欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

主動(dòng)防御惡意程序的方法和裝置的制作方法

文檔序號:6398508閱讀:122來源:國知局
專利名稱:主動(dòng)防御惡意程序的方法和裝置的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及計(jì)算機(jī)網(wǎng)絡(luò)安全領(lǐng)域,具體涉及一種主動(dòng)防御惡意程序的方法和裝置。
背景技術(shù)
惡意程序是一個(gè)概括性的術(shù)語,指任何故意創(chuàng)建用來執(zhí)行未經(jīng)授權(quán)并通常是有害行為的程序。惡意程序可以包括病毒、木馬、惡意腳本、惡意插件、惡評軟件或流氓軟件等。計(jì)算機(jī)病毒、后門程序、鍵盤記錄器、密碼盜取者、Word和Excel宏病毒、引導(dǎo)區(qū)病毒、腳本病毒、木馬、犯罪程序、間諜程序和廣告程序等,都為惡意程序的例子。現(xiàn)有技術(shù)中,惡意程序防殺主要依賴于特征庫模式。特征庫由殺毒產(chǎn)品提供商收集到的惡意程序樣本的特征碼組成,而特征碼為分析工程師從惡意程序中找到的和正當(dāng)程序的不同之處,截取一段類似于“搜索關(guān)鍵詞”的程序代碼。在查殺過程中,引擎會讀取文件并與特征庫中的所有特征碼“關(guān)鍵詞”進(jìn)行匹配,如果發(fā)現(xiàn)文件程序代碼被命中,則可以判定該文件程序?yàn)閻阂獬绦?。特征庫匹配是現(xiàn)有技術(shù)中查殺已知惡意程序的常用技術(shù)。但是現(xiàn)今全球惡意程序數(shù)量呈幾何級增長,基于這種爆發(fā)式的增速,特征庫的生成與更新相對于病毒的產(chǎn)生通常滯后,導(dǎo)致惡意程序防殺方式無法防殺不斷產(chǎn)生的未知惡意程序?,F(xiàn)有技術(shù)中,隨之出現(xiàn)了主動(dòng)防御技術(shù),其是基于程序行為自主分析判斷的實(shí)時(shí)防護(hù)技術(shù),不以特征碼作為判斷惡意程序的依據(jù),而是從設(shè)置的規(guī)則出發(fā),直接將程序的行為作為判斷程序是否為惡意程序的依據(jù),其中衍生出在本地使用特征庫、在本地設(shè)置行為閾值以及在本地啟發(fā)式殺毒的方式來判別、攔截惡意程序的行為,從而在一定程度上達(dá)到保護(hù)設(shè)備的目的。在現(xiàn)有技術(shù)中,出于對性能的考慮,設(shè)備中的主動(dòng)防御模塊只檢查程序的可執(zhí)行文件(例如,exe文件)是否可以信任,而不檢查程序加載的DLL (Dynamic Link Library,動(dòng)態(tài)鏈接庫)文件?,F(xiàn)有技術(shù)中主動(dòng)防御的上述特點(diǎn)被一些惡意程序所利用,惡意程序使用DLL劫持技術(shù)將木馬DLL與可信任的白程序打包在一起,當(dāng)白程序被執(zhí)行時(shí),木馬DLL就會被加載,從而實(shí)現(xiàn)利用白程序突破主動(dòng)防御的目的。

發(fā)明內(nèi)容
鑒于上述問題,本發(fā)明提出了主動(dòng)防御惡意程序的方法和裝置。依據(jù)本發(fā)明的一個(gè)方面,提供了一種主動(dòng)防御惡意程序的方法,該方法包括在待保護(hù)的設(shè)備創(chuàng)建進(jìn)程時(shí),根據(jù)與該創(chuàng)建的進(jìn)程相關(guān)的進(jìn)程文件判斷該創(chuàng)建的進(jìn)程是否具有危險(xiǎn)性,如果是,則攔截創(chuàng)建的進(jìn)程加載該進(jìn)程的動(dòng)態(tài)鏈接庫DLL文件的操作,并將該DLL文件記錄到內(nèi)存的進(jìn)程信息中;在待保護(hù)的設(shè)備啟動(dòng)進(jìn)程后,當(dāng)進(jìn)程執(zhí)行的操作為危險(xiǎn)操作時(shí),檢測記錄的該進(jìn)程的DLL文件是否安全,如果不安全,則阻止待保護(hù)的設(shè)備執(zhí)行該進(jìn)程。
其中,所述根據(jù)與該創(chuàng)建的進(jìn)程相關(guān)的進(jìn)程文件判斷該創(chuàng)建的進(jìn)程是否具有危險(xiǎn)性具體包括查詢該創(chuàng)建的進(jìn)程所在進(jìn)程鏈中各個(gè)進(jìn)程的進(jìn)程文件的來源,根據(jù)所述各個(gè)進(jìn)程的進(jìn)程文件的來源判斷該創(chuàng)建的進(jìn)程是否具有危險(xiǎn)性;所述創(chuàng)建的進(jìn)程所在進(jìn)程鏈為進(jìn)程樹中從該創(chuàng)建的進(jìn)程到根進(jìn)程的進(jìn)程鏈。其中,所述根據(jù)所述各個(gè)進(jìn)程的進(jìn)程文件的來源判斷該創(chuàng)建的進(jìn)程是否具有危險(xiǎn)性具體包括判斷所述各個(gè)進(jìn)程的進(jìn)程文件中是否存在來自網(wǎng)絡(luò)下載的文件,如果存在,則該創(chuàng)建的進(jìn)程具有危險(xiǎn)性。其中,所述根據(jù)所述各個(gè)進(jìn)程的進(jìn)程文件的來源判斷該創(chuàng)建的進(jìn)程是否具有危險(xiǎn)性具體包括判斷所述各個(gè)進(jìn)程的進(jìn)程文件中是否存在來自壓縮包的文件,如果存在,則該創(chuàng)建的進(jìn)程具有危險(xiǎn)性。其中,所述判斷所述各個(gè)進(jìn)程的進(jìn)程文件中是否存在來自壓縮包的文件具體包括對于所述各個(gè)進(jìn)程鏈中每個(gè)進(jìn)程進(jìn)行判定,如果該進(jìn)程的父進(jìn)程為解壓縮應(yīng)用,并且該解壓縮應(yīng)用直接執(zhí)行壓縮包中的可執(zhí)行文件或者該解壓縮應(yīng)用解壓縮的壓縮包中包含該進(jìn)程的進(jìn)程文件,則判定該進(jìn)程的進(jìn)程文件為來自壓縮包的文件。其中,所述根據(jù)與該創(chuàng)建的進(jìn)程相關(guān)的進(jìn)程文件判斷該創(chuàng)建的進(jìn)程是否具有危險(xiǎn)性具體包括判斷創(chuàng)建的進(jìn)程的進(jìn)程文件是否滿足預(yù)設(shè)的匹配條件,如果滿足,則創(chuàng)建的進(jìn)程具有危險(xiǎn)性。其中,所述檢測記錄的該進(jìn)程的DLL文件是否安全,如果不安全,則阻止待保護(hù)的設(shè)備執(zhí)行該進(jìn)程具體包括使用本地安全引擎和/或云安全引擎對該進(jìn)程的DLL文件進(jìn)行檢測,如果DLL文件為病毒文件,則阻止待保護(hù)的設(shè)備執(zhí)行該進(jìn)程。其中,所述使用本地安全引擎和/或云安全引擎對該進(jìn)程的DLL文件進(jìn)行檢測后還包括如果該進(jìn)程的可執(zhí)行文件和DLL文件都為安全文件,則確定該進(jìn)程安全。其中,所述使用本地安全引擎和/或云安全引擎對該進(jìn)程的DLL文件進(jìn)行檢測后還包括如果該進(jìn)程的DLL文件的危險(xiǎn)等級高于該進(jìn)程的可執(zhí)行文件的危險(xiǎn)等級,則修改該進(jìn)程的可執(zhí)行文件的危險(xiǎn)等級為所述DLL文件的危險(xiǎn)等級,并呈現(xiàn)危險(xiǎn)提示。其中,所述檢測記錄的該進(jìn)程的DLL文件是否安全后還包括如果該進(jìn)程的DLL文件為安全文件,則刪除該DLL文件的記錄,并在該DLL文件沒有發(fā)生變化的情況下,不進(jìn)行攔截創(chuàng)建的進(jìn)程加載該DLL文件的操作。其中,所述危險(xiǎn)操作至少包括下列操作中的一種 寫入注冊表進(jìn)行自動(dòng)加載;修改注冊表;
修改系統(tǒng)文件;修改指定的應(yīng)用文件;執(zhí)行進(jìn)程間注入;結(jié)束進(jìn)程;修改瀏覽器中網(wǎng)頁內(nèi)容;以及記錄鍵盤操作。根據(jù)本發(fā)明的另一方面,本發(fā)明提供了一種主動(dòng)防御惡意程序的裝置,該裝置包括危險(xiǎn)判斷單元,適于在待保護(hù)的設(shè)備創(chuàng)建進(jìn)程時(shí),根據(jù)與該創(chuàng)建的進(jìn)程相關(guān)的進(jìn)程文件判斷該創(chuàng)建的進(jìn)程是否具有危險(xiǎn)性,如果判斷結(jié)果為進(jìn)程具有危險(xiǎn)性,則指示加載攔截單元進(jìn)行攔截操作;加載攔截單元,適于在創(chuàng)建的進(jìn)程具有危險(xiǎn)性時(shí),攔截創(chuàng)建的進(jìn)程加載動(dòng)態(tài)鏈接庫DLL文件的操作;指示記錄單元將該DLL文件記錄到內(nèi)存的進(jìn)程信息中;記錄單元,適于根據(jù)指示將DLL文件記錄到內(nèi)存的進(jìn)程信息中;安全檢測單元,適于在待保護(hù)的設(shè)備啟動(dòng)進(jìn)程后,當(dāng)進(jìn)程執(zhí)行的操作為危險(xiǎn)操作時(shí),檢測記錄的該進(jìn)程的DLL文件是否安全,如果檢測結(jié)果為進(jìn)程的DLL文件不安全,則指示執(zhí)行阻止單元進(jìn)行阻止操作;執(zhí)行阻止單元,適于對于DLL文件不安全的進(jìn)程,阻止待保護(hù)的設(shè)備執(zhí)行該進(jìn)程。其中,所述危險(xiǎn)判斷單元,具體適于查詢該創(chuàng)建的進(jìn)程所在進(jìn)程鏈中各個(gè)進(jìn)程的進(jìn)程文件的來源,根據(jù)所述各個(gè)進(jìn)程的進(jìn)程文件的來源判斷該創(chuàng)建的進(jìn)程是否具有危險(xiǎn)性;所述創(chuàng)建的進(jìn)程所在進(jìn)程鏈為進(jìn)程樹中從該創(chuàng)建的進(jìn)程到根進(jìn)程的進(jìn)程鏈。其中,所述危險(xiǎn)判斷單元,具體適于判斷所述各個(gè)進(jìn)程的進(jìn)程文件中是否存在來自網(wǎng)絡(luò)下載的文件,如果存在,則該創(chuàng)建的進(jìn)程具有危險(xiǎn)性。其中,所述危險(xiǎn)判斷單元,具體適于判斷所述各個(gè)進(jìn)程的進(jìn)程文件中是否存在來自壓縮包的文件,如果存在,則該創(chuàng)建的進(jìn)程具有危險(xiǎn)性。其中,所述危險(xiǎn)判斷單元,具體適于對于所述進(jìn)程鏈中每個(gè)進(jìn)程進(jìn)行判定,如果該進(jìn)程的父進(jìn)程為解壓縮應(yīng)用,并且該解壓縮應(yīng)用直接執(zhí)行壓縮包中的可執(zhí)行文件或者該解壓縮應(yīng)用解壓縮的壓縮包中包含該進(jìn)程的進(jìn)程文件,則判定該進(jìn)程的進(jìn)程文件為來自壓縮包的文件。其中,所述危險(xiǎn)判斷單元,具體適于判斷創(chuàng)建的進(jìn)程的進(jìn)程文件是否滿足預(yù)設(shè)的匹配條件,如果滿足,則創(chuàng)建的進(jìn)程具有危險(xiǎn)性。其中,所述安全檢測單元,具體適于使用本地安全引擎和/或云安全引擎對該進(jìn)程的DLL文件進(jìn)行檢測,如果DLL文件為病毒文件,則檢測出記錄的該進(jìn)程的DLL文件不安全。其中,所述安全檢測單元,還適于如果該進(jìn)程的可執(zhí)行文件和DLL文件都為安全文件,則確定該進(jìn)程安全。其中,所述安全檢測單元,還適于如果檢測出該進(jìn)程的DLL文件的危險(xiǎn)等級高于該進(jìn)程的可執(zhí)行文件的危險(xiǎn)等級,則修改該進(jìn)程的可執(zhí)行文件的危險(xiǎn)等級為所述DLL文件的危險(xiǎn)等級,并呈現(xiàn)危險(xiǎn)提示。其中,所述安全檢測單元,還適于如果檢測出該進(jìn)程的DLL文件為安全文件,則指示記錄單元?jiǎng)h除該DLL文件的記錄,并指示所述加載攔截單元在該DLL文件沒有發(fā)生變化的情況下,不進(jìn)行攔截創(chuàng)建的進(jìn)程加載該DLL文件的操作。其中,所述危險(xiǎn)操作至少包括下列操作中的一種寫入注冊表進(jìn)行自動(dòng)加載;修改注冊表;修改系統(tǒng)文件;修改指定的應(yīng)用文件;執(zhí)行進(jìn)程間注入;結(jié)束進(jìn)程;修改瀏覽器中網(wǎng)頁內(nèi)容;以及記錄鍵盤操作。根據(jù)本發(fā)明的技術(shù)方案,在待保護(hù)的設(shè)備創(chuàng)建進(jìn)程時(shí),根據(jù)與該創(chuàng)建的進(jìn)程相關(guān)的進(jìn)程文件判斷該創(chuàng)建的進(jìn)程是否具有危險(xiǎn)性,如果是,則攔截創(chuàng)建的進(jìn)程加載該進(jìn)程的DLL (動(dòng)態(tài)鏈接庫)文件的操作,并將該DLL文件記錄到內(nèi)存的進(jìn)程信息中;在待保護(hù)的設(shè)備啟動(dòng)進(jìn)程后,當(dāng)進(jìn)程執(zhí)行的操作為危險(xiǎn)操作時(shí),檢測記錄的該進(jìn)程的DLL文件是否安全,如果不安全,則阻止待保護(hù)的設(shè)備執(zhí)行該進(jìn)程。由上可見,通過在待保護(hù)的設(shè)備創(chuàng)建進(jìn)程時(shí),檢查DLL文件,對危險(xiǎn)的DLL文件進(jìn)行攔截,阻止危險(xiǎn)DLL文件加載,并且當(dāng)進(jìn)程啟動(dòng)后執(zhí)行危險(xiǎn)操作時(shí),對DLL文件進(jìn)行檢測,當(dāng)DLL文件不安全時(shí)阻止進(jìn)行執(zhí)行,因此解決了惡意程序?qū)阂釪LL文件與可信任的白程序打包在一起,當(dāng)白程序被執(zhí)行時(shí),加載惡意DLL文件,從而突破主動(dòng)防御的技術(shù)問題。取得了能夠?qū)κ褂冒壮绦蚣虞d惡意DLL文件的惡意程序進(jìn)行主動(dòng)防御的有益效果。并且,因?yàn)樵诖Wo(hù)的設(shè)備創(chuàng)建進(jìn)程時(shí),根據(jù)與該創(chuàng)建的進(jìn)程相關(guān)的進(jìn)程文件判斷該創(chuàng)建的進(jìn)程是否具有危險(xiǎn)性,對危險(xiǎn)的DLL文件進(jìn)行攔截,減小了攔截的范圍,提高了對待保護(hù)的設(shè)備進(jìn)行保護(hù)的運(yùn)行效率。此外,在進(jìn)程執(zhí)行危險(xiǎn)操作時(shí),才對DLL文件進(jìn)行檢查,減少了 DLL文件的檢查概率,進(jìn)一步提高了對待保護(hù)的設(shè)備進(jìn)行保護(hù)的運(yùn)行效率。上述說明僅是本發(fā)明技術(shù)方案的概述,為了能夠更清楚了解本發(fā)明的技術(shù)手段,而可依照說明書的內(nèi)容予以實(shí)施,并且為了讓本發(fā)明的上述和其它目的、特征和優(yōu)點(diǎn)能夠更明顯易懂,以下特舉本發(fā)明的具體實(shí)施方式
。


通過閱讀下文優(yōu)選實(shí)施方式的詳細(xì)描述,各種其他的優(yōu)點(diǎn)和益處對于本領(lǐng)域普通技術(shù)人員將變得清楚明了。附圖僅用于示出優(yōu)選實(shí)施方式的目的,而并不認(rèn)為是對本發(fā)明的限制。而且在整個(gè)附圖中,用相同的參考符號表示相同的部件。在附圖中圖1示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的主動(dòng)防御惡意程序的裝置的結(jié)構(gòu)圖;圖2示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的主動(dòng)防御惡意程序的方法的流程圖;圖3示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的主動(dòng)防御惡意程序的方法的流程圖。
具體實(shí)施例方式下面將參照附圖更詳細(xì)地描述本公開的示例性實(shí)施例。雖然附圖中顯示了本公開的示例性實(shí)施例,然而應(yīng)當(dāng)理解,可以以各種形式實(shí)現(xiàn)本公開而不應(yīng)被這里闡述的實(shí)施例所限制。相反,提供這些實(shí)施例是為了能夠更透徹地理解本公開,并且能夠?qū)⒈竟_的范圍完整的傳達(dá)給本領(lǐng)域的技術(shù)人員。參見圖1,示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的主動(dòng)防御惡意程序的裝置的結(jié)構(gòu)圖。該裝置100可以位于單獨(dú)的物理設(shè)備,也可以位于待保護(hù)的設(shè)備中,例如作為PC (個(gè)人電腦)等終端的主動(dòng)防御惡意程序的安全檢測模塊,在此沒有特別限制。該裝置100包括危險(xiǎn)判斷單元110、加載攔截單元120、記錄單元130、安全檢測單元140和執(zhí)行阻止單元150。危險(xiǎn)判斷單元110,適于在待保護(hù)的設(shè)備創(chuàng)建進(jìn)程時(shí),根據(jù)與該創(chuàng)建的進(jìn)程相關(guān)的進(jìn)程文件判斷該創(chuàng)建的進(jìn)程是否具有危險(xiǎn)性,如果判斷結(jié)果為進(jìn)程具有危險(xiǎn)性,則指示加載攔截單元120進(jìn)行攔截操作。舉例而言,危險(xiǎn)判斷單元110查詢該創(chuàng)建的進(jìn)程所在進(jìn)程鏈中各個(gè)進(jìn)程的進(jìn)程文件的來源,根據(jù)各個(gè)進(jìn)程的進(jìn)程文件的來源判斷該創(chuàng)建的進(jìn)程是否具有危險(xiǎn)性。對進(jìn)程間的父子關(guān)系進(jìn)行記錄,形成進(jìn)程樹,進(jìn)程樹中記錄各個(gè)進(jìn)程的信息,例如創(chuàng)建時(shí)間、進(jìn)程名稱等,創(chuàng)建的進(jìn)程所在進(jìn)程鏈為進(jìn)程樹中從該創(chuàng)建的進(jìn)程到根進(jìn)程的進(jìn)程鏈。通常情況下,惡意程序來源于網(wǎng)絡(luò),包括網(wǎng)絡(luò)下載及即時(shí)通訊工具中傳輸?shù)浇K端等情況,另外使用白程序的惡意程序多采用壓縮包的形式進(jìn)行傳播,因此,在一實(shí)施例中將進(jìn)程文件來源于網(wǎng)絡(luò)下載或壓縮包解壓的進(jìn)程判定為具有危險(xiǎn)性,具體判斷如下所述。例如,危險(xiǎn)判斷單元110判斷該創(chuàng)建的進(jìn)程所在進(jìn)程鏈中各個(gè)進(jìn)程的進(jìn)程文件中是否存在來自網(wǎng)絡(luò)下載的文件,如果存在,則該創(chuàng)建的進(jìn)程具有危險(xiǎn)性。又例如,危險(xiǎn)判斷單元110判斷該創(chuàng)建的進(jìn)程所在進(jìn)程鏈中各個(gè)進(jìn)程的進(jìn)程文件中是否存在來自壓縮包的文件,如果存在,則該創(chuàng)建的進(jìn)程具有危險(xiǎn)性。進(jìn)一步地,危險(xiǎn)判斷單元110對于進(jìn)程鏈中每個(gè)進(jìn)程進(jìn)行判定,如果該進(jìn)程的父進(jìn)程為解壓縮應(yīng)用,并且該解壓縮應(yīng)用直接執(zhí)行壓縮包中的可執(zhí)行文件或者該解壓縮應(yīng)用解壓縮的壓縮包中包含該進(jìn)程的進(jìn)程文件,則判定該進(jìn)程的進(jìn)程文件為來自壓縮包的文件。例如,進(jìn)程鏈中進(jìn)程A的父進(jìn)程Al為解壓縮應(yīng)用,并且該解壓縮應(yīng)用直接執(zhí)行壓縮包中的可執(zhí)行文件或者該解壓縮應(yīng)用解壓縮的壓縮包中包含進(jìn)程A的進(jìn)程文件,則判定進(jìn)程A的進(jìn)程文件為來自壓縮包的文件。如果創(chuàng)建的進(jìn)程所在進(jìn)程鏈中某個(gè)進(jìn)程的進(jìn)程文件為來自壓縮包的文件,則該創(chuàng)建的進(jìn)程具有危險(xiǎn)性。因?yàn)椋诒緦?shí)施例中僅針對來自網(wǎng)絡(luò)下載或壓縮包解壓的進(jìn)程進(jìn)行攔截,降低了攔截DLL加載的范圍,避免了對待保護(hù)的設(shè)備中執(zhí)行的其他進(jìn)程的干擾,不會影響非危險(xiǎn)性進(jìn)程的運(yùn)行性能。此外,本實(shí)施例中還支持使用匹配規(guī)則,判斷進(jìn)程是否具有危險(xiǎn)性。例如,危險(xiǎn)判斷單元110判斷創(chuàng)建的進(jìn)程的進(jìn)程文件是否滿足預(yù)設(shè)的匹配條件,如果滿足,則創(chuàng)建的進(jìn)程具有危險(xiǎn)性。通過匹配規(guī)則,例如云規(guī)則,對特定程序攔截DLL文件加載,以彌補(bǔ)對網(wǎng)絡(luò)下載及壓縮包監(jiān)控的遺漏。例如,對待保護(hù)的設(shè)備中各種瀏覽器、即時(shí)通訊工具,以及迅雷等下載工具進(jìn)行監(jiān)控,但是無法覆蓋所有的下載方式;對待保護(hù)的設(shè)備中解壓縮的監(jiān)控同樣受限在常用壓縮工具范圍內(nèi)。通過使用匹配規(guī)則,對監(jiān)控查找到的下載或解壓縮程序進(jìn)行補(bǔ)充,進(jìn)一步提聞發(fā)現(xiàn)具有危險(xiǎn)性的程序的概率,進(jìn)而提聞攔截加載惡意DLL文件的概率。加載攔截單元120,適于在創(chuàng)建的進(jìn)程具有危險(xiǎn)性時(shí),攔截創(chuàng)建的進(jìn)程加載DLL文件的操作,并指示記錄單元130將該DLL文件記錄到內(nèi)存的進(jìn)程信息中。記錄單元130,適于根據(jù)指示將DLL文件記錄到內(nèi)存的進(jìn)程信息中。安全檢測單元140,適于在待保護(hù)的設(shè)備啟動(dòng)進(jìn)程后,當(dāng)進(jìn)程執(zhí)行的操作為危險(xiǎn)操作時(shí),檢測記錄的該進(jìn)程的DLL文件是否安全,如果檢測結(jié)果為進(jìn)程的DLL文件不安全,則指示執(zhí)行阻止單元150進(jìn)行阻止操作。舉例而言,危險(xiǎn)操作至少包括下列操作中的一種。寫入注冊表進(jìn)行自動(dòng)加載;修改注冊表;修改系統(tǒng)文件;修改指定的應(yīng)用文件;執(zhí)行進(jìn)程間注入;結(jié)束進(jìn)程;修改瀏覽器中網(wǎng)頁內(nèi)容;以及記錄鍵盤操作。具體而言,安全檢測單元140使用本地安全引擎和/或云安全引擎對該進(jìn)程的DLL文件進(jìn)行檢測,如果DLL文件為病毒文件,則檢測出記錄的該進(jìn)程的DLL文件不安全。安全檢測單元140還適于如果該進(jìn)程的可執(zhí)行文件和DLL文件都為安全文件,則確定該進(jìn)程安全。進(jìn)一步地,安全檢測單元140如果檢測出該進(jìn)程的DLL文件的危險(xiǎn)等級高于該進(jìn)程的可執(zhí)行文件的危險(xiǎn)等級,則修改該進(jìn)程的可執(zhí)行文件的危險(xiǎn)等級為所述DLL文件的危險(xiǎn)等級,并呈現(xiàn)危險(xiǎn)提示。安全檢測單元140還適于如果檢測出該進(jìn)程的DLL文件為安全文件,則指示記錄單元130刪除該DLL文件的記錄,并指示加載攔截單元120在該DLL文件沒有發(fā)生變化的情況下,不進(jìn)行攔截創(chuàng)建的進(jìn)程加載該DLL文件的操作。這樣,對于通過檢查確定為安全的DLL文件不再進(jìn)行攔截處理,進(jìn)一步提高了對待保護(hù)的設(shè)備進(jìn)行惡意程序攔截的運(yùn)行效率。執(zhí)行阻止單元150,適于對于DLL文件不安全的進(jìn)程,阻止待保護(hù)的設(shè)備執(zhí)行該進(jìn)程。由上可見,通過在待保護(hù)的設(shè)備創(chuàng)建進(jìn)程時(shí),檢查DLL文件,對危險(xiǎn)的DLL文件進(jìn)行攔截,阻止危險(xiǎn)DLL文件加載,并且當(dāng)進(jìn)程啟動(dòng)后執(zhí)行危險(xiǎn)操作時(shí),對DLL文件進(jìn)行檢測,當(dāng)DLL文件不安全時(shí)阻止進(jìn)行執(zhí)行,本實(shí)施例解決了惡意程序?qū)阂釪LL文件與可信任的白程序打包在一起,當(dāng)白程序被執(zhí)行時(shí),加載惡意DLL文件,從而突破主動(dòng)防御的技術(shù)問題。并且,本實(shí)施例取得了能夠?qū)κ褂冒壮绦蚣虞d惡意DLL文件的惡意程序進(jìn)行主動(dòng)防御的有益效果。因?yàn)樵诖Wo(hù)的設(shè)備創(chuàng)建進(jìn)程時(shí),根據(jù)與該創(chuàng)建的進(jìn)程相關(guān)的進(jìn)程文件判斷該創(chuàng)建的進(jìn)程是否具有危險(xiǎn)性,對危險(xiǎn)的DLL文件進(jìn)行攔截,減小了攔截的范圍,本實(shí)施能夠提高對待保護(hù)的設(shè)備進(jìn)行保護(hù)的運(yùn)行效率。此外,在進(jìn)程執(zhí)行危險(xiǎn)操作時(shí),才對DLL文件進(jìn)行檢查,本實(shí)施例能夠減少DLL文件的檢查概率,進(jìn)一步提高了對待保護(hù)的設(shè)備進(jìn)行保護(hù)的運(yùn)行效率。以下結(jié)合具體實(shí)例對本發(fā)明中主動(dòng)防御惡意程序的裝置進(jìn)行詳細(xì)說明。待保護(hù)的設(shè)備為PC,裝置為PC中主動(dòng)防御惡意程序的安全檢測模塊。裝置在內(nèi)存中存儲數(shù)據(jù)庫,數(shù)據(jù)庫中記錄所有待保護(hù)的設(shè)備下載的文件,如果下載的是壓縮包,則數(shù)據(jù)庫中還記錄壓縮包中包含的文件。當(dāng)通過壓縮工具對壓縮包解壓時(shí),記錄壓縮包的解壓路徑,如果是在壓縮工具中直接執(zhí)行壓縮包中的可執(zhí)行文件,也記錄壓縮包的臨時(shí)解壓路徑。此外,數(shù)據(jù)庫中還記錄有表示進(jìn)程間父子關(guān)系的進(jìn)程樹。危險(xiǎn)判斷單元110判斷待保護(hù)的設(shè)備創(chuàng)建的進(jìn)程所在進(jìn)程鏈中各個(gè)進(jìn)程的進(jìn)程文件中是否存在來自網(wǎng)絡(luò)下載的文件,如果存在,則該創(chuàng)建的進(jìn)程具有危險(xiǎn)性。其中,創(chuàng)建的進(jìn)程所在進(jìn)程鏈為進(jìn)程樹中從該創(chuàng)建的進(jìn)程到根進(jìn)程的進(jìn)程鏈。具體而言,危險(xiǎn)判斷單元110在待保護(hù)的設(shè)備創(chuàng)建進(jìn)程時(shí),在數(shù)據(jù)庫中查詢進(jìn)程鏈上的各個(gè)進(jìn)程是否來自網(wǎng)絡(luò)下載,如果進(jìn)程鏈上某個(gè)進(jìn)程來自網(wǎng)絡(luò)下載,則通知加載攔截單元120攔截當(dāng)前進(jìn)程的DLL加載操作。該加載攔截單元120為驅(qū)動(dòng)程序中操作單元。當(dāng)加載進(jìn)程所在目錄及子目錄中的DLL時(shí),交由記錄單元130處理,記錄單元130為應(yīng)用層的操作單元。所述目錄為本地目錄,即可執(zhí)行文件(exe文件)所在目錄。危險(xiǎn)判斷單元110判斷該創(chuàng)建的進(jìn)程所在進(jìn)程鏈中各個(gè)進(jìn)程的進(jìn)程文件中是否存在來自壓縮包的文件,如果存在,則該創(chuàng)建的進(jìn)程具有危險(xiǎn)性。具體而言,危險(xiǎn)判斷單元110在待保護(hù)的設(shè)備中創(chuàng)建進(jìn)程時(shí),檢查進(jìn)程鏈上的各個(gè)進(jìn)程是否來自壓縮包,如果進(jìn)程鏈上某個(gè)進(jìn)程是解壓執(zhí)行的,指示加載攔截單元120攔截當(dāng)前進(jìn)程的DLL加載操作。加載攔截單元120為驅(qū)動(dòng)程序中操作單元。當(dāng)加載進(jìn)程所在目錄及子目錄中的DLL時(shí),交由記錄單元130處理,記錄單元130為應(yīng)用層的操作單元。其中,通過如下操作檢查進(jìn)程鏈上的各個(gè)進(jìn)程是否來自壓縮包。如果該進(jìn)程的父進(jìn)程為解壓縮應(yīng)用,并且該解壓縮應(yīng)用直接執(zhí)行壓縮包中的可執(zhí)行文件,則判定該進(jìn)程的進(jìn)程文件為來自壓縮包的文件,例如,對于進(jìn)程鏈中的某個(gè)進(jìn)程,在創(chuàng)建該進(jìn)程時(shí),如果該進(jìn)程的父進(jìn)程為解壓工具,檢查是否從解壓工具中直接執(zhí)行壓縮包中的可執(zhí)行文件,如果是,則進(jìn)程鏈中的該進(jìn)程來自壓縮包。如果該進(jìn)程的父進(jìn)程為解壓縮應(yīng)用,并且該解壓縮應(yīng)用解壓縮的壓縮包中包含該進(jìn)程的進(jìn)程文件,則判定該進(jìn)程的進(jìn)程文件為來自壓縮包的文件。例如,對于進(jìn)程鏈中的某個(gè)進(jìn)程(即上述父進(jìn)程)為解壓應(yīng)用,通過分析命令行參數(shù)檢查是否在對壓縮包進(jìn)行解壓,如果是,則加載攔截單元120記錄該壓縮包解壓出的文件。加載攔截單元120為驅(qū)動(dòng)程序中操作單元。對于進(jìn)程鏈中的另一個(gè)進(jìn)程(即上述該進(jìn)程),在上述記錄中查詢進(jìn)程文件是否為從壓縮包解壓而得,如果是,則該進(jìn)程來自壓縮包。危險(xiǎn)判斷單元110判斷待保護(hù)的設(shè)備創(chuàng)建的進(jìn)程的進(jìn)程文件是否滿足預(yù)設(shè)的匹配條件,如果滿足,則創(chuàng)建的進(jìn)程具有危險(xiǎn)性。例如,在待保護(hù)的設(shè)備創(chuàng)建進(jìn)程時(shí),查詢云服務(wù)器獲取文件等級等信息,該信息即為匹配條件,如果返回的信息中指定對目標(biāo)進(jìn)程攔截DLL加載,指示加載攔截單元120攔截目標(biāo)進(jìn)程的DLL加載操作,加載攔截單元120為驅(qū)動(dòng)程序中操作單元。當(dāng)加載任意非系統(tǒng)DLL時(shí),交由記錄單元130處理,記錄單元130為應(yīng)用層的操作單元。查詢云服務(wù)器為云查詢,云查詢支持云規(guī)則支持的匹配信息,云規(guī)則可以包括下列信息的一個(gè)或多個(gè)文件名稱,文件大小,文件特征信息文件圖標(biāo)信息,產(chǎn)品名稱,內(nèi)部名稱,原始文件名,進(jìn)程命令行,進(jìn)程路徑,父進(jìn)程路徑等。例如,匹配信息包含進(jìn)程路徑(h1. DST)、父進(jìn)程路徑(h1. SRC)、命令行(h1. CLE)、文件大小(h1. DSI)、產(chǎn)品名稱(h1.GEN)、內(nèi)部名稱(h1.1TN)、原始文件名(h1. 0RN),以及圖標(biāo)和文件的特征信息等。云端規(guī)則的每個(gè)條件是一個(gè)表達(dá)式,滿足條件后的返回內(nèi)容里面包含<hips>DLL:*,kdump. dll, irrlicht. dll〈/hips>,其中“DLL: ”后指定待檢查的 DLL 文件名,如果檢查多個(gè)DLL,則以逗號隔開,DLL文件名為表示攔截DLL加載。使用表達(dá)式條件對上傳的可執(zhí)行文件信息進(jìn)行匹配。文件等級可以包括可疑,未知,白,黑等四種情況。第一等級10和20,其是白文件;第二等級30和40,其是灰文件;第三等級50和60,其是可疑文件;第四等級70,其是病毒。只有第一等級,10和20,是可以信任的。記錄單元130接收到進(jìn)程的DLL加載消息時(shí),將DLL文件的路徑及MD5數(shù)據(jù)記錄到內(nèi)存的進(jìn)程信息中。該進(jìn)程信息可以為進(jìn)程關(guān)聯(lián)的數(shù)據(jù)結(jié)構(gòu),例如,使用進(jìn)程樹,該進(jìn)程樹為內(nèi)存中維護(hù)的數(shù)據(jù),記錄了所有進(jìn)程的信息,以及進(jìn)程之間的創(chuàng)建關(guān)系,每個(gè)進(jìn)程有一個(gè)可擴(kuò)展的數(shù)據(jù)結(jié)構(gòu)用于記錄進(jìn)程相關(guān)信息。安全檢測單元140,適于在待保護(hù)的設(shè)備啟動(dòng)進(jìn)程后,當(dāng)進(jìn)程執(zhí)行的操作為危險(xiǎn)操作時(shí),檢測記錄的該進(jìn)程的DLL文件是否安全,如果檢測結(jié)果為進(jìn)程的DLL文件不安全,則指示執(zhí)行阻止單元150進(jìn)行阻止操作;執(zhí)行阻止單元150,適于對于DLL文件不安全的進(jìn)程,阻止待保護(hù)的設(shè)備執(zhí)行該進(jìn)程。舉例而言,當(dāng)進(jìn)程執(zhí)行危險(xiǎn)操作時(shí),將記錄的DLL文件安全引擎和/或云安全引擎進(jìn)行檢查。危險(xiǎn)操作包括某些惡意程序可能自動(dòng)啟動(dòng)的攔截點(diǎn),例如包括下列操作。寫入注冊表進(jìn)行自動(dòng)加載,以及修改注冊表。因?yàn)橥ㄟ^改變注冊表可以破壞注冊表,本實(shí)施例中對所有的可能自動(dòng)啟動(dòng)的DLL進(jìn)行監(jiān)控,并且對特定注冊表進(jìn)行監(jiān)控,由此實(shí)現(xiàn)對注冊表的保護(hù)。修改系統(tǒng)文件,以及修改指定的應(yīng)用文件。由此,通過將該些操作列為危險(xiǎn)操作,保證待保護(hù)的設(shè)備的操作系統(tǒng)相關(guān)的文件不被篡改,以及一些裝載量比較大的應(yīng)用文件不被篡改,例如qq,阿里旺旺等應(yīng)用不被篡改。此外,還可以對桌面快捷方式等進(jìn)行監(jiān)控保護(hù)。執(zhí)行進(jìn)程間注入。該進(jìn)程間注入為一個(gè)進(jìn)程在另一個(gè)進(jìn)程中插入并執(zhí)行一些代碼,通過將該注入列為危險(xiǎn)操作,來對進(jìn)程進(jìn)行保護(hù)。結(jié)束進(jìn)程。因?yàn)橛行阂獬绦驎Y(jié)束掉即時(shí)通訊進(jìn)程,通過重新登錄來截取到密碼,或者進(jìn)程后續(xù)的一些操作,因此通過將該操作列為危險(xiǎn)操作,對防止惡意病毒獲得即時(shí)通訊工具中信息。修改瀏覽器中網(wǎng)頁內(nèi)容。因?yàn)閻阂獬绦蚩梢酝ㄟ^修改網(wǎng)頁將網(wǎng)頁中鏈接指向釣魚網(wǎng)頁,或者將病毒DLL加載如瀏覽器中。通過將該操作列為危險(xiǎn)操作,以及記錄鍵盤操作。
安全檢測單元140使用本地安全引擎和/或云安全引擎對該進(jìn)程的DLL文件進(jìn)行檢測。如果DLL文件是病毒文件,則彈出木馬窗口,呈現(xiàn)危險(xiǎn)提示,并指示執(zhí)行阻止單元150阻止待保護(hù)的設(shè)備執(zhí)行該進(jìn)程,隔離該病毒文件。如果可執(zhí)行文件和DLL都是安全文件,即白文件,檢查安全,可以進(jìn)行正常的執(zhí)行操作。如果有DLL文件的等級(危險(xiǎn)程度)高于可執(zhí)行文件,以DLL文件等級修正可執(zhí)行文件的等級,對阻止執(zhí)行進(jìn)程的操作,并彈出風(fēng)險(xiǎn)窗口。風(fēng)險(xiǎn)窗口中顯示的風(fēng)險(xiǎn)文件為等級最高的DLL文件。如果存在不可信任的DLL文件,將該進(jìn)程設(shè)置為不可信任,從而阻止執(zhí)行該進(jìn)程。對于可信任的DLL文件,指示記錄單元130從記錄的中刪除該DLL文件,同時(shí)指示加載攔截單元120在DLL文件未變化的情況下不再攔截該DLL加載,以提高性能。參見圖2,示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的主動(dòng)防御惡意程序的方法的流程圖。該方法包括如下步驟。步驟S210,在待保護(hù)的設(shè)備創(chuàng)建進(jìn)程時(shí),根據(jù)與該創(chuàng)建的進(jìn)程相關(guān)的進(jìn)程文件判斷該創(chuàng)建的進(jìn)程是否具有危險(xiǎn)性,如果是,則執(zhí)行步驟S220,否則,執(zhí)行步驟S250。所述步驟S210具體包括查詢該創(chuàng)建的進(jìn)程所在進(jìn)程鏈中各個(gè)進(jìn)程的進(jìn)程文件的來源,根據(jù)所述各個(gè)進(jìn)程的進(jìn)程文件的來源判斷該創(chuàng)建的進(jìn)程是否具有危險(xiǎn)性。對進(jìn)程間的父子關(guān)系進(jìn)行記錄,形成進(jìn)程樹,進(jìn)程樹中記錄各個(gè)進(jìn)程的信息,例如創(chuàng)建時(shí)間、進(jìn)程名稱等,創(chuàng)建的進(jìn)程所在進(jìn)程鏈為進(jìn)程樹中從該創(chuàng)建的進(jìn)程到根進(jìn)程的進(jìn)程鏈。通常情況下,惡意程序來源于網(wǎng)絡(luò),包括網(wǎng)絡(luò)下載及即時(shí)通訊工具中傳輸?shù)浇K端等情況,另外使用白程序的惡意程序多采用壓縮包的形式進(jìn)行傳播,因此,在一實(shí)施例中將進(jìn)程文件來源于網(wǎng)絡(luò)下載或壓縮包解壓的進(jìn)程判定為具有危險(xiǎn)性,具體判斷如下所述。例如,在步驟S210中判斷該創(chuàng)建的進(jìn)程所在進(jìn)程鏈中各個(gè)進(jìn)程的進(jìn)程文件中是否存在來自網(wǎng)絡(luò)下載的文件,如果存在,則該創(chuàng)建的進(jìn)程具有危險(xiǎn)性。又例如,在步驟S210中判斷該創(chuàng)建的進(jìn)程所在進(jìn)程鏈中各個(gè)進(jìn)程的進(jìn)程文件中是否存在來自壓縮包的文件,如果存在,則該創(chuàng)建的進(jìn)程具有危險(xiǎn)性。進(jìn)一步地,在步驟S210中對于進(jìn)程鏈中每個(gè)進(jìn)程進(jìn)行判定,如果該進(jìn)程的父進(jìn)程為解壓縮應(yīng)用,并且該解壓縮應(yīng)用直接執(zhí)行壓縮包中的可執(zhí)行文件或者該解壓縮應(yīng)用解壓縮的壓縮包中包含該進(jìn)程的進(jìn)程文件,則判定該進(jìn)程的進(jìn)程文件為來自壓縮包的文件。例如,進(jìn)程鏈中進(jìn)程A的父進(jìn)程Al為解壓縮應(yīng)用,并且該解壓縮應(yīng)用直接執(zhí)行壓縮包中的可執(zhí)行文件或者該解壓縮應(yīng)用解壓縮的壓縮包中包含進(jìn)程A的進(jìn)程文件,則判定進(jìn)程A的進(jìn)程文件為來自壓縮包的文件。如果創(chuàng)建的進(jìn)程所在進(jìn)程鏈中某個(gè)進(jìn)程的進(jìn)程文件為來自壓縮包的文件,則該創(chuàng)建的進(jìn)程具有危險(xiǎn)性。因?yàn)?,在本?shí)施例中僅針對來自網(wǎng)絡(luò)下載或壓縮包解壓的進(jìn)程進(jìn)行攔截,降低了攔截DLL加載的范圍,避免了對待保護(hù)的設(shè)備中執(zhí)行的其他進(jìn)程的干擾,不會影響非危險(xiǎn)性進(jìn)程的運(yùn)行性能。此外,本實(shí)施例中還支持使用匹配規(guī)則,判斷進(jìn)程是否具有危險(xiǎn)性。例如,在步驟S210中判斷創(chuàng)建的進(jìn)程的進(jìn)程文件是否滿足預(yù)設(shè)的匹配條件,如果滿足,則創(chuàng)建的進(jìn)程具有危險(xiǎn)性。通過匹配規(guī)則,例如云規(guī)則,對特定程序攔截DLL文件加載,以彌補(bǔ)對網(wǎng)絡(luò)下載及壓縮包監(jiān)控的遺漏。例如,對待保護(hù)的設(shè)備中各種瀏覽器、即時(shí)通訊工具,以及迅雷等下載工具進(jìn)行監(jiān)控,但是無法覆蓋所有的下載方式;對解壓縮的監(jiān)控同樣受限在常用壓縮工具范圍內(nèi)。通過使用匹配規(guī)則,對監(jiān)控查找到的下載或解壓縮程序進(jìn)行補(bǔ)充,進(jìn)一步提高發(fā)現(xiàn)具有危險(xiǎn)性的程序的概率,進(jìn)而提高對待保護(hù)的設(shè)備進(jìn)行加載惡意DLL文件攔截的概率。步驟S220,攔截待保護(hù)的設(shè)備所創(chuàng)建的進(jìn)程加載該進(jìn)程的動(dòng)態(tài)鏈接庫DLL文件的操作,并將該DLL文件記錄到內(nèi)存的進(jìn)程信息中。步驟S230,在待保護(hù)的設(shè)備啟動(dòng)進(jìn)程后,當(dāng)進(jìn)程執(zhí)行的操作為危險(xiǎn)操作時(shí),檢測記錄的該進(jìn)程的DLL文件是否安全,如果不安全,則執(zhí)行步驟S240,如果安全,則執(zhí)行步驟S250。舉例而言,危險(xiǎn)操作至少包括下列操作中的一種。寫入注冊表進(jìn)行自動(dòng)加載;修改注冊表;修改系統(tǒng)文件;修改指定的應(yīng)用文件;執(zhí)行進(jìn)程間注入;結(jié)束進(jìn)程;修改瀏覽器中網(wǎng)頁內(nèi)容;以及記錄鍵盤操作。具體而言,在步驟S230中使用本地安全引擎和/或云安全引擎對該進(jìn)程的DLL文件進(jìn)行檢測,如果DLL文件為病毒文件,則檢測出記錄的該進(jìn)程的DLL文件不安全。步驟S230后還包括如果該進(jìn)程的可執(zhí)行文件和DLL文件都為安全文件,則確定該
進(jìn)程安全。進(jìn)一步地,在步驟S230中,如果檢測出該進(jìn)程的DLL文件的危險(xiǎn)等級高于該進(jìn)程的可執(zhí)行文件的危險(xiǎn)等級,則修改該進(jìn)程的可執(zhí)行文件的危險(xiǎn)等級為所述DLL文件的危險(xiǎn)等級,并呈現(xiàn)危險(xiǎn)提示。步驟S230后還包括如果檢測出該進(jìn)程的DLL文件為安全文件,則刪除該DLL文件的記錄,并在該DLL文件沒有發(fā)生變化的情況下,不進(jìn)行攔截創(chuàng)建的進(jìn)程加載該DLL文件的操作。這樣,對于通過檢查確定為安全的DLL文件不再進(jìn)行攔截處理,進(jìn)一步提高了對待保護(hù)的設(shè)備進(jìn)行惡意程序攔截的運(yùn)行效率。步驟S240,阻止待保護(hù)的設(shè)備執(zhí)行該進(jìn)程。步驟S250,主動(dòng)防御操作結(jié)束,使待保護(hù)的設(shè)備執(zhí)行正常操作。由上可見,通過在使待保護(hù)的設(shè)備創(chuàng)建進(jìn)程時(shí),檢查DLL文件,對危險(xiǎn)的DLL文件進(jìn)行攔截,阻止危險(xiǎn)DLL文件加載,并且當(dāng)進(jìn)程啟動(dòng)后執(zhí)行危險(xiǎn)操作時(shí),對DLL文件進(jìn)行檢測,當(dāng)DLL文件不安全時(shí)阻止進(jìn)行執(zhí)行,本實(shí)施例解決了惡意程序?qū)阂釪LL文件與可信任的白程序打包在一起,當(dāng)白程序被執(zhí)行時(shí),加載惡意DLL文件,從而突破主動(dòng)防御的技術(shù)問題。并且,本實(shí)施例取得了能夠?qū)κ褂冒壮绦蚣虞d惡意DLL文件的惡意程序進(jìn)行主動(dòng)防御的有益效果。因?yàn)樵趧?chuàng)建進(jìn)程時(shí),根據(jù)與該創(chuàng)建的進(jìn)程相關(guān)的進(jìn)程文件判斷該創(chuàng)建的進(jìn)程是否具有危險(xiǎn)性,對危險(xiǎn)的DLL文件進(jìn)行攔截,減小了攔截的范圍,本實(shí)施能夠提高對待保護(hù)的設(shè)備進(jìn)行主動(dòng)防御的運(yùn)行效率。此外,在進(jìn)程執(zhí)行危險(xiǎn)操作時(shí),才對DLL文件進(jìn)行檢查,本實(shí)施例能夠減少DLL文件的檢查概率,進(jìn)一步提高了對待保護(hù)的設(shè)備進(jìn)行主動(dòng)防御的運(yùn)行效率。參見圖3,示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的主動(dòng)防御惡意程序的方法的流程圖。以下結(jié)合具體實(shí)例對本發(fā)明中主動(dòng)防御惡意程序的方法進(jìn)行詳細(xì)說明。存儲數(shù)據(jù)庫,數(shù)據(jù)庫中記錄所有下載的文件,如果下載的是壓縮包,則數(shù)據(jù)庫中還記錄壓縮包中包含的文件。當(dāng)通過壓縮工具對壓縮包解壓時(shí),記錄壓縮包的解壓路徑,如果是在壓縮工具中直接執(zhí)行壓縮包中的可執(zhí)行文件,也記錄壓縮包的臨時(shí)解壓路徑。此外,數(shù)據(jù)庫中還記錄有表示進(jìn)程間父子關(guān)系的進(jìn)程樹。步驟S310,判斷待保護(hù)的設(shè)備創(chuàng)建的進(jìn)程所在進(jìn)程鏈中各個(gè)進(jìn)程的進(jìn)程文件中是否存在來自網(wǎng)絡(luò)下載的文件,如果存在,則該創(chuàng)建的進(jìn)程具有危險(xiǎn)性,執(zhí)行步驟S340,否則,執(zhí)行步驟S320。其中,創(chuàng)建的進(jìn)程所在進(jìn)程鏈為進(jìn)程樹中從該創(chuàng)建的進(jìn)程到根進(jìn)程的進(jìn)程鏈。具體而言,在待保護(hù)的設(shè)備創(chuàng)建進(jìn)程時(shí),在數(shù)據(jù)庫中查詢進(jìn)程鏈上的各個(gè)進(jìn)程是否來自網(wǎng)絡(luò)下載,如果進(jìn)程鏈上某個(gè)進(jìn)程來自網(wǎng)絡(luò)下載,則通過步驟S340攔截當(dāng)前進(jìn)程的DLL加載操作。此處通過驅(qū)動(dòng)程序?qū)崿F(xiàn)攔截。當(dāng)加載進(jìn)程所在目錄及子目錄中的DLL時(shí),交由應(yīng)用層處理,執(zhí)行步驟S350。所述目錄為本地目錄,即可執(zhí)行文件(exe文件)所在目錄。步驟S320,判斷待保護(hù)的設(shè)備創(chuàng)建的進(jìn)程所在進(jìn)程鏈中各個(gè)進(jìn)程的進(jìn)程文件中是否存在來自壓縮包的文件,如果存在,則該創(chuàng)建的進(jìn)程具有危險(xiǎn)性,執(zhí)行步驟S340,否則,執(zhí)行步驟S330。具體而言,在待保護(hù)的設(shè)備創(chuàng)建進(jìn)程時(shí),檢查進(jìn)程鏈上的各個(gè)進(jìn)程是否來自壓縮包,如果進(jìn)程鏈上某個(gè)進(jìn)程是解壓執(zhí)行的,攔截當(dāng)前進(jìn)程的DLL加載操作。此處通過驅(qū)動(dòng)程序?qū)崿F(xiàn)攔截。當(dāng)加載進(jìn)程所在目錄及子目錄中的DLL時(shí),交由應(yīng)用層處理,執(zhí)行步驟S350。其中,通過如下操作檢查進(jìn)程鏈上的各個(gè)進(jìn)程是否來自壓縮包。如果該進(jìn)程的父進(jìn)程為解壓縮應(yīng)用,并且該解壓縮應(yīng)用直接執(zhí)行壓縮包中的可執(zhí)行文件,則判定該進(jìn)程的進(jìn)程文件為來自壓縮包的文件,例如,對于進(jìn)程鏈中的某個(gè)進(jìn)程,在創(chuàng)建該進(jìn)程時(shí),如果該進(jìn)程的父進(jìn)程為解壓工具,檢查是否從解壓工具中直接執(zhí)行壓縮包中的可執(zhí)行文件,如果是,則進(jìn)程鏈中的該進(jìn)程來自壓縮包。如果該進(jìn)程的父進(jìn)程為解壓縮應(yīng)用,并且該解壓縮應(yīng)用解壓縮的壓縮包中包含該進(jìn)程的進(jìn)程文件,則判定該進(jìn)程的進(jìn)程文件為來自壓縮包的文件。例如,對于進(jìn)程鏈中的某個(gè)進(jìn)程(即上述父進(jìn)程)為解壓應(yīng)用,通過分析命令行參數(shù)檢查是否在對壓縮包進(jìn)行解壓,如果是,則通過驅(qū)動(dòng)程序記錄該壓縮包解壓出的文件。對于進(jìn)程鏈中的另一個(gè)進(jìn)程(即上述該進(jìn)程),在上述記錄中查詢進(jìn)程文件是否為從壓縮包解壓而得,如果是,則該進(jìn)程來自壓縮包。步驟S330,判斷創(chuàng)建的進(jìn)程的進(jìn)程文件是否滿足預(yù)設(shè)的匹配條件,如果滿足,則創(chuàng)建的進(jìn)程具有危險(xiǎn)性,執(zhí)行步驟S340,否則,執(zhí)行步驟S380。例如,在進(jìn)程被創(chuàng)建時(shí),查詢云服務(wù)器獲取文件等級等信息,該信息即為匹配條件,如果返回的信息中指定對目標(biāo)進(jìn)程攔截DLL加載,則執(zhí)行步驟S340,通過驅(qū)動(dòng)程序攔截目標(biāo)進(jìn)程的DLL加載操作。當(dāng)加載任意非系統(tǒng)DLL時(shí),交由應(yīng)用層處理,執(zhí)行步驟S350。查詢云服務(wù)器為云查詢,云查詢支持云規(guī)則支持的匹配信息,云規(guī)則可以包括下列信息的一個(gè)或多個(gè)文件名稱,文件大小,文件特征信息文件圖標(biāo)信息,產(chǎn)品名稱,內(nèi)部名稱,原始文件名,進(jìn)程命令行,進(jìn)程路徑,父進(jìn)程路徑等。例如,匹配信息包含進(jìn)程路徑(h1. DST)、父進(jìn)程路徑(h1. SRC)、命令行(h1. CLE)、文件大小(h1. DSI)、產(chǎn)品名稱(h1.GEN)、內(nèi)部名稱(h1.1TN)、原始文件名(h1. 0RN),以及圖標(biāo)和文件的特征信息等。云端規(guī)則的每個(gè)條件是一個(gè)表達(dá)式,滿足條件后的返回內(nèi)容里面包含<hips>DLL:*,kdump. dll, irrlicht. dll〈/hips>,其中“DLL: ”后指定待檢查的 DLL 文件名,如果檢查多個(gè)DLL,則以逗號隔開,DLL文件名為表示攔截DLL加載。使用表達(dá)式條件對上傳的可執(zhí)行文件信息進(jìn)行匹配。文件等級可以包括可疑,未知,白,黑等四種情況。第一等級10和20,其是白文件;第二等級30和40,其是灰文件;第三等級50和60,其是可疑文件;第四等級70,其是病毒。只有第一等級,10和20,是可以信任的。步驟S340,攔截創(chuàng)建的進(jìn)程加載該進(jìn)程的動(dòng)態(tài)鏈接庫DLL文件的操作。 步驟S350,接收到進(jìn)程的DLL加載消息時(shí),將DLL文件的路徑及MD5數(shù)據(jù)記錄到內(nèi)存的進(jìn)程信息中。該進(jìn)程信息可以為進(jìn)程關(guān)聯(lián)的數(shù)據(jù)結(jié)構(gòu),例如,使用進(jìn)程樹,該進(jìn)程樹為內(nèi)存中維護(hù)的數(shù)據(jù),記錄了所有進(jìn)程的信息,以及進(jìn)程之間的創(chuàng)建關(guān)系,每個(gè)進(jìn)程有一個(gè)可擴(kuò)展的數(shù)據(jù)結(jié)構(gòu)用于記錄進(jìn)程相關(guān)信息。步驟S360,在待保護(hù)的設(shè)備啟動(dòng)進(jìn)程后,當(dāng)進(jìn)程執(zhí)行的操作為危險(xiǎn)操作時(shí),檢測記錄的該進(jìn)程的DLL文件是否安全,如果檢測結(jié)果為進(jìn)程的DLL文件不安全,則執(zhí)行步驟S370,否則,執(zhí)行步驟S380。舉例而言,當(dāng)進(jìn)程執(zhí)行危險(xiǎn)操作時(shí),將記錄的DLL文件安全引擎和/或云安全引擎進(jìn)行檢查。危險(xiǎn)操作包括某些惡意程序可能自動(dòng)啟動(dòng)的攔截點(diǎn),例如包括下列操作。寫入注冊表進(jìn)行自動(dòng)加載,以及修改注冊表。因?yàn)橥ㄟ^改變注冊表可以破壞注冊表,本實(shí)施例中對所有的可能自動(dòng)啟動(dòng)的DLL進(jìn)行監(jiān)控,并且對特定注冊表進(jìn)行監(jiān)控,由此實(shí)現(xiàn)對注冊表的保護(hù)。修改系統(tǒng)文件,以及修改指定的應(yīng)用文件。由此,通過將該些操作列為危險(xiǎn)操作,保證待保護(hù)的設(shè)備的操作系統(tǒng)相關(guān)的文件不被篡改,以及一些裝載量比較大的應(yīng)用文件不被篡改,例如qq,阿里旺旺等應(yīng)用不被篡改。此外,還可以對桌面快捷方式等進(jìn)行監(jiān)控保護(hù)。執(zhí)行進(jìn)程間注入。該進(jìn)程間注入為一個(gè)進(jìn)程在另一個(gè)進(jìn)程中插入并執(zhí)行一些代碼,通過將該注入列為危險(xiǎn)操作,來對進(jìn)程進(jìn)行保護(hù)。結(jié)束進(jìn)程。因?yàn)橛行阂獬绦驎Y(jié)束掉即時(shí)通訊進(jìn)程,通過重新登錄來截取到密碼,或者進(jìn)程后續(xù)的一些操作,因此通過將該操作列為危險(xiǎn)操作,對防止惡意病毒獲得即時(shí)通訊工具中信息。修改瀏覽器中網(wǎng)頁內(nèi)容。因?yàn)閻阂獬绦蚩梢酝ㄟ^修改網(wǎng)頁將網(wǎng)頁中鏈接指向釣魚網(wǎng)頁,或者將病毒DLL加載如瀏覽器中。通過將該操作列為危險(xiǎn)操作,以及記錄鍵盤操作。
在步驟S360中使用本地安全引擎和/或云安全引擎對該進(jìn)程的DLL文件進(jìn)行檢測。如果DLL文件是病毒文件,則彈出木馬窗口,呈現(xiàn)危險(xiǎn)提示,并執(zhí)行步驟S370阻止待保護(hù)的設(shè)備執(zhí)行該進(jìn)程,隔離該病毒文件。如果可執(zhí)行文件和DLL都是安全文件,即白文件,檢查安全,可以進(jìn)行正常的執(zhí)行操作。如果有DLL文件的等級(危險(xiǎn)程度)高于可執(zhí)行文件,以DLL文件等級修正可執(zhí)行文件的等級,對阻止執(zhí)行進(jìn)程的操作,并彈出風(fēng)險(xiǎn)窗口。風(fēng)險(xiǎn)窗口中顯示的風(fēng)險(xiǎn)文件為等級最高的DLL文件。如果存在不可信任的DLL文件,將該進(jìn)程設(shè)置為不可信任,執(zhí)行步驟S370從而阻止執(zhí)行該進(jìn)程。對于可信任的DLL文件,還可以從記錄的中刪除該DLL文件,并在DLL文件未變化的情況下不再攔截該DLL加載,以提高性能。步驟S370,對于DLL文件不安全的進(jìn)程,阻止待保護(hù)的設(shè)備執(zhí)行該進(jìn)程。步驟S380,主動(dòng)防御操作結(jié)束,使待保護(hù)的設(shè)備執(zhí)行正常操作。在此提供的算法和顯示不與任何特定計(jì)算機(jī)、虛擬系統(tǒng)或者其它設(shè)備固有相關(guān)。各種通用系統(tǒng)也可以與基于在此的示教一起使用。根據(jù)上面的描述,構(gòu)造這類系統(tǒng)所要求的結(jié)構(gòu)是顯而易見的。此外,本發(fā)明也不針對任何特定編程語言。應(yīng)當(dāng)明白,可以利用各種編程語言實(shí)現(xiàn)在此描述的本發(fā)明的內(nèi)容,并且上面對特定語言所做的描述是為了披露本發(fā)明的最佳實(shí)施方式。在此處所提供的說明書中,說明了大量具體細(xì)節(jié)。然而,能夠理解,本發(fā)明的實(shí)施例可以在沒有這些具體細(xì)節(jié)的情況下實(shí)踐。在一些實(shí)例中,并未詳細(xì)示出公知的方法、結(jié)構(gòu)和技術(shù),以便不模糊對本說明書的理解。類似地,應(yīng)當(dāng)理解,為了精簡本公開并幫助理解各個(gè)發(fā)明方面中的一個(gè)或多個(gè),在上面對本發(fā)明的示例性實(shí)施例的描述中,本發(fā)明的各個(gè)特征有時(shí)被一起分組到單個(gè)實(shí)施例、圖、或者對其的描述中。然而,并不應(yīng)將該公開的方法解釋成反映如下意圖即所要求保護(hù)的本發(fā)明要求比在每個(gè)權(quán)利要求中所明確記載的特征更多的特征。更確切地說,如下面的權(quán)利要求書所反映的那樣,發(fā)明方面在于少于前面公開的單個(gè)實(shí)施例的所有特征。因此,遵循具體實(shí)施方式
的權(quán)利要求書由此明確地并入該具體實(shí)施方式
,其中每個(gè)權(quán)利要求本身都作為本發(fā)明的單獨(dú)實(shí)施例。本領(lǐng)域那些技術(shù)人員可以理解,可以對實(shí)施例中的設(shè)備中的模塊進(jìn)行自適應(yīng)性地改變并且把它們設(shè)置在與該實(shí)施例不同的一個(gè)或多個(gè)設(shè)備中??梢园褜?shí)施例中的模塊或單元或組件組合成一個(gè)模塊或單元或組件,以及此外可以把它們分成多個(gè)子模塊或子單元或子組件。除了這樣的特征和/或過程或者單元中的至少一些是相互排斥之外,可以采用任何組合對本說明書(包括伴隨的權(quán)利要求、摘要和附圖)中公開的所有特征以及如此公開的任何方法或者設(shè)備的所有過程或單元進(jìn)行組合。除非另外明確陳述,本說明書(包括伴隨的權(quán)利要求、摘要和附圖)中公開的每個(gè)特征可以由提供相同、等同或相似目的的替代特征來代替。此外,本領(lǐng)域的技術(shù)人員能夠理解,盡管在此所述的一些實(shí)施例包括其它實(shí)施例中所包括的某些特征而不是其它特征,但是不同實(shí)施例的特征的組合意味著處于本發(fā)明的范圍之內(nèi)并且形成不同的實(shí)施例。例如,在下面的權(quán)利要求書中,所要求保護(hù)的實(shí)施例的任意之一都可以以任意的組合方式來使用。本發(fā)明的各個(gè)部件實(shí)施例可以以硬件實(shí)現(xiàn),或者以在一個(gè)或者多個(gè)處理器上運(yùn)行的軟件模塊實(shí)現(xiàn),或者以它們的組合實(shí)現(xiàn)。本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)理解,可以在實(shí)踐中使用微處理器或者數(shù)字信號處理器(DSP)來實(shí)現(xiàn)根據(jù)本發(fā)明實(shí)施例的主動(dòng)防御惡意程序的設(shè)備中的一些或者全部部件的一些或者全部功能。本發(fā)明還可以實(shí)現(xiàn)為用于執(zhí)行這里所描述的方法的一部分或者全部的設(shè)備或者裝置程序(例如,計(jì)算機(jī)程序和計(jì)算機(jī)程序產(chǎn)品)。這樣的實(shí)現(xiàn)本發(fā)明的程序可以存儲在計(jì)算機(jī)可讀介質(zhì)上,或者可以具有一個(gè)或者多個(gè)信號的形式。這樣的信號可以從因特網(wǎng)網(wǎng)站上下載得到,或者在載體信號上提供,或者以任何其他形式提供。應(yīng)該注意的是上述實(shí)施例對本發(fā)明進(jìn)行說明而不是對本發(fā)明進(jìn)行限制,并且本領(lǐng)域技術(shù)人員在不脫離所附權(quán)利要求的范圍的情況下可設(shè)計(jì)出替換實(shí)施例。在權(quán)利要求中,不應(yīng)將位于括號之間的任何參考符號構(gòu)造成對權(quán)利要求的限制。單詞“包含”不排除存在未列在權(quán)利要求中的元件或步驟。位于元件之前的單詞“一”或“一個(gè)”不排除存在多個(gè)這樣的元件。本發(fā)明可以借助于包括有若干不同元件的硬件以及借助于適當(dāng)編程的計(jì)算機(jī)來實(shí)現(xiàn)。在列舉了若干裝置的單元權(quán)利要求中,這些裝置中的若干個(gè)可以是通過同一個(gè)硬件項(xiàng)來具體體現(xiàn)。單詞第一、第二、以及第三等的使用不表示任何順序??蓪⑦@些單詞解釋為名稱。
權(quán)利要求
1.一種主動(dòng)防御惡意程序的方法,該方法包括: 在待保護(hù)的設(shè)備創(chuàng)建進(jìn)程時(shí),根據(jù)與該創(chuàng)建的進(jìn)程相關(guān)的進(jìn)程文件判斷該創(chuàng)建的進(jìn)程是否具有危險(xiǎn)性,如果是,則攔截創(chuàng)建的進(jìn)程加載該進(jìn)程的動(dòng)態(tài)鏈接庫DLL文件的操作,并將該DLL文件記錄到內(nèi)存的進(jìn)程信息中; 在待保護(hù)的設(shè)備啟動(dòng)進(jìn)程后,當(dāng)進(jìn)程執(zhí)行的操作為危險(xiǎn)操作時(shí),檢測記錄的該進(jìn)程的DLL文件是否安全,如果不安全,則阻止待保護(hù)的設(shè)備執(zhí)行該進(jìn)程的操作。
2.根據(jù)權(quán)利要求1所述的方法,其中, 所述根據(jù)與該創(chuàng)建的進(jìn)程相關(guān)的進(jìn)程文件判斷該創(chuàng)建的進(jìn)程是否具有危險(xiǎn)性具體包括: 查詢該創(chuàng)建的進(jìn)程所在進(jìn)程鏈中各個(gè)進(jìn)程的進(jìn)程文件的來源,根據(jù)所述各個(gè)進(jìn)程的進(jìn)程文件的來源判斷該創(chuàng)建的進(jìn)程是否具有危險(xiǎn)性; 所述創(chuàng)建的進(jìn)程所在進(jìn)程鏈為進(jìn)程樹中從該創(chuàng)建的進(jìn)程到根進(jìn)程的進(jìn)程鏈。
3.根據(jù)權(quán)利要求2所述的方法,其中, 所述根據(jù)所述各個(gè)進(jìn)程的進(jìn)程文件的來源判斷該創(chuàng)建的進(jìn)程是否具有危險(xiǎn)性具體包括: 判斷所述各個(gè)進(jìn)程的進(jìn)程文件中是否存在來自網(wǎng)絡(luò)下載的文件,如果存在,則該創(chuàng)建的進(jìn)程具有危險(xiǎn)性。
4.根據(jù)權(quán)利要求2所述的方法,其中, 所述根據(jù)所述各個(gè)進(jìn)程的進(jìn)程文件的來源判斷該創(chuàng)建的進(jìn)程是否具有危險(xiǎn)性具體包括: 判斷所述各個(gè)進(jìn)程的進(jìn)程文件中是否存在來自壓縮包的文件,如果存在,則該創(chuàng)建的進(jìn)程具有危險(xiǎn)性。
5.根據(jù)權(quán)利要求4所述的方法,其中, 所述判斷所述各個(gè)進(jìn)程的進(jìn)程文件中是否存在來自壓縮包的文件具體包括: 對于所述各個(gè)進(jìn)程鏈中每個(gè)進(jìn)程進(jìn)行判定,如果該進(jìn)程的父進(jìn)程為解壓縮應(yīng)用,并且該解壓縮應(yīng)用直接執(zhí)行壓縮包中的可執(zhí)行文件或者該解壓縮應(yīng)用解壓縮的壓縮包中包含該進(jìn)程的進(jìn)程文件,則判定該進(jìn)程的進(jìn)程文件為來自壓縮包的文件。
6.根據(jù)權(quán)利要求1所述的方法,其中, 所述根據(jù)與該創(chuàng)建的進(jìn)程相關(guān)的進(jìn)程文件判斷該創(chuàng)建的進(jìn)程的操作是否具有危險(xiǎn)性具體包括: 判斷創(chuàng)建的進(jìn)程的進(jìn)程文件是否滿足預(yù)設(shè)的匹配條件,如果滿足,則創(chuàng)建的進(jìn)程具有危險(xiǎn)性。
7.根據(jù)權(quán)利要求1至6任一項(xiàng)所述的方法,其中, 所述檢測記錄的該進(jìn)程的DLL文件是否安全,如果不安全,則阻止待保護(hù)的設(shè)備執(zhí)行該進(jìn)程的操作具體包括: 使用本地安全引擎和/或云安全引擎對該進(jìn)程的DLL文件進(jìn)行檢測,如果DLL文件為病毒文件,則阻止待保護(hù)的設(shè)備執(zhí)行該進(jìn)程。
8.根據(jù)權(quán)利要求7所述的方法,其中, 所述使用本地安全引擎和/或云安全引擎對該進(jìn)程的DLL文件進(jìn)行檢測后還包括:如果該進(jìn)程的可執(zhí)行文件和DLL文件都為安全文件,則確定該進(jìn)程安全。
9.根據(jù)權(quán)利要求8所述的方法,其中, 所述使用本地安全引擎和/或云安全引擎對該進(jìn)程的DLL文件進(jìn)行檢測后還包括:如果該進(jìn)程的DLL文件的危險(xiǎn)等級高于該進(jìn)程的可執(zhí)行文件的危險(xiǎn)等級,則修改該進(jìn)程的可執(zhí)行文件的危險(xiǎn)等級為所述DLL文件的危險(xiǎn)等級,并呈現(xiàn)危險(xiǎn)提示。
10.根據(jù)權(quán)利要求1至9任一項(xiàng)所述的方法,其中, 所述檢測記錄的該進(jìn)程的DLL文件是否安全后還包括: 如果該進(jìn)程的DLL文件為安全文件,則刪除該DLL文件的記錄,并在該DLL文件沒有發(fā)生變化的情況下,不進(jìn)行攔截創(chuàng)建的進(jìn)程加載該DLL文件的操作。
11.根據(jù)權(quán)利要求1至10任一項(xiàng)所述的方法,其中, 所述危險(xiǎn)操作至少包括下列操作中的一種: 寫入注冊表進(jìn)行自動(dòng)加載; 修改注冊表; 修改系統(tǒng)文件; 修改指定的應(yīng)用文件; 執(zhí)行進(jìn)程間注入; 結(jié)束進(jìn)程; 修改瀏覽器中網(wǎng)頁內(nèi)容;以及 記錄鍵盤操作。
12.—種主動(dòng)防御惡意程序的裝置,該裝置包括: 危險(xiǎn)判斷單元,適于在待保護(hù)的設(shè)備創(chuàng)建進(jìn)程時(shí),根據(jù)與該創(chuàng)建的進(jìn)程相關(guān)的進(jìn)程文件判斷該創(chuàng)建的進(jìn)程是否具有危險(xiǎn)性,如果判斷結(jié)果為進(jìn)程具有危險(xiǎn)性,則指示加載攔截單元進(jìn)行攔截操作; 加載攔截單元,適于在創(chuàng)建的進(jìn)程具有危險(xiǎn)性時(shí),攔截創(chuàng)建的進(jìn)程加載動(dòng)態(tài)鏈接庫DLL文件的操作,指示記錄單元將該DLL文件記錄到內(nèi)存的進(jìn)程信息中; 記錄單元,適于根據(jù)指示將DLL文件記錄到內(nèi)存的進(jìn)程信息中; 安全檢測單元,適于在待保護(hù)的設(shè)備啟動(dòng)進(jìn)程后,當(dāng)進(jìn)程執(zhí)行的操作為危險(xiǎn)操作時(shí),檢測記錄的該進(jìn)程的DLL文件是否安全,如果檢測結(jié)果為進(jìn)程的DLL文件不安全,則指示執(zhí)行阻止單元進(jìn)行阻止操作; 執(zhí)行阻止單元,適于對于DLL文件不安全的進(jìn)程,阻止待保護(hù)的設(shè)備執(zhí)行該進(jìn)程的操作。
13.根據(jù)權(quán)利要求12所述的裝置,其中, 所述危險(xiǎn)判斷單元,具體適于查詢該創(chuàng)建的進(jìn)程所在進(jìn)程鏈中各個(gè)進(jìn)程的進(jìn)程文件的來源,根據(jù)所述各個(gè)進(jìn)程的進(jìn)程文件的來源判斷該創(chuàng)建的進(jìn)程是否具有危險(xiǎn)性; 所述創(chuàng)建的進(jìn)程所在進(jìn)程鏈為進(jìn)程樹中從該創(chuàng)建的進(jìn)程到根進(jìn)程的進(jìn)程鏈。
14.根據(jù)權(quán)利要求13所述的裝置,其中, 所述危險(xiǎn)判斷單元,具體適于判斷所述各個(gè)進(jìn)程的進(jìn)程文件中是否存在來自網(wǎng)絡(luò)下載的文件,如果存在,則該創(chuàng)建的進(jìn)程具有危險(xiǎn)性。
15.根據(jù)權(quán)利要求13所述的裝置,其中,所述危險(xiǎn)判斷單元,具體適于判斷所述各個(gè)進(jìn)程的進(jìn)程文件中是否存在來自壓縮包的文件,如果存在,則該創(chuàng)建的進(jìn)程具有危險(xiǎn)性。
16.根據(jù)權(quán)利要求15所述的裝置,其中, 所述危險(xiǎn)判斷單元,具體適于對于所述進(jìn)程鏈中每個(gè)進(jìn)程進(jìn)行判定,如果該進(jìn)程的父進(jìn)程為解壓縮應(yīng)用,并且該解壓縮應(yīng)用直接執(zhí)行壓縮包中的可執(zhí)行文件或者該解壓縮應(yīng)用解壓縮的壓縮包中包含該進(jìn)程的進(jìn)程文件,則判定該進(jìn)程的進(jìn)程文件為來自壓縮包的文件。
17.根據(jù)權(quán)利要求12所述的裝置,其中, 所述危險(xiǎn)判斷單元,具體適于判斷創(chuàng)建的進(jìn)程的進(jìn)程文件是否滿足預(yù)設(shè)的匹配條件,如果滿足,則創(chuàng)建的進(jìn)程具有危險(xiǎn)性。
18.根據(jù)權(quán)利要求12至17任一項(xiàng)所述的裝置,其中, 所述安全檢測單元,具體適于使用本地安全引擎和/或云安全引擎對該進(jìn)程的DLL文件進(jìn)行檢測,如果DLL文件為病毒文件,則檢測出記錄的該進(jìn)程的DLL文件不安全。
19.根據(jù)權(quán)利要求18所述的裝置,其中, 所述安全檢測單元,還適于如果該進(jìn)程的可執(zhí)行文件和DLL文件都為安全文件,則確定該進(jìn)程安全。
20.根據(jù)權(quán)利要求19所述的裝置,其中, 所述安全檢測單元,還適于如果檢測出該進(jìn)程的DLL文件的危險(xiǎn)等級高于該進(jìn)程的可執(zhí)行文件的危險(xiǎn)等級,則修改該進(jìn)程的可執(zhí)行文件的危險(xiǎn)等級為所述DLL文件的危險(xiǎn)等級,并呈現(xiàn)危險(xiǎn)提示。`
21.根據(jù)權(quán)利要求12至20任一項(xiàng)所述的裝置,其中, 所述安全檢測單元,還適于如果檢測出該進(jìn)程的DLL文件為安全文件,則指示記錄單元?jiǎng)h除該DLL文件的記錄,并指示所述加載攔截單元在該DLL文件沒有發(fā)生變化的情況下,不進(jìn)行攔截創(chuàng)建的進(jìn)程加載該DLL文件的操作。
22.根據(jù)權(quán)利要求12至21任一項(xiàng)所述的裝置,其中, 所述危險(xiǎn)操作至少包括下列操作中的一種: 寫入注冊表進(jìn)行自動(dòng)加載; 修改注冊表; 修改系統(tǒng)文件; 修改指定的應(yīng)用文件; 執(zhí)行進(jìn)程間注入; 結(jié)束進(jìn)程; 修改瀏覽器中網(wǎng)頁內(nèi)容;以及 記錄鍵盤操作。
全文摘要
本發(fā)明涉及計(jì)算機(jī)網(wǎng)絡(luò)安全領(lǐng)域,公開了主動(dòng)防御惡意程序的方法和裝置,該方法包括在待保護(hù)的設(shè)備創(chuàng)建進(jìn)程時(shí),根據(jù)與該創(chuàng)建的進(jìn)程相關(guān)的進(jìn)程文件判斷該創(chuàng)建的進(jìn)程是否具有危險(xiǎn)性,如果是,則攔截創(chuàng)建的進(jìn)程加載該進(jìn)程的動(dòng)態(tài)鏈接庫DLL文件的操作,并將該DLL文件記錄到內(nèi)存的進(jìn)程信息中;在待保護(hù)的設(shè)備啟動(dòng)進(jìn)程后,當(dāng)進(jìn)程執(zhí)行的操作為危險(xiǎn)操作時(shí),檢測記錄的該進(jìn)程的DLL文件是否安全,如果不安全,則阻止待保護(hù)的設(shè)備執(zhí)行該進(jìn)程的操作。本發(fā)明能夠解決惡意程序?qū)阂釪LL文件與可信任的白程序打包在一起,當(dāng)白程序被執(zhí)行時(shí),加載惡意DLL文件,從而突破主動(dòng)防御的技術(shù)問題。
文檔編號G06F21/56GK103077353SQ20131002764
公開日2013年5月1日 申請日期2013年1月24日 優(yōu)先權(quán)日2013年1月24日
發(fā)明者張曉霖, 董杰 申請人:北京奇虎科技有限公司, 奇智軟件(北京)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1
天峻县| 兴海县| 祥云县| 抚州市| 辉南县| 惠水县| 黄山市| 天全县| 贵溪市| 涡阳县| 菏泽市| 临沭县| 北京市| 兰州市| 新源县| 东源县| 通州市| 商都县| 盐池县| 嘉祥县| 乌拉特前旗| 蓬溪县| 沭阳县| 宜兰县| 宝山区| 桦甸市| 威信县| 合作市| 阿坝县| 肥城市| 内丘县| 陕西省| 华安县| 西林县| 巴楚县| 肥乡县| 浑源县| 正定县| 宁武县| 新龙县| 海安县|