2026年1月16日 星期五

[研究]IIS 10 GCB,ASP.NET設定建議,ASP.NET堆疊追蹤,移除或關閉 Trace

[研究]IIS 10 GCB,ASP.NET設定建議,ASP.NET堆疊追蹤,移除或關閉 Trace

2026-01-16

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

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

項次TWGCB-ID類別原則設定名稱說明設定位置設定路徑GCB設定值
17TWGCB-04-014-0017ASP.NET設定建議ASP.NET堆疊追蹤▪這項原則設定決定是否關閉網頁堆疊追蹤模式
▪ASP.NET可透過設定<trace>元素來控制如何被蒐集、儲存及顯示追蹤結果。啟用追蹤後,每個網頁都會要求加入追蹤訊息,這些訊息會附加到頁面輸出或儲存在應用程式追蹤紀錄,建議停用追蹤,以減少惡意人士取得詳細追蹤資訊之風險
▪雖然以retail模式部署Web應用程式時,即會停用追蹤輸出,但基於縱深防禦概念,額外再設定停用追蹤功能,可降低因設定錯誤所造成之影響
▪伺服器
▪站台
▪網頁
▪伺服器級別設定:machine.config與web.config
▪站台級別與每個ASP.NET網站級別個別設定:IIS管理員\伺服器\站台\網站\管理\設定編輯器\動作\開啟功能\區段\system.web\trace\enabled
▪自設定檔與ASP.NET網頁中,移除所有Trace="true"或trace enabled="true"內容
▪False




ChatGPT

情境trace / Stack Tracing 預設值GCB 建議設定
ASP.NET (預設)通常 off / disabled。許多文件指出若不特別設定 <trace enabled="true"> 或 @ Page Trace="true",則 tracing 是關閉的。 (Tenable®)False (也就是關閉 tracing) (Scribd)
開發 / 測試 環境常開啟 <trace enabled="true"> 或在頁面上 Trace="true",以方便除錯與追蹤流程— (視情況)
生產環境 (依 GCB)關閉 (remove trace / trace enabled = false)符合 GCB 建議

「設定位置」、「設定路徑」、「GCB設定值」欄位寫的有些混亂南棟,預設值和GCB 建議值似乎相同。

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

Web.Config 會多了 <trace enabled="false" />

<configuration>
  <system.web>
    <compilation targetFramework="4.8" />
    <httpRuntime targetFramework="4.8" />
        <machineKey validation="HMACSHA256" />
        <trace enabled="false" />
  </system.web>
</configuration>

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

建議

環境建議設定
開發機true(方便除錯,可短期開啟)
測試機false(預設關閉,必要時 truelocalOnly
正式機false(安全必須關閉)

開發機若設定 false,

✔ 適合原因
  • 不影響系統正常運作
  • 符合 GCB 與安全預設值
  • 不會誤曝敏感資訊
⚠️ 代價
  • 無法使用 /trace.axd
  • 無法看到 Page Life Cycle / Control Tree
  • Debug 需改用:
    • Visual Studio Debugger
    • Logging(Serilog / NLog)
    • Debug.WriteLine
********************************************************************************
此值預設 false,ASP.NET 系統預設不啟用 Trace。

(完)

沒有留言:

張貼留言