IIS 網頁伺服器的安全設定 (IIS Security Configuration, GCB & CIS)
2020-10-10
本次的筆記源自 Pluralsight - Securing IIS Websites、Pluralsight - Auditing IIS Web Servers for Security and Best Practices課程心得、CSI Bnechmark IIS、技服中心 Government Configuration Baseline 的實務設定及相關文章的綜合整理:關於 IIS 安全實務設定建議。
良好的 IIS 安全設定可以和 Application Security 互相輝映,同時也可以補充不足,本次筆記綜合課程的內容,並反思個人在 IIS 設定上的心得 😄
說明
2022-02-27 加入來自 CSI Benchmark 以及參考技服中心 GCB,
減少被攻擊的面積 (Attack Surface)
自主探測伺服器的資訊 🕵️♂️
Http Headers Scan
SSL Server Test
DNS Lookup
DNS Query - Whois
Port scan - Nmap
Passive Web Site Analysis - Wappalyzer
隱藏伺服器資訊 💡
- Server
- MVC Version
- Powered-By
<system.web>
<httpRuntime targetFramework="*" enableVersionHeader="false" />
</system.web>
<system.webServer>
<httpProtocol>
<customHeaders>
<!-- Hide Server Information -->
<remove name="X-Powered-By" />
<remove name="X-AspNetMvc-Version" />
</customHeaders>
</httpProtocol>
</system.webServer>
設定為 Deployment Retail
設定以後會主動啟用 customErrros
並且將 compilation debug
設定為關閉,此外 trace
也會被關閉。
<system.web>
<deployment retail="true" />
</system.web>
停用不安全的 Encryption 💡
可以藉由修改機碼 (Registry) 或者使用 IISCrypto 來關閉傳輸層不安全的加密法。
Alan Tsai - 每個Server都應該做的資安防護 - 使用IIS Crypto一鍵設定該啟用和停用的SChannel
Remove Unnecessary Modules / Featrues 💡
Secuire Cookies & Secure Sessions
於 Web.config 中設定,藉由調整 Http Header 來避免 SesssionID 被竊取的問題。
ASP.NET Web.config & Http Headers 安全設定大全 | sdwh.dev
Request Filter (要求篩選)
IIS 要求篩選的設定筆記 (Requests Filtering)
參考資料
Windows Server 101: Hardening IIS via Security Control Configuration
IIS Security: How to Harden a Windows IIS Web Server in 10 Steps