1、- 1 -IIS網站的安全性管理網站的安全性管理羅英嘉2007年4月- 2 -全球資訊網的威脅全球資訊網的安全性問題來自三個層面:1. 用戶端使用安全性問題2. 網站安全性問題3. 網頁內容傳輸安全性問題- 3 -網頁應用程式網站伺服器(Web Server)作業系統Operating System網路環境- 4 -作業系統安全性原則 若無安全的作業環境,即無法提供安全性的網站 實體安全 (Physical Security) 採用高安全性的範本 即時更新作業系統的安全性修補檔 (自動更新、WSUS) 強制密碼原則 (使用嚴謹不易猜測的密碼) 變更administrator名稱並設嚴謹密碼 停
2、用或移除不必要的帳戶(guest, service account) 定期執行MBSA掃瞄是否存在弱點 關閉不必要及有安全疑慮的服務 (最好是專屬的網站伺服器) File and print share for Microsoft network NetBIOS Over TCP/IP CIFS 啟用並設定稽核日誌功能並定期檢視- 5 -網站安全性管理IIS 網站安全性管理策略與技術關閉不用服務防火牆入侵偵測應用程式鎖定原則程式員定期資安教育應用程式隔離原則SSL/TLS稽核記錄存取記錄漏洞稽核- 6 -網站存取控制的重要性 網站存取控制是一種限制網站資源存取的處理方式及程序,用以保護網站資源
3、不會被非經授權者存取或授權存取者作不當的存取。 存取控制最高原則:最低權限賦予原則存取控制最高原則:最低權限賦予原則(least privilege) 網頁資源只賦予那些被授權存取的使用者為了完成其允許的作業所需要的最低權限即可。- 7 -IIS 存取控制機制- 8 -使用IP位址來控制存取 IIS可針對目錄或檔案資源以下列方式控制存取 單一電腦 電腦群組 網域名稱 方式: 白名單 適合企業網站 黑名單 適合禁止特定機器 適用環境:Intranet, Extranet 伺服器 問題:IP 位址易於假造,無法確保存取控制的目的- 9 -利用網域來控制存取 以網域名稱來控制存取雖簡單直接,但需作反
4、向對應,影響效能- 10 -網頁權限 (Web Permission)讀取使用者可瀏覽檔案內容及屬性(預設為選取) 寫入使用者可變更檔案內容及屬性指令碼來源存取允許使用者可存取檔案的原始程式碼;如 ASP 應用程式中的指令碼。如果已指派讀取或寫入使用權限,則可讀取或寫入原始程式碼。 瀏覽目錄允許使用者檢視目錄下的檔案清單記錄查閱每次造訪資源都會產生記錄項目編製這個資源的索引允許索引服務編製資源的索引執行無:避免執行任何程式或指令碼。 僅指令碼:將應用程式對應到一個指令碼引擎來進行執行指令碼及執行檔:可執行任何可執行檔- 11 -網頁權限使用原則 遵循最低權限賦予原則 啟用寫入、指令碼來源存取、
5、瀏覽目錄和指令碼及執行檔四個網頁權限易形成可利用的弱點而遭受攻擊,非有必要不要啟用。- 12 -共用網頁權限和NTFS使用權限 IIS網頁權限的權限等級通常不夠細分化,只針對網頁物件。 基於更高安全性考量,需搭配NTFS檔案系統的使用權限,才足夠建構一個較安全的網站存取環境 二者合併使用時,最後的有效權限為二者最嚴謹的權限 (取二者允許權限的交集關係)- 13 -不同網頁程式的建議存取權限網頁檔案類型網頁權限NTFS 權限CGI 程式(.exe, .dll, .cmd, .pl) 、ISAPI程式讀取指令碼及執行檔讀取及執行指令檔 (.asp .aspx、php、jsp)讀取僅指令碼讀取引入檔
6、 (.inc, .shtm, .shtml)讀取僅指令碼讀取靜態網頁 (.txt, .gif, .jpg, .html)讀取讀取- 14 -設定網頁目錄與檔案權限- 15 -IIS 身份驗證方法 匿名驗證 基本驗證 摘要式驗證 整合的 Windows 驗證 憑證驗證 - 16 -使用IIS驗證方法 預設啟用匿名及整合的 Windows 驗證。 只有在下列情況下,Web 伺服器才可使用基本、摘要式或整合的 Windows 驗證方法: 匿名存取 並沒有被選取。 匿名存取失敗或檔案及目錄的存取受到 NTFS 權限的限制。 摘要式及整合的 Windows 驗證不能用於 FTP 站台 如果 .NET p
7、assport被核選,則無法使用其它驗證方法 驗證方法的使用優先順序: 匿名 整合的 Windows 驗證 摘要式驗證 基本驗證 - 17 -驗證方法驗證方法伺服器需求伺服器需求用戶端需求用戶端需求說明說明匿名驗證匿名帳戶:IUSR_computername沒有限制,適用各種瀏覽器一般Internet的網站需允許匿名存取、Intranet、ExtraNet的網站通常會禁止匿名存取基本驗證有效的機器或網域使用者帳戶並具備登入本機的權利沒有限制,適用各種流覽器明碼傳送驗證,效率佳、相容性最佳,安全性差需搭配SSL才具安全性摘要式驗證 需Active Directory環境下使用IIS 5需設定可回
8、復的密碼IE 5 以上的流覽器使用雜錯演算法加密傳送,安全性較高,支援代理驗證整合的 Windows 驗證有效的機器或網域使用者帳戶IE 2 以上的流覽器採用挑戰/回應演算法驗證,高安全性,但NTLM無法支援代理驗證IIS 驗證方法比較- 18 -IIS 驗證功能比較需要Windows 帳戶?YYYYNN支援委派驗證(delegation)?*YNNYN*N密碼明文傳送?YNNNNN支援非IE瀏覽器?YYNNYY易通過防火牆?YYNNYYSeamless user experience?NNYYYY- 19 -設定身份驗證方法 套用順序 匿名 整合式 摘要式 基本- 20 -IIS 驗證方法的
9、安全性等級驗證方法驗證方法安全性等級安全性等級匿名存取(Anonymous)無基本驗證 (Basic)*摘要式驗證(Digest)*.NET Passport驗證*整合式(Integrated)*基本驗證+SSL*用戶端憑證*- 21 -實務問題 若需建構一個高度安全性的商業網站,所以需要執行身份驗證 網際網路上也不適合強制用戶端應使用何種瀏覽器 管理員該採用何種驗證方法?- 22 -SSL (Secure Sockets Layer ) 源自1994年netscape,架構在TCP 之上的安全性通訊協定 SSL為目前最廣泛應用的網頁傳輸安全性協定,即HTTP+SSL=HTTPS SSL支援的
10、安全性服務: 驗證 (Authentication) :使用RSA、DSS和X.509憑證等公開金鑰加密技術 傳輸的機密性 (Confidentiality):使用IDEA、3DES、RC4 對稱性加密技術 完整性(Integrity):使用MD5、SHA等雜湊為基礎的訊息確認碼 (MAC) 網站啟用SSL 並無法提供不可否認性證明- 23 -SSL 握手協定流程Client_helloCertificateCertificate_verifyClient_key_exchangeFinishChange_cipher_specServer_helloServer_key_exchangeCe
11、rtificateCertificate_requestServer_hello_doneChange_cipher_specFinish用戶端用戶端伺服端伺服端第一階段:建立安全機制包括協定版本、會談識別碼、加密套件(包括金鑰交換或產生方法)、壓縮方法,起始亂數第二階段:伺服器確認和金鑰交換伺服器送出憑證、金鑰交換訊息或RSA公開金鑰、請求憑證訊息,最後伺服器送出“hello message”的結束訊息第三階段:用戶端認證和金鑰交換用戶端可能被要求送出憑證,用戶送出金鑰交換或產生之前置之主金鑰(以伺服器之RSA公開金鑰加密),用戶可能送出憑證驗證第四階段:完成雙方產生主金鑰,變更加密套件,完
12、成握手協定- 24 -SSL實作步驟1.IIS管理員向憑證管理中心請求SSL伺服憑證利用網頁伺服器憑證精靈建立網站使用的憑證請求檔利用產生出來的憑證請求檔向CA申請下載憑證將申請下來的憑證安裝在IIS網站2.在需要安全通訊的網站、虛擬或真實目錄或個別網頁檔上啟動使用安全通道(SSL)大部份的情況均會以目錄為啟動SSL的對象考慮是否啟用128位元加密連線3.用戶端必需利用https 協定存取網頁- 25 - 26 -用戶端使用SSL 連線- 27 -備份SSL憑證與金鑰 管理員必需備份SSL憑證與金鑰 使用伺服器憑證精靈程式 使用憑證工具- 28 -用戶端憑證 利用憑證取代傳統的密碼系統來進行驗
13、證 一種高度安全性的網頁驗證方法 適用在需要高度安全性需求的商業網站 使用者需要申請用戶端憑證- 29 -使用用戶端憑證用戶端憑證對應位置 對應方法Active DirectoryIIS一對一 (1-to-1)多對一 (many-to-1)- 30 -IIS 對應- 31 -IIS 對應 (1-to-1)- 32 -網站應用程式安全性管理 只啟用必要的網頁類型、技術與功能 移除不必要的應用程式對應 選擇工作者處理序隔離模式 程式員定期接受資安教育,撰寫安全程式碼- 33 -管理IIS MIME類型清單- 34 -移除不必要的應用程式對應如果不使用請移除對應對應的副檔名重設網頁密碼.htrInt
14、ernet Database Connector .idcServer-side Includes.stm, .shtm, and .shtmlInternet Printing.printerIndex Server.htw, .ida and .idq- 35 -網頁服務延伸(Web Service Extensions) IIS 6利用網頁服務延伸支援動態網頁內容 只允許已使用的網頁服務延伸不要啟用所有未知的CGI擴充程式與所有未知的ISAPI擴充程式二個WSE- 36 -使用工作者處理序隔離模式IIS 6支援二種應用程式隔離模式1.工作者處理序隔離模式預設模式使應用程式在不同的應用程式
15、集區處理保護應用程式集區中的應用程式可以免於受到其它應用程式集區錯誤的影響2. IIS 5.0 隔離模式提供老舊應用程式相容性的執行模式建議採用工作者處理序隔離模式,因提供較佳的穩定性與安全性- 37 -建立應用程式集區1. - 38 -替應用程式指定不同的應用程式集區替應用程式指定不同的應用程式集區- 39 -設定安全的工作處理序身份識別決定在應用程式集區內的身份識別- 40 - 41 -其它IIS安全性建議 備份Metabase與網頁應用程式 IIS 記錄與稽核 使用虛擬目錄取代真實目錄 利用群組原則控制IIS的安裝 選擇安全性的遠端管理工具與方式- 42 -備份 IIS Metabase
16、 Metabase維護IIS大部份的組態 為了避免不當的組態設定或刪除、毀損的意外,管理員需定期或重大變更後備份Metabase- 43 -IIS 記錄 IIS 記錄連線使用者在網站的活動行為,可用來作為網站與網頁使用量分析及安全性查核工作。- 44 -稽核Metabase 條件:Windows Server 2003 SP1 稽核物件存取 執行 iiscnfg.vbs指令啟用稽核 cscript.exe iiscnfg.vbs/enableAudit/r 檢視安全性記錄檔- 45 -利用群組原則控制IIS的安裝- 46 -選擇安全性的遠端管理工具與方式l網頁管理工具 (HTTPS)l文字模式
17、設定管理l直接編輯 metabase (%systemroot%system32inetsrvmetabase.xml或使用Metabase Explorer)l命令列指令 (%systemrootsystem32iis*)l自行撰寫程式- 47 -IIS 安全管理實務指引1.即時更新作業系統與IIS的安全性修正程式2.關閉不使用的服務3.符合最低權限賦予原則的存取控制方法IP位址網頁權限NTFS權限4.採用較嚴謹身份驗證方法5.啟動IIS日誌功能,作為安全性查核依據- 48 -IIS 安全管理指引(續)6.移除不必要的應用程式對應、MIME檔案類型與網頁延伸服務7.傳送私密性質網頁需使用SSL安全協定8.使用工作者處理序隔離模式,設定應用程式集區的的身份識別的特權不能超過- 49 - 50 - 2007 Microsoft Corporation. All rights reserved.This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.