專利名稱:計(jì)算機(jī)安全啟動(dòng)的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種計(jì)算機(jī)安全啟動(dòng)的方法,特別是一種在計(jì)算機(jī)Windows系統(tǒng)上安全啟動(dòng)的方法。
背景技術(shù):
目前,計(jì)算機(jī)病毒泛濫,一些人為了獲取非法利益,在別人的計(jì)算機(jī)里非法安裝各種惡意程序,包括木馬后門、病毒、間諜軟件等。這些非法的惡意程序在計(jì)算機(jī)啟動(dòng)的時(shí)候自動(dòng)運(yùn)行,監(jiān)控計(jì)算機(jī)的操作,竊取計(jì)算機(jī)用戶的私隱、銀行卡密碼和執(zhí)行其它各種有害的操作,給計(jì)算機(jī)用戶的工作和生活帶來(lái)了麻煩。由于計(jì)算機(jī)軟件存在大量的漏洞,導(dǎo)致計(jì)算機(jī)很容易被感染上各種惡意程序,給用戶在使用計(jì)算機(jī)時(shí)造成了不便和損失。人們想盡了各種辦法來(lái)查找自動(dòng)運(yùn)行的惡意程序,至今仍然沒(méi)有一個(gè)有效的方法。另一方面,判斷一個(gè)程序是否為惡意程序的方法也存在很多問(wèn)題,傳統(tǒng)的殺毒軟件判斷病毒的方法采用二進(jìn)制的特征碼識(shí)別,這種識(shí)別方法已經(jīng)不能有效的對(duì)付新出現(xiàn)的惡意程序。因?yàn)楝F(xiàn)在的病毒,傳播速度快、變種多,殺毒軟件廠商都是通過(guò)收集病毒樣本提取特征碼的方法來(lái)查殺病毒,扮演著事后修補(bǔ)的角色。而類似木馬后門的病毒變種多、針對(duì)性強(qiáng)、樣本難以獲取,依賴樣本特征碼的殺毒軟件往往無(wú)法有效查殺這一類的病毒。
發(fā)明內(nèi)容
本發(fā)明的目的是提供一種計(jì)算機(jī)安全啟動(dòng)的方法,要解決的技術(shù)問(wèn)題是識(shí)別惡意程序和防止惡意程序的運(yùn)行。
本發(fā)明采用以下技術(shù)方案一種計(jì)算機(jī)安全啟動(dòng)的方法,包括以下步驟一、在計(jì)算機(jī)的應(yīng)用層和驅(qū)動(dòng)層分別安裝主界面組件和驅(qū)動(dòng)組件;二、驅(qū)動(dòng)組件記錄有計(jì)算機(jī)啟動(dòng)過(guò)程中運(yùn)行的所有進(jìn)程的名稱,主界面組件對(duì)驅(qū)動(dòng)組件記錄下來(lái)的已運(yùn)行進(jìn)程進(jìn)行掃描分析,確定安全進(jìn)程;三、啟動(dòng)計(jì)算機(jī)時(shí),驅(qū)動(dòng)組件被計(jì)算機(jī)的CPU優(yōu)先加載運(yùn)行,不列在安全進(jìn)程中的程序被判斷為惡意程序,被驅(qū)動(dòng)組件攔截,不執(zhí)行運(yùn)行。
本發(fā)明的方法在計(jì)算機(jī)第一次啟動(dòng)時(shí),驅(qū)動(dòng)組件記錄下計(jì)算機(jī)啟動(dòng)過(guò)程中運(yùn)行的所有進(jìn)程的名稱,并存儲(chǔ);計(jì)算機(jī)啟動(dòng)完成后,主界面組件對(duì)驅(qū)動(dòng)組件記錄下來(lái)的已運(yùn)行進(jìn)程進(jìn)行掃描分析,確定安全進(jìn)程。
本發(fā)明的主界面組件對(duì)驅(qū)動(dòng)組件記錄下來(lái)的已運(yùn)行程序使用數(shù)字簽名驗(yàn)證、安全程序簽名庫(kù)驗(yàn)證和靜態(tài)行為特征碼分析的方法進(jìn)行掃描分析。
本發(fā)明的驅(qū)動(dòng)組件記錄下計(jì)算機(jī)啟動(dòng)過(guò)程中運(yùn)行的所有進(jìn)程的名稱時(shí),以名稱列表方式,存儲(chǔ)到硬盤中的已運(yùn)行進(jìn)程列表中。
本發(fā)明的方法在掃描分析時(shí),使用打分的方法表示危險(xiǎn)值,每個(gè)掃描分析步驟都得到一個(gè)危險(xiǎn)分?jǐn)?shù)值,主界面組件把等于0分的進(jìn)程記錄到安全程序列表中。
本發(fā)明的驅(qū)動(dòng)組件通過(guò)返回值攔截惡意程序。
本發(fā)明的主界面組件具有人機(jī)交互模塊、發(fā)送消息給驅(qū)動(dòng)組件進(jìn)行通信的模塊、掃描分析識(shí)別惡意程序模塊。
本發(fā)明的驅(qū)動(dòng)組件攔截是通過(guò)創(chuàng)建進(jìn)程處理來(lái)代替計(jì)算機(jī)中原有的創(chuàng)建進(jìn)程處理實(shí)現(xiàn)的。
本發(fā)明的安全程序簽名庫(kù)驗(yàn)證采用掃描分析識(shí)別惡意程序模塊把待分析程序的特征碼與安全程序簽名庫(kù)里的特征碼逐一比較,如果有相同的特征碼,就把該待分析程序名稱記錄到安全程序列表,肯定該程序是正常程序。
本發(fā)明的靜態(tài)行為特征碼分析采用分析整個(gè)待驗(yàn)證程序文件的大小、資源及創(chuàng)建日期、驗(yàn)證文件的可移植的執(zhí)行體信息、版本信息、可移植的執(zhí)行體結(jié)構(gòu)的導(dǎo)入表信息、區(qū)段信息、進(jìn)程信息和文件名稱,經(jīng)比較給出危險(xiǎn)值,然后把危險(xiǎn)值累加,把最終危險(xiǎn)值為0的程序名稱記錄到安全程序列表。
本發(fā)明與現(xiàn)有技術(shù)相比,驅(qū)動(dòng)組件被計(jì)算機(jī)的CPU優(yōu)先加載運(yùn)行,在計(jì)算機(jī)啟動(dòng)過(guò)程中攔截惡意程序,對(duì)正常的程序并不攔截,主界面組件對(duì)驅(qū)動(dòng)組件記錄下來(lái)的已運(yùn)行程序采用數(shù)字簽名驗(yàn)證、安全程序簽名庫(kù)驗(yàn)證和靜態(tài)行為特征碼分析判斷方法判斷一個(gè)程序是否為惡意程序,保證了計(jì)算機(jī)系統(tǒng)的正常工作,又可以有效地清除計(jì)算機(jī)系統(tǒng)啟動(dòng)過(guò)程中自動(dòng)運(yùn)行的惡意程序。
圖1是本發(fā)明實(shí)施例的流程圖。
圖2是本發(fā)明實(shí)施例計(jì)算機(jī)啟動(dòng)流程圖。
圖3是本發(fā)明實(shí)施例計(jì)算機(jī)重啟動(dòng)流程圖。
圖4是本發(fā)明實(shí)施例掃描識(shí)別惡意程序流程圖。
圖5是本發(fā)明實(shí)施例編輯流程圖。
圖6是本發(fā)明實(shí)施例計(jì)算機(jī)啟動(dòng)過(guò)程中攔截處理流程圖。
圖7是本發(fā)明進(jìn)程攔截流程圖。
圖8是本發(fā)明實(shí)施例重新啟動(dòng)計(jì)算機(jī)的界面圖。
具體實(shí)施例方式
下面結(jié)合附圖和實(shí)施例對(duì)本發(fā)明作進(jìn)一步詳細(xì)說(shuō)明。名詞定義,進(jìn)程為一個(gè)正在運(yùn)行的程序的實(shí)例。惡意程序?qū)τ?jì)算機(jī)系統(tǒng)有害的程序,包括了病毒程序、木馬后門和間諜程序等。驅(qū)動(dòng)組件是一個(gè)驅(qū)動(dòng)程序,驅(qū)動(dòng)程序運(yùn)行在系統(tǒng)的底層,對(duì)系統(tǒng)有很高的控制權(quán)限,可以看作是操作系統(tǒng)的一部分。主界面組件為主界面程序,主要用來(lái)處理人機(jī)交互,在Windows系統(tǒng)中,主界面組件一般是以窗口的形式與用戶交互,使用者可以用鼠標(biāo)和鍵盤操作,完成所需的任務(wù)。
本發(fā)明的計(jì)算機(jī)安全啟動(dòng)的方法,使用計(jì)算機(jī)配置為CPU奔騰400MHz或者更高,內(nèi)存64MB以上,顯示卡SVGA16位色以上的顯示模式,硬盤300MB以上,操作系統(tǒng)為Windows 2000/Windows XP/Windows2003,首先在計(jì)算機(jī)的應(yīng)用層和驅(qū)動(dòng)層分別安裝主界面組件和驅(qū)動(dòng)組件。主界面組件包括(1)人機(jī)交互模塊部分,如圖8所示,采用Windows的窗口,通過(guò)窗口內(nèi)的一個(gè)按鈕與用戶交互;(2)與驅(qū)動(dòng)組件相互通信的模塊部分,主界面組件與驅(qū)動(dòng)組件建立消息通道,以發(fā)送消息給驅(qū)動(dòng)組件的方式控制驅(qū)動(dòng)組件完成記錄進(jìn)程信息和攔截進(jìn)程啟動(dòng)的的功能;(3)掃描分析識(shí)別惡意程序模塊部分,通過(guò)掃描判斷一個(gè)程序是否為惡意程序,具體的掃描方法包括了順序進(jìn)行的數(shù)字簽名驗(yàn)證、安全程序簽名庫(kù)驗(yàn)證和靜態(tài)行為特征碼分析,掃描過(guò)程中使用分?jǐn)?shù)表示危險(xiǎn)值,把每一項(xiàng)掃描得到的分?jǐn)?shù)累加,掃描完成后,根據(jù)最終的分?jǐn)?shù)判斷被掃描程序的危險(xiǎn)度。
驅(qū)動(dòng)組件用于攔截所有程序的運(yùn)行,并記錄所運(yùn)行進(jìn)程的名稱到設(shè)置在硬盤的已運(yùn)行進(jìn)程的列表記錄中,攔截程序運(yùn)行是通過(guò)創(chuàng)建進(jìn)程處理來(lái)代替計(jì)算機(jī)中原有的創(chuàng)建進(jìn)程處理的功能實(shí)現(xiàn)的。
如圖1所示,本發(fā)明的計(jì)算機(jī)安全啟動(dòng)的方法,包括以下步驟一、在計(jì)算機(jī)的應(yīng)用層和驅(qū)動(dòng)層分別安裝主界面組件和驅(qū)動(dòng)組件;二、啟動(dòng)計(jì)算機(jī)時(shí),驅(qū)動(dòng)組件以名稱列表方式記錄下計(jì)算機(jī)啟動(dòng)過(guò)程中運(yùn)行的所有進(jìn)程的名稱,存儲(chǔ)到硬盤中的已運(yùn)行進(jìn)程列表中;三、計(jì)算機(jī)啟動(dòng)完成后,主界面組件對(duì)驅(qū)動(dòng)組件記錄下來(lái)的已運(yùn)行程序列表順序使用數(shù)字簽名驗(yàn)證、安全程序簽名庫(kù)驗(yàn)證和靜態(tài)行為特征碼分析的方法進(jìn)行掃描分析,使用打分的方法表示危險(xiǎn)值,每個(gè)掃描分析步驟都得到一個(gè)危險(xiǎn)分?jǐn)?shù)值,主界面組件把等于0分的程序記錄到安全程序列表中;四、重新啟動(dòng)計(jì)算機(jī),不在安全程序的列表中被判斷為惡意程序,被驅(qū)動(dòng)組件通過(guò)返回值攔截,不執(zhí)行運(yùn)行。
本發(fā)明的計(jì)算機(jī)安全啟動(dòng)的方法由于在計(jì)算機(jī)的驅(qū)動(dòng)層中安裝了驅(qū)動(dòng)組件,在計(jì)算機(jī)啟動(dòng)過(guò)程中,驅(qū)動(dòng)組件被計(jì)算機(jī)的CPU優(yōu)先加載運(yùn)行,運(yùn)行之后,通過(guò)替換監(jiān)控所有新的進(jìn)程創(chuàng)建。如圖2所示,計(jì)算機(jī)啟動(dòng)的時(shí)候,驅(qū)動(dòng)組件運(yùn)行,驅(qū)動(dòng)組件使用自身的創(chuàng)建進(jìn)程處理代替計(jì)算機(jī)原有的進(jìn)程,計(jì)算機(jī)創(chuàng)建各個(gè)新的進(jìn)程時(shí),驅(qū)動(dòng)組件記錄下各個(gè)被創(chuàng)建的進(jìn)程名稱,以列表的方式存儲(chǔ)在已運(yùn)行進(jìn)程列表記錄里。如圖3所示,計(jì)算機(jī)重新啟動(dòng)的時(shí)候,驅(qū)動(dòng)組件根據(jù)硬盤中保存在安全程序列表里的進(jìn)程名稱對(duì)新創(chuàng)建的進(jìn)程名稱作字符串比較,不在啟動(dòng)列表中的程序都直接終止該進(jìn)程,通過(guò)返回值來(lái)不允許創(chuàng)建該進(jìn)程,只有進(jìn)程名稱在安全程序列表中的程序才允許創(chuàng)建進(jìn)程。計(jì)算機(jī)系統(tǒng)啟動(dòng)完成后,主界面組件發(fā)送停止攔截的命令給驅(qū)動(dòng)組件,驅(qū)動(dòng)組件停止阻止創(chuàng)建進(jìn)程的運(yùn)行,計(jì)算機(jī)系統(tǒng)的控制權(quán)通過(guò)放過(guò)被阻止的進(jìn)程來(lái)交給用戶。計(jì)算機(jī)的驅(qū)動(dòng)層安裝驅(qū)動(dòng)組件之后,每次啟動(dòng)計(jì)算機(jī),驅(qū)動(dòng)組件會(huì)記錄下運(yùn)行的程序名稱到已運(yùn)行進(jìn)程列表記錄,完成了安全啟動(dòng)的第一次啟動(dòng),這樣可以省略掉第一次啟動(dòng)計(jì)算機(jī)的過(guò)程,僅僅需要執(zhí)行第二次的啟動(dòng),簡(jiǎn)化了用戶使用安全啟動(dòng)的步驟。
主界面組件掃描識(shí)別惡意程序使用的掃描方法包括了數(shù)字簽名驗(yàn)證、安全程序簽名庫(kù)驗(yàn)證和靜態(tài)行為特征碼分析。這樣做的目的是首先排除設(shè)置在計(jì)算機(jī)操作系統(tǒng)中認(rèn)為正常的程序,掃描分析模塊的掃描功能,再根據(jù)靜態(tài)行為特征碼對(duì)比分析該程序,得到一個(gè)危險(xiǎn)值,危險(xiǎn)值是以分?jǐn)?shù)來(lái)計(jì)算,分?jǐn)?shù)越大,該程序的危險(xiǎn)度就越高,然后把危險(xiǎn)值為0的程序名稱存儲(chǔ)在注冊(cè)表的安全程序列表中。如圖4所示,主界面組件掃描分析惡意程序的流程是先分析數(shù)字簽名,再分析安全程序簽名庫(kù),最后分析靜態(tài)行為特征碼。
計(jì)算機(jī)的中央處理器讀取待掃描文件,通過(guò)讀取方式進(jìn)行比較,首先驗(yàn)證惡意程序列表,惡意程序列表為人工收集提取的特征碼的集合,保存在硬盤中,通過(guò)讀取硬盤中的數(shù)據(jù)來(lái)進(jìn)行比較,如果中央處理器讀取待掃描文件的特征碼在惡意程序列表里面,說(shuō)明該程序已經(jīng)是惡意程序,危險(xiǎn)值給100分,表示比較危險(xiǎn),沒(méi)有必要再往下掃描,掃描結(jié)束。
數(shù)字簽名是Windows操作系統(tǒng)提供的驗(yàn)證某個(gè)文件是否含有唯一確定簽名的一項(xiàng)功能。Windows操作系統(tǒng)里面的每一個(gè)程序的數(shù)據(jù)上都有微軟的數(shù)字簽名,數(shù)字簽名的值是唯一的,它可以證明該程序是正常的安全程序。如果待分析程序含有微軟的數(shù)字簽名,就把該程序名稱記錄到安全程序列表里面,掃描結(jié)束,如沒(méi)有數(shù)字簽名,進(jìn)行安全程序簽名庫(kù)驗(yàn)證。
安全程序簽名庫(kù)是由人工通過(guò)收集的安全程序的特征碼集合,以列表的方式存儲(chǔ)在安全程序簽名庫(kù)文件里,中央處理器把常用的軟件用文本收集起來(lái),通過(guò)分析驗(yàn)證過(guò)是正常程序之后,提取這些正常程序的文件的特征碼,集合在一起。主界面組件的掃描分析識(shí)別惡意程序模塊把待分析程序的特征碼與安全程序簽名庫(kù)里的特征碼逐一比較,如果有相同的特征碼,就把該待分析程序名稱記錄到安全程序列表,肯定該程序是正常程序,掃描結(jié)束。
掃描惡意程序方法中的靜態(tài)行為特征碼分析采用下面的規(guī)則順序,通過(guò)比較來(lái)給出危險(xiǎn)值,然后把危險(xiǎn)值累加,把最終危險(xiǎn)值為0的程序名稱記錄到安全程序列表,然后掃描結(jié)束。
1、計(jì)算機(jī)的中央處理器判斷分析整個(gè)待驗(yàn)證文件的大小,給出打分值并保存在內(nèi)存中,然后累加,當(dāng)分值超過(guò)100時(shí)判斷為惡意程序,掃描結(jié)束。一個(gè)正常的程序,或者一些大型的軟件,一般都不會(huì)太小,而只有病毒或木馬為了傳輸?shù)姆奖?,一般?huì)比較小。
1.1、待驗(yàn)證文件小于1KB時(shí),加20分,記入并保存在內(nèi)存中;1.2、待驗(yàn)證文件小于50KB時(shí),加15分;1.3、待驗(yàn)證文件小于100KB時(shí),加10分;1.4、待驗(yàn)證文件小于200KB時(shí),加5分;1.5、待驗(yàn)證文件大于500KB時(shí),減5分;1.6、待驗(yàn)證文件大于1024KB時(shí),減20分。
2、計(jì)算機(jī)的中央處理器判斷分析待驗(yàn)證文件的資源和創(chuàng)建日期,給出打分值記入并存儲(chǔ)在內(nèi)存中,然后累加,當(dāng)分值超過(guò)100時(shí)判斷為惡意程序,掃描結(jié)束。一般的病毒程序都不會(huì)有窗體、圖標(biāo)和聲音等資源,就算有,也是很少,所以在這里對(duì)資源和創(chuàng)建日期比較敏感的信息進(jìn)行分析。
2.1、中央處理器判斷分析待驗(yàn)證文件的資源數(shù),將結(jié)果記入并存儲(chǔ)在內(nèi)存中,資源數(shù)少于等于5,則加5分;2.2、中央處理器判斷分析字符串,當(dāng)文件小于500K時(shí),減10分;2.3、中央處理器判斷分析待驗(yàn)證文件的創(chuàng)建日期為一天以內(nèi),加5分。
3、中央處理器判斷分析待驗(yàn)證文件的可移植的執(zhí)行體PE信息,以確定待驗(yàn)證文件是否被加殼,若加殼危險(xiǎn)值加50分,記入并存儲(chǔ)在內(nèi)存中。
3.1、中央處理器判斷待驗(yàn)證程序入口點(diǎn)所在的段,是不是標(biāo)準(zhǔn)的段。正常程序的代碼段入口點(diǎn),都在code,.code名字的代碼段中,如果不是的話,認(rèn)為都是加殼;3.2、中央處理器判斷待驗(yàn)證程序進(jìn)口點(diǎn)的代碼是否與殼特征碼相同。計(jì)算機(jī)的編譯器編譯后生成的入口點(diǎn)的代碼都是相同的,加殼工具也是如此,因此根據(jù)一個(gè)程序的入口點(diǎn)代碼與特征碼庫(kù)中的殼特征進(jìn)行比較,就能判斷是否被加殼的程序;3.3、中央處理器分析待驗(yàn)證程序的導(dǎo)入函數(shù),并確定待驗(yàn)證文件是否被加殼。如分析待驗(yàn)證程序敏感的四個(gè)API函數(shù),當(dāng)導(dǎo)入表內(nèi)容中只有兩個(gè)以上,六個(gè)以下的API函數(shù),并且與六個(gè)api函數(shù)相符合,表明待驗(yàn)證程序被加殼。常見(jiàn)的五個(gè)敏感的API函數(shù)“VirtualAlloc”、“VirtualFree”、“LoadLibraryA”、“LoadLibraryW”和“GetProcAddress”,這五個(gè)API函數(shù)是加殼常用的,VirtualAlloc和VirtualFree用于進(jìn)行內(nèi)存的分配和釋放,LoadLibraryA和LoadLibraryW用于加載DLL動(dòng)態(tài)鏈接庫(kù),GetProcAddress用于從LoadLibray加載的DLL動(dòng)態(tài)鏈接庫(kù)中,獲取函數(shù)的入口點(diǎn)指針。
4、計(jì)算機(jī)的中央處理器分析待驗(yàn)證程序文件版本信息,給出打分值。一般正常的程序都會(huì)有開(kāi)發(fā)商的版本信息,如公司名、版本號(hào)、版權(quán)信息和描述字符,大部分的病毒程序都不會(huì)有這些信息,僅僅有小部分病毒會(huì)偽造版本信息,中央處理器將分析判斷結(jié)果記入并存儲(chǔ)在內(nèi)存中,然后繼續(xù)掃描。
4.1、待驗(yàn)證程序文件中沒(méi)有版本信息,加8分;4.2、待驗(yàn)證程序文件中沒(méi)有公司名稱的加2分;4.3、待驗(yàn)證程序文件中沒(méi)有版權(quán)信息加2分;
4.4、待驗(yàn)證程序文件中沒(méi)有描述信息,或描述字符少于5個(gè),加2分;4.5、文件公司名稱為微軟件的,并且該文件被加殼,加10分。
5、計(jì)算機(jī)的中央處理器分析待驗(yàn)證程序文件的可移植的執(zhí)行體PE結(jié)構(gòu)的導(dǎo)入表信息,對(duì)動(dòng)態(tài)連接庫(kù)DLL和其導(dǎo)入函數(shù)進(jìn)行比較識(shí)別,然后將分析判斷結(jié)果記入并存儲(chǔ)在內(nèi)存中,然后繼續(xù)掃描,給出打分值。
5.1、導(dǎo)入表不完整,如果中央處理器讀取文件頭或是導(dǎo)入表出錯(cuò),通過(guò)中央處理器判斷,直接給該程序加50分;5.2、中央處理器分析DLL信息,是否存在少于或者等于2個(gè)以上非微軟DLL導(dǎo)入表中加載的非微軟模,塊超過(guò)2個(gè),每個(gè)減去20分;5.3、導(dǎo)入表中存在與網(wǎng)絡(luò)相關(guān)的模塊,加10分,中央處理器分析待驗(yàn)證程序文件中是否存在網(wǎng)絡(luò)相關(guān)的DLL,如WPCAP,一個(gè)用于攔截?cái)?shù)據(jù)包的開(kāi)發(fā)包的DLL,加5分;5.4、中央處理器分析待驗(yàn)證程序文件中是否存在文件相關(guān)的應(yīng)用程序編程接口API,如CreateFile,加5分;如果程序被加殼,就不分析API導(dǎo)入表中含有危險(xiǎn)接口,即寫文件、創(chuàng)建進(jìn)程和網(wǎng)絡(luò)訪問(wèn)的接口調(diào)用,每個(gè)加5分;5.5、如果待驗(yàn)證程序文件是VB(Visual Basic)程序,中央處理器分析判斷是否含有文件操作,而且使用網(wǎng)絡(luò)控件,加10分。
6、計(jì)算機(jī)的中央處理器分析待驗(yàn)證程序文件的區(qū)段信息,給出打分值。正常的程序非代碼段的大小大約是代碼段的10倍以內(nèi),如果超過(guò)10倍的話,有可能是一些打包了病毒,或是被病毒感染的程序,中央處理器把除了代碼段之外的所有段都加起來(lái),再比較大小,即它們與代碼段的大小相差多少,這樣中央處理器將分析判斷結(jié)果記入并存儲(chǔ)在內(nèi)存中,然后繼續(xù)掃描。
6.1、段表不完整,加10分;6.2、非代碼段是代碼段的100倍以上,加10分;6.3、非代碼段是代碼段的80倍以上,加8分;6.4、非代碼段是代碼段的60倍以上,加6分;6.5、非代碼段是代碼段的40倍以上,加4分;6.6、非代碼段是代碼段的20倍以上,加2分;6.7、非代碼段是代碼段的10倍以上,加1分。
7、計(jì)算機(jī)的中央處理器分析進(jìn)程信息,將分析判斷結(jié)果記入并存儲(chǔ)在內(nèi)存中,然后繼續(xù)掃描,給出打分值。
7.1、待驗(yàn)證進(jìn)程名稱如果是“svchost.exe”,“l(fā)sass.exe”,“winlogon.exe”,“services.exe”,“Msimn.exe”,“msnmsgr.exe”這六個(gè)進(jìn)程中的其中一個(gè),加5分;7.2、待驗(yàn)證程序文件在操作系統(tǒng)的安裝目錄下,加10分;7.3、待驗(yàn)證程序文件在%system%目錄下,加10分;7.4、待驗(yàn)證程序文件的路徑是網(wǎng)絡(luò)路徑,加5分;7.5、中央處理器分析待驗(yàn)證進(jìn)程與如下關(guān)鍵進(jìn)程的名字的相似度,達(dá)到80%,加10分“conime”,“svchost”,“services”,“winlogon”,“explorer”,“l(fā)sass”,“internat”,“smss”;7.6、分析創(chuàng)建的進(jìn)程名稱的后綴是否是“DLL”,如果是,加20分。
8、計(jì)算機(jī)的中央處理器分析待驗(yàn)證程序文件的文件名稱,給出打分值。名,對(duì)于正常的程序,一般文件名都不會(huì)超過(guò)32個(gè),并且其中一般也不會(huì)超有2個(gè)以上的空格,也不會(huì)有中文或是#、$、@和%這些特殊字符,如果符合了下面這些條件的話,那就說(shuō)明這個(gè)程序有可能是有問(wèn)題的程序,中央處理器將分析判斷結(jié)果記入并存儲(chǔ)在內(nèi)存中,然后繼續(xù)掃描。
8.1、文件名超長(zhǎng),對(duì)大于32個(gè)字符,加5分;8.2、文件名中含有3個(gè)以上的空格,加5分;8.3、文件名中含有特殊字符,如中文符號(hào),每個(gè)字符加1分;8.4、文件名分析分?jǐn)?shù)高于10分,則設(shè)為10分。
如圖5所示,根據(jù)計(jì)算機(jī)掃描的結(jié)果,使用者可以編輯修改主界面程序掃描的結(jié)果,使用者手動(dòng)設(shè)置掃描結(jié)果列表中的某個(gè)的程序?yàn)閻阂獬绦蚧蛘哒3绦颉?br>
如圖6所示,在計(jì)算機(jī)啟動(dòng)過(guò)程中,首先加載驅(qū)動(dòng)組件,先給該程序創(chuàng)建進(jìn)程,然后調(diào)度該進(jìn)程,使進(jìn)程運(yùn)行起來(lái)。驅(qū)動(dòng)組件替換計(jì)算機(jī)中原有的創(chuàng)建進(jìn)程處理功能為驅(qū)動(dòng)組件本身的處理。在計(jì)算機(jī)創(chuàng)建進(jìn)程的時(shí)候,驅(qū)動(dòng)組件會(huì)先對(duì)被創(chuàng)建的進(jìn)程作以下處理1、啟動(dòng)進(jìn)程是否為操作系統(tǒng)進(jìn)程,操作系統(tǒng)進(jìn)程是計(jì)算機(jī)啟動(dòng)必須運(yùn)行的進(jìn)程,絕對(duì)不能攔截,否則會(huì)使得計(jì)算機(jī)系統(tǒng)不能正常工作,所以要允許操作系統(tǒng)程序的進(jìn)程運(yùn)行;2、判斷是否為正常程序列表里面的程序,如果是正常程序列表里面的程序,就允許創(chuàng)建進(jìn)程;3、禁止其它所有進(jìn)程的直接創(chuàng)建。
在正常情況下,計(jì)算機(jī)系統(tǒng)啟動(dòng)完成后,驅(qū)動(dòng)組件停止自動(dòng)攔截,但是考慮到有可能會(huì)出現(xiàn)各種問(wèn)題,導(dǎo)致驅(qū)動(dòng)組件一直處于攔截狀態(tài),這樣就會(huì)造成計(jì)算機(jī)無(wú)法正常使用,所以在驅(qū)動(dòng)組件要有一個(gè)停止自動(dòng)攔截的方法如果主界面程序已經(jīng)運(yùn)行,或者驅(qū)動(dòng)組件自身運(yùn)行之后定時(shí)檢測(cè),如果驅(qū)動(dòng)組件檢測(cè)到自身運(yùn)行超過(guò)5分鐘,驅(qū)動(dòng)組件就停止攔截,使計(jì)算機(jī)可以正常運(yùn)行。
如圖7所示,本發(fā)明驅(qū)動(dòng)組件實(shí)現(xiàn)進(jìn)程攔截的方法是使用創(chuàng)建進(jìn)程處理代替計(jì)算機(jī)中原有的創(chuàng)建進(jìn)程處理。首先驅(qū)動(dòng)組件在初始化的時(shí)候,計(jì)算機(jī)的中央處理器獲取原有處理函數(shù)的ID號(hào),找到ID號(hào)對(duì)應(yīng)的函數(shù)內(nèi)存地址,然后采用修改地址屬性的方法,把函數(shù)地址設(shè)為可寫,修改函數(shù)地址,改寫該地址為驅(qū)動(dòng)組件里面的處理函數(shù)地址,進(jìn)行替換。驅(qū)動(dòng)組件的處理函數(shù)開(kāi)始做出判斷,決定阻止還是允許該進(jìn)程的運(yùn)行,計(jì)算機(jī)啟動(dòng)完成后恢復(fù)函數(shù)地址的不可寫。要實(shí)現(xiàn)進(jìn)程攔截可以有多種方法,本發(fā)明采用的方法是替換ZwCreateProcess、ZwCreateProcessEx、ZwCreateThread、ZwResumeThread這四個(gè)創(chuàng)建進(jìn)程使用的內(nèi)核處理函數(shù)。
權(quán)利要求
1.一種計(jì)算機(jī)安全啟動(dòng)的方法,包括以下步驟一、在計(jì)算機(jī)的應(yīng)用層和驅(qū)動(dòng)層分別安裝主界面組件和驅(qū)動(dòng)組件;二、驅(qū)動(dòng)組件記錄有計(jì)算機(jī)啟動(dòng)過(guò)程中運(yùn)行的所有進(jìn)程的名稱,主界面組件對(duì)驅(qū)動(dòng)組件記錄下來(lái)的已運(yùn)行進(jìn)程進(jìn)行掃描分析,確定安全進(jìn)程;三、啟動(dòng)計(jì)算機(jī)時(shí),驅(qū)動(dòng)組件被計(jì)算機(jī)的CPU優(yōu)先加載運(yùn)行,不列在安全進(jìn)程中的程序被判斷為惡意程序,被驅(qū)動(dòng)組件攔截,不執(zhí)行運(yùn)行。
2.根據(jù)權(quán)利要求1所述的計(jì)算機(jī)安全啟動(dòng)的方法,其特征在于所述計(jì)算機(jī)第一次啟動(dòng)時(shí),驅(qū)動(dòng)組件記錄下計(jì)算機(jī)啟動(dòng)過(guò)程中運(yùn)行的所有進(jìn)程的名稱,并存儲(chǔ);計(jì)算機(jī)啟動(dòng)完成后,主界面組件對(duì)驅(qū)動(dòng)組件記錄下來(lái)的已運(yùn)行進(jìn)程進(jìn)行掃描分析,確定安全進(jìn)程。
3.根據(jù)權(quán)利要求2所述的計(jì)算機(jī)安全啟動(dòng)的方法,其特征在于所述主界面組件對(duì)驅(qū)動(dòng)組件記錄下來(lái)的已運(yùn)行程序使用數(shù)字簽名驗(yàn)證、安全程序簽名庫(kù)驗(yàn)證和靜態(tài)行為特征碼分析的方法進(jìn)行掃描分析。
4.根據(jù)權(quán)利要求3所述的計(jì)算機(jī)安全啟動(dòng)的方法,其特征在于所述驅(qū)動(dòng)組件記錄下計(jì)算機(jī)啟動(dòng)過(guò)程中運(yùn)行的所有進(jìn)程的名稱時(shí),以名稱列表方式,存儲(chǔ)到硬盤中的已運(yùn)行進(jìn)程列表中。
5.根據(jù)權(quán)利要求4所述的計(jì)算機(jī)安全啟動(dòng)的方法,其特征在于所述掃描分析時(shí),使用打分的方法表示危險(xiǎn)值,每個(gè)掃描分析步驟都得到一個(gè)危險(xiǎn)分?jǐn)?shù)值,主界面組件把等于0分的進(jìn)程記錄到安全程序列表中。
6.根據(jù)權(quán)利要求5所述的計(jì)算機(jī)安全啟動(dòng)的方法,其特征在于所述驅(qū)動(dòng)組件通過(guò)返回值攔截惡意程序。
7.根據(jù)權(quán)利要求6所述的計(jì)算機(jī)安全啟動(dòng)的方法,其特征在于所述主界面組件具有人機(jī)交互模塊、發(fā)送消息給驅(qū)動(dòng)組件進(jìn)行通信的模塊、掃描分析識(shí)別惡意程序模塊。
8.根據(jù)權(quán)利要求7所述的計(jì)算機(jī)安全啟動(dòng)的方法,其特征在于所述驅(qū)動(dòng)組件攔截是通過(guò)創(chuàng)建進(jìn)程處理來(lái)代替計(jì)算機(jī)中原有的創(chuàng)建進(jìn)程處理實(shí)現(xiàn)的。
9.根據(jù)權(quán)利要求8所述的計(jì)算機(jī)安全啟動(dòng)的方法,其特征在于所述安全程序簽名庫(kù)驗(yàn)證采用掃描分析識(shí)別惡意程序模塊把待分析程序的特征碼與安全程序簽名庫(kù)里的特征碼逐一比較,如果有相同的特征碼,就把該待分析程序名稱記錄到安全程序列表,肯定該程序是正常程序。
10.根據(jù)權(quán)利要求9所述的計(jì)算機(jī)安全啟動(dòng)的方法,其特征在于所述靜態(tài)行為特征碼分析采用分析整個(gè)待驗(yàn)證程序文件的大小、資源及創(chuàng)建日期、驗(yàn)證文件的可移植的執(zhí)行體信息、版本信息、可移植的執(zhí)行體結(jié)構(gòu)的導(dǎo)入表信息、區(qū)段信息、進(jìn)程信息和文件名稱,經(jīng)比較給出危險(xiǎn)值,然后把危險(xiǎn)值累加,把最終危險(xiǎn)值為0的程序名稱記錄到安全程序列表。
全文摘要
本發(fā)明公開(kāi)了一種計(jì)算機(jī)安全啟動(dòng)的方法,要解決的技術(shù)問(wèn)題是識(shí)別惡意程序和防止惡意程序的運(yùn)行,本發(fā)明的方法包括以下步驟在計(jì)算機(jī)的應(yīng)用層和驅(qū)動(dòng)層分別安裝主界面組件和驅(qū)動(dòng)組件,驅(qū)動(dòng)組件記錄計(jì)算機(jī)啟動(dòng)過(guò)程中運(yùn)行的進(jìn)程,主界面組件對(duì)驅(qū)動(dòng)組件記錄下來(lái)的已運(yùn)行進(jìn)程進(jìn)行掃描分析,確定安全進(jìn)程,啟動(dòng)計(jì)算機(jī)時(shí)驅(qū)動(dòng)組件被優(yōu)先加載運(yùn)行,惡意程序被驅(qū)動(dòng)組件攔截,本發(fā)明與現(xiàn)有技術(shù)相比,驅(qū)動(dòng)組件被優(yōu)先加載運(yùn)行,在計(jì)算機(jī)啟動(dòng)過(guò)程中攔截惡意程序,主界面組件采用數(shù)字簽名驗(yàn)證、安全程序簽名庫(kù)驗(yàn)證和靜態(tài)行為特征碼分析判斷方法判斷程序是否為惡意程序,保證了計(jì)算機(jī)系統(tǒng)的正常工作,又可以有效地清除計(jì)算機(jī)系統(tǒng)啟動(dòng)中自動(dòng)運(yùn)行的惡意程序。
文檔編號(hào)G06F9/445GK1900940SQ20061006176
公開(kāi)日2007年1月24日 申請(qǐng)日期2006年7月19日 優(yōu)先權(quán)日2006年7月19日
發(fā)明者謝朝霞 申請(qǐng)人:謝朝霞