基于WindowsNT內核的進程監(jiān)控系統(tǒng)設計與實現_第1頁
基于WindowsNT內核的進程監(jiān)控系統(tǒng)設計與實現_第2頁
基于WindowsNT內核的進程監(jiān)控系統(tǒng)設計與實現_第3頁
基于WindowsNT內核的進程監(jiān)控系統(tǒng)設計與實現_第4頁
基于WindowsNT內核的進程監(jiān)控系統(tǒng)設計與實現_第5頁
已閱讀5頁,還剩1頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、2009.2 44 基于WindowsNT 內核的進程監(jiān)控系統(tǒng)設計與實現王全民張旭何濤吳艷華北京工業(yè)大學計算機學院北京100124摘要:本文是要實現一個能夠檢測系統(tǒng)全部進程的系統(tǒng),特別是針對某些惡意代碼的隱藏進程的發(fā)現,并找出相應的dll 文件。檢測方法是通過對系統(tǒng)服務進行攔截,編寫自己的系統(tǒng)進程檢測函數,從而達到保護主機安全的目的。關鍵詞:進程;系統(tǒng)服務;鉤掛0引言進程是程序在計算機上的一次執(zhí)行活動。進程可以分為系統(tǒng)進程和用戶進程。凡是用于完成操作系統(tǒng)的各種功能的進程就是系統(tǒng)進程,它們就是處于運行狀態(tài)下的操作系統(tǒng)本身;用戶進程就是所有由用戶啟動的進程。進程是操作系統(tǒng)進行資源分配的單位。本文的

2、目的是要實現一個能夠管理進程的系統(tǒng),特別是針對隱藏進程及一些惡意代碼啟動的進程。方法是對系統(tǒng)調用進行截獲,編寫自己的系統(tǒng)調用函數。針對目前的網絡環(huán)境,僅僅依靠反病毒軟件保護系統(tǒng)是不完善的,而目前網絡對主機的攻擊方式又是趨于多元化,針對性強。所以實現這樣一個基于進程管理的主機安全系統(tǒng)是有現實意義的。本文采用鉤掛技術,從內核級對WindowsNT 進程進行實時監(jiān)控,從而更可靠地截獲系統(tǒng)進程的相關信息,實現對主機安全的保護。1截獲系統(tǒng)調用Hooking(掛鉤技術是實現系統(tǒng)調用截獲最為通用的技術,它提供了一種截獲執(zhí)行代碼的通用機制。也可以認為Hooking 是一類代碼截獲技術的通稱,可以有多種方法去實

3、現Hooking 技術(本文所稱的系統(tǒng)調用截獲技術主要指Hooking技術。對系統(tǒng)調用截獲又分為用戶級系統(tǒng)調用截獲和核心級系統(tǒng)調用截獲,如圖1所示。由于對系統(tǒng)進程進行比較深入的研究,所以采用了利用核心級系統(tǒng)調用截獲獲得系統(tǒng)進程信息。通過截獲NT 執(zhí)行體系統(tǒng)服務分配表SSDT 的查找操作,改變SSDT 中某系統(tǒng)服務號對應的系統(tǒng)服務函數指針,將指針指到開發(fā)者插入的其他函數入口點。得到SSDT 的基地址后,根據請求的系統(tǒng)服務的ServiceID檢索SSDT,找到該ServiceID 對應函數地址,用新的系統(tǒng)服務函數入日地址替換原地址。在新的系統(tǒng)服務函數中同樣要保存原系統(tǒng)服務函數的入口現場,當新的系統(tǒng)

4、服務函數返回時,恢復現場并調用原來的系統(tǒng)服務函數。當需要阻斷正常的系統(tǒng)調用時,則要在新的系統(tǒng)服務函數執(zhí)行完后直接返回,不再執(zhí)行原系統(tǒng)服務函數,但在返回前要根據原系統(tǒng)服務函數對返回值的要求進行相應的設置,以保證系統(tǒng)服務函數傳遞的完整性。圖1Windows 系統(tǒng)不同層次的服務調用攔截點2隱藏進程的發(fā)現隱藏的本質就是欺騙使用者,使得運行中的進程和存在 的文件信息不顯示給用戶。實現進程隱藏和文件隱藏的方法作者簡介:王全民(1963-,男,北京工業(yè)大學計算機學院計算中心主任、副教授,碩士生導師,天津大學在讀博士生。張旭(1983-,男,北京工業(yè)大學計算機學院2006級碩士研究生,研究方向:信息安全。何濤

5、(1981-,男,北京工業(yè)大學計算機學院2006級碩士研究生,研究方向:信息安全。吳艷華(1979-,女,北京工業(yè)大學計算機學院2006 級碩士研究生,研究方向:信息安全。 2009.245 比較多,較為常見的技術是使用APIHook技術修改系統(tǒng)函數,其中又以修改內核層函數的方法居多。Windows 操作系統(tǒng)是一種分層的架構體系。應用層的程序是通過API來訪問操作系統(tǒng)。而API又是通過ntdll里面的核心API 來進行系統(tǒng)服務的查詢。核心API 通過對int2E 的切換,從用戶模式轉換到內核模式。2Eh 中斷的功能是通過NTOSKRNL.EXE 的一個函數KiSystemService(來實現

6、的。KiSystemService(是根據EAX的值來決定哪個函數將被調用。而系統(tǒng)在SSDT 中維持了一個數組,專門用來索引特定的函數服務地址??梢酝ㄟ^由ntoskrnl.exe 導出的KeServiceDescriptorTable 變量來完成對SSDT的訪問與修改。KeServiceDescriptorTable 對應于一個數據結構,定義如下:typedefstructSystemServiceDescriptorTable UINT*ServiceTableBase;UINT*ServiceCounterTableBase;UINTNumberOfService;UCHAR*Parame

7、terTableBase;SystemServiceDescriptorTable,*PSystemServiceDescriptorTable;其中ServiceTableBase 指向系統(tǒng)服務程序的地址(SSDT,ParameterTableBase則指向SSPT中的參數地址,它們都包含了NumberOfService 這么多個數組單元。大多數惡意代碼都是通過修改通過把真實NtQuerySyste-mInformation返回的數進行添加或者是刪改,因此要發(fā)現惡意代碼故意隱藏的進程,可以Hook掉NtQuerySystemInformation ,將結果與普通快照方法獲得的進程進行比較,即

8、可發(fā)現惡意代碼隱藏的進程。3進程與應用程序及dll文件的關系每個進程都由一個EPROCESS 塊來表示。EPROCESS 塊中不僅包含了進程相關了很多信息,還有很多指向其他相關結構數據結構的指針。例如每一個進程里面都至少有一個ETHREAD 塊表示的線程。進程的名字,和在用戶空間的PEB (進程環(huán)境塊等等。EPROCESS 中除了PEB 成員塊在是用戶空間,其他都是在系統(tǒng)空間中的。因此只要對EPROCESS 進行Hook,即可發(fā)現惡意代碼啟動的進程與相應的dll文件的關系,并精確確定dll文件所在的位置,及時清楚惡意代碼相關的進程和文件。4自我保護機制的實現在檢測惡意代碼的進程同時,系統(tǒng)還要抵

9、御來自惡意代碼的干擾,因此要對系統(tǒng)進行有效的自我保護。由于內核代碼具有很大的訪問權限,如果攻擊者把惡意代碼插入內核,就有可能將該系統(tǒng)刪除,從而失去對主機的保護。所以,一方面要限制任意內核模塊的加載,另一方面還有防止內核模塊被惡意刪除。本系統(tǒng)所采取的策略是:當該系統(tǒng)啟動后,就限制任意內核模塊的加載;如果需要安裝內核程序,用戶需要先通知該系統(tǒng)禁用該功能,安裝后再啟用該功能。具體實施辦法是:通過修改相關的系統(tǒng)調用監(jiān)視模塊的加載。在Windows 系統(tǒng)中,要想使程序運行在核心態(tài),必須通過編寫設備驅動程序來實現。而加載驅動程序最終要調用系統(tǒng)服務ZwLoadDriver來實現,如果要截獲該系統(tǒng)服務調用,限

10、制執(zhí)行該服務,則就可以限制驅動程序的加載。內核模塊卸載保護也是通過截獲系統(tǒng)服務調用來實現的。當卸載驅動程序時,最終要調用系統(tǒng)服務ZwUnloadDriver來實現,所以只要截獲該系統(tǒng)服務,根據訪問控制規(guī)則判斷是否允許卸載該驅動程序,則就可以限制驅動程序的卸載。通過限制內核模塊的任意加載,可以防止黑客插入惡意模塊傳播病毒、留下后門、修改重要文件和銷毀攻擊痕跡等。通過限制刪除內核模塊,可以防止部分系統(tǒng)功能被非法終止。5結論以上對基于WindowsNT 內核的進程監(jiān)控系統(tǒng)進行了一個簡單的介紹,該系統(tǒng)可大大增強主機的安全性,使用戶在使用過程中避免了由于惡意代碼給主機安全帶來的破壞。信息安全將是未來發(fā)展的一個重點,攻擊和偵測都有一個向底層靠攏的趨勢。對于系統(tǒng)服務的截獲只是信息安全中的很小的一個部分。未來病毒和反病毒底層化是一個不可逆轉的事實。通過對系統(tǒng)底層分析能更好的了解病毒技術,從而能夠有效的進行查殺。為以后從事信息安全方面的研究奠定一個好的基礎。參考文獻1JuliaAllen,AlanChrist ie,WilliamF ithen.Stateo

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論