保護 Web 服務(wù)器
更新日期: 2004年04月12日
本頁內(nèi)容
本模塊內(nèi)容
Web 服務(wù)器位于宿主基礎(chǔ)結(jié)構(gòu)的前端。它直接連接到 Internet,負責接收來自客戶端的請求、創(chuàng)建動態(tài) Web 頁并對請求的數(shù)據(jù)作出響應(yīng)。
安全的 Web 服務(wù)器可為宿主環(huán)境提供可靠的基礎(chǔ),其配置在 Web 應(yīng)用程序的整體安全方面起重要作用。但是,如何確保 Web 服務(wù)器安全呢?確保 Web 服務(wù)器安全的挑戰(zhàn)之一就是要明確自己的目標。只有明白了何謂安全的 Web 服務(wù)器,您就可以了解如何為此應(yīng)用所需的配置設(shè)置。
本模塊提供了一種系統(tǒng)且可重復(fù)的方法,您可以使用它成功配置安全的 Web 服務(wù)器。模塊還介紹了一種確保 Web 服務(wù)器安全的方法,該方法將服務(wù)器的配置劃分為十二個安全區(qū)域。每一安全區(qū)域都由一系列高級操作步驟組成。這些步驟都是模塊化的,介紹了將方法付諸實施的途徑。
目標
使用本模塊可以實現(xiàn):
•
了解何謂安全的 Web 服務(wù)器。
•
使用已證明正確的方法確保 Web 服務(wù)器安全。
•
了解在默認情況下 Windows 2000 Server 中 IIS 的完整安裝和 .NET Framework 的安裝內(nèi)容。
•
了解安全 Web 服務(wù)器中可禁用的服務(wù)。
•
安全配置 Web 服務(wù)器,包括操作系統(tǒng)協(xié)議、帳戶、文件、目錄、共享、端口、注冊表、審核和日志記錄。
•
安全配置 Web 服務(wù)器應(yīng)用程序(本例是 IIS)組件,包括 Web 站點、虛擬目錄、腳本映射、ISAPI 篩選器、元數(shù)據(jù)庫和服務(wù)器證書。
•
安全配置 .NET Framework 設(shè)置,包括 Machine.config 文件和代碼訪問安全性。
•
針對遠程管理安裝并使用安全的終端服務(wù)。
•
了解解決常見 Web 服務(wù)器威脅(包括配置處理、拒絕服務(wù)、未經(jīng)授權(quán)的訪問、隨意代碼執(zhí)行、特權(quán)提升、病毒、蠕蟲和特洛伊木馬)的常用對策。
適用范圍
本模塊適用于下列產(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 威脅與對策。這有助于您更廣泛地了解 Web 應(yīng)用程序的潛在威脅。
•
使用快照 。安全 Web 服務(wù)器快照 部分列出并說明了安全 Web 服務(wù)器的屬性。它反映了來自各種源(包括客戶、行業(yè)專家和內(nèi)部 Microsoft 開發(fā)與支持小組)的輸入。在配置服務(wù)器時,請參考快照表。
•
使用檢查表 。本指南“檢查表”部分的檢查表:保護 Web 服務(wù)器提供了一份可打印的作業(yè)幫助,可將它用作快速參考。使用基于任務(wù)的檢查表可快速評估必需的步驟,然后幫助您逐步完成各個步驟。
•
使用“如何”部分 。本指南“如何”部分包括了下列指導(dǎo)性文章:
•
如何:使用 URLScan
•
如何:使用 Microsoft 基準安全分析器
•
如何:使用 IISLockdown
概述
究竟怎樣的 Web 服務(wù)器才算安全?確保 Web 服務(wù)器安全的挑戰(zhàn)之一就是明確您的目標。只有明白了何謂安全的 Web 服務(wù)器,您就可以了解如何為此應(yīng)用所需的配置設(shè)置。本模塊提供了一種系統(tǒng)且可重復(fù)的方法,您可以使用它成功配置安全的 Web 服務(wù)器。
本模塊首先回顧了影響 Web 服務(wù)器的最常見威脅。然后,使用上述觀點創(chuàng)建相應(yīng)的方法。最后,模塊將這種方法付諸實施,并逐步說明如何提高 Web 服務(wù)器的安全性。盡管基本方法可跨不同技術(shù)復(fù)用,但本模塊的重點是如何保證運行 Microsoft Windows 2000 操作系統(tǒng)并駐留 Microsoft .NET Framework 的 Web 服務(wù)器的安全。
威脅與對策
由于攻擊者可遠程攻擊,Web 服務(wù)器常常是攻擊對象。如果了解 Web 服務(wù)器的威脅并努力制定相應(yīng)的對策,您可以預(yù)見很多攻擊,進而阻止日漸增加的攻擊者。
Web 服務(wù)器的主要威脅是:
•
配置處理
•
拒絕服務(wù)
•
未經(jīng)授權(quán)的訪問
•
隨意代碼執(zhí)行
•
特權(quán)提升
•
病毒、蠕蟲和特洛伊木馬
圖 16.1 匯總了目前流行的攻擊和常見漏洞。
圖 16.1 Web 服務(wù)器主要威脅和常見漏洞
配置處理
配置處理或主機枚舉是一種收集 Web 站點相關(guān)信息的探測過程。攻擊者可利用這些信息攻擊已知的薄弱點。
漏洞
致使服務(wù)器容易受到配置處理攻擊的常見漏洞包括:
•
不必要的協(xié)議
•
打開的端口
•
Web 服務(wù)器在橫幅中提供配置信息
攻擊
常見的配置處理攻擊包括:
•
端口掃描
•
Ping 掃射 (ping sweep)
•
NetBIOS 和服務(wù)器消息塊 (SMB) 枚舉
對策
有效的對策有,阻止所有不必要的端口、阻止 Internet 控制消息協(xié)議 (ICMP) 通信、禁用不必要的協(xié)議(如 NetBIOS 和 SMB)。
拒絕服務(wù)
如果服務(wù)器被泛濫的服務(wù)請求所充斥,則出現(xiàn)拒絕服務(wù)攻擊。此時的威脅是,Web 服務(wù)器因負荷過重而無法響應(yīng)合法的客戶端請求。
漏洞
導(dǎo)致拒絕服務(wù)攻擊增加的可能漏洞包括:
•
薄弱的 TCP/IP 堆棧配置
•
未修補的服務(wù)器
攻擊
常見的拒絕服務(wù)攻擊包括:
•
網(wǎng)絡(luò)級 SYN flood(同步攻擊)
•
緩沖區(qū)溢出
•
使用來自分布式位置的請求淹沒 Web 服務(wù)器
對策
有效的對策有,強化 TCP/IP 堆棧,以及始終將最新的軟件修補程序和更新程序應(yīng)用于系統(tǒng)軟件。
未經(jīng)授權(quán)的訪問
如果權(quán)限不合適的用戶訪問了受限的信息或執(zhí)行了受限的操作,則出現(xiàn)未經(jīng)授權(quán)的訪問。
漏洞
導(dǎo)致未經(jīng)授權(quán)訪問的常見漏洞包括:
•
薄弱的 IIS Web 訪問控制(包括 Web 權(quán)限)
•
薄弱的 NTFS 權(quán)限
對策
有效的對策有,使用安全的 Web 權(quán)限、NTFS 權(quán)限和 .NET Framework 訪問控制機制(包括 URL 授權(quán))。
隨意代碼執(zhí)行
如果攻擊者在您的服務(wù)器中運行惡意代碼來損害服務(wù)器資源或向下游系統(tǒng)發(fā)起其他攻擊,則出現(xiàn)代碼執(zhí)行攻擊。
漏洞
可導(dǎo)致惡意代碼執(zhí)行的漏洞包括:
•
薄弱的 IIS 配置
•
未修補的服務(wù)器
攻擊
常見的代碼執(zhí)行攻擊包括:
•
路徑遍歷
•
導(dǎo)致代碼注入的緩沖區(qū)溢出
對策
有效的對策有,配置 IIS 拒絕帶有“../”的 URL(防止路徑遍歷)、使用限制性訪問控制列表 (ACL) 鎖定系統(tǒng)命令和實用工具、安裝新的修補程序和更新程序。
特權(quán)提升
如果攻擊者使用特權(quán)進程帳戶運行代碼,則出現(xiàn)特權(quán)提升攻擊。
漏洞
導(dǎo)致 Web 服務(wù)器易受特權(quán)提升攻擊的常見漏洞包括:
•
過度授權(quán)進程帳戶
•
過度授權(quán)服務(wù)帳戶
對策
有效的對策有,使用特權(quán)最少的帳戶運行進程、使用特權(quán)最少的服務(wù)和用戶帳戶運行進程。
病毒、蠕蟲和特洛伊木馬
惡意代碼有幾種變體,具體包括:
•
病毒 。即執(zhí)行惡意操作并導(dǎo)致操作系統(tǒng)或應(yīng)用程序中斷的程序。
•
蠕蟲 ??勺晕覐?fù)制并自我維持的程序。
•
特洛伊木馬 。表面上有用但實際帶來破壞的程序。
在很多情況下,惡意代碼直至耗盡了系統(tǒng)資源,并因此減慢或終止了其他程序的運行后才被發(fā)現(xiàn)。例如,“紅色代碼”就是危害 IIS 的臭名昭著的蠕蟲之一,它依賴 ISAPI 篩選器中的緩沖區(qū)溢出漏洞。
漏洞
導(dǎo)致易受病毒、蠕蟲和特洛伊木馬攻擊的常見漏洞包括:
•
未修補的服務(wù)器
•
運行不必要的服務(wù)
•
使用不必要的 ISAPI 篩選器和擴展
對策
有效的對策有,提示應(yīng)用程序安裝最新的軟件修補程序、禁用無用的功能(如無用的 ISAPI 篩選器和擴展)、使用特權(quán)最少的帳戶運行進程來減小危害發(fā)生時的破壞范圍。
確保 Web 服務(wù)器安全的方法
為了確保 Web 服務(wù)器的安全,必須應(yīng)用很多配置設(shè)置來減少服務(wù)器受攻擊的漏洞。但究竟在何處開始、何時才算完成呢?最佳的方法是,對必須采取的預(yù)防措施和必要配置的設(shè)置進行分類。通過分類,您可以從上到下系統(tǒng)安排保護過程,或選擇特定的類別完成特定的步驟。
配置類別
本模塊的安全方法都歸入圖 16.2 所示的類別。
圖 16.2Web 服務(wù)器配置類別
分類基本原理如下:
•
修補程序和更新程序 很多安全威脅是由廣泛發(fā)布和眾所周知的漏洞引起的。在很多情況下,如果發(fā)現(xiàn)了新漏洞,成功利用該漏洞發(fā)起攻擊的探測代碼將在幾小時內(nèi)公布在 Internet 中。如果不修補并更新服務(wù)器,便為攻擊者和惡意代碼提供了機會。因此,修補并更新服務(wù)器軟件是保護 Web 服務(wù)器的第一項重要步驟。
•
服務(wù) 對于有能力探測服務(wù)的特權(quán)和功能,并進而訪問本地 Web 服務(wù)器或其他下游服務(wù)器的攻擊者來說,服務(wù)是最主要的漏洞點。如果某服務(wù)不是 Web 服務(wù)器必需的,請不要在服務(wù)器中運行它。如果服務(wù)是必需的,請確保服務(wù)安全并進行維護??紤]監(jiān)視所有的服務(wù)來確??捎眯?。如果服務(wù)軟件不安全,您又需要該服務(wù),請嘗試尋找一種可替代它的安全服務(wù)。
•
協(xié)議 避免使用本身不安全的協(xié)議。如果無法避免使用這些協(xié)議,請采取相應(yīng)的措施提供安全的身份驗證和通信。例如使用 IPSec 策略。不安全的明文協(xié)議有 Telnet、郵局協(xié)議 (POP3)、簡單郵件傳輸協(xié)議 (SMTP) 和文件傳輸協(xié)議 (FTP)。
•
帳戶 帳戶可向計算機授予經(jīng)身份驗證的訪問權(quán)限,因此必須審核。用戶帳戶的用途是什么?有怎樣的訪問權(quán)限?是否屬于可作為攻擊目標的常見帳戶?是否屬于可泄露(并因此一定要包含在內(nèi))的服務(wù)帳戶?使用最少的特權(quán)來配置帳戶,避免特權(quán)提升的可能性。刪除所有不需要的帳戶。使用強密碼策略緩解強力攻擊和字典攻擊,然后對失敗的登錄進行審核和報警。
•
文件和目錄 使用有限的 NTFS 權(quán)限(僅允許訪問必需的 Windows 服務(wù)和用戶帳戶)確保所有文件和目錄安全。使用 Windows 審核可檢測出何時出現(xiàn)可疑的或未經(jīng)授權(quán)的操作。
•
共享 刪除所有不必要的文件共享,包括默認管理共享(如果不需要它們)。使用有限的 NTFS 權(quán)限確保剩余共享的安全。盡管共享不直接展示在 Internet 中,但如果服務(wù)器存在漏洞,提供有限和安全共享的防御策略可減輕風險。
•
端口 在服務(wù)器中運行的服務(wù)可偵聽特定端口,從而響應(yīng)傳入請求。定期審核服務(wù)器的端口可確保不安全或不必要的服務(wù)無法在您的 Web 服務(wù)器中激活。如果檢測出活動的端口,但它不是管理員打開的,表明一定存在未經(jīng)授權(quán)的訪問和安全漏洞。
•
注冊表 很多與安全有關(guān)的設(shè)置都保存在注冊表中,因此必須保護注冊表。您可應(yīng)用有限的 Windows ACL 并阻止遠程注冊表管理來做到這一點。
•
審核和日志記錄 審核是一種重要的工具,主要作用是確定入侵者、進行中的攻擊和已發(fā)生攻擊的證據(jù)。請結(jié)合 Windows 和 IIS 審核功能來配置 Web 服務(wù)器的審核。事件日志和系統(tǒng)日志可幫助您解決安全問題。
•
站點和虛擬目錄 站點和虛擬目錄直接展示在 Internet 中。盡管安全的防火墻配置和防御性 ISAPI 篩選器(如 IISLockdown 工具附帶的 URLScan)可阻止對受限配置文件或程序可執(zhí)行文件的請求,但還是建議您使用深層的防御策略。重新將站點和虛擬目錄分配到非系統(tǒng)分區(qū),然后使用 IIS Web 權(quán)限進一步限制訪問。
•
腳本映射 如果刪除可選文件擴展名的所有不必要 IIS 腳本映射,可防止攻擊者對處理這些文件類型的 ISAPI 擴展中的任何 Bug 加以利用。不使用的擴展名映射常常被忽略,而它們正代表了主要的安全漏洞。
•
ISAPI 篩選器 攻擊者已成功利用 ISAPI 篩選器中的漏洞。請從 Web 服務(wù)器中刪除不必要的 ISAPI 篩選器。
•
IIS 元數(shù)據(jù)庫 IIS 元數(shù)據(jù)庫可維護 IIS 配置設(shè)置。必須確保正確配置與安全相關(guān)的設(shè)置,確保使用強化的 NTFS 權(quán)限來訪問元數(shù)據(jù)庫文件。
•
Machine.config Machine.config 文件保存了應(yīng)用于 .NET Framework 應(yīng)用程序(包括 ASP.NET Web 應(yīng)用程序)的計算機級配置設(shè)置。修改 Machine.config 中的設(shè)置可確保將安全的默認值應(yīng)用于服務(wù)器中安裝的所有 ASP.NET 應(yīng)用程序。
•
代碼訪問安全性 限制代碼訪問安全性策略設(shè)置可確保下載自 Internet 或 Intranet 的代碼沒有權(quán)限,因此無法執(zhí)行。
IIS 和 .NET Framework 安裝注意事項
在確保 Web 服務(wù)器安全以前,必須先知道安裝 IIS 和 .NET Framework 后在 Windows 2000 服務(wù)器中出現(xiàn)的組件。本節(jié)說明了安裝哪些組件。
IIS 安裝了哪些組件?
IIS 安裝了很多服務(wù)、帳戶、文件夾和 Web 站點。有些組件是 Web 應(yīng)用程序所不用的,如果不在服務(wù)器中刪除,可能導(dǎo)致服務(wù)器易受攻擊。表 16.1 列出了在 Windows 2000 Server 系統(tǒng)中完整安裝 IIS(選定所有組件)后創(chuàng)建的服務(wù)、帳戶和文件夾。
表 16.1:IIS 安裝默認值
服務(wù)
IIS Admin Service(管理 Web 和 FTP 服務(wù)) World Wide Web Publishing Service FTP Publishing Service Simple Mail Transport Protocol (SMTP) Network News Transport Protocol (NNTP)
安裝 安裝 安裝 安裝 安裝
帳戶和組
IUSR_MACHINE(匿名 Internet 用戶) IWAM_MACHINE(進程外 ASP Web 應(yīng)用程序;不用在 ASP.NET 應(yīng)用程序中,除了在域控制器中運行的 ASP.NET 應(yīng)用程序;您的 Web 服務(wù)器不應(yīng)是域控制器)
添至 Guest 組 添至 Guest 組
文件夾
%windir%\system32\inetsrv(IIS 程序文件) %windir%\system32\inetsrv\iisadmin(用于遠程管理 IIS 的文件) %windir%\help\iishelp(IIS 幫助文件) %systemdrive%\inetpub(Web、FTP 和 SMTP 根文件夾)
Web 站點
默認 Web 站點 – 端口 80:%SystemDrive%\inetpub\wwwroot 管理 Web 站點 – 端口 3693:%SystemDrive%\System32\inetsrv\iisadmin
允許匿名訪問 僅限本地計算機和管理員訪問
.NET Framework 安裝了哪些組件?
如果在駐留 IIS 的服務(wù)器中安裝 .NET Framework,.NET Framework 將注冊 ASP.NET。作為該過程的一部分,系統(tǒng)將創(chuàng)建一個名為 ASPNET 的特權(quán)最少的本地帳戶。這將運行 ASP.NET 工作進程 (aspnet_wp.exe) 和會話狀態(tài)服務(wù) (aspnet_state.exe),后者可用于管理用戶會話狀態(tài)。
注意: 在運行 Windows 2000 和 IIS 5.0 的服務(wù)器計算機中,所有 ASP.NET Web 應(yīng)用程序都運行在 ASP.NET 工作進程的單個實例中,由應(yīng)用程序域提供隔離。在 Windows Server 2003 中,IIS 6.0 借助應(yīng)用程序池提供進程級隔離。
表 16.2 顯示了 .NET Framework 版本 1.1 默認安裝的服務(wù)、帳戶和文件夾。
表 16.2:.NET Framework 安裝默認值
服務(wù)
ASP.NET State Service:為 ASP.NET 提供進程外會話狀態(tài)支持。
手動啟動
帳戶和組
ASPNET:運行 ASP.NET 工作進程 (Aspnet_wp.exe) 和會話狀態(tài)服務(wù) (Aspnet_state.exe) 的帳戶。
添至 Users 組
文件夾
%windir%\Microsoft.NET\Framework\{版本} \1033 \ASP.NETClientFiles \CONFIG \MUI \Temporary ASP.NET Files
ISAPI 擴展
Aspnet_isapi.dll:處理 ASP.NET 文件類型的請求。將請求轉(zhuǎn)發(fā)給 ASP.NET 工作進程 (Aspnet_wp.exe)。
ISAPI 篩選器
Aspnet_filter.dll:僅用于支持無 cookie 的會話狀態(tài)。在 Inetinfo.exe (IIS) 進程內(nèi)部運行。
應(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
安裝建議
在默認情況下,Windows 2000 Server 安裝程序?qū)惭b IIS。但建議不要將 IIS 作為操作系統(tǒng)安裝的一部分來安裝,最好是日后更新并修補了基本操作系統(tǒng)之后再安裝。安裝了 IIS 之后,必須重新應(yīng)用 IIS 修補程序并強化 IIS 配置,確保 IIS 接受完整的保護。只有這樣,將服務(wù)器連接到網(wǎng)絡(luò)中才安全。
IIS 安裝建議
如果要安裝并配置新的 Web 服務(wù)器,請執(zhí)行如下操作步驟概述。
•
構(gòu)建新的 Web 服務(wù)器
1.
安裝 Windows 2000 Server,但 IIS 不作為操作系統(tǒng)安裝的一部分。
2.
將最新的 Service Pack 和修補程序應(yīng)用于操作系統(tǒng)。(如果要配置多個服務(wù)器,請參閱本節(jié)后面的“在基本安裝中包括 Service Pack”。)
3.
使用控制面板中的“添加/刪除程序”單獨安裝 IIS。
如果不需要以下服務(wù),安裝 IIS 時不要安裝它們:
•
文件傳輸協(xié)議 (FTP) 服務(wù)器
•
Microsoft FrontPage® 2000 Server Extensions
•
Internet 服務(wù)管理器 (HTML)
•
NNTP 服務(wù)
•
SMTP 服務(wù)
•
可視 InterDev RAD 遠程部署支持
注意: 通過在完全修補和更新的操作系統(tǒng)中安裝 IIS,可阻止攻擊利用已修補的現(xiàn)有漏洞(如 NIMDA)。
.NET Framework 安裝建議
不要在生產(chǎn)服務(wù)器中安裝 .NET Framework 軟件開發(fā)工具包 (SDK)。SDK 包含了很多服務(wù)器不需要的實用工具。一旦攻擊者獲取了服務(wù)器的訪問權(quán)限,便可利用其中的部分工具幫助發(fā)起其他攻擊。
正確的做法是,安裝可重新分發(fā)的軟件包。要獲取該軟件包,可訪問 Microsoft.com 的 .NET Framework 站點,其網(wǎng)址為 http://www.microsoft.com/china/net/ ,單擊“Downloads”鏈接。
在基本安裝中包括 Service Pack
如果要構(gòu)建多個服務(wù)器,可將 Service Pack 直接并入您的 Windows 安裝。Service Pack 包括一個名為 Update.exe 的程序,作用是將 Service Pack 與您的 Windows 安裝文件組合在一起。
•
要將 Service Pack 與 Windows 安裝組合在一起,請執(zhí)行下列操作:
1.
下載最新的 Service Pack。
2.
使用 -x 選項啟動 Service Pack 安裝程序,從 Service Pack 中提取 Update.exe,如下所示:
w3ksp3.exe -x
3.
將 Service Pack 與 Windows 安裝源集成,方法是使用 -s 選項運行 update.exe(傳遞 Windows 安裝的文件夾路徑),如下所示:
update.exe -s c:\ YourWindowsInstallationSource
有關(guān)詳細信息,請參閱 MSDN 文章“Customizing Unattended Win2K Installations”,網(wǎng)址是 http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnw2kmag01/html/custominstall.asp (英文)。
確保 Web 服務(wù)器安全的步驟
下面幾節(jié)將指導(dǎo)您完成保護 Web 服務(wù)器的過程。這些內(nèi)容使用了本模塊確保 Web 服務(wù)器安全的方法 一節(jié)中介紹的配置類別。每個高級步驟都包含了一項或多項確保特定區(qū)域或功能安全的操作。
本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
如何利用Office Online實現(xiàn)文檔在線預(yù)覽?
Add-WindowsFeatureWeb-Server,Web-WebServer,Web-Common-Http,Web-Static-Content,Web-App-Dev,Web-Asp-Net,Web-Net-Ext,Web-ISAPI-Ext,Web-ISAPI-Filter,Web-Includes,Web-Security,Web-Windows-Auth...