一種基于Windows進(jìn)程的系統(tǒng)性保護(hù)方法及裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及網(wǎng)絡(luò)安全技術(shù)領(lǐng)域,特別涉及一種Windows進(jìn)程的系統(tǒng)性保護(hù)方法及
目.ο
【背景技術(shù)】
[0002]Windows操作系統(tǒng)現(xiàn)在是計(jì)算機(jī)以及服務(wù)器等設(shè)備上普遍應(yīng)用的操作系統(tǒng),隨著社會(huì)的發(fā)展,用戶對(duì)計(jì)算機(jī)及服務(wù)器上業(yè)務(wù)的穩(wěn)定性和安全性要求越來(lái)越高,其中,業(yè)務(wù)處理的進(jìn)程是整個(gè)業(yè)務(wù)系統(tǒng)的核心,如果業(yè)務(wù)處理的進(jìn)程因受到攻擊而出現(xiàn)終止或被破壞,那用戶則不能對(duì)業(yè)務(wù)進(jìn)行訪問(wèn)。Windows進(jìn)程包括無(wú)窗口的內(nèi)核進(jìn)程和有窗口的GUI進(jìn)程。
[0003]目前,Windows進(jìn)程的保護(hù)方法,對(duì)于無(wú)窗口的內(nèi)核進(jìn)程主要通過(guò)DLL注入和API攔截來(lái)讓程序調(diào)用偽API函數(shù),進(jìn)程被結(jié)束時(shí)會(huì)調(diào)用Terminate Process函數(shù),過(guò)濾這個(gè)函數(shù),如果是需要保護(hù)的進(jìn)程就返回一個(gè)無(wú)效的值,從而可以達(dá)到保護(hù)當(dāng)前Windows進(jìn)程的效果;對(duì)于有窗口的⑶I進(jìn)程,只需攔截WM_CL0SE消息。
[0004]可見(jiàn),現(xiàn)有技術(shù)針對(duì)Windows操作系統(tǒng)的兩種進(jìn)程,采取分別保護(hù)的形式,而且只對(duì)Terminate Process函數(shù)和WM_CL0SE消息兩種終止當(dāng)前進(jìn)程的非法進(jìn)程進(jìn)行攔截或改寫(xiě),對(duì)于通過(guò)代碼注入(創(chuàng)建遠(yuǎn)程線程)等關(guān)閉或破壞當(dāng)前Windows進(jìn)程的非法進(jìn)程則不能進(jìn)行攔截,因而Windows進(jìn)程保護(hù)的可靠性較低。
【發(fā)明內(nèi)容】
[0005]本發(fā)明提供一種Windows進(jìn)程的系統(tǒng)性保護(hù)方法及裝置,能夠提升Windows進(jìn)程保護(hù)的可靠性。
[0006]本發(fā)明提供了一種Windows進(jìn)程的系統(tǒng)性保護(hù)方法,包括:
[0007]加載內(nèi)核進(jìn)程保護(hù)模塊和內(nèi)核規(guī)則管理模塊;
[0008]將進(jìn)程保護(hù)規(guī)則寫(xiě)入所述內(nèi)核規(guī)則管理模塊;
[0009]將應(yīng)用窗口消息保護(hù)模塊注入所述進(jìn)程保護(hù)規(guī)則中要求保護(hù)的GUI進(jìn)程中;
[0010]根據(jù)所述進(jìn)程保護(hù)規(guī)則,對(duì)進(jìn)入所述內(nèi)核進(jìn)程保護(hù)模塊或應(yīng)用窗口消息保護(hù)模塊的訪問(wèn)進(jìn)程或窗口消息進(jìn)行判斷;
[0011 ] 根據(jù)判斷結(jié)果,對(duì)所述訪問(wèn)進(jìn)程或窗口消息進(jìn)行處理。
[0012]優(yōu)選地,
[0013]所述內(nèi)核進(jìn)程保護(hù)模塊和內(nèi)核規(guī)則管理模塊包括:通過(guò)內(nèi)核驅(qū)動(dòng)的方式實(shí)現(xiàn),在初次安裝之后,隨操作系統(tǒng)運(yùn)行自動(dòng)運(yùn)行;
[0014]所述窗口消息保護(hù)模塊通過(guò)Windows標(biāo)準(zhǔn)動(dòng)態(tài)庫(kù)的方式實(shí)現(xiàn),與被注入的所述⑶I進(jìn)程一同運(yùn)行。
[0015]優(yōu)選地,所述進(jìn)程保護(hù)規(guī)則包括:
[0016]定義訪問(wèn)進(jìn)程對(duì)內(nèi)核進(jìn)程進(jìn)行訪問(wèn)的規(guī)則,所述訪問(wèn)進(jìn)程包括對(duì)內(nèi)核進(jìn)程進(jìn)行終止、寫(xiě)入內(nèi)核進(jìn)程內(nèi)存地址空間、在內(nèi)核進(jìn)程中創(chuàng)建遠(yuǎn)程線程,如果所述訪問(wèn)進(jìn)程的訪問(wèn)行為是正常的訪問(wèn)過(guò)程,則該訪問(wèn)進(jìn)程為允許,如果所述訪問(wèn)進(jìn)程是對(duì)內(nèi)核進(jìn)程進(jìn)行非法關(guān)閉或破壞,則該訪問(wèn)進(jìn)程為不允許;
[0017]定義需要保護(hù)的GUI進(jìn)程及對(duì)GUI進(jìn)程進(jìn)行運(yùn)行的規(guī)則,如果對(duì)所述GUI進(jìn)程訪問(wèn)的窗口消息為非法終止或退出的破壞消息,則該窗口消息為不允許,否則為允許。
[0018]優(yōu)選地,所述將進(jìn)程保護(hù)規(guī)則寫(xiě)入所述內(nèi)核規(guī)則管理模塊包括:
[0019]在首次寫(xiě)入時(shí),將所述進(jìn)程保護(hù)規(guī)則分別寫(xiě)入內(nèi)存和硬盤(pán),內(nèi)存上的進(jìn)程保護(hù)規(guī)則寫(xiě)在所述內(nèi)核規(guī)則管理模塊內(nèi),硬盤(pán)上的進(jìn)程保護(hù)規(guī)則永久保存在硬盤(pán)上,當(dāng)Windows系統(tǒng)重新啟動(dòng)時(shí),從硬盤(pán)上讀取所述進(jìn)程保護(hù)規(guī)則,并將其重新寫(xiě)入所述內(nèi)核規(guī)則管理模塊。
[0020]優(yōu)選地,所述根據(jù)判斷結(jié)果,對(duì)所述訪問(wèn)進(jìn)程或窗口消息進(jìn)行處理包括:
[0021]根據(jù)判斷結(jié)果,如果所述訪問(wèn)進(jìn)程的訪問(wèn)行為或所述窗口消息的運(yùn)行行為不被允許,則阻止所述訪問(wèn)進(jìn)程或丟棄所述窗口消息,如果所述訪問(wèn)進(jìn)程的訪問(wèn)行為或所述窗口消息的運(yùn)行行為被允許,則所述訪問(wèn)進(jìn)程或窗口消息繼續(xù)向下傳遞。
[0022]優(yōu)選地,在所述加載內(nèi)核進(jìn)程保護(hù)模塊和內(nèi)核規(guī)則管理模塊之前進(jìn)一步包括:
[0023]安裝主服務(wù)進(jìn)程模塊,所述主服務(wù)進(jìn)程模塊通過(guò)Windows應(yīng)用程序的方式實(shí)現(xiàn);用戶通過(guò)向所述主服務(wù)進(jìn)程模塊發(fā)送命令,所述主服務(wù)進(jìn)程模塊判斷所述命令類(lèi)型,如果所述命令是退出命令,則卸載所述內(nèi)核進(jìn)程保護(hù)模塊、內(nèi)核規(guī)則管理模塊和應(yīng)用窗口消息保護(hù)模塊,然后所述主服務(wù)進(jìn)程模塊也退出運(yùn)行,如果命令是對(duì)所述進(jìn)程保護(hù)規(guī)則進(jìn)行管理的命令,則從所述命令參數(shù)中獲取輸入進(jìn)程保護(hù)規(guī)則的類(lèi)型和內(nèi)容,然后將新的進(jìn)程保護(hù)規(guī)則寫(xiě)入內(nèi)核規(guī)則管理模塊和硬盤(pán),重新把所述應(yīng)用窗口消息保護(hù)模塊注入到最新規(guī)則中要求保護(hù)的所述GUI進(jìn)程中。
[0024]本發(fā)明提供了一種Windows進(jìn)程的系統(tǒng)性保護(hù)裝置,包括:
[0025]加載單元,用于加載內(nèi)核進(jìn)程保護(hù)模塊和內(nèi)核規(guī)則管理模塊;
[0026]寫(xiě)入單元,用于將進(jìn)程保護(hù)規(guī)則寫(xiě)入所述內(nèi)核規(guī)則管理模塊;
[0027]注入單元,用于將應(yīng)用窗口消息保護(hù)模塊注入所述進(jìn)程保護(hù)規(guī)則中要求保護(hù)的GUI進(jìn)程中;
[0028]判斷單元,用于根據(jù)所述進(jìn)程保護(hù)規(guī)則,對(duì)進(jìn)入所述內(nèi)核進(jìn)程保護(hù)模塊或應(yīng)用窗口消息保護(hù)模塊的訪問(wèn)進(jìn)程或窗口消息進(jìn)行判斷;
[0029]處理單元,用于根據(jù)判斷結(jié)果,對(duì)所述訪問(wèn)進(jìn)程或窗口消息進(jìn)行處理。
[0030]優(yōu)選地,
[0031]所述寫(xiě)入單元,用于利用所述主服務(wù)進(jìn)程模塊,在首次寫(xiě)入時(shí),將所述進(jìn)程保護(hù)規(guī)則分別寫(xiě)入內(nèi)存和硬盤(pán),內(nèi)存上的進(jìn)程保護(hù)規(guī)則寫(xiě)在所述內(nèi)核規(guī)則管理模塊內(nèi),硬盤(pán)上的進(jìn)程保護(hù)規(guī)則永久保存在硬盤(pán)上,當(dāng)Windows系統(tǒng)重新啟動(dòng)時(shí),所述主服務(wù)進(jìn)程模塊從硬盤(pán)上讀取所述進(jìn)程保護(hù)規(guī)則,并將其重新寫(xiě)入所述內(nèi)核規(guī)則管理模塊;
[0032]和/ 或,
[0033]所述處理裝置,用于根據(jù)判斷結(jié)果,如果所述訪問(wèn)進(jìn)程的訪問(wèn)行為或所述窗口消息的運(yùn)行行為不被允許,則阻止所述訪問(wèn)進(jìn)程或丟棄所述窗口消息,如果所述訪問(wèn)進(jìn)程的訪問(wèn)行為或所述窗口消息的運(yùn)行行為被允許,則所述訪問(wèn)進(jìn)程或窗口消息繼續(xù)向下傳遞。
[0034]優(yōu)選地,該裝置進(jìn)一步包括:
[0035]安裝單元,用于安裝主服務(wù)進(jìn)程模塊,所述主服務(wù)進(jìn)程模塊通過(guò)Windows應(yīng)用程序的方式實(shí)現(xiàn);
[0036]卸載單元,用于用戶通過(guò)向所述主服務(wù)進(jìn)程模塊發(fā)送命令,所述主服務(wù)進(jìn)程模塊判斷所述命令類(lèi)型,如果所述命令是退出命令,那就卸載所述所有模塊,然后所述主服務(wù)進(jìn)程模塊也退出運(yùn)行;
[0037]管理單元:用于用戶通過(guò)向所述主服務(wù)進(jìn)程模塊發(fā)送命令,所述主服務(wù)進(jìn)程模塊判斷所述命令類(lèi)型,如果命令是針對(duì)所述進(jìn)程保護(hù)規(guī)則管理命令,則從所述命令參數(shù)中獲取輸入進(jìn)程保護(hù)規(guī)則的類(lèi)型和內(nèi)容,然后將新的進(jìn)程保護(hù)規(guī)則寫(xiě)入內(nèi)核規(guī)則管理模塊和硬盤(pán),重新把所述應(yīng)用窗口消息保護(hù)模塊注入到最新規(guī)則中要求保護(hù)的所述GUI進(jìn)程中。
[0038]優(yōu)選地,所述卸載單元、管理單元、加載單元、寫(xiě)入單元、注入單元均布置于所述主服務(wù)進(jìn)程模塊內(nèi)。
[0039]本發(fā)明實(shí)施例提供了一種Windows進(jìn)程的系統(tǒng)性保護(hù)方法及裝置,通過(guò)加載內(nèi)核進(jìn)程保護(hù)模塊和內(nèi)核規(guī)則管理模塊,將進(jìn)程保護(hù)規(guī)則寫(xiě)入內(nèi)核規(guī)則管理模塊,并將應(yīng)用窗口消息保護(hù)模塊注入進(jìn)程保護(hù)規(guī)則中要求保護(hù)的GUI進(jìn)程中,當(dāng)有訪問(wèn)進(jìn)程或窗口消息訪問(wèn)內(nèi)核進(jìn)程或GUI進(jìn)程時(shí),訪問(wèn)進(jìn)程或窗口消息首先對(duì)應(yīng)進(jìn)入內(nèi)核進(jìn)程保護(hù)模塊或應(yīng)用窗口消息保護(hù)模塊,內(nèi)核進(jìn)程保護(hù)模塊或應(yīng)用窗口消息保護(hù)模塊發(fā)出請(qǐng)求,由內(nèi)核規(guī)則管理模塊對(duì)訪問(wèn)進(jìn)程或窗口消息進(jìn)行判斷,內(nèi)核進(jìn)程保護(hù)模塊或應(yīng)用窗口消息保護(hù)模塊根據(jù)判斷結(jié)果對(duì)問(wèn)進(jìn)程或窗口消息做出相應(yīng)的處理。由用戶定義進(jìn)程保護(hù)規(guī)則,能夠更加的有效過(guò)濾對(duì)內(nèi)核進(jìn)程和GUI進(jìn)程進(jìn)行非法終止、破壞的訪問(wèn)進(jìn)程和窗口消息,從而提升Windows進(jìn)程保護(hù)的可靠性。
【附圖說(shuō)明】
[0040]圖1是本發(fā)明實(shí)施例提供的一種Windows進(jìn)程的系統(tǒng)性保護(hù)方法流程圖;
[0041]圖2是本發(fā)明另一個(gè)實(shí)施例提供的一種Windows進(jìn)程的系統(tǒng)性保護(hù)方法流程圖;
[0042]圖3是本發(fā)明一個(gè)實(shí)施例中提供的主服務(wù)進(jìn)程模塊對(duì)各個(gè)模塊關(guān)閉或?qū)M(jìn)程保護(hù)規(guī)則進(jìn)行管理的流程圖;
[0043]圖4是