2025年10月23日 星期四

[研究]IIS 10套用GCB設定路徑圖解(1)基本設定

[研究]IIS 10套用GCB設定路徑圖解(1)基本設定

2025-10-21

Windows Server 從Windows Server 2016開始,IIS為10.0版,後續 Windows Server 2019, Windows Server 2022, Windows Server 2025 也都是 10.0版,大版本號碼相同,小版本可能不同,畫面幾乎相同。

政府組態基準(Government Configuration Baseline,簡稱GCB)

TWGCB-04-014_Microsoft IIS 10政府組態基準說明文件v1.1_1141002

https://www.nics.nat.gov.tw/core_business/cybersecurity_defense/GCB/GCB_Documentation/

https://download.nics.nat.gov.tw/api/v4/file-service/UploadFile/attachfilegcb/TWGCB-04-014_Microsoft%20IIS%2010%E6%94%BF%E5%BA%9C%E7%B5%84%E6%85%8B%E5%9F%BA%E6%BA%96%E8%AA%AA%E6%98%8E%E6%96%87%E4%BB%B6v1.1_1141002.pdf

https://download.nics.nat.gov.tw/api/v4/file-service/UploadFile/attachfilegcb/TWGCB-04-014_Microsoft%20IIS%2010%E6%94%BF%E5%BA%9C%E7%B5%84%E6%85%8B%E5%9F%BA%E6%BA%96%E8%AA%AA%E6%98%8E%E6%96%87%E4%BB%B6v1.1_1141002.docx

類別項次類別項數起訖項次編號合計
1基本設定7No.1 ~ 753
2設定驗證與授權5No.8 ~ 12
3ASP.NET設定建議12No.13 ~ 24
4要求篩選與其他限制模組11No.25 ~ 35
5IIS記錄4No.36 ~ 39
6FTP要求2No.40 ~ 41
7傳輸加密12No.42 ~ 53


IIS 10.0 政府組態基準列表

項次 TWGCB-ID 類別 原則設定名稱 說明 設定位置 設定路徑 GCB設定值
1 TWGCB-04-014-0001 基本設定 網站內容存放位置 ▪ 這項原則設定決定網站內容存放之實體路徑位置是否可在系統磁區中
▪ 將網站內容存放在非系統磁區,可避免網站/應用程式耗盡系統磁碟空間,亦可避免網站/應用程式存在檔案讀取與寫入(File I/O)相關漏洞時,影響系統機密性或完整性
站台 IIS 管理員\伺服器\站台\網站\動作\編輯站台\基本設定\編輯站台\實體路徑 存放在非系統磁區



上圖,%SystemDrive% 一般是 C:,所以網站預設實體路徑是 C:\Inetpub\wwwroot。

下圖,IIS 的站台有可能不只一個網站


這一條GCB規則是可以手工達成,不用排除;但是使用GCB工具(ex:神網) 卻難以普遍套用,因為不同的系統,網站根目錄可能不同。 

2025-10-28 補充,此設定儲存於 C:\Windows\System32\inetsrv\Config\applicationHost.config 檔案

********************************************************************************

項次 TWGCB-ID 類別 原則設定名稱 說明 設定位置 設定路徑 GCB設定值
2 TWGCB-04-014-0002 基本設定 主機名稱 ▪ 這項原則設定決定是否每個站台都必須設定主機名稱
▪ 主機名稱也稱為主機標頭名稱(Host header)或網域名稱
▪ 每個 Web 網站可由「IP 位址」、「連接埠」及「主機名稱」等 3個要素構成一組唯一的識別,用來接收與回應請求
▪ 網站管理者可透過設定不同的「IP位址」、「連接埠」或「主機名稱」,達到在 1 台伺服器上架設多個網站之目的,所以,當「IP位址」與「連接埠」固定時,管理者就可運用不同之主機名稱以架設多個網站
▪ 所有站台都設定主機名稱,除便於識別外,可降低遭受 DNS 重新綁定攻擊之風險,以及防止透過IP 掃描方式識別出 IIS 上所使用之應用程式
站台 站台 IIS 管理員\伺服器\站台\網站\動作\編輯站台\繫結\站台繫結\編輯\主機名稱 每個站台都必須設定主機名稱




這一條GCB規則是可以手工達成,不用排除;但是使用GCB工具(ex:神網) 卻難以普遍套用,因為不同的系統,網站的「主機名稱」可能不同。 

2025-10-28 補充,此設定儲存於 C:\Windows\System32\inetsrv\Config\applicationHost.config 檔案

********************************************************************************

項次 TWGCB-ID 類別 原則設定名稱 說明 設定位置 設定路徑 GCB設定值
3 TWGCB-04-014-0003 基本設定 瀏覽目錄
  • 這項原則設定決定是否啟用瀏覽目錄功能
  • 若啟用瀏覽目錄功能,當使用者沒有指定要瀏覽之檔案時,伺服器會依照預設文件之設定(例如:index.htm、default.htm 或default.asp 等),將網頁傳送給使用者。若管理者停用預設文件之功能,或者伺服器找不到預設文件設定之檔案時,IIS 會將該資料夾編製成目錄網頁,傳送給使用者,使用者藉此可得知網站目錄結構,所以如非必要,建議停用此功能
伺服器 IIS管理員\伺服器\IIS\瀏覽目錄\動作\開啟功能\動作\設為「停用」 停用


敝人看到預設是「啟動」,要改成「停用」。

2025-10-28 補充,此設定儲存於 C:\Windows\System32\inetsrv\Config\applicationHost.config 檔案

********************************************************************************

項次 TWGCB-ID 類別 原則設定名稱 說明 設定位置 設定路徑 GCB設定值
4 TWGCB-04-014-0004 基本設定 應用程式集區識別
  • 這項原則設定決定所有應用程式集區之「識別」屬性內容
  • 應用程式集區識別中所設定之帳號,是 IIS 實際執行工作者處理序「w3wp.exe」的帳號
  • IIS 內建 ApplicationPoolIdentity 帳戶,並賦予最小權限,供應用程式集區使用,可避免應用程式遭受威脅時,因執行帳號權限過高而造成系統更大危害,此外,亦可避免以往使用 Network Service帳號執行時,因網站服務需求變更 Network Service 帳號權限後,導致其他同樣以 Network Service帳號執行之應用程式獲得非必要的權限
  • 預設應用程式集區(DefaultAppPool)以最小權限之ApplicationPoolIdentity 身分執行。即使每個集區都設定ApplicationPoolIdentity 做為識別,IIS 會為不同集區建立不同之虛擬帳號做為對應,以達到應用程式集區獨立執行的效果
應用程式集區 IIS 管理員\伺服器\應用程式集區\DefaultAppPool 與其他自行新增的應用程式集區\動作\編輯應用程式集區\進階設定\處理序模型\識別 ApplicationPoolIdentity



每個網站的「應用程式集區」都要查,例如 WebSite2 網站有一個稱為 WebSite2 的「應用程式集區」,不過看起來預設值都是ApplicationPoolIdentity,不用特別處理。

2025-10-28 補充,此設定儲存於 C:\Windows\System32\inetsrv\Config\applicationHost.config 檔案

********************************************************************************

項次 TWGCB-ID 類別 原則設定名稱 說明 設定位置 設定路徑 GCB設定值
5 TWGCB-04-014-0005 基本設定 應用程式集區識別
  • 這項原則設定決定是否每個站台皆設定唯一之應用程式集區
  • 每個站台設定唯一之應用程式集區,可集中運用資源以提升效能,並可避免因應用程式集區間之相互影響,而產生一個網站異常導致其他網站也異常之情況
  • 所有站台預設皆使用DefaultAppPool 應用程式集區
應用程式集區 IIS 管理員\伺服器\站台\網站\動作\編輯站台\基本設定\應用程式集區\選取\應用程式集區 每個站台皆設定唯一的應用程式集區

下圖,預設每新建一個網站,自動會替該網站新增一個「應用程式集區」,預設應該是符合的,除非特別調整過。這一條無法 GCB 工具去統一套用。

********************************************************************************

項次 TWGCB-ID 類別 原則設定名稱 說明 設定位置 設定路徑 GCB設定值
6 TWGCB-04-014-0006 基本設定 匿名使用者識別
  • 這項原則設定決定匿名使用者識別是否設為「應用程式集區識別」
  • 將匿名驗證中之「匿名使用者識別」設定為「應用程式集區識別」,可確保匿名使用者以最小權限之身分執行,可簡化站台管理工作
伺服器 IIS 管理員\伺服器\IIS\驗證\動作\開啟功能\匿名驗證\動作\編輯\編輯匿名驗證認證\匿名使用者識別 應用程式集區識別








預設值是 IUSR,GCB建議改成「應用程式集區識別」,可確保匿名使用者以最小權限之身分執行。

[研究]GCB IIS 10.0「匿名使用者識別」從「IUSR」改為「應用程式集區識別」會否產生問題?
敝人註:檔案上傳目錄要注意
敝人註:若使用「ASP.ENT身份辨識機制 (ASP.NET Identity)」,功能可能異常,CODE要改;因 IUSR 和 IIS APPPOOL\<AppPoolName> 權限的回傳值不同

注意,此項變更可能頗有風險,系統功能可能異常。

2025-10-28 補充,此設定儲存於 C:\Windows\System32\inetsrv\Config\applicationHost.config 檔案

********************************************************************************

項次 TWGCB-ID 類別 原則設定名稱 說明 設定位置 設定路徑 GCB設定值
7 TWGCB-04-014-0007 基本設定 WebDAV功能
  • 這項原則設定決定是否停用WebDAV(Web DistributedAuthoring and Versioning)功能
  • WebDAV 是一種以 HTTP 或HTTPS 通訊協定為基礎,提供與遠端伺服器進行檔案維護之標準,允許用戶端在網頁伺服器上建立、移動及刪除檔案與資源
  • 停用 WebDAV 以減少可能因存取控制設定錯誤而導致未經授權存取檔案之情況,進而提升網頁伺服器安全性
站台 IIS 管理員\伺服器\站台\網站\管理\設定編輯器\動作\開啟功能\區段\system.webServer\webdav\authoring\enabled False




預設值就是 False

2025-10-28 補充,
此設定儲存於網站根目錄的 Web.Config 檔案,
若未設定,則繼承自 C:\Windows\System32\inetsrv\Config\applicationHost.config 檔案。

2025-10-28 補充,
ASP.NET WebForm 的 Binary Code 做 Deploy 佈署後,Web.Config 會被覆蓋,設定可能不見,治本要去改 ASP.NET WebForm 的 Source Code 的 Web.Config。

********************************************************************************

(完)

相關

[研究]IIS 10套用GCB設定路徑圖解(1)基本設定

[研究]IIS 10套用GCB設定路徑圖解(2)設定驗證與授權

[研究]IIS 10套用GCB設定路徑圖解(3)ASP.NET設定建議

[研究]IIS 10套用GCB設定路徑圖解(4)要求篩選與其他限制模組

[研究]IIS 10套用GCB設定路徑圖解(5)IIS記錄

[研究]IIS 10套用GCB設定路徑圖解(6)FTP要求

[研究]IIS 10套用GCB設定路徑圖解(7)傳輸加密


沒有留言:

張貼留言