鬼佬大哥大
  • / 13
  • 下載費用:30 金幣  

一種WINDOWS系統服務描述符表防篡改裝置及方法.pdf

關 鍵 詞:
一種 WINDOWS 系統 服務 描述 符表防 篡改 裝置 方法
  專利查詢網所有資源均是用戶自行上傳分享,僅供網友學習交流,未經上傳用戶書面授權,請勿作他用。
摘要
申請專利號:

CN201510275475.6

申請日:

2015.05.26

公開號:

CN104899512A

公開日:

2015.09.09

當前法律狀態:

撤回

有效性:

無權

法律詳情: 發明專利申請公布后的視為撤回IPC(主分類):G06F 21/56申請公布日:20150909|||實質審查的生效IPC(主分類):G06F 21/56申請日:20150526|||公開
IPC分類號: G06F21/56(2013.01)I 主分類號: G06F21/56
申請人: 浪潮電子信息產業股份有限公司
發明人: 邢希雙
地址: 250100山東省濟南市高新區浪潮路1036號
優先權:
專利代理機構: 濟南信達專利事務所有限公司37100 代理人: 李世喆
PDF完整版下載: PDF下載
法律狀態
申請(專利)號:

CN201510275475.6

授權公告號:

||||||

法律狀態公告日:

2018.04.24|||2015.10.07|||2015.09.09

法律狀態類型:

發明專利申請公布后的視為撤回|||實質審查的生效|||公開

摘要

本發明提供一種Windows系統服務描述符表防篡改裝置及方法,該裝置包括:主服務進程模塊,CPU虛擬化驅動模塊及OS通信驅動模塊,所述主服務進程模塊,用于安裝所述CPU虛擬化驅動模塊和所述OS通信驅動模塊,所述OS通信驅動模塊,用于獲取系統服務描述符表的內存地址范圍,所述CPU虛擬化驅動模塊,進行初始化后用于獲取CPU指令,并根據所述系統服務描述符表的內存地址范圍攔截對系統服務描述符表進行篡改的CPU指令。本發明能夠提高Windows操作系統的安全性。

權利要求書

權利要求書
1.  一種Windows系統服務描述符表防篡改裝置,其特征在于,包括:主服務進程模塊,CPU虛擬化驅動模塊及OS通信驅動模塊;
所述主服務進程模塊,用于安裝所述CPU虛擬化驅動模塊和所述OS通信驅動模塊;
所述OS通信驅動模塊,用于獲取系統服務描述符表的內存地址范圍;
所述CPU虛擬化驅動模塊,進行初始化后用于獲取CPU指令,并根據所述系統服務描述符表的內存地址范圍攔截對系統服務描述符表進行篡改的CPU指令。

2.  根據權利要求1所述的裝置,其特征在于,所述CPU虛擬化驅動模塊安裝完成之后,進行初始化,包括如下中的任意一種或多種:分配最高特權進入區和虛擬機控制塊所需的內存;設置CPU寄存器的標志位;填充虛擬機控制塊的版本信息;使CPU進入虛擬機模式;初始化并激活虛擬機控制塊;將從所述OS通信驅動模塊獲取的系統描述符表的內存地址范圍填充到虛擬機控制塊內,從而指明攔截內存操作;使當前操作系統作為虛擬機運行在虛擬CPU上。

3.  根據權利要求1所述的裝置,其特征在于,
所述CPU虛擬化驅動模塊,進一步采用內核驅動的方式實現,隨操作系統運行自動運行,由CPU以ROOT模式運行所述CPU虛擬化驅動模塊的代碼,具有最高的權限;
和/或,
所述CPU虛擬化驅動模塊,用于判斷獲取的CPU指令是否為內存寫入指令,如果不是則不對所述CPU指令進行攔截,如果是則獲取所述CPU指令要寫入的第一內存地址,判斷所述第一內存地址是否在所述系統服務描述符表的內存地址范圍內,如果不在則不對所述CPU指令進行攔截,如果在則對所述CPU指令進行攔截。

4.  根據權利要求1所述的裝置,其特征在于,
所述OS通信驅動模塊,進一步采用內核驅動的方式實現,隨操作系統運行自動運行,由CPU以非ROOT和RO的模式運行所述OS通信驅動的代碼,權限低于CPU虛擬化驅動模塊,和其它操作系統內核代碼相同。

5.  根據權利要求1所述的裝置,其特征在于,進一步包括:
所述主服務進程模塊,用于接收用戶的卸載命令后,卸載所述OS通信驅動模塊和所述CPU虛擬化驅動模塊,并在卸載完成之后將自身卸載;
和/或,
所述OS通信驅動模塊,用于接收所述CPU虛擬化驅動模塊發送的已攔截指令消息,形成攔截日志,在接收到所述主服務進程模塊發送的獲取攔截日志的命令后,將所述攔截日志返回至所述主服務進程模塊。

6.  一種Windows系統服務描述符表防篡改方法,其特征在于,包括:
由主服務進程模塊安裝CPU虛擬化驅動模塊和OS通信驅動模塊;
由所述OS通信驅動模塊獲取系統服務描述符表的內存地址范圍;
根據所述系統服務描述符表的內存地址范圍,所述CPU虛擬化驅動模塊進行初始化;
所述CPU虛擬化驅動模塊獲取CPU指令;
所述CPU虛擬化驅動模塊根據所述系統服務描述符表的內存地址范圍攔截對系統服務描述符表進行篡改的CPU指令。

7.  根據權利要求6所述的方法,其特征在于,所述根據所述系統服務描述符表的內存地址范圍,所述CPU虛擬化驅動模塊進行初始化包括如下中的任意一種或多種:分配最高特權進入區和虛擬機控制塊所需的內存;設置CPU寄存器的標志位;填充虛擬機控制塊的版本信息;使CPU進入虛擬機模式;初始化并激活虛擬機控制塊;將從所述OS通信驅動模塊獲取的系統描述符表的內存地址范圍填充到虛擬機控制塊內,從而指明攔截內存操作;使當前操作系統作為虛擬機運行在虛擬CPU上。

8.  根據權利要求6所述的方法,其特征在于,
所述由主服務進程模塊安裝CPU虛擬化驅動模塊包括:所述CPU虛擬化驅動模塊采用內核驅動的方式實現,隨操作系統運行自動運行,由CPU以ROOT模式運行所述CPU虛擬化驅動模塊的代碼,具有最高的權限;
和/或,
所述所述CPU虛擬化驅動模塊根據所述系統服務描述符表的內存地址范圍攔截對系統服務描述符表進行篡改的CPU指令包括:判斷所述CPU指令是否為內存寫入指令,如果不是則不對所述CPU指令進行攔截,如果是則獲取所述CPU指令要寫入的第一內存地址,判斷所述第一內存地址是否在所述系統服務描述符表的內存地址范圍內,如果不在則不對所述CPU指令進行攔截,如果在則對所述CPU指令進行攔截。

9.  根據權利要求6所述的方法,其特征在于,
所述由主服務進程模塊安裝OS通信驅動模塊包括:所述OS通信驅動模塊采用內核驅動的方式實現,隨操作系統運行自動運行,由CPU以非ROOT和RO的模式運行所述OS通信驅動的代碼,權限低于CPU虛擬化驅動模塊,和其它操作系統內核代碼相同。

10.  根據權利要求6所述的方法,其特征在于,進一步包括:
所述主服務進程模塊接收用戶的卸載命令后,卸載所述OS通信驅動模塊和所述CPU虛擬化驅動模塊,并在卸載完成之后將自身卸載;
和/或,
所述OS通信驅動模塊接收所述CPU虛擬化驅動模塊發送的已攔截指令消息,形成攔截日志,在接收到所述主服務進程模塊發送的獲取攔截日志的命令后,將所述攔截日志返回至所述主服務進程模塊。

說明書

說明書一種Windows系統服務描述符表防篡改裝置及方法
技術領域
本發明涉及計算機安全領域,特別涉及一種Windows系統服務描述符表防篡改裝置及方法。
背景技術
隨著計算機技術的不斷發展,用戶對計算機安全性的要求也越來越高,其中操作系統是計算機的核心部分,一旦操作系統被黑客或非法用戶控制及利用,后果將不堪設想。系統服務描述符表是Windows操作系統的關鍵部件,是所有應用層API的統一入口,黑客經常使用自己編寫的Rootkit后門程序來篡改系統服務描述符表,以達到隱藏自身、破壞系統正常行為的目的,所以防止對系統服務描述符表進行惡意篡改是亟待解決的問題。
目前,對于系統服務描述符表的防篡改方法主要包括:通過Windows操作系統自帶的PatchGuard機制,在操作系統運行期間檢查系統服務描述符表是否被篡改,如果被篡改操作系統馬上報錯、宕機。
針對通過PatchGuard機制對系統服務描述符表進行防篡改的方法,當Windows操作系統處于調試模式下運行時,PatchGuard機制不生效,黑客會在Rootkit后門程序中將Windows操作系統的運行模式置于調試模式,從而對系統服務描述符表進行篡改,因此通過PatchGuard機制對系統服務描述符表進行防篡改,Windows操作系統的安全性較低。
發明內容
本發明提供一種Windows系統服務描述符表防篡改裝置及方法,能夠提 高Windows操作系統的安全性。
本發明提供了一種Windows系統服務描述符表防篡改裝置,包括:主服務進程模塊,CPU虛擬化驅動模塊及OS通信驅動模塊;
所述主服務進程模塊,用于安裝所述CPU虛擬化驅動模塊和所述OS通信驅動模塊;
所述OS通信驅動模塊,用于獲取系統服務描述符表的內存地址范圍;
所述CPU虛擬化驅動模塊,進行初始化后用于獲取CPU指令,并根據所述系統服務描述符表的內存地址范圍攔截對系統服務描述符表進行篡改的CPU指令。
優選地,所述CPU虛擬化驅動模塊安裝完成之后,進行初始化,包括如下中的任意一種或多種:分配最高特權進入區和虛擬機控制塊所需的內存;設置CPU寄存器的標志位;填充虛擬機控制塊的版本信息;使CPU進入虛擬機模式;初始化并激活虛擬機控制塊;將從所述OS通信驅動模塊獲取的系統描述符表的內存地址范圍填充到虛擬機控制塊內,從而指明攔截內存操作;使當前操作系統作為虛擬機運行在虛擬CPU上。
優選地,所述CPU虛擬化驅動模塊,進一步采用內核驅動的方式實現,隨操作系統運行自動運行,由CPU以ROOT模式運行所述CPU虛擬化驅動模塊的代碼,具有最高的權限。
優選地,所述CPU虛擬化驅動模塊,用于判斷獲取的CPU指令是否為內存寫入指令,如果不是則不對所述CPU指令進行攔截,如果是則獲取所述CPU指令要寫入的第一內存地址,判斷所述第一內存地址是否在所述系統服務描述符表的內存地址范圍內,如果不在則不對所述CPU指令進行攔截,如果在則對所述CPU指令進行攔截。
優選地,所述OS通信驅動模塊,進一步采用內核驅動的方式實現,隨操作系統運行自動運行,由CPU以非ROOT和RO的模式運行所述OS通信驅動的代碼,權限低于CPU虛擬化驅動模塊,和其它操作系統內核代碼相同。
進一步地,所述主服務進程模塊,用于接收用戶的卸載命令后,卸載所 述OS通信驅動模塊和所述CPU虛擬化驅動模塊,并在卸載完成之后將自身卸載。
進一步地,所述OS通信驅動模塊,用于接收所述CPU虛擬化驅動模塊發送的已攔截指令消息,形成攔截日志,在接收到所述主服務進程模塊發送的獲取攔截日志的命令后,將所述攔截日志返回至所述主服務進程模塊。
本發明還還提供了一種Windows系統服務描述符表防篡改方法,包括:
由主服務進程模塊安裝CPU虛擬化驅動模塊和OS通信驅動模塊;
由所述OS通信驅動模塊獲取系統服務描述符表的內存地址范圍;
根據所述系統服務描述符表的內存地址范圍,所述CPU虛擬化驅動模塊進行初始化;
所述CPU虛擬化驅動模塊獲取CPU指令;
所述CPU虛擬化驅動模塊根據所述系統服務描述符表的內存地址范圍攔截對系統服務描述符表進行篡改的CPU指令。
優選地,所述根據所述系統服務描述符表的內存地址范圍,所述CPU虛擬化驅動模塊進行初始化包括如下中的任意一種或多種:分配最高特權進入區和虛擬機控制塊所需的內存;設置CPU寄存器的標志位;填充虛擬機控制塊的版本信息;使CPU進入虛擬機模式;初始化并激活虛擬機控制塊;將從所述OS通信驅動模塊獲取的系統描述符表的內存地址范圍填充到虛擬機控制塊內,從而指明攔截內存操作;使當前操作系統作為虛擬機運行在虛擬CPU上。
優選地,所述由主服務進程模塊安裝CPU虛擬化驅動模塊包括:所述CPU虛擬化驅動模塊采用內核驅動的方式實現,隨操作系統運行自動運行,由CPU以ROOT模式運行所述CPU虛擬化驅動模塊的代碼,具有最高的權限。
優選地,所述所述CPU虛擬化驅動模塊根據所述系統服務描述符表的內存地址范圍攔截對系統服務描述符表進行篡改的CPU指令包括:判斷所述CPU指令是否為內存寫入指令,如果不是則不對所述CPU指令進行攔截, 如果是則獲取所述CPU指令要寫入的第一內存地址,判斷所述第一內存地址是否在所述系統服務描述符表的內存地址范圍內,如果不在則不對所述CPU指令進行攔截,如果在則對所述CPU指令進行攔截。
優選地,所述由主服務進程模塊安裝OS通信驅動模塊包括:所述OS通信驅動模塊采用內核驅動的方式實現,隨操作系統運行自動運行,由CPU以非ROOT和RO的模式運行所述OS通信驅動的代碼,權限低于CPU虛擬化驅動模塊,和其它操作系統內核代碼相同。
進一步地,所述主服務進程模塊接收用戶的卸載命令后,卸載所述OS通信驅動模塊和所述CPU虛擬化驅動模塊,并在卸載完成之后將自身卸載。
進一步地,所述OS通信驅動模塊接收所述CPU虛擬化驅動模塊發送的已攔截指令消息,形成攔截日志,在接收到所述主服務進程模塊發送的獲取攔截日志的命令后,將所述攔截日志返回至所述主服務進程模塊。
本發明實施例提供了一種Windows系統服務描述符表防篡改裝置及方法,該裝置包括主服務進程模塊,CPU虛擬化驅動模塊及OS通信驅動模塊,由主服務進程模塊安裝CPU虛擬化驅動模塊及OS通信驅動模塊,OS通信驅動模塊獲取系統服務描述符表的內存地址范圍,CPU虛擬化驅動模塊根據系統服務描述符表的內存地址范圍對獲取的CPU指令進行過濾,其中對系統服務描述符表進行篡改的CPU指令將被攔截,因此,在各種模式運行下的Windows操作系統,都能夠攔截各類篡改系統服務描述符表的惡意CPU指令,從而提高Windows操作系統的安全性。
附圖說明
圖1是本發明實施例提供的一種Windows系統服務描述符表防篡改裝置示意圖;
圖2是本發明實施例提供的一種Windows系統服務描述符表防篡改方法流程圖;
圖3是本發明實施例提供的OS通信驅動模塊消息處理流程圖。
具體實施方式
下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述。顯然,所描述的實施例僅是本發明一部分實施例,而不是全部的實施例。基于本發明中的實施例,本領域普通技術人員在沒有做出創造性勞動前提下所獲得的所有其他實施例,都屬于本發明保護的范圍。
如圖1所示,本發明一個實施例提供了一種Windows系統服務描述符表防篡改裝置,包括主服務進程模塊101,CPU虛擬化驅動模塊102及OS通信驅動模塊103;
所述主服務進程模塊101,用于安裝所述CPU虛擬化驅動模塊102和所述OS通信驅動模塊103;
所述OS通信驅動模塊103,用于獲取系統服務描述符表的內存地址范圍;
所述CPU虛擬化驅動模塊102,進行初始化后用于獲取CPU指令,并根據所述系統服務描述符表的內存地址范圍攔截對系統服務描述符表進行篡改的CPU指令。
本發明實施例提供了一種Windows系統服務描述符表防篡改裝置,該裝置包括主服務進程模塊,CPU虛擬化驅動模塊及OS通信驅動模塊,由主服務進程模塊安裝CPU虛擬化驅動模塊及OS通信驅動模塊,OS通信驅動模塊獲取系統服務描述符表的內存地址范圍,CPU虛擬化驅動模塊根據系統服務描述符表的內存地址范圍對獲取的CPU指令進行過濾,其中對系統服務描述符表進行篡改的CPU指令將被攔截,因此,在各種模式下運行的Windows操作系統,都能夠攔截各類篡改系統服務描述符表的惡意CPU指令,從而提高Windows操作系統的安全性。
在本發明一個實施例中,CPU虛擬化驅動模塊安裝完成之后,需要進行初始化,包括如下中的任意一種或多種:分配最高特權進入區和虛擬機控制塊所需的內存;設置CPU寄存器的標志位;填充虛擬機控制塊的版本信息; 使CPU進入虛擬機模式;初始化并激活虛擬機控制塊;將從所述OS通信驅動模塊獲取的系統描述符表的內存地址范圍填充到虛擬機控制塊內,從而指明攔截內存操作;使當前操作系統作為虛擬機運行在虛擬CPU上,這樣將操作系統置于透明的虛擬化層上運行,在用戶不察覺的情況下對系統服務描述符表進行監控,攔截各類惡意篡改系統服務描述符表的CPU指令,從而提高Windows操作系統的安全性。
在本發明一個實施例中,CPU虛擬化驅動模塊以內核驅動的方式實現,并隨操作系統的運行而自動運行,由CPU以ROOT模式運行其代碼,具有最高的權限,這樣,只要系統在運行,CPU虛擬化驅動模塊就會對篡改系統服務描述符表的CPU指令進行攔截,因為其具有最高權限,其他應用程序無法對其進行修改或操作,保證實時對系統服務描述符表進行保護,從而提高Windows操作系統的安全性。
在本發明一個實施例中,CPU虛擬化驅動模塊獲取CPU指令后,首先判斷該CPU指令是否為內存寫入指令,如果不是則不對該CPU指令進行攔截,如果是則獲取該CPU指令要寫入的內存地址,判斷該內存地址是否在系統服務描述符表的內存地址范圍內,如果不在則不對該CPU指令進行攔截,如果在則對該CPU指令進行攔截,從而有效對篡改系統服務描述符表的CPU指令進行攔截的同時,保障正常的CPU指令得到及時的執行。
在本發明一個實施例中,OS通信驅動模塊以內核驅動的方式實現,隨操作系統運行自動運行,由CPU以非ROOT和RO的模式運行其代碼,權限低于CPU虛擬化驅動模塊,和其它操作系統內核代碼相同,這樣,保證在系統運行過程中OS通信驅動模塊一致處于運行狀態,能夠實時獲取攔截記錄,形成攔截日志。
在本發明一個實施例中,主服務進程模塊在接收到用戶的卸載命令后,卸載OS通信驅動模塊和CPU虛擬化驅動模塊,并在卸載完成之后將自身卸載,從而滿足用戶在特殊情況下對系統服務描述符表進行修改的要求。
在本發明一個實施例中,OS通信驅動模塊接收CPU虛擬化驅動模塊發 送來的已攔截指令消息,形成攔截日志,在接收到主服務進程模塊發送的獲取攔截日志的命令后,將攔截日志返回至主服務進程模塊,由于攔截過程是在用戶不察覺的情況下進行,形成攔截記錄,用戶可以通過主服務進程模塊查看攔截記錄,從而掌握系統的安全狀況。
為使本發明的目的、技術方案和優點更加清楚,下面結合附圖及具體實施例,進一步詳細描述基于本發明實施例提供的任一Windows系統服務描述符表防篡改裝置的Windows系統服務描述符表防篡方法。
如圖2所示,本發明一個實施例提供了一種Windows系統服務描述符表防篡方法,該方法可以包括:
步驟201:主服務進程模塊安裝CPU虛擬化驅動模塊和OS通信驅動模塊。
在本發明一個實施例中,由主服務進程模塊安裝CPU虛擬化驅動模塊和OS通信驅動模塊,其中,CPU虛擬化驅動模塊采用內核驅動的方式實現,隨操作系統運行自動運行,由CPU以ROOT模式運行其代碼,因此CPU虛擬化驅動模塊具有最高的權限;OS通信驅動模塊采用內核驅動的方式實現,隨操作系統運行自動運行,由CPU以非ROOT和RO的模式運行其代碼,其權限低于CPU虛擬化驅動模塊,和其他操作系統內核代碼相同;主服務進程模塊通過Windows后臺服務的方式實現。
步驟202:OS通信驅動模塊獲取系統服務描述符表的內存地址范圍。
在本發明一個實施例中,OS通信驅動模塊獲取當前Windows操作系統的系統服務描述符表的起始內存地址及內存地址范圍,并進行存儲,用以后續步驟判斷是否對CPU指令進行攔截。
步驟203:CPU虛擬化驅動模塊進行初始化。
在本發明一個實施例中,CPU虛擬化驅動模塊在安裝完成之后,需進行初始化操作,包括分配最高特權進入區和虛擬機控制塊所需的內存;設置CPU寄存器的標志位;填充虛擬機控制塊的版本信息;使CPU進入虛擬機模式;初始化并激活虛擬機控制塊;將從所述OS通信驅動模塊獲取的系統 描述符表的內存地址范圍填充到虛擬機控制塊內,從而指明攔截內存操作;使當前操作系統作為虛擬機運行在虛擬CPU上。
步驟204:CPU虛擬化驅動模塊獲取CPU指令。
在本發明一個實施例中,CPU虛擬化驅動模塊獲取當前Windows操作系統的所有CPU指令,通過對所有CPU指令進行判斷,對于篡改系統服務描述符表的CPU指令進行攔截,從而保證防護的全面性。
步驟205:CPU虛擬化驅動模塊判斷CPU指令是否為內存寫入指令,如果是,則執行步驟206,否則執行步驟209。
在本發明一個實施例中,對于獲取的CPU指令,CPU虛擬化驅動模塊首先判斷該獲得的CPU指令是否為內存寫入指令,如果是,則需進一步判斷該指令是否為寫入系統服務描述符表的指令,執行步驟206,如果否,則該CPU指令不會對系統服務描述符表進行篡改,應保證其得到正常執行,執行步奏209。
步驟206:CPU虛擬化驅動模塊獲取CPU指令要寫入的內存地址。
在本發明一個實施例中,當獲得的CPU指令為內存寫入指令時,CPU虛擬化驅動模塊獲取該內存寫入指令要寫入的內存地址,通過內存地址可以判斷該內存寫入指令要寫入的是否為系統服務描述符表的內存地址范圍。
步驟207:CPU虛擬化驅動模塊判斷CPU指令要寫入的內存地址是否在系統服務描述符表的內存地址范圍內,如果是,則指定步驟208,否則執行步驟209。
在本發明一個實施例中,CPU虛擬化驅動模塊根據填充到虛擬機控制塊內的系統服務描述符表的內存地址范圍,判斷CPU指令要寫入的內存地址是否在系統服務描述符表的內存地址范圍,如果是,則可以判斷該指令是要對系統服務描述符表進行篡改的指令,需對其進行攔截,執行步驟208,如果否,則該指令雖然是內存寫入指令,但寫入的不是系統服務描述符表的內存地址范圍,不會對系統服務描述符表進行篡改,需保證其得到正常的執行,執行步驟209。
步驟208:攔截CPU執行,不允許其執行,并結束當前流程。
在本發明一個實施例中,如果CPU指令經CPU虛擬化驅動模塊判斷為寫入當前操作系統系統服務描述符表的內存地址范圍內的指令,則該指令是對系統服務描述符表進行篡改的指令,需對其進行攔截,因此CPU虛擬化驅動模塊對該指令進行攔截,不允許其對當前操作系統系統服務描述符表進行寫入,并結束當前流程。
步驟209:不對CPU指令進行攔截,允許其執行。
在本發明一個實施例中,如果CPU指令不是內存寫入指令,或CPU指令是內存寫入指令單但要寫入的內存地址不在系統服務描述符表的內存地址范圍內,則這些CPU指令不會對系統服務描述符表進行篡改,不需要對這些CPU指令進行攔截,應保證其得到正常執行。
本發明一個實施例中,OS通信驅動模塊可以獲取系統服務描述符表的內存地址范圍,還可以記錄攔截消息,形成攔截日志,如圖3所示,其具體方法包括:
步驟301:接收來自主服務進程模塊或CPU虛擬化驅動模塊的消息。
在本發明一個實施例中,OS通信驅動模塊接收消息,其中,接收到的消息有兩個來源,一是來自主服務進程模塊發送的獲取攔截日志的請求消息,另一是CPU虛擬化驅動模塊發來的CPU指令攔截消息或獲取系統服務描述符表內存地址范圍的請求消息。
步驟302:判斷消息是否來自于CPU虛擬化驅動模塊,如果是,執行步驟303,否則,執行步驟306。
在本發明一個實施例中,OS通信驅動模塊接收到消息后,首先對該消息的來源進行判斷,如果消息來自于CPU虛擬化驅動模塊,則該消息可能為CPU指令攔截消息,也可能為獲取系統服務描述符表內存地址范圍的請求消息,需要對該類消息進行進一步的判斷,因而執行步驟303,如果消息不是來自于CPU虛擬化驅動模塊,那該消息定是來自于主服務進程模塊,則針對該消息執行步驟306。
步驟303:判斷消息是否為CPU指令攔截消息,如果是,執行步驟304,否則執行步驟305。
在本發明一個實施例中,針對來自于CPU虛擬化驅動模塊的消息,進一步判斷該消息是否為CPU指令攔截消息,如果是則執行步驟304,如果不是,則該消息為獲取系統服務描述符表內存地址范圍的請求消息,需向請求對象發送所需系統服務描述符表的內存地址范圍,針對該消息執行步驟305。
步驟304:保存CPU指令攔截消息,形成攔截日志,并結束當前流程。
在本發明一個實施例中,如果接收到的消息為CPU指令攔截消息,則將該消息進行保存,形成攔截日志,并結束當前流程,重新接收其他的消息。
步驟305:返回系統服務描述符表的內存地址范圍,并結束當前流程。
在本發明一個實施例中,如果接收的消息為獲取系統服務描述符表內存地址范圍的請求消息,則將OS通信驅動模塊已經獲取并存儲的系統服務描述符表內存地址范圍發送給CPU虛擬化驅動模塊,并結束當前流程。
步驟306:返回一條攔截日志。
在本發明一個實施例中,如果OS通信驅動模塊接收到的消息為主服務進程模塊發送的獲取攔截日志的請求消息,則將攔截日志返回給主服務進程模塊。
需要說明的是,用戶可以通過主服務進程模塊,獲取攔截日志,另外,主服務進程模塊可以安裝CPU虛擬化啟動模塊和OS通信驅動模塊,也可以在接收到用戶的指令后,首先卸載CPU虛擬化啟動模塊和OS通信驅動模塊,然后將自己也卸載。
根據上述方案,本發明的實施例所提供的一種Windows系統服務描述符表防篡改裝置及方法,至少具有如下有益效果:
1、本發明實施例中,提供了一種Windows系統服務描述符表防篡改裝置,該裝置包括主服務進程模塊,CPU虛擬化驅動模塊及OS通信驅動模塊,由主服務進程模塊安裝CPU虛擬化驅動模塊及OS通信驅動模塊,OS通信驅動模塊獲取系統服務描述符表的內存地址范圍,CPU虛擬化驅動模塊根據 系統服務描述符表的內存地址范圍對獲取的CPU指令進行過濾,其中對系統服務描述符表進行篡改的CPU指令將被攔截,因此,在各種模式下運行的Windows操作系統,都能夠攔截各類篡改系統服務描述符表的惡意CPU指令,從而提高Windows操作系統的安全性。
2、本發明實施例中,提供的Windows系統服務描述符表防篡改方法適用于各種類型的Windows操作系統,而現有技術通過PatchGuard機制對Windows系統服務描述符表進行防篡改只支持64為操作系統,但是目前仍有很多用戶使用32位操作系統,因此,相對于現有技術,本發明實施例提供的Windows系統服務描述符表防篡改方法具有更廣泛的適用性及全面性。
3、本發明實施例中,提供的Windows系統服務描述符表防篡改裝置及方法,是一種預先防御機制,能夠在Rootkit后門程序破壞系統服務描述符表之前對其攔截,而現有技術通過PatchGuard機制對Windows系統服務描述符表進行防篡改,屬于事后檢查機制,在檢查出系統服務描述符表被篡改之前,Rootkit后門程序可能已經完成了要做的事,因此,相對于現有技術,本發明實施例提供的方案能夠提高Windows操作系統的安全性。
4、本發明實施例中,采用預先攔截的措施,從根本上避免系統服務描述符表被篡改,不會出現因為系統服務描述符表被篡改而宕機的現象,而現有技術通過PatchGuard機制對Windows系統服務描述符表進行防篡改,如果檢查出系統服務描述符表被篡改,則操作系統馬上宕機,對于一些重要的計算機,宕機對于用戶來說是接收不了的,因此,本發明實施例還能夠保護用戶的數據及操作。
5、本發明實施例中,用戶可以根據實際情況,當在需要對系統服務描述符表進行修改時,卸載各個模塊,從而實現對系統服務描述符表的修改。
上述設備內的各單元之間的信息交互、執行過程等內容,由于與本發明方法實施例基于同一構思,具體內容可參見本發明方法實施例中的敘述,此處不再贅述。
需要說明的是,在本文中,諸如第一和第二之類的關系術語僅僅用來將 一個實體或者操作與另一個實體或操作區分開來,而不一定要求或者暗示這些實體或操作之間存在任何這種實際的關系或者順序。而且,術語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設備所固有的要素。在沒有更多限制的情況下,由語句“包括一個······”限定的要素,并不排除在包括所述要素的過程、方法、物品或者設備中還存在另外的相同因素。
本領域普通技術人員可以理解:實現上述方法實施例的全部或部分步驟可以通過程序指令相關的硬件來完成,前述的程序可以存儲在計算機可讀取的存儲介質中,該程序在執行時,執行包括上述方法實施例的步驟;而前述的存儲介質包括:ROM、RAM、磁碟或者光盤等各種可以存儲程序代碼的介質中。
最后需要說明的是:以上所述僅為本發明的較佳實施例,僅用于說明本發明的技術方案,并非用于限定本發明的保護范圍。凡在本發明的精神和原則之內所做的任何修改、等同替換、改進等,均包含在本發明的保護范圍內。

關于本文
本文標題:一種WINDOWS系統服務描述符表防篡改裝置及方法.pdf
鏈接地址:http://www.wwszu.club/p-6369728.html
關于我們 - 網站聲明 - 網站地圖 - 資源地圖 - 友情鏈接 - 網站客服 - 聯系我們

[email protected] 2017-2018 zhuanlichaxun.net網站版權所有
經營許可證編號:粵ICP備17046363號-1 
 


收起
展開
鬼佬大哥大