| 目標 | |
| 適用於 | |
| 如何使用本單元 | |
| 摘要 | |
| 安裝 URLScan | |
| 記錄檔 | |
| 移除 URLScan | |
| 設定 URLScan | |
| 使用 URLScan 節流要求大小 | |
| 偵錯安裝 URLScan 的 VS.NET | |
| 遮罩內容標頭 (橫幅) | |
| 潛在風險 | |
| 參考資料 |
透過本單元即可:
| • | 取得及安裝 URLScan。 |
| • | 使用 URLScan 來增強 Web 伺服器抵抗常見攻擊 (例如,拒絕服務和目錄周遊攻擊) 的防禦力。 |
| • | 使用 URLScan 的同時也啟用 Visual Studio .NET 偵錯 |
本單元適用於下列產品及技術:
| • | Microsoft® Windows® 2000 Server |
| • | Internet Information Services |
若要充分瞭解本單元:
| • | 您必須具備管理 Internet Information Services 的相關經驗。 |
| • | 您必須具備使用 Visual Studio .NET 的程式設計經驗。 |
| • | 閱讀<How To:使用 IISLockdown>單元。本單元說明如何安裝 IISLockdown,這是安裝 URLScan 的方法之一。 |
URLScan 是 ISAPI 篩選器,可讓網站系統管理員限制由伺服器處理的 HTTP 要求類型。藉由封鎖特定 HTTP 要求,URLScan 篩選器可預防具有潛在危害的要求傳到伺服器,進而造成損害。本單元說明如何取得、安裝及設定 URLScan。
在撰寫本指南的當時,URLScan 2.0 會在執行 IISLockdown (IISLockd.exe) 時安裝,也可讓您獨立安裝。
| • | 使用 IISLockdown 安裝 URLScan 2.0:您可以以使用「IIS 鎖定精靈 (IIS Lockdown Wizard)」(IISLockd.exe) 一起安裝 URLScan 2.0。您可以從 Microsoft 網站下載 IISLockd.exe,網址是:http://download.microsoft.com/download/iis50/Utility/2.1/NT45XP/EN-US/iislockd.exe。 |
| • | 只安裝 URLScan 2.0,不執行 IISLockdown:若要只安裝 URLScan 而不執行 IISLockdown,您必須以手動方式從 IIS 鎖定工具 (IIS Lockdown Tool) 解壓縮 URLScan。首先您得將 IISLockd.exe 另存到目錄中。接著,解壓縮 URLScan 安裝檔案,從安裝 IISLockd.exe 之目錄的命令列執行下列命令: iislockd.exe /q /c 這樣會解壓縮 URLScan.exe,也就是 URLScan 的安裝程式。 如需詳細資訊,請參閱 Microsoft 知識庫文件 315522《How To: Extract the URLScan Tool and Lockdown Template Files from the IIS Lockdown Tool (英文)》,網址是:http://support.microsoft.com/default.aspx?scid=315522。 |
| • | 安裝 URLScan 2.5:URLScan 2.5 目前是 URLScan 的最新版本。若要安裝 URLScan 2.5,首先您需要 URLScan 1.0 或 URLScan 2.0。 如需詳細資訊,請參閱 Microsoft 知識庫文件 307608《INFO:URLScan 安全性工具的可用情形》,網址是:http://support.microsoft.com/default.aspx?scid=307608。 |
| • | 預設的安裝目錄:包括 Urlscan.dll、URLScan.ini 及 URLScan 記錄檔等 URLScan 檔案,均存放在 %windir%\system32\inetsrv\urlscan 中。URLScan.dll 是篩選器。您可使用 URLScan.ini 來設定篩選器的工作方式。 |
URLScan 會建立記錄拒絕要求的記錄檔。記錄檔位於下列資料夾中:
%windir%\system32\inetsrv\urlscan
記錄檔使用以下命名慣例:URLScan<date>.log。
您可以在 [網際網路服務管理員 (Internet Services Manager)] 中,透過 Web 伺服器內容對話方塊中的 [ISAPI 篩選器] 頁,來手動移除 URLScan
若要設定 URLScan 以便判斷應拒絕的要求,請使用 URLScan.ini。此檔案位於以下資料夾中:
%windir%\system32\inetsrv\urlscan
有關如何修改 URLScan.ini 各個區段的詳細資訊,請參閱 Microsoft 知識庫文件 815155《How To: Configure URLScan to Protect ASP.NET Web Applications (英文)》,網址是:http://support.microsoft.com/default.aspx?scid=815155。
利用 URLScan,您可以在要求根本尚未到達 ASP.NET 之前,形成對抗拒絕服務攻擊的另一道防線。方法是對 MaxAllowedContentLength、MaxUrl 和 MaxQueryString 屬性設限。
若要節流要求大小,請將下列設定加入 URLScan.ini 中:
[RequestLimits] ; The entries in this section impose limits on the length ; of allowed parts of requests reaching the server. ;MaxAllowedContentLength=2000000000 ;MaxUrl=16384 ;MaxQueryString=4096
在預設的狀況下,URLScan 不允許 DEBUG 動詞。因此當您在安裝 URLScan 的伺服器上使用 VS.NET 來偵錯 Web 應用程式時,可能會出現下列錯誤:
Microsoft Development Environment: Error while trying to run project: Unable to start debugging on the web server. Could not start ASP.NET or ATL Server debugging. Verify that ASP.NET or ATL Server is correctly installed on the server.Would you like to disable future attempts to debug ASP.NET pages for this project?Yes No Help
您的 URLScan 記錄檔也會包含如下所示的項目:
[01-18-2003 - 22:25:26] Client at 127.0.0.1: Sent verb 'DEBUG', which is not specifically allowed.Request will be rejected.
若要支援偵錯,請將 DEBUG 加入 URLScan.ini 的 AllowVerbs 區段,如下所示:
[AllowVerbs] GET HEAD POST DEBUG
注意 您必須重新啟動 IIS,變更才會生效。
若要避免橫幅資訊洩漏 Web 伺服器的類型及版本,請在 URLScan.ini 中找出 RemoveServerHeader 屬性,並將其值設為 1,如下所示。
RemoveServerHeader=1
如需詳細資訊,請參閱 Microsoft 知識庫文件 317741《How To: Mask IIS Version Information from Network Trace and Telnet (英文)》,網址是: http://support.microsoft.com/default.aspx?scid=317741。
使用 URLScan 時可能會遇到下列問題:
| • | URLScan 會封鎖 DEBUG 動詞,造成應用程式偵錯中斷。如果您需要支援偵錯,請將 DEBUG 動詞加入 URLScan.ini 的 [AllowVerbs] 區段中。 |
| • | 您需要回收 IIS,變更才會生效。URLScan 是在 IIS 處理序 (Inetinfo.exe) 內部執行的 ISAPI 篩選器,當 IIS 啟動時,URLScan 的選項會從 URLScan.ini 中載入。您可以從命令提示字元執行 IISReset 命令來回收 IIS。 |
| • | URLScan 會封鎖包含具有潛在危害字元的要求,例如過去曾經用來利用安全性弱點的字元,像是目錄周遊所使用的 "."。不建議專案路徑使用 "." 字元。如果您一定要允許這類作業,那麼您需要設定 URLScan.ini 中的 AllowDotInPath=1。 如果您的 Web 應用程式目錄在路徑中包含點,例如包含名稱 "Asp.Net" 的目錄,那麼 URLScan 將會拒絕這項要求,「404 找不到檔案」訊息將會傳回用戶端。 其他 URLScan 所拒絕因而應避免在專案名稱中使用的字元有:逗點 (,) 和井字號 (#)。 |
如需其他資訊,請參閱下列資源:
| • | 有關如何修改 Urlscan.ini 各個區段的詳細資訊,請參閱 Microsoft 知識庫文件 815155《How To: Configure URLScan to Protect ASP.NET Web Applications (英文)》,網址是:http://support.microsoft.com/default.aspx?scid=815155。 |
| • | 有關使用 URLScan 的詳細資訊,請參閱 http://www.nardware.co.uk/Security/Docs/Nmsurlscan.html |
| • | 有關 URLScan 2.5 的詳細資訊,請參閱 Microsoft 知識庫文件 307608《INFO:URLScan 安全性工具的可用情形》,網址是:http://support.microsoft.com/default.aspx?scid=307608。 |