WindowsVista操作系統(tǒng)最新安全特性分析:改進和局限(上)沒有十全十美的安全系統(tǒng)。——安全領(lǐng)域第一定律申明。文章僅代表個人觀點,與所在公司無任" />

日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

Windows Vista操作系統(tǒng)最新安全特性分析:改進

系統(tǒng) 4537 0
<iframe align="top" marginwidth="0" marginheight="0" src="http://www.zealware.com/csdnblog01.html" frameborder="0" width="728" scrolling="no" height="90"></iframe>

Windows Vista操作系統(tǒng)最新安全特性分析:改進和局限 (上)

沒有十全十美的安全系統(tǒng)。

——安全領(lǐng)域第一定律
申明。文章僅代表個人觀點,與所在公司無任何聯(lián)系。
1. 概述
微軟最新發(fā)行的Windows Vista操作系統(tǒng),特別強調(diào)了對安全特性的支持。可以毫不夸張地說,安全特性的提高是Windows Vista操作系統(tǒng)同以往發(fā)布的Windows操作系統(tǒng)相比,改進最大的地方之一,也是促使用戶升級到Windows Vista操作系統(tǒng)的重要考慮因素。
Windows Vista操作系統(tǒng)提供的各類最新的安全特性,涵蓋以下四個大部分:
· 基礎(chǔ)平臺 。包括安全軟件開發(fā)周期(SDL),系統(tǒng)服務(wù)保護(Service Hardening),防止緩存溢出,64位平臺安全改進。
· 權(quán)限保護 。包括用戶帳戶控制(UAC),智能卡/登陸體系,網(wǎng)絡(luò)權(quán)限保護(NAP)。
· 防止有害軟件和惡意入侵 。包括安全中心,反間諜軟件(Windows Defender)和有害軟件刪除工具,防火墻,IE安全改進。
· 數(shù)據(jù)保護 。包括BitLocker,加密文件系統(tǒng),版權(quán)保護,USB設(shè)備控制。
本文會逐一分析每一個安全特性的開發(fā)背景,Windows Vista中做出的改進,及應(yīng)用范圍。并且特別強調(diào)了每一個安全特性的局限性。因為在安全領(lǐng)域中有一句話:比沒有安全更糟糕的是虛假的安全。
通過對每一個安全特性的分析,希望讀者能得到以下兩個關(guān)鍵信息:
· Windows Vista 提供了許多非常好的安全特性
· Windows Vista 不能解決你所有的安全問題。在某種程度上,意識這一點更為重要。
2. 安全是什么?
安全是一個整體的,系統(tǒng)的概念。安全的范圍包括硬件安全,軟件安全,員工培訓等等。其主要目的,就是為了保證被保護的核心數(shù)據(jù)不被損害,這意味著:
· 權(quán)限控制:合法用戶擁有權(quán)限,而非法用戶則無法訪問。
· 可靠性:合法用戶可以成功執(zhí)行數(shù)據(jù)操作。
· 完整性:合法用戶所得到的數(shù)據(jù)是正確的,未經(jīng)篡改的。
無論是計算機病毒,間諜軟件,或黑客等,其行為都是針對數(shù)據(jù)的正常訪問。例如:刪除數(shù)據(jù),竊取數(shù)據(jù),篡改數(shù)據(jù),DDOS攻擊等等。

Windows Vista操作系統(tǒng)最新安全特性分析:改進和局限 (上)

1:Windows Vista在可用性和安全的取舍
在這個世界上,沒有十全十美的安全系統(tǒng)。任何一個操作系統(tǒng)必須在不同特性中作出取舍。以Windows 95舉例,它的可用性好,但安全性差。 而Windows Vista中,針對安全特性的提高,有時候則不得不犧牲部分可用性。例如,用戶帳戶控制這個Windows Vista中新增安全特性就是一個典型的例子。

3. 基礎(chǔ)平臺

3.1安全軟件開發(fā)周期
背景:沖擊波病毒。眾所周知,當年Blaster病毒給微軟及其用戶帶來了巨大的損失。安全軟件開發(fā)周期(SDL - Security Development Lifecycle)可以說是一個微軟痛定思痛后,決心加強產(chǎn)品安全的產(chǎn)物。
SDL的中心思想就是將安全特性的考慮滲透到產(chǎn)品生命周期的每一個階段。
· 設(shè)計 。每一個功能模塊均需要制定其相應(yīng)的風險模型(threat model),來預測可能的攻擊方式,相應(yīng)反制措施等等。
· 開發(fā) 。遵循嚴格的代碼規(guī)范。對禁止使用那些容易誤用的API調(diào)用。使用靜態(tài)程序分析工具查尋可疑的代碼片斷。
· 測試 。特別嚴格測試風險模型指出的高風險代碼。并廣泛采用“FUZZ”測試。“FUZZ”測試指通過模擬錯誤的,不合規(guī)范的輸入數(shù)據(jù),來測試軟件代碼針對錯誤處理的響應(yīng)。它被證明是一個有效的發(fā)現(xiàn)產(chǎn)品漏洞的測試手段。
· 審查 。產(chǎn)品代碼在正式發(fā)布前要經(jīng)過嚴格的安全審查,
· 維護/ 響應(yīng) 。一旦正式發(fā)布的產(chǎn)品代碼中發(fā)現(xiàn)安全漏洞,需要有一套嚴格的安全響應(yīng)程序,以迅速,正確地提供安全補丁。
我們用對筷子的設(shè)計來舉例SDL對產(chǎn)品安全的影響。在普通設(shè)計下,考慮的因素也許是筷子的易用,結(jié)實,好看。加入SDL安全考慮,就需要考慮:如何不讓別人搶走我的筷子?如何不讓別人的筷子伸到我的碗里?如何不讓別人偽造我的筷子等等在普通設(shè)計中忽視考慮的因素。
Windows Vista是第一個從頭至尾采用SDL進行開發(fā)的操作系統(tǒng)。通過SDL嚴格的開發(fā)規(guī)程,微軟期望,Windows Vista安全水準較先前Windows操作系統(tǒng)有顯著提高。
但是,任何開發(fā)人員都是無法完全預知未來攻擊的所有模式。換句話說,就是開發(fā)者是不可能預測到攻擊者是怎么想,會怎么用操作系統(tǒng)的。所以說,SDL并不能保證操作系統(tǒng)杜絕所有的安全漏洞。Windows Vista操作系統(tǒng)會有自身的安全漏洞。而我們希望的是,SDL可以減少這些安全漏洞的數(shù)目和嚴重程度。
3.2系統(tǒng)服務(wù)保護(Service Hardening)
背景:系統(tǒng)服務(wù)程序(System Service)被惡意軟件攻擊的次數(shù)日益增多。原因有以下兩點:
· 系統(tǒng)服務(wù)無需用戶交互,即可自動運行。
· 系統(tǒng)服務(wù)運行于“LocalSystem”賬號下,擁有對系統(tǒng)的完全控制權(quán)。一旦被成功攻擊,惡意程序就可以在系統(tǒng)上為所欲為。
最著名的例子就是沖擊波病毒。它就是攻擊DCOM的遠程調(diào)用(RPC)系統(tǒng)服務(wù)。
在Windows Vista操作系統(tǒng)提供了系統(tǒng)服務(wù)保護功能。包括:
· 許多系統(tǒng)服務(wù)程序運行在較低權(quán)限的用戶帳號下,如LocalService or NetworkService。
· 系統(tǒng)服務(wù)程序有相應(yīng)的配置文件,用以指定該服務(wù)可以執(zhí)行的文件,注冊表和網(wǎng)絡(luò)行為。例如,遠程調(diào)用(RPC)系統(tǒng)服務(wù)被限制為不能更改系統(tǒng)文件和注冊表。通過和防火墻配置的結(jié)合,可以限制系統(tǒng)服務(wù)的異常網(wǎng)絡(luò)行為。這樣,即使一個系統(tǒng)程序被攻擊,由于不能修改重要的系統(tǒng)文件和注冊信息,或者連接網(wǎng)絡(luò),它所造成的危害也會得到限制。
局限性。Service Hardening是不可能限制所有的系統(tǒng)服務(wù)的。關(guān)鍵的系統(tǒng)服務(wù)還是需要在系統(tǒng)核心權(quán)限下運行。一旦這些服務(wù)出現(xiàn)安全漏洞,還是會導致嚴重的安全問題。
3.3防止緩存溢出
背景:緩存溢出是操作系統(tǒng)最為嚴重的安全漏洞。幾個有名的例子是:
· Code Red: IIS緩存溢出
· Blaster: DCOM RPC緩存溢出
· Zotob: PnP緩存溢出
其原因在于,緩存溢出的安全漏洞往往導致惡意代碼可被遠程執(zhí)行。以下是一個堆棧緩存溢出的例子:
/*以下UnSafeNetRecv代碼*/
void UnSafeNetRecv(char* payload)
{
char localBuffer[128];
… …
strcpy (localBuffer, payload);
}
在編譯過程中,堆棧空間是自高向低分配的。函數(shù)UnSafeNetRecv的堆棧分配如下:
2:緩存溢出的安全漏洞
在執(zhí)行到strcpy (localBuffer, payload) 時,如果從網(wǎng)絡(luò)傳輸?shù)膒ayload長度超過128個字節(jié),函數(shù)的返回地址就被覆蓋。重新寫入的地址會指向傳入的惡意數(shù)據(jù)(代碼)。這樣,當函數(shù)返回時,IP寄存器不是指向上一層調(diào)用,而是從惡意數(shù)據(jù)(代碼)處開始執(zhí)行。
3.3.1 NX保護
NX的含義是“No Execution”。在以上的緩存溢出的例子中,惡意代碼在堆棧上被執(zhí)行。NX保護可以指定特定的頁面(如堆棧所在頁面)是數(shù)據(jù)頁面,不允許在上運行指令。這樣,一旦IP寄存器指向了堆棧所在頁面,會導致硬件異常,而不是執(zhí)行惡意數(shù)據(jù)(代碼)。
3:NX保護
Windows Vista相對Windows XP SP2,提供了更多NX保護支持。在32位平臺上,Windows Vista的缺省設(shè)置是系統(tǒng)代碼設(shè)置滿足NX標準(NX-compliant)。同時,還可以指定某個特定的應(yīng)用程序是否滿足NX標準。這樣,在確保向前兼容性的前提下,可以最大可能的提高系統(tǒng)中被NX保護的比例。在64位平臺上,NX保護缺省設(shè)置為應(yīng)用于所有代碼。
3.3.2尋址空間隨機分布(ASLR)

同樣從上個堆棧溢出的例子說起。如果寫入的新的返回地址不是指回堆棧頁面,而是指向了一個系統(tǒng)函數(shù)的入口地址,那樣NX保護就不起作用。這類攻擊有一個前提,即特定系統(tǒng)函數(shù)的入口地址是可以事先確定的。
尋址空間隨機分布(ASLR: Address Space Layout Randomization)就是針對此類攻擊手段。在Windows Vista啟動時,操作系統(tǒng)隨機從256個地址空間中選出一個載入DLL/EXE。這樣攻擊方就難以事先確定系統(tǒng)函數(shù)的入口地址。
尋址空間隨機分布和 NX 保護結(jié)合在一起,可以有效限制緩存溢出危害程度。
4:尋址空間隨機分布
局限性。盡管緩存溢出是操作系統(tǒng)最為嚴重的安全漏洞,并不是所有嚴重的安全漏洞都是由緩存溢出導致的。例如,2006年Windows系統(tǒng)最嚴重的安全漏洞之一,MS06-001 WMF安全漏洞,就和緩存溢出沒有關(guān)系。在這種情況下,NX保護,或是尋址空間隨機分布,都是不起作用的。
3.4 64位平臺安全改進
背景:有缺陷或惡意的驅(qū)動程序?qū)е孪到y(tǒng)崩潰,不穩(wěn)定,和極為嚴重的安全問題。
這里需要簡單介紹“Rootkit”這個概念。這個術(shù)語來自于Unix系統(tǒng)。最早的一個版本是出現(xiàn)在SunOS 4。它特指那些用于修改操作系統(tǒng),以改變操作系統(tǒng)的表現(xiàn)行為的工具軟件 。而這種改變,往往不是操作系統(tǒng)設(shè)計時所期望的。
Rootkit最典型的目的就是“隱藏”。隱藏的對象可以是文件,特定的注冊表,特定進程,打開的網(wǎng)絡(luò)端口等等。這個“隱藏”是通過修改操作系統(tǒng)本身來實現(xiàn)的。下面是Win32 API的調(diào)用過程:
5:Win32 API的調(diào)用過程
Rootkit可以將自身代碼插入到每一個箭頭連接處,以控制函數(shù)的返回結(jié)果。舉個例子,一個應(yīng)用程序(如反病毒軟件)需要查詢系統(tǒng)中運行的當前進程,Rootkit只需要將所想隱藏的進程從返回的進程列表中刪除,那么上層的應(yīng)用程序就根本不知道有這樣一個進程正在系統(tǒng)中運行。
為什么說Rootkit會導致嚴重的安全問題?試想一下,如果一個惡意程序把自身文件和運行進程從系統(tǒng)中隱藏起來,那么如何指望反病毒軟件/反間諜軟件能成功的檢測/清除這個程序?!
在64位平臺Windows Vista,特別增加了下面兩個重要的安全特性。
· 設(shè)備驅(qū)動程序數(shù)字認證。 在64位平臺Windows Vista中,所有工作在核心模式下的設(shè)備驅(qū)動程序都必須提供數(shù)字認證,才能被系統(tǒng)加載。由于需要修改操作系統(tǒng)行為,Rootkit往往是一個工作在核心模式下的設(shè)備驅(qū)動程序。那么,數(shù)字認證首先可以指明一個驅(qū)動程序是由哪個廠商發(fā)布的。其次,數(shù)字認證可以驗證這個驅(qū)動程序的代碼完整性,也就是否被篡改過。這樣,就可以防止系統(tǒng)加載Rootkit驅(qū)動程序。
· 核心模式保護(Kernel Patch Protection )。 這個技術(shù)也被稱為PatchGuard。它用來防止未經(jīng)認證的代碼自由修改操作系統(tǒng)的核心狀態(tài)(Kernel State)。最為危險的Rootkit往往直接修改核心模式的重要數(shù)據(jù),例如系統(tǒng)的進程控制表,中斷控制表等等。通過對核心狀態(tài)的保護,可以有效阻止這類攻擊。
局限性。由于向前兼容的原因,設(shè)備驅(qū)動程序的數(shù)字認證,和核心模式保護只在64位平臺上有效。也就是說,32位平臺Windows Vista上的Rootkit威脅并沒有得到有效控制。


Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1583601


Windows Vista操作系統(tǒng)最新安全特性分析:改進和局限 (上)


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 平阴县| 万荣县| 旬阳县| 齐齐哈尔市| 崇信县| 亚东县| 凌海市| 阳东县| 锦屏县| 晋城| 乐亭县| 富源县| 甘肃省| 彰化市| 龙山县| 乐清市| 赞皇县| 温泉县| 新龙县| 临高县| 赣州市| 轮台县| 大悟县| 沁源县| 亳州市| 阆中市| 嘉义市| 上犹县| 岳西县| 天门市| 内江市| 巴塘县| 平江县| 仲巴县| 贵南县| 肃南| 青海省| 赤水市| 盐边县| 禹城市| 光泽县|