Web 服務(wù)器位于宿主基礎(chǔ)結(jié)構(gòu)的前端。它直接連接到 Internet,負(fù)責(zé)接收來自客戶端的請(qǐng)求、創(chuàng)建動(dòng)態(tài) Web 頁并對(duì)請(qǐng)求的數(shù)據(jù)作出響應(yīng)。
安全的 Web 服務(wù)器可為宿主環(huán)境提供可靠的基礎(chǔ),其配置在 Web 應(yīng)用程序的整體安全方面起重要作用。但是,如何確保 Web 服務(wù)器安全呢?確保 Web 服務(wù)器安全的挑戰(zhàn)之一就是要明確自己的目標(biāo)。只有明白了何謂安全的 Web 服務(wù)器,您就可以了解如何為此應(yīng)用所需的配置設(shè)置。
本模塊提供了一種系統(tǒng)且可重復(fù)的方法,您可以使用它成功配置安全的 Web 服務(wù)器。模塊還介紹了一種確保 Web 服務(wù)器安全的方法,該方法將服務(wù)器的配置劃分為十二個(gè)安全區(qū)域。每一安全區(qū)域都由一系列高級(jí)操作步驟組成。這些步驟都是模塊化的,介紹了將方法付諸實(shí)施的途徑。
使用本模塊可以實(shí)現(xiàn):
• | 了解何謂安全的 Web 服務(wù)器。 |
• | 使用已證明正確的方法確保 Web 服務(wù)器安全。 |
• | 了解在默認(rèn)情況下 Windows 2000 Server 中 IIS 的完整安裝和 .NET Framework 的安裝內(nèi)容。 |
• | 了解安全 Web 服務(wù)器中可禁用的服務(wù)。 |
• | 安全配置 Web 服務(wù)器,包括操作系統(tǒng)協(xié)議、帳戶、文件、目錄、共享、端口、注冊(cè)表、審核和日志記錄。 |
• | 安全配置 Web 服務(wù)器應(yīng)用程序(本例是 IIS)組件,包括 Web 站點(diǎn)、虛擬目錄、腳本映射、ISAPI 篩選器、元數(shù)據(jù)庫(kù)和服務(wù)器證書。 |
• | 安全配置 .NET Framework 設(shè)置,包括 Machine.config 文件和代碼訪問安全性。 |
• | 針對(duì)遠(yuǎn)程管理安裝并使用安全的終端服務(wù)。 |
• | 了解解決常見 Web 服務(wù)器威脅(包括配置處理、拒絕服務(wù)、未經(jīng)授權(quán)的訪問、隨意代碼執(zhí)行、特權(quán)提升、病毒、蠕蟲和特洛伊木馬)的常用對(duì)策。 |
本模塊適用于下列產(chǎn)品和技術(shù):
• | Microsoft Windows Server 2000 和 2003 |
• | Microsoft .NET Framework 1.1 和 ASP.NET 1.1 |
• | Microsoft Internet 信息服務(wù) (IIS) 5.0 和 6.0 |
為了充分理解本模塊內(nèi)容,您應(yīng):
• | 閱讀模塊 2 威脅與對(duì)策。這有助于您更廣泛地了解 Web 應(yīng)用程序的潛在威脅。 | ||||||
• | 使用快照。安全 Web 服務(wù)器快照部分列出并說明了安全 Web 服務(wù)器的屬性。它反映了來自各種源(包括客戶、行業(yè)專家和內(nèi)部 Microsoft 開發(fā)與支持小組)的輸入。在配置服務(wù)器時(shí),請(qǐng)參考快照表。 | ||||||
• | 使用檢查表。本指南“檢查表”部分的檢查表:保護(hù) Web 服務(wù)器提供了一份可打印的作業(yè)幫助,可將它用作快速參考。使用基于任務(wù)的檢查表可快速評(píng)估必需的步驟,然后幫助您逐步完成各個(gè)步驟。 | ||||||
• | 使用“如何”部分。本指南“如何”部分包括了下列指導(dǎo)性文章:
|
究竟怎樣的 Web 服務(wù)器才算安全?確保 Web 服務(wù)器安全的挑戰(zhàn)之一就是明確您的目標(biāo)。只有明白了何謂安全的 Web 服務(wù)器,您就可以了解如何為此應(yīng)用所需的配置設(shè)置。本模塊提供了一種系統(tǒng)且可重復(fù)的方法,您可以使用它成功配置安全的 Web 服務(wù)器。
本模塊首先回顧了影響 Web 服務(wù)器的最常見威脅。然后,使用上述觀點(diǎn)創(chuàng)建相應(yīng)的方法。最后,模塊將這種方法付諸實(shí)施,并逐步說明如何提高 Web 服務(wù)器的安全性。盡管基本方法可跨不同技術(shù)復(fù)用,但本模塊的重點(diǎn)是如何保證運(yùn)行 Microsoft Windows 2000 操作系統(tǒng)并駐留 Microsoft .NET Framework 的 Web 服務(wù)器的安全。
由于攻擊者可遠(yuǎn)程攻擊,Web 服務(wù)器常常是攻擊對(duì)象。如果了解 Web 服務(wù)器的威脅并努力制定相應(yīng)的對(duì)策,您可以預(yù)見很多攻擊,進(jìn)而阻止日漸增加的攻擊者。
Web 服務(wù)器的主要威脅是:
• | 配置處理 |
• | 拒絕服務(wù) |
• | 未經(jīng)授權(quán)的訪問 |
• | 隨意代碼執(zhí)行 |
• | 特權(quán)提升 |
• | 病毒、蠕蟲和特洛伊木馬 |
圖 16.1 匯總了目前流行的攻擊和常見漏洞。
圖 16.1
Web 服務(wù)器主要威脅和常見漏洞
配置處理或主機(jī)枚舉是一種收集 Web 站點(diǎn)相關(guān)信息的探測(cè)過程。攻擊者可利用這些信息攻擊已知的薄弱點(diǎn)。
漏洞
致使服務(wù)器容易受到配置處理攻擊的常見漏洞包括:
• | 不必要的協(xié)議 |
• | 打開的端口 |
• | Web 服務(wù)器在橫幅中提供配置信息 |
攻擊
常見的配置處理攻擊包括:
• | 端口掃描 |
• | Ping 掃射 (ping sweep) |
• | NetBIOS 和服務(wù)器消息塊 (SMB) 枚舉 |
對(duì)策
有效的對(duì)策有,阻止所有不必要的端口、阻止 Internet 控制消息協(xié)議 (ICMP) 通信、禁用不必要的協(xié)議(如 NetBIOS 和 SMB)。
如果服務(wù)器被泛濫的服務(wù)請(qǐng)求所充斥,則出現(xiàn)拒絕服務(wù)攻擊。此時(shí)的威脅是,Web 服務(wù)器因負(fù)荷過重而無法響應(yīng)合法的客戶端請(qǐng)求。
漏洞
導(dǎo)致拒絕服務(wù)攻擊增加的可能漏洞包括:
• | 薄弱的 TCP/IP 堆棧配置 |
• | 未修補(bǔ)的服務(wù)器 |
攻擊
常見的拒絕服務(wù)攻擊包括:
• | 網(wǎng)絡(luò)級(jí) SYN flood(同步攻擊) |
• | 緩沖區(qū)溢出 |
• | 使用來自分布式位置的請(qǐng)求淹沒 Web 服務(wù)器 |
對(duì)策
有效的對(duì)策有,強(qiáng)化 TCP/IP 堆棧,以及始終將最新的軟件修補(bǔ)程序和更新程序應(yīng)用于系統(tǒng)軟件。
如果權(quán)限不合適的用戶訪問了受限的信息或執(zhí)行了受限的操作,則出現(xiàn)未經(jīng)授權(quán)的訪問。
漏洞
導(dǎo)致未經(jīng)授權(quán)訪問的常見漏洞包括:
• | 薄弱的 IIS Web 訪問控制(包括 Web 權(quán)限) |
• | 薄弱的 NTFS 權(quán)限 |
對(duì)策
有效的對(duì)策有,使用安全的 Web 權(quán)限、NTFS 權(quán)限和 .NET Framework 訪問控制機(jī)制(包括 URL 授權(quán))。
如果攻擊者在您的服務(wù)器中運(yùn)行惡意代碼來損害服務(wù)器資源或向下游系統(tǒng)發(fā)起其他攻擊,則出現(xiàn)代碼執(zhí)行攻擊。
漏洞
可導(dǎo)致惡意代碼執(zhí)行的漏洞包括:
• | 薄弱的 IIS 配置 |
• | 未修補(bǔ)的服務(wù)器 |
攻擊
常見的代碼執(zhí)行攻擊包括:
• | 路徑遍歷 |
• | 導(dǎo)致代碼注入的緩沖區(qū)溢出 |
對(duì)策
有效的對(duì)策有,配置 IIS 拒絕帶有“../”的 URL(防止路徑遍歷)、使用限制性訪問控制列表 (ACL) 鎖定系統(tǒng)命令和實(shí)用工具、安裝新的修補(bǔ)程序和更新程序。
如果攻擊者使用特權(quán)進(jìn)程帳戶運(yùn)行代碼,則出現(xiàn)特權(quán)提升攻擊。
漏洞
導(dǎo)致 Web 服務(wù)器易受特權(quán)提升攻擊的常見漏洞包括:
• | 過度授權(quán)進(jìn)程帳戶 |
• | 過度授權(quán)服務(wù)帳戶 |
對(duì)策
有效的對(duì)策有,使用特權(quán)最少的帳戶運(yùn)行進(jìn)程、使用特權(quán)最少的服務(wù)和用戶帳戶運(yùn)行進(jìn)程。
惡意代碼有幾種變體,具體包括:
• | 病毒。即執(zhí)行惡意操作并導(dǎo)致操作系統(tǒng)或應(yīng)用程序中斷的程序。 |
• | 蠕蟲??勺晕覐?fù)制并自我維持的程序。 |
• | 特洛伊木馬。表面上有用但實(shí)際帶來破壞的程序。 |
在很多情況下,惡意代碼直至耗盡了系統(tǒng)資源,并因此減慢或終止了其他程序的運(yùn)行后才被發(fā)現(xiàn)。例如,“紅色代碼”就是危害 IIS 的臭名昭著的蠕蟲之一,它依賴 ISAPI 篩選器中的緩沖區(qū)溢出漏洞。
漏洞
導(dǎo)致易受病毒、蠕蟲和特洛伊木馬攻擊的常見漏洞包括:
• | 未修補(bǔ)的服務(wù)器 |
• | 運(yùn)行不必要的服務(wù) |
• | 使用不必要的 ISAPI 篩選器和擴(kuò)展 |
對(duì)策
有效的對(duì)策有,提示應(yīng)用程序安裝最新的軟件修補(bǔ)程序、禁用無用的功能(如無用的 ISAPI 篩選器和擴(kuò)展)、使用特權(quán)最少的帳戶運(yùn)行進(jìn)程來減小危害發(fā)生時(shí)的破壞范圍。
為了確保 Web 服務(wù)器的安全,必須應(yīng)用很多配置設(shè)置來減少服務(wù)器受攻擊的漏洞。但究竟在何處開始、何時(shí)才算完成呢?最佳的方法是,對(duì)必須采取的預(yù)防措施和必要配置的設(shè)置進(jìn)行分類。通過分類,您可以從上到下系統(tǒng)安排保護(hù)過程,或選擇特定的類別完成特定的步驟。
本模塊的安全方法都?xì)w入圖 16.2 所示的類別。
圖 16.2
Web 服務(wù)器配置類別
分類基本原理如下:
• | 修補(bǔ)程序和更新程序 |
• | 服務(wù) |
• | 協(xié)議 |
• | 帳戶 |
• | 文件和目錄 |
• | 共享 |
• | 端口 |
• | 注冊(cè)表 |
• | 審核和日志記錄 |
• | 站點(diǎn)和虛擬目錄 |
• | 腳本映射 |
• | ISAPI 篩選器 |
• | IIS 元數(shù)據(jù)庫(kù) |
• | Machine.config |
• | 代碼訪問安全性 |
在確保 Web 服務(wù)器安全以前,必須先知道安裝 IIS 和 .NET Framework 后在 Windows 2000 服務(wù)器中出現(xiàn)的組件。本節(jié)說明了安裝哪些組件。
IIS 安裝了很多服務(wù)、帳戶、文件夾和 Web 站點(diǎn)。有些組件是 Web 應(yīng)用程序所不用的,如果不在服務(wù)器中刪除,可能導(dǎo)致服務(wù)器易受攻擊。表 16.1 列出了在 Windows 2000 Server 系統(tǒng)中完整安裝 IIS(選定所有組件)后創(chuàng)建的服務(wù)、帳戶和文件夾。
表 16.1:IIS 安裝默認(rèn)值
項(xiàng)目 | 詳細(xì)信息 | 默認(rèn)值 |
服務(wù) | IIS Admin Service(管理 Web 和 FTP 服務(wù)) | 安裝 |
帳戶和組 | IUSR_MACHINE(匿名 Internet 用戶) | 添至 Guest 組 |
文件夾 | %windir%\system32\inetsrv(IIS 程序文件) |
|
Web 站點(diǎn) | 默認(rèn) Web 站點(diǎn) – 端口 80:%SystemDrive%\inetpub\wwwroot | 允許匿名訪問 |
如果在駐留 IIS 的服務(wù)器中安裝 .NET Framework,.NET Framework 將注冊(cè) ASP.NET。作為該過程的一部分,系統(tǒng)將創(chuàng)建一個(gè)名為 ASPNET 的特權(quán)最少的本地帳戶。這將運(yùn)行 ASP.NET 工作進(jìn)程 (aspnet_wp.exe) 和會(huì)話狀態(tài)服務(wù) (aspnet_state.exe),后者可用于管理用戶會(huì)話狀態(tài)。
注意:在運(yùn)行 Windows 2000 和 IIS 5.0 的服務(wù)器計(jì)算機(jī)中,所有 ASP.NET Web 應(yīng)用程序都運(yùn)行在 ASP.NET 工作進(jìn)程的單個(gè)實(shí)例中,由應(yīng)用程序域提供隔離。在 Windows Server 2003 中,IIS 6.0 借助應(yīng)用程序池提供進(jìn)程級(jí)隔離。
表 16.2 顯示了 .NET Framework 版本 1.1 默認(rèn)安裝的服務(wù)、帳戶和文件夾。
表 16.2:.NET Framework 安裝默認(rèn)值
項(xiàng)目 | 詳細(xì)信息 | 默認(rèn)值 |
服務(wù) | ASP.NET State Service:為 ASP.NET 提供進(jìn)程外會(huì)話狀態(tài)支持。 | 手動(dòng)啟動(dòng) |
帳戶和組 | ASPNET:運(yùn)行 ASP.NET 工作進(jìn)程 (Aspnet_wp.exe) 和會(huì)話狀態(tài)服務(wù) (Aspnet_state.exe) 的帳戶。 | 添至 Users 組 |
文件夾 | %windir%\Microsoft.NET\Framework\{版本} |
|
ISAPI 擴(kuò)展 | Aspnet_isapi.dll:處理 ASP.NET 文件類型的請(qǐng)求。將請(qǐng)求轉(zhuǎn)發(fā)給 ASP.NET 工作進(jìn)程 (Aspnet_wp.exe)。 |
|
ISAPI 篩選器 | Aspnet_filter.dll:僅用于支持無 cookie 的會(huì)話狀態(tài)。在 Inetinfo.exe (IIS) 進(jìn)程內(nèi)部運(yùn)行。 |
|
應(yīng)用程序映射 | ASAX、ASCX、ASHX、ASPX、AXD、VDISCO、REM、SOAP、CONFIG、CS、CSPROJ、VB、VBPROJ、WEBINFO、LICX、RESX、RESOURCES | \WINNT\Microsoft.NET\Framework\{版本} Aspnet_isapi.dll |
在默認(rèn)情況下,Windows 2000 Server 安裝程序?qū)惭b IIS。但建議不要將 IIS 作為操作系統(tǒng)安裝的一部分來安裝,最好是日后更新并修補(bǔ)了基本操作系統(tǒng)之后再安裝。安裝了 IIS 之后,必須重新應(yīng)用 IIS 修補(bǔ)程序并強(qiáng)化 IIS 配置,確保 IIS 接受完整的保護(hù)。只有這樣,將服務(wù)器連接到網(wǎng)絡(luò)中才安全。
如果要安裝并配置新的 Web 服務(wù)器,請(qǐng)執(zhí)行如下操作步驟概述。
• | 構(gòu)建新的 Web 服務(wù)器
|
不要在生產(chǎn)服務(wù)器中安裝 .NET Framework 軟件開發(fā)工具包 (SDK)。SDK 包含了很多服務(wù)器不需要的實(shí)用工具。一旦攻擊者獲取了服務(wù)器的訪問權(quán)限,便可利用其中的部分工具幫助發(fā)起其他攻擊。
正確的做法是,安裝可重新分發(fā)的軟件包。要獲取該軟件包,可訪問 Microsoft.com 的 .NET Framework 站點(diǎn),其網(wǎng)址為 http://www.microsoft.com/china/net/,單擊“Downloads”鏈接。
如果要構(gòu)建多個(gè)服務(wù)器,可將 Service Pack 直接并入您的 Windows 安裝。Service Pack 包括一個(gè)名為 Update.exe 的程序,作用是將 Service Pack 與您的 Windows 安裝文件組合在一起。
• | 要將 Service Pack 與 Windows 安裝組合在一起,請(qǐng)執(zhí)行下列操作:
|
有關(guān)詳細(xì)信息,請(qǐng)參閱 MSDN 文章“Customizing Unattended Win2K Installations”,網(wǎng)址是 http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnw2kmag01/html/custominstall.asp(英文)。
下面幾節(jié)將指導(dǎo)您完成保護(hù) Web 服務(wù)器的過程。這些內(nèi)容使用了本模塊確保 Web 服務(wù)器安全的方法一節(jié)中介紹的配置類別。每個(gè)高級(jí)步驟都包含了一項(xiàng)或多項(xiàng)確保特定區(qū)域或功能安全的操作。
步驟 1 | 步驟 10 | ||
步驟 2 | 步驟 11 | ||
步驟 3 | 步驟 12 | ||
步驟 4 | 步驟 13 | ||
步驟 5 |
聯(lián)系客服