Web 服務(wù)器位于宿主基礎(chǔ)結(jié)構(gòu)的前端。它直接連接到 Internet,負(fù)責(zé)接收來(lái)自客戶端的請(qǐng)求、創(chuàng)建動(dòng)態(tài) Web 頁(yè)并對(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í)施的途徑。
閱讀模塊 2 威脅與對(duì)策。這有助于您更廣泛地了解 Web 應(yīng)用程序的潛在威脅。
•
使用快照。安全 Web 服務(wù)器快照部分列出并說(shuō)明了安全 Web 服務(wù)器的屬性。它反映了來(lái)自各種源(包括客戶、行業(yè)專家和內(nèi)部 Microsoft 開(kāi)發(fā)與支持小組)的輸入。在配置服務(wù)器時(shí),請(qǐng)參考快照表。
•
使用檢查表。本指南“檢查表”部分的檢查表:保護(hù) Web 服務(wù)器提供了一份可打印的作業(yè)幫助,可將它用作快速參考。使用基于任務(wù)的檢查表可快速評(píng)估必需的步驟,然后幫助您逐步完成各個(gè)步驟。
究竟怎樣的 Web 服務(wù)器才算安全?確保 Web 服務(wù)器安全的挑戰(zhàn)之一就是明確您的目標(biāo)。只有明白了何謂安全的 Web 服務(wù)器,您就可以了解如何為此應(yīng)用所需的配置設(shè)置。本模塊提供了一種系統(tǒng)且可重復(fù)的方法,您可以使用它成功配置安全的 Web 服務(wù)器。
本模塊首先回顧了影響 Web 服務(wù)器的最常見(jiàn)威脅。然后,使用上述觀點(diǎn)創(chuàng)建相應(yīng)的方法。最后,模塊將這種方法付諸實(shí)施,并逐步說(shuō)明如何提高 Web 服務(wù)器的安全性。盡管基本方法可跨不同技術(shù)復(fù)用,但本模塊的重點(diǎn)是如何保證運(yùn)行 Microsoft Windows 2000 操作系統(tǒng)并駐留 Microsoft .NET Framework 的 Web 服務(wù)器的安全。
為了確保 Web 服務(wù)器的安全,必須應(yīng)用很多配置設(shè)置來(lái)減少服務(wù)器受攻擊的漏洞。但究竟在何處開(kāi)始、何時(shí)才算完成呢?最佳的方法是,對(duì)必須采取的預(yù)防措施和必要配置的設(shè)置進(jìn)行分類。通過(guò)分類,您可以從上到下系統(tǒng)安排保護(hù)過(guò)程,或選擇特定的類別完成特定的步驟。
配置類別
本模塊的安全方法都?xì)w入圖 16.2 所示的類別。
圖 16.2 Web 服務(wù)器配置類別
分類基本原理如下:
•
修補(bǔ)程序和更新程序 很多安全威脅是由廣泛發(fā)布和眾所周知的漏洞引起的。在很多情況下,如果發(fā)現(xiàn)了新漏洞,成功利用該漏洞發(fā)起攻擊的探測(cè)代碼將在幾小時(shí)內(nèi)公布在 Internet 中。如果不修補(bǔ)并更新服務(wù)器,便為攻擊者和惡意代碼提供了機(jī)會(huì)。因此,修補(bǔ)并更新服務(wù)器軟件是保護(hù) Web 服務(wù)器的第一項(xiàng)重要步驟。
•
服務(wù) 對(duì)于有能力探測(cè)服務(wù)的特權(quán)和功能,并進(jìn)而訪問(wèn)本地 Web 服務(wù)器或其他下游服務(wù)器的攻擊者來(lái)說(shuō),服務(wù)是最主要的漏洞點(diǎn)。如果某服務(wù)不是 Web 服務(wù)器必需的,請(qǐng)不要在服務(wù)器中運(yùn)行它。如果服務(wù)是必需的,請(qǐng)確保服務(wù)安全并進(jìn)行維護(hù)。考慮監(jiān)視所有的服務(wù)來(lái)確??捎眯浴H绻?wù)軟件不安全,您又需要該服務(wù),請(qǐng)嘗試尋找一種可替代它的安全服務(wù)。
文件和目錄 使用有限的 NTFS 權(quán)限(僅允許訪問(wèn)必需的 Windows 服務(wù)和用戶帳戶)確保所有文件和目錄安全。使用 Windows 審核可檢測(cè)出何時(shí)出現(xiàn)可疑的或未經(jīng)授權(quán)的操作。
•
共享 刪除所有不必要的文件共享,包括默認(rèn)管理共享(如果不需要它們)。使用有限的 NTFS 權(quán)限確保剩余共享的安全。盡管共享不直接展示在 Internet 中,但如果服務(wù)器存在漏洞,提供有限和安全共享的防御策略可減輕風(fēng)險(xiǎn)。
•
端口 在服務(wù)器中運(yùn)行的服務(wù)可偵聽(tīng)特定端口,從而響應(yīng)傳入請(qǐng)求。定期審核服務(wù)器的端口可確保不安全或不必要的服務(wù)無(wú)法在您的 Web 服務(wù)器中激活。如果檢測(cè)出活動(dòng)的端口,但它不是管理員打開(kāi)的,表明一定存在未經(jīng)授權(quán)的訪問(wèn)和安全漏洞。
•
注冊(cè)表 很多與安全有關(guān)的設(shè)置都保存在注冊(cè)表中,因此必須保護(hù)注冊(cè)表。您可應(yīng)用有限的 Windows ACL 并阻止遠(yuǎn)程注冊(cè)表管理來(lái)做到這一點(diǎn)。
•
審核和日志記錄 審核是一種重要的工具,主要作用是確定入侵者、進(jìn)行中的攻擊和已發(fā)生攻擊的證據(jù)。請(qǐng)結(jié)合 Windows 和 IIS 審核功能來(lái)配置 Web 服務(wù)器的審核。事件日志和系統(tǒng)日志可幫助您解決安全問(wèn)題。
•
站點(diǎn)和虛擬目錄 站點(diǎn)和虛擬目錄直接展示在 Internet 中。盡管安全的防火墻配置和防御性 ISAPI 篩選器(如 IISLockdown 工具附帶的 URLScan)可阻止對(duì)受限配置文件或程序可執(zhí)行文件的請(qǐng)求,但還是建議您使用深層的防御策略。重新將站點(diǎn)和虛擬目錄分配到非系統(tǒng)分區(qū),然后使用 IIS Web 權(quán)限進(jìn)一步限制訪問(wèn)。
Machine.config Machine.config 文件保存了應(yīng)用于 .NET Framework 應(yīng)用程序(包括 ASP.NET Web 應(yīng)用程序)的計(jì)算機(jī)級(jí)配置設(shè)置。修改 Machine.config 中的設(shè)置可確保將安全的默認(rèn)值應(yīng)用于服務(wù)器中安裝的所有 ASP.NET 應(yīng)用程序。
•
代碼訪問(wèn)安全性 限制代碼訪問(wèn)安全性策略設(shè)置可確保下載自 Internet 或 Intranet 的代碼沒(méi)有權(quán)限,因此無(wú)法執(zhí)行。
在確保 Web 服務(wù)器安全以前,必須先知道安裝 IIS 和 .NET Framework 后在 Windows 2000 服務(wù)器中出現(xiàn)的組件。本節(jié)說(shuō)明了安裝哪些組件。
IIS 安裝了哪些組件?
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ù)) World Wide Web Publishing Service FTP Publishing Service Simple Mail Transport Protocol (SMTP) Network News Transport Protocol (NNTP)
安裝
安裝 安裝 安裝 安裝
帳戶和組
IUSR_MACHINE(匿名 Internet 用戶)
IWAM_MACHINE(進(jìn)程外 ASP Web 應(yīng)用程序;不用在 ASP.NET 應(yīng)用程序中,除了在域控制器中運(yùn)行的 ASP.NET 應(yīng)用程序;您的 Web 服務(wù)器不應(yīng)是域控制器)
注意:在運(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í)隔離。
下面幾節(jié)將指導(dǎo)您完成保護(hù) Web 服務(wù)器的過(guò)程。這些內(nèi)容使用了本模塊確保 Web 服務(wù)器安全的方法一節(jié)中介紹的配置類別。每個(gè)高級(jí)步驟都包含了一項(xiàng)或多項(xiàng)確保特定區(qū)域或功能安全的操作。