萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 電腦基礎知識 >  >> 健康知識

IIS 6.0 預設安全架構與設計原則深度解析

IIS 6.0 為回應 Code Red、Nimda 等蠕蟲災難,徹底重寫核心架構,確立「預設安全、設計安全」原則,成為關鍵 Web 應用平台的新標準。

預設安全:安裝即安全

1. 非預設安裝

Windows Server 2003 不預裝 IIS 6.0,管理員須明確安裝,消除「不知情暴露」風險。

2. 僅安裝靜態內容服務

元件IIS 5.0 預設IIS 6.0 預設
靜態 HTML✓✓
ASP✓✗
ASP.NET✓ (若安裝 .NET)✗
Server Side Includes✓✗
WebDAV✓✗
FTP 服務✓✗
SMTP/NNTP✓✗

動態內容、腳本執行、擴充功能均需明確啟用,大幅縮減攻擊面。

3. 移除範例應用程式

移除 showcode.asp、codebrws.asp 等範例腳本,避免輸入驗證缺陷導致任意檔案讀取 (MS99-013)。

4. 強化檔案存取控制

  • 匿名帳號 (IUSR_*) 移除 Web 根目錄寫入權限。
  • FTP 使用者隔離於各自根目錄,防止上傳惡意程式至 /scripts 等可執行目錄。

5. 虛擬目錄預設無執行權限

消除目錄遍歷、上傳腳本、MDAC 等經典漏洞利用路徑。

6. 移除子驗證模組 (IISSUBA.dll)

強制所有驗證直接對 SAM/Active Directory 進行,減少 DLL 攻擊面。

7. 父目錄瀏覽預設停用

防止目錄遍歷攻擊存取 SAM 等敏感系統檔案。遷移舊應用時需注意相容性。

設計安全:核心架構重構

HTTP.sys 核心模式 HTTP 協定堆疊

  • 運行於核心模式,解析 HTTP 請求、派發至使用者模式工作進程。
  • 工作進程受限於使用者模式,無法直接存取核心資源,實現深度防禦。
  • 整合 URL 解析器、緩衝區溢位防護、可靠日誌記錄於核心層。

關鍵登錄調優 (HKLM\System\CurrentControlSet\Services\HTTP\Parameters)

  • MaxFieldLength、MaxRequestBytes:限制標頭/請求大小,防緩衝區溢位。
  • UrlSegmentMaxLength、UrlSegmentMaxCount:限制 URL 片段長度/數量。
  • 可依應用需求微調,平衡安全與相容性。

增強日誌機制

  • HTTP.sys 在派發請求前記錄日誌,即使工作進程當機仍保留錯誤記錄。
  • 欄位:時間戳、來源/目的 IP:Port、協定版本、HTTP 動詞、URL、狀態碼、站點 ID、原因解釋 (超時、應用程式集區強制中斷等)。

快速失敗保護

  • 應用程式集區層級設定:失敗次數臨界值 + 時間窗口 → 自動回收/停止異常工作進程。
  • 防止受攻擊進程持續消耗資源、產生錯誤回應。

應用程式隔離:應用程式集區

  • 每個集區獨立工作進程 (一或多個),錯誤隔離不波及其他集區。
  • 效能較 IIS 5.0 進程內隔離大幅提升,可靠性並重。

最小權限原則落地

  • HTTP.sys 核心程式碼:Local System 權限 (必要)。
  • 所有工作進程:Network Service 帳號 (Server 2003 新內嚴格受限帳號),而非 LocalSystem。
  • 命令列工具僅限管理員執行。

部署建議

  1. 僅安裝必要元件,啟用必要擴充對應。
  2. 配置應用程式集區隔離不同信任層級應用。
  3. 套用 URL 掃描/請求限制登錄值強化 HTTP.sys 防護。
  4. 啟用詳細日誌與快速失敗保護,整合至監控系統。
  5. 定期套用安全性更新,採用多層防禦 (WAF、網路防火牆、主機 IDS/IPS)。

IIS 6.0 確立的架構原則 (核心/使用者模式分離、最小權限、預設拒絕、隔離容器) 奠基現代 Web 伺服器安全設計標準,延續至 IIS 7/8/10 與 ASP.NET Core 架構。

copyright © 萬盛學電腦網 all rights reserved