




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、2009.2 44 基于WindowsNT 內(nèi)核的進(jìn)程監(jiān)控系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)王全民張旭何濤吳艷華北京工業(yè)大學(xué)計(jì)算機(jī)學(xué)院北京100124摘要:本文是要實(shí)現(xiàn)一個(gè)能夠檢測(cè)系統(tǒng)全部進(jìn)程的系統(tǒng),特別是針對(duì)某些惡意代碼的隱藏進(jìn)程的發(fā)現(xiàn),并找出相應(yīng)的dll 文件。檢測(cè)方法是通過對(duì)系統(tǒng)服務(wù)進(jìn)行攔截,編寫自己的系統(tǒng)進(jìn)程檢測(cè)函數(shù),從而達(dá)到保護(hù)主機(jī)安全的目的。關(guān)鍵詞:進(jìn)程;系統(tǒng)服務(wù);鉤掛0引言進(jìn)程是程序在計(jì)算機(jī)上的一次執(zhí)行活動(dòng)。進(jìn)程可以分為系統(tǒng)進(jìn)程和用戶進(jìn)程。凡是用于完成操作系統(tǒng)的各種功能的進(jìn)程就是系統(tǒng)進(jìn)程,它們就是處于運(yùn)行狀態(tài)下的操作系統(tǒng)本身;用戶進(jìn)程就是所有由用戶啟動(dòng)的進(jìn)程。進(jìn)程是操作系統(tǒng)進(jìn)行資源分配的單位。本文的
2、目的是要實(shí)現(xiàn)一個(gè)能夠管理進(jìn)程的系統(tǒng),特別是針對(duì)隱藏進(jìn)程及一些惡意代碼啟動(dòng)的進(jìn)程。方法是對(duì)系統(tǒng)調(diào)用進(jìn)行截獲,編寫自己的系統(tǒng)調(diào)用函數(shù)。針對(duì)目前的網(wǎng)絡(luò)環(huán)境,僅僅依靠反病毒軟件保護(hù)系統(tǒng)是不完善的,而目前網(wǎng)絡(luò)對(duì)主機(jī)的攻擊方式又是趨于多元化,針對(duì)性強(qiáng)。所以實(shí)現(xiàn)這樣一個(gè)基于進(jìn)程管理的主機(jī)安全系統(tǒng)是有現(xiàn)實(shí)意義的。本文采用鉤掛技術(shù),從內(nèi)核級(jí)對(duì)WindowsNT 進(jìn)程進(jìn)行實(shí)時(shí)監(jiān)控,從而更可靠地截獲系統(tǒng)進(jìn)程的相關(guān)信息,實(shí)現(xiàn)對(duì)主機(jī)安全的保護(hù)。1截獲系統(tǒng)調(diào)用Hooking(掛鉤技術(shù)是實(shí)現(xiàn)系統(tǒng)調(diào)用截獲最為通用的技術(shù),它提供了一種截獲執(zhí)行代碼的通用機(jī)制。也可以認(rèn)為Hooking 是一類代碼截獲技術(shù)的通稱,可以有多種方法去實(shí)
3、現(xiàn)Hooking 技術(shù)(本文所稱的系統(tǒng)調(diào)用截獲技術(shù)主要指Hooking技術(shù)。對(duì)系統(tǒng)調(diào)用截獲又分為用戶級(jí)系統(tǒng)調(diào)用截獲和核心級(jí)系統(tǒng)調(diào)用截獲,如圖1所示。由于對(duì)系統(tǒng)進(jìn)程進(jìn)行比較深入的研究,所以采用了利用核心級(jí)系統(tǒng)調(diào)用截獲獲得系統(tǒng)進(jìn)程信息。通過截獲NT 執(zhí)行體系統(tǒng)服務(wù)分配表SSDT 的查找操作,改變SSDT 中某系統(tǒng)服務(wù)號(hào)對(duì)應(yīng)的系統(tǒng)服務(wù)函數(shù)指針,將指針指到開發(fā)者插入的其他函數(shù)入口點(diǎn)。得到SSDT 的基地址后,根據(jù)請(qǐng)求的系統(tǒng)服務(wù)的ServiceID檢索SSDT,找到該ServiceID 對(duì)應(yīng)函數(shù)地址,用新的系統(tǒng)服務(wù)函數(shù)入日地址替換原地址。在新的系統(tǒng)服務(wù)函數(shù)中同樣要保存原系統(tǒng)服務(wù)函數(shù)的入口現(xiàn)場(chǎng),當(dāng)新的系統(tǒng)
4、服務(wù)函數(shù)返回時(shí),恢復(fù)現(xiàn)場(chǎng)并調(diào)用原來的系統(tǒng)服務(wù)函數(shù)。當(dāng)需要阻斷正常的系統(tǒng)調(diào)用時(shí),則要在新的系統(tǒng)服務(wù)函數(shù)執(zhí)行完后直接返回,不再執(zhí)行原系統(tǒng)服務(wù)函數(shù),但在返回前要根據(jù)原系統(tǒng)服務(wù)函數(shù)對(duì)返回值的要求進(jìn)行相應(yīng)的設(shè)置,以保證系統(tǒng)服務(wù)函數(shù)傳遞的完整性。圖1Windows 系統(tǒng)不同層次的服務(wù)調(diào)用攔截點(diǎn)2隱藏進(jìn)程的發(fā)現(xiàn)隱藏的本質(zhì)就是欺騙使用者,使得運(yùn)行中的進(jìn)程和存在 的文件信息不顯示給用戶。實(shí)現(xiàn)進(jìn)程隱藏和文件隱藏的方法作者簡介:王全民(1963-,男,北京工業(yè)大學(xué)計(jì)算機(jī)學(xué)院計(jì)算中心主任、副教授,碩士生導(dǎo)師,天津大學(xué)在讀博士生。張旭(1983-,男,北京工業(yè)大學(xué)計(jì)算機(jī)學(xué)院2006級(jí)碩士研究生,研究方向:信息安全。何濤
5、(1981-,男,北京工業(yè)大學(xué)計(jì)算機(jī)學(xué)院2006級(jí)碩士研究生,研究方向:信息安全。吳艷華(1979-,女,北京工業(yè)大學(xué)計(jì)算機(jī)學(xué)院2006 級(jí)碩士研究生,研究方向:信息安全。 2009.245 比較多,較為常見的技術(shù)是使用APIHook技術(shù)修改系統(tǒng)函數(shù),其中又以修改內(nèi)核層函數(shù)的方法居多。Windows 操作系統(tǒng)是一種分層的架構(gòu)體系。應(yīng)用層的程序是通過API來訪問操作系統(tǒng)。而API又是通過ntdll里面的核心API 來進(jìn)行系統(tǒng)服務(wù)的查詢。核心API 通過對(duì)int2E 的切換,從用戶模式轉(zhuǎn)換到內(nèi)核模式。2Eh 中斷的功能是通過NTOSKRNL.EXE 的一個(gè)函數(shù)KiSystemService(來實(shí)現(xiàn)
6、的。KiSystemService(是根據(jù)EAX的值來決定哪個(gè)函數(shù)將被調(diào)用。而系統(tǒng)在SSDT 中維持了一個(gè)數(shù)組,專門用來索引特定的函數(shù)服務(wù)地址??梢酝ㄟ^由ntoskrnl.exe 導(dǎo)出的KeServiceDescriptorTable 變量來完成對(duì)SSDT的訪問與修改。KeServiceDescriptorTable 對(duì)應(yīng)于一個(gè)數(shù)據(jù)結(jié)構(gòu),定義如下:typedefstructSystemServiceDescriptorTable UINT*ServiceTableBase;UINT*ServiceCounterTableBase;UINTNumberOfService;UCHAR*Parame
7、terTableBase;SystemServiceDescriptorTable,*PSystemServiceDescriptorTable;其中ServiceTableBase 指向系統(tǒng)服務(wù)程序的地址(SSDT,ParameterTableBase則指向SSPT中的參數(shù)地址,它們都包含了NumberOfService 這么多個(gè)數(shù)組單元。大多數(shù)惡意代碼都是通過修改通過把真實(shí)NtQuerySyste-mInformation返回的數(shù)進(jìn)行添加或者是刪改,因此要發(fā)現(xiàn)惡意代碼故意隱藏的進(jìn)程,可以Hook掉NtQuerySystemInformation ,將結(jié)果與普通快照方法獲得的進(jìn)程進(jìn)行比較,即
8、可發(fā)現(xiàn)惡意代碼隱藏的進(jìn)程。3進(jìn)程與應(yīng)用程序及dll文件的關(guān)系每個(gè)進(jìn)程都由一個(gè)EPROCESS 塊來表示。EPROCESS 塊中不僅包含了進(jìn)程相關(guān)了很多信息,還有很多指向其他相關(guān)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)的指針。例如每一個(gè)進(jìn)程里面都至少有一個(gè)ETHREAD 塊表示的線程。進(jìn)程的名字,和在用戶空間的PEB (進(jìn)程環(huán)境塊等等。EPROCESS 中除了PEB 成員塊在是用戶空間,其他都是在系統(tǒng)空間中的。因此只要對(duì)EPROCESS 進(jìn)行Hook,即可發(fā)現(xiàn)惡意代碼啟動(dòng)的進(jìn)程與相應(yīng)的dll文件的關(guān)系,并精確確定dll文件所在的位置,及時(shí)清楚惡意代碼相關(guān)的進(jìn)程和文件。4自我保護(hù)機(jī)制的實(shí)現(xiàn)在檢測(cè)惡意代碼的進(jìn)程同時(shí),系統(tǒng)還要抵
9、御來自惡意代碼的干擾,因此要對(duì)系統(tǒng)進(jìn)行有效的自我保護(hù)。由于內(nèi)核代碼具有很大的訪問權(quán)限,如果攻擊者把惡意代碼插入內(nèi)核,就有可能將該系統(tǒng)刪除,從而失去對(duì)主機(jī)的保護(hù)。所以,一方面要限制任意內(nèi)核模塊的加載,另一方面還有防止內(nèi)核模塊被惡意刪除。本系統(tǒng)所采取的策略是:當(dāng)該系統(tǒng)啟動(dòng)后,就限制任意內(nèi)核模塊的加載;如果需要安裝內(nèi)核程序,用戶需要先通知該系統(tǒng)禁用該功能,安裝后再啟用該功能。具體實(shí)施辦法是:通過修改相關(guān)的系統(tǒng)調(diào)用監(jiān)視模塊的加載。在Windows 系統(tǒng)中,要想使程序運(yùn)行在核心態(tài),必須通過編寫設(shè)備驅(qū)動(dòng)程序來實(shí)現(xiàn)。而加載驅(qū)動(dòng)程序最終要調(diào)用系統(tǒng)服務(wù)ZwLoadDriver來實(shí)現(xiàn),如果要截獲該系統(tǒng)服務(wù)調(diào)用,限
10、制執(zhí)行該服務(wù),則就可以限制驅(qū)動(dòng)程序的加載。內(nèi)核模塊卸載保護(hù)也是通過截獲系統(tǒng)服務(wù)調(diào)用來實(shí)現(xiàn)的。當(dāng)卸載驅(qū)動(dòng)程序時(shí),最終要調(diào)用系統(tǒng)服務(wù)ZwUnloadDriver來實(shí)現(xiàn),所以只要截獲該系統(tǒng)服務(wù),根據(jù)訪問控制規(guī)則判斷是否允許卸載該驅(qū)動(dòng)程序,則就可以限制驅(qū)動(dòng)程序的卸載。通過限制內(nèi)核模塊的任意加載,可以防止黑客插入惡意模塊傳播病毒、留下后門、修改重要文件和銷毀攻擊痕跡等。通過限制刪除內(nèi)核模塊,可以防止部分系統(tǒng)功能被非法終止。5結(jié)論以上對(duì)基于WindowsNT 內(nèi)核的進(jìn)程監(jiān)控系統(tǒng)進(jìn)行了一個(gè)簡單的介紹,該系統(tǒng)可大大增強(qiáng)主機(jī)的安全性,使用戶在使用過程中避免了由于惡意代碼給主機(jī)安全帶來的破壞。信息安全將是未來發(fā)展的一個(gè)重點(diǎn),攻擊和偵測(cè)都有一個(gè)向底層靠攏的趨勢(shì)。對(duì)于系統(tǒng)服務(wù)的截獲只是信息安全中的很小的一個(gè)部分。未來病毒和反病毒底層化是一個(gè)不可逆轉(zhuǎn)的事實(shí)。通過對(duì)系統(tǒng)底層分析能更好的了解病毒技術(shù),從而能夠有效的進(jìn)行查殺。為以后從事信息安全方面的研究奠定一個(gè)好的基礎(chǔ)。參考文獻(xiàn)1JuliaAllen,AlanChrist ie,WilliamF ithen.Stateo
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 建筑工程鋼筋承包合同
- 個(gè)人合作協(xié)議合同
- 綠色能源采購供應(yīng)合作協(xié)議
- 物流運(yùn)輸行業(yè)風(fēng)險(xiǎn)免責(zé)協(xié)議
- 合伙人退出協(xié)議6篇
- Module3 Unit2 Point to the window(教學(xué)設(shè)計(jì))-2024-2025學(xué)年外研版(一起)英語一年級(jí)上冊(cè)
- 小學(xué)信息技術(shù)五年級(jí)上冊(cè)第4課《 美化圖像我來做》教學(xué)設(shè)計(jì)
- 濟(jì)南非金屬聲屏障施工方案
- 26 我的“長生果”教學(xué)設(shè)計(jì)-2024-2025學(xué)年語文五年級(jí)上冊(cè)統(tǒng)編版
- 砼滴水坑施工方案
- 《超級(jí)操盤手訓(xùn)練營》課件
- IEC 62368-1標(biāo)準(zhǔn)解讀-中文
- 15J403-1-樓梯欄桿欄板(一)
- 新能源汽車驅(qū)動(dòng)電機(jī)及控制系統(tǒng)檢修課件 學(xué)習(xí)情境3:驅(qū)動(dòng)電機(jī)的檢修
- DB43T 744-2012 錳水質(zhì)在線自動(dòng)分析儀
- QC課題提高金剛砂地面施工一次合格率
- 《數(shù)學(xué)課程標(biāo)準(zhǔn)》義務(wù)教育2022年修訂版(原版)
- 研學(xué)旅行基地評(píng)估認(rèn)定評(píng)分表
- 第5課 用發(fā)展的觀點(diǎn)看問題-【中職專用】2024年中職思想政治《哲學(xué)與人生》金牌課件(高教版2023·基礎(chǔ)模塊)
- DL∕T 5210.4-2018 電力建設(shè)施工質(zhì)量驗(yàn)收規(guī)程 第4部分:熱工儀表及控制裝置
- 承包設(shè)備拆裝合同范本
評(píng)論
0/150
提交評(píng)論