2025年10月23日 星期四

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

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

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 基本設定 7 No.1 ~ 7 53
2 設定驗證與授權 5 No.8 ~ 12
3 ASP.NET設定建議 12 No.13 ~ 24
4 要求篩選與其他限制模組 11 No.25 ~ 35
5 IIS記錄 4 No.36 ~ 39
6 FTP要求 2 No.40 ~ 41
7 傳輸加密 12 No.42 ~ 53

IIS 10.0 政府組態基準列表

項次 TWGCB-ID 類別 原則設定名稱 說明 設定位置 設定路徑 GCB設定值
8 TWGCB-04-014-0008 設定驗證與授權 表單驗證需要 SSL
  • 這項原則設定決定使用表單驗證時,是否須以 SSL 方式進行資料傳輸
  • 表單驗證會將使用者帳號與密碼以純文字格式傳送到伺服器,將可能導致使用者登入帳密資訊外洩,改採 SSL 連線方式保護登入資訊,有助於減少使用者資訊遭竊取之風險
站台 IIS 管理員\伺服器\站台\網站\管理\設定編輯器\動作\開啟功能\區段\system.web\authentication\forms\requireSSL True

續上面項次7步驟,其實項次7和項次8都是從該網站的 Web.Config 設定檔中抓出設定顯示在此,當然也可以在此畫面變更,存入 Web.Config 中。此值預設是 False




下圖,原本沒有 Web.Config (也可能有),產生了

下圖,設定變成 true

實際檢視某 ASP.NET WebForm 真實系統,該網站僅提供 HTTPS 連線,但IIS設定畫面上requireSSL 是 False,可是 Web.Config 中有設定
<httpCookies httpOnlyCookies="true" sameSite="Strict" requireSSL="true" />

根據

[研究]GCB,IIS,「表單驗證需要 SSL」預設值 False 改為 GCB 建議值 True 的影響?那些 套件 功能會異常?

預設值 False,GCB建議值 True,正常運作機率 99%,建議排除。
********************************************************************************
項次 TWGCB-ID 類別 原則設定名稱 說明 設定位置 設定路徑 GCB設定值
9 TWGCB-04-014-0009 設定驗證與授權 表單驗證Cookie 模式
  • 這項原則設定決定表單驗證是否使用 Cookie
  • 表單驗證 Cookie 模式選項如下:
    1. UseUri:不使用 Cookie
    2. UseCookies:不論裝置為何,永遠使用 Cookie
    3. AutoDetect:如果裝置設定檔支援 Cookie,則使用 Cookie。否則,不使用 Cookie。針對已知支援 Cookie 之桌面瀏覽器,ASP.NET 會進行檢查以判斷是否啟用 Cookie
    4. UseDeviceProfile:如果裝置設定檔支援 Cookie,則使用Cookie。否則,不使用Cookie。ASP.NET 不會進行檢查來判斷是否要在支援 Cookie之裝置上啟用 Cookie
  • 使用者通過身分驗證登入站台後,表單驗證會在 Cookie 中維護一份驗證資訊,讓已通過驗證的使用者不需要對每個要求都輸入帳號密碼,當 Cookie 過期或找不到有效之 Cookie 時,使用者將被重新導向至指定登入頁面
  • 使用 Cookie 管理使用者連線狀態,可藉由防止 ASP.NET 將Session 資訊透過 URL 傳送,以避免 Session ID 在代理伺服器紀錄檔或瀏覽歷程紀錄中被找到,降低Session 遭竊取之風險
  • 預設設定為「UseDeviceProfile」
站台 IIS 管理員\伺服器\站台\網站\管理\設定編輯器\動作\開啟功能\區段\system.web\authentication\forms\cookieless UseCookies

下圖,cookieless預設值是 UseDeviceProfile

改成 UseCookies後,套用,Web.Config 結果如下



[研究]GCB,IIS,「表單驗證Cookie 模式」從預設值 UseDeviceProfile 改為 GCB 建議值 UseCookies 的影響?

[研究]GCB,IIS,「表單驗證Cookie 模式」從預設值 UseDeviceProfile 改為 GCB 建議值 UseCookies後那些套件功能會異常?
https://shaurong.blogspot.com/2025/11/gcbiiscookie-usedeviceprofile-gcb.html
Microsoft.AspNet.FriendlyUrls、ASP.NET Identity、Microsoft.Owin.Security.Cookies、jQuery、Bootstrap.Datepicker、js-cookie、vue 可能異常。

實際檢視某 ASP.NET WebForm 真實系統,該網站cookieless設定值是 UseDeviceProfile。
GCB建議是 UseCookies。
可能會導致某些套件無法正常運作,建議排除。
********************************************************************************

項次 TWGCB-ID 類別 原則設定名稱 說明 設定位置 設定路徑 GCB設定值
10 TWGCB-04-014-0010 設定驗證與授權 表單驗證Cookie 保護模式
  • 這項原則設定決定表單驗證Cookie 之保護模式
  • 表單驗證 Cookie 的保護模式選項如下:
    1. 加密及驗證:同時指定用來協助保護 Cookie 之資料驗證及加密。此選項是使用已設定之資料驗證演算法,如果可供使用且金鑰夠長(48 位元組以上),可使用 3DES 來進行加密
    2. 無:針對僅使用 Cookie 來啟用個人化且安全性需求較弱的站台,指定同時停用加密及驗證。此設定雖耗用最少資源,但不建議使用
    3. 加密:指定 Cookie 使用 3DES或 DES 進行加密,但是不會在Cookie 上執行資料驗證
    4. 驗證:此設定會確認 Cookie 內容在轉送過程中是否未被變更
  • 採用「加密及驗證」保護模式,可確保 Cookie 資料之機密性與完整性,可降低 Session 遭到竊取或偽冒攻擊之風險
  • 預設設定為「加密及驗證」
站台 IIS 管理員\伺服器\站台\網站\管理\設定編輯器\動作\開啟功能\區段\system.web\authentication\forms\protection All

此值預設 All,GCB也建議 All

實際檢視某 ASP.NET WebForm 真實系統,該網站protection設定值是All。
********************************************************************************

項次 TWGCB-ID 類別 原則設定名稱 說明 設定位置 設定路徑 GCB設定值
11 TWGCB-04-014-0011 設定驗證與授權 基本驗證需要SSL ▪ 這項原則設定決定使用基本驗證時,是否須以 SSL 方式進行資料傳輸
▪ 使用基本驗證時,使用者輸入使用名稱與密碼後,密碼以 Base64編碼並傳送至伺服器進行驗證,因未加密,容易遭攻擊者側錄取得帳密資料,故若要使用基本驗證,應搭配 SSL 進行加密傳輸
站台 ▪ 首先確認啟用 https:IIS 管理員\伺服器\站台\網站\動作\編輯站台\繫結
▪ SSL 設定:IIS 管理員\伺服器\站台\網站\IIS\SSL 設定\動作\開啟功能\勾選「需要 SSL」
需要 SSL







SSL Settings | Microsoft Learn (只有英文說明)


預設沒有勾選,GCB建議勾選。
實際檢視某 ASP.NET WebForm 真實系統,該網站僅能用 HTTPS 連線,「需要 SSL」並未勾選。

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

項次 TWGCB-ID 類別 原則設定名稱 說明 設定位置 設定路徑 GCB設定值
12 TWGCB-04-014-0012 設定驗證與授權 credentials元素 ▪ 這項原則設定決定元素是否可存在於設定檔(machine.config 或 web.config)中
▪ 使用表單驗證時,若使用元素,會將帳密資訊儲存在設定檔,基於安全理由,建議從設定檔中移除元素段落
站台 開啟 web.config 與machine.config,檢視是否存在元素段落 移除元素段落

根據之前的 Web.Config 畫面,沒有 credentials 段落;

machine.config 檔案非常多,

C:\>dir /b/s machine.config
C:\Windows\Microsoft.NET\Framework\v4.0.30319\Config\machine.config
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Config\machine.config
C:\Windows\WinSxS\amd64_netfx4-machine_config_b03f5f7f11d50a3a_4.0.15713.0_none_822d83d492934cdb\machine.config
C:\Windows\WinSxS\x86_netfx4-machine_config_b03f5f7f11d50a3a_4.0.15713.0_none_c9dabaaba70f75e1\machine.config

C:\>

敝人查這2個,沒有 credentials 段落
C:\Windows\Microsoft.NET\Framework\v4.0.30319\Config\machine.config
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Config\machine.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)傳輸加密


沒有留言:

張貼留言