日本免费全黄少妇一区二区三区-高清无码一区二区三区四区-欧美中文字幕日韩在线观看-国产福利诱惑在线网站-国产中文字幕一区在线-亚洲欧美精品日韩一区-久久国产精品国产精品国产-国产精久久久久久一区二区三区-欧美亚洲国产精品久久久久

深入底層 評(píng)估Vista系統(tǒng)內(nèi)核模式安全性

Windows Vista與之前的MS Windows版本(包括Windows XP SP2)相比增加了很多的安全性 。Vista新安全性的特征可以包括以下幾個(gè)方面:
驅(qū)動(dòng)簽名
路徑保護(hù)
內(nèi)核模式代碼完整性檢查
可選擇支持使用TPM芯片的安全啟動(dòng)
限制用戶模式訪問(wèn)DevicePhysicalMemory
上述的這些功能使得Vista64位版本與Linux或MacOS相比更具備安全性 。該文檔的主要貢獻(xiàn)在:通過(guò)擬向工程較全面的分析內(nèi)核模式的安全組件以及評(píng)估可能存在的內(nèi)核模式攻擊 。
該文檔檢查新的安全特性,通過(guò)這些安全特性來(lái)阻止惡意代碼危及內(nèi)核 。由于這些特性都僅存在于64位的Windows Vista系統(tǒng)內(nèi),因此該文檔的關(guān)注點(diǎn)在Vista64位版本 。
該文檔沒(méi)有分析PatchGuard的執(zhí)行,針對(duì)PatchGuard的分析在前期已經(jīng)有Skape和Skywing[6]進(jìn)行了較全面的分析,值得注意的是PatchGuard發(fā)展到目前已經(jīng)有所改變(在skape與skywing分析完后) 。僅當(dāng)下面章節(jié)對(duì)PatchGuard進(jìn)行攻擊評(píng)估時(shí)才會(huì)討論這些問(wèn)題 。針對(duì)Vista用戶模式的安全性評(píng)估在前面已經(jīng)有所討論[7] 。
由于無(wú)法訪問(wèn)Windows Vista的源代碼,我們通過(guò)debugger(調(diào)試器)、disassembler(反編譯)、hex editor(16進(jìn)制編輯器,例如UE)學(xué)習(xí)了Windows Vista Community Technical PrevIEw (CTP) Build 5365版本 。如果讀者不熟悉X86體系架構(gòu)和匯編語(yǔ)言的知識(shí),推薦大家一本不錯(cuò)的關(guān)于X86匯編語(yǔ)言的在線圖書(shū)[8] 。另外,在看該文檔前你需要熟悉一些Windows系統(tǒng)架構(gòu)的知識(shí),推薦大家閱讀[9],該書(shū)講解了Windows系統(tǒng)架構(gòu)的知識(shí),同時(shí)這本書(shū)的一些知識(shí)同樣可以應(yīng)用到Vista系統(tǒng)上 。在該文檔公布時(shí)Vista系統(tǒng)還在測(cè)試階段,但Vista在后來(lái)版本的安全性方面又做了一些改動(dòng) 。我們希望Vista在最終的發(fā)布版本上有更多的改變,同時(shí)我們也計(jì)劃繼續(xù)對(duì)未來(lái)的Vista版本的內(nèi)核改動(dòng)進(jìn)行研究 。
Vista引導(dǎo)過(guò)程
Windows Vista支持從PC/AT BIOS和Intel新的EFI(可擴(kuò)展固件接口)啟動(dòng) 。我們的分析過(guò)程忽略了EFI部分 。在本章節(jié)的最后部分,引用了bootmgr入口點(diǎn)的開(kāi)始指令(DllMail為EFI的入口點(diǎn)指令,offset 0為PC/AT的入口點(diǎn)指令)這個(gè)過(guò)程從Vista啟動(dòng)管理器開(kāi)始,定位%SystemDrive%bootmgr 文件 (for PC/AT legacy BIOS)或%SystemDrive%BootEFIbootmgr.efi (for EFI BIOS) 。Vista Boot Manager是啟動(dòng)Vista的必須環(huán)節(jié),但也適用于啟動(dòng)Windows Vista之前的Windows版本 。
Vista Boot Manager首先調(diào)用InitializeLibrary,然后依次調(diào)用BlpArchInitialize (GDT, IDT, etc.), BlMmInitialize (memory management), BlpFwInitialize (firmware=固件?), BlpTpmInitialize (TPM), BlpIoInitialize (file systems), BlpPltInitialize (PCI configuration), BlBdInitialize (debugging), BlDisplayInitialize, BlpResourceInitialize (finds its own .rsrc section), and BlNetInitialize 。
在Vista系統(tǒng)內(nèi),Windows傳統(tǒng)的boot.ini配置文件已經(jīng)被啟動(dòng)配置數(shù)據(jù)文件(BCD)所代替,Vista下該文件位于%SystemDrive%BootBCD,該文件也是注冊(cè)表的值(在Vista下被掛載在HKEY_LOCAL_MACHINEBCD00000000下) ??梢允褂胋cdedit.exe來(lái)查看該文件的內(nèi)容 。
一個(gè)典型的Boot Manager的BCD配置文件如下:
Windows;Boot;Manager
Identifier:;{bootmgr}
Type:;10100002
Device:;partition=C:
Description:;Windows;Boot;Manager
Locale:;en-US
Inherit;options:;{globalsettings}
Boot;debugger:;No
Pre-boot;EMS;Enabled:;No
Default:;{current}
Resume;application:;{3ced334e-a0a5-11da-8c2b-cbb6baaeea6d}
Display;order:;{current}
Timeout:;30
如果只有一個(gè)啟動(dòng)入口在BCD文件內(nèi),啟動(dòng)管理器會(huì)直接從該入口啟動(dòng) 。如果多于一個(gè)啟動(dòng)入口,Boot Manager會(huì)給用戶一個(gè)可選擇的列表,并提示用戶選擇啟動(dòng)那個(gè)OS 。如果啟動(dòng)階段激活了日志記錄,啟動(dòng)管理器會(huì)把狀態(tài)信息寫入%SystemDrive%Bootbootstat.dat文件內(nèi)(通過(guò)BmpInitializeBootStatusDataLog) 。緊接著啟動(dòng)管理器會(huì)使用BlResourceFindHTML把bootmgr.xsl定位在資源節(jié)點(diǎn),而后把它傳給BlXmiInitialize 。bootmgr.xsl文件控制啟動(dòng)菜單和位于啟動(dòng)菜單的選項(xiàng) 。

推薦閱讀