-1-IIS網站的安全性管理羅英嘉2007年4月-2-全球資訊網的威脅伺服器用戶端瀏覽器網際網路入侵竊取詐騙破壞阻斷服務駭客有心人士全球資訊網的安全性問題來自三個層面:1.用戶端使用安全性問題2.網站安全性問題3.網頁內容傳輸安全性問題-3-網站安全性的保護層面網頁應用程式網站伺服器(WebServer)作業系統OperatingSystem網路環境-4-作業系統安全性原則•若無安全的作業環境,即無法提供安全性的網站–實體安全(PhysicalSecurity)–採用高安全性的範本–即時更新作業系統的安全性修補檔(自動更新、WSUS)–強制密碼原則(使用嚴謹不易猜測的密碼)–變更administrator名稱並設嚴謹密碼–停用或移除不必要的帳戶(guest,serviceaccount)–定期執行MBSA掃瞄是否存在弱點–關閉不必要及有安全疑慮的服務(最好是專屬的網站伺服器)•FileandprintshareforMicrosoftnetwork•NetBIOSOverTCP/IP•CIFS–啟用並設定稽核日誌功能並定期檢視-5-網站安全性管理IIS網站安全性管理策略與技術資源存取控制IP位址/網域名稱網頁權限NTFS權限身份驗證提升攻擊難度關閉不用服務防火牆入侵偵測網頁應用程式安全應用程式鎖定原則程式員定期資安教育應用程式隔離原則網頁傳輸安全SSL/TLS備份備份網頁資料備份網站組態監控稽核記錄存取記錄漏洞稽核-6-網站存取控制的重要性•網站存取控制是一種限制網站資源存取的處理方式及程序,用以保護網站資源不會被非經授權者存取或授權存取者作不當的存取。•存取控制最高原則:最低權限賦予原則(leastprivilege)–網頁資源只賦予那些被授權存取的使用者為了完成其允許的作業所需要的最低權限即可。-7-IIS存取控制機制網站收到請求IP位址是否允許使用者身份是否允許IIS目錄檔案權限是否允許NTFS目錄檔案權限是否允許授予存取權拒絕取權-8-使用IP位址來控制存取•IIS可針對目錄或檔案資源以下列方式控制存取–單一電腦–電腦群組–網域名稱•方式:–白名單•適合企業網站–黑名單•適合禁止特定機器•適用環境:Intranet,Extranet伺服器•問題:IP位址易於假造,無法確保存取控制的目的-9-利用網域來控制存取•以網域名稱來控制存取雖簡單直接,但需作反向對應,影響效能-10-網頁權限(WebPermission)讀取使用者可瀏覽檔案內容及屬性(預設為選取)寫入使用者可變更檔案內容及屬性指令碼來源存取允許使用者可存取檔案的原始程式碼;如ASP應用程式中的指令碼。如果已指派「讀取」或「寫入」使用權限,則可讀取或寫入原始程式碼。瀏覽目錄允許使用者檢視目錄下的檔案清單記錄查閱每次造訪資源都會產生記錄項目編製這個資源的索引允許「索引服務」編製資源的索引執行無:避免執行任何程式或指令碼。僅指令碼:將應用程式對應到一個指令碼引擎來進行執行指令碼及執行檔:可執行任何可執行檔-11-網頁權限使用原則•遵循最低權限賦予原則•啟用『寫入』、『指令碼來源存取』、『瀏覽目錄』和『指令碼及執行檔』四個網頁權限易形成可利用的弱點而遭受攻擊,非有必要不要啟用。-12-共用網頁權限和NTFS使用權限•IIS網頁權限的權限等級通常不夠細分化,只針對網頁物件。•基於更高安全性考量,需搭配NTFS檔案系統的使用權限,才足夠建構一個較安全的網站存取環境•二者合併使用時,最後的有效權限為二者最嚴謹的權限(取二者允許權限的交集關係)-13-不同網頁程式的建議存取權限網頁檔案類型網頁權限NTFS權限CGI程式(.exe,.dll,.cmd,.pl)、ISAPI程式讀取指令碼及執行檔讀取及執行指令檔(.asp.aspx、php、jsp)讀取僅指令碼讀取引入檔(.inc,.shtm,.shtml)讀取僅指令碼讀取靜態網頁(.txt,.gif,.jpg,.html)讀取讀取-14-設定網頁目錄與檔案權限-15-IIS身份驗證方法•匿名驗證•基本驗證•摘要式驗證•整合的Windows驗證•憑證驗證-16-使用IIS驗證方法•預設啟用匿名及整合的Windows驗證。•只有在下列情況下,Web伺服器才可使用「基本」、「摘要式」或整合的Windows驗證方法:–[匿名存取]並沒有被選取。–匿名存取失敗或檔案及目錄的存取受到NTFS權限的限制。•摘要式及整合的Windows驗證不能用於FTP站台•如果.NETpassport被核選,則無法使用其它驗證方法•驗證方法的使用優先順序:–匿名–整合的Windows驗證–摘要式驗證–基本驗證-17-驗證方法伺服器需求用戶端需求說明匿名驗證匿名帳戶:IUSR_computername沒有限制,適用各種瀏覽器一般Internet的網站需允許匿名存取、Intranet、ExtraNet的網站通常會禁止匿名存取基本驗證有效的機器或網域使用者帳戶並具備「登入本機」的權利沒有限制,適用各種流覽器明碼傳送驗證,效率佳、相容性最佳,安全性差需搭配SSL才具安全性摘要式驗證需ActiveDirectory環境下使用IIS5需設定可回復的密碼IE5以上的流覽器使用雜錯演算法加密傳送,安全性較高,支援代理驗證整合的Windows驗證有效的機器或網域使用者帳戶IE2以上的流覽器採用挑戰/回應演算法驗證,高安全性,但NTLM無法支援代理驗證IIS驗證方法比較-18-IIS驗證功能比較需要Windows帳戶?YYYYNN支援委派驗證(delegation)?*YNNYN**N密碼明文傳送?YNNNNN支援非IE瀏覽器?YYNNYY易通過防火牆?YYNNYYSeamlessuserexperience?NNYYYY*Windows2003Server的Kerberos協定可以支援委派**某些憑證對應是可委派,但大部份均不支援-19-設定身份驗證方法•套用順序–匿名–整合式–摘要式–基本-20-IIS驗證方法的安全性等級驗證方法安全性等級匿名存取(Anonymous)無基本驗證(Basic)*摘要式驗證(Digest)**.NETPassport驗證***整合式(Integrated)****基本驗證+SSL****用戶端憑證*****-21-實務問題•若需建構一個高度安全性的商業網站,所以需要執行身份驗證•網際網路上也不適合強制用戶端應使用何種瀏覽器•管理員該採用何種驗證方法?-22-SSL(SecureSocketsLayer)•源自1994年netscape,架構在TCP之上的安全性通訊協定•SSL為目前最廣泛應用的網頁傳輸安全性協定,即HTTP+SSL=HTTPS•SSL支援的安全性服務:–驗證(Authentication):使用RSA、DSS和X.509憑證等公開金鑰加密技術–傳輸的機密性(Confidentiality):使用IDEA、3DES、RC4對稱性加密技術–完整性(Integrity):使用MD5、SHA等雜湊為基礎的訊息確認碼(MAC)•網站啟用SSL並無法提供「不可否認性」證明-23-SSL握手協定流程用戶端伺服端第一階段:建立安全機制包括協定版本、會談識別碼、加密套件(包括金鑰交換或產生方法)、壓縮方法,起始亂數第二階段:伺服器確認和金鑰交換伺服器送出憑證、金鑰交換訊息或RSA公開金鑰、請求憑證訊息,最後伺服器送出“hellomessage”的結束訊息第三階段:用戶端認證和金鑰交換用戶端可能被要求送出憑證,用戶送出金鑰交換或產生之前置之主金鑰(以伺服器之RSA公開金鑰加密),用戶可能送出憑證驗證第四階段:完成雙方產生主金鑰,變更加密套件,完成握手協定-24-SSL實作步驟1.IIS管理員向憑證管理中心請求SSL伺服憑證利用「網頁伺服器憑證精靈」建立網站使用的憑證請求檔利用產生出來的憑證請求檔向CA申請下載憑證將申請下來的憑證安裝在IIS網站2.在需要安全通訊的網站、虛擬或真實目錄或個別網頁檔上啟動「使用安全通道(SSL)」大部份的情況均會以目錄為啟動SSL的對象考慮是否啟用128位元加密連線3.用戶端必需利用https協定存取網頁-25-※使用SSL會影響到效率,故通常建議只有必要的目錄才設定啟用SSL-26-用戶端使用SSL連線HTTPHTTPSSSL憑證-27-備份SSL憑證與金鑰•管理員必需備份SSL憑證與金鑰–使用伺服器憑證精靈程式–使用「憑證」工具-28-用戶端憑證•利用憑證取代傳統的密碼系統來進行驗證•一種高度安全性的網頁驗證方法•適用在需要高度安全性需求的商業網站•使用者需要申請用戶端憑證-29-使用用戶端憑證用戶端憑證對應位置對應方法ActiveDirectoryIIS一對一(1-to-1)多對一(many-to-1)-30-IIS對應取消「啟用Windows目錄服務對應程式」編輯IIS對應-31-IIS對應(1-to-1)-32-網站應用程式安全性管理•只啟用必要的網頁類型、技術與功能•移除不必要的應用程式對應•選擇工作者處理序隔離模式•程式員定期接受資安教育,撰寫安全程式碼-33-管理IISMIME類型清單•原則:關閉不使用的檔案類型、應用程式功能與技術–可被攻擊的層面就越小、提升攻擊困難度•IIS6只接受副檔名有登錄在MIME類型清單的檔案•移除不使用的檔案類型•管理MIME類型清單–伺服器層級–網站層級–目錄層級建議:取消伺服器層級的所有MIME類型,只於網站/目錄層級加入必要的MIME類型-34-移除不必要的應用程式對應如果不使用請移除對應對應的副檔名重設網頁密碼.htrInternetDatabaseConnector.idcServer-sideIncludes.stm,.shtm,and.shtmlInternetPrinting.printerIndexServer.htw,.idaand.idq-35-網頁服務延伸(WebServiceExtensions)•IIS6利用網頁服務延伸支援動態網頁內容•只允許已使用的網頁服務延伸•不要啟用『所有未知的CGI擴充程式』與『所有未知的ISAPI擴充程式』二個WSE-36-使用工作者處理序隔離模式•IIS6支援二種應用程式隔離模式1.工作者處理序隔離模式•預設模式•使應用程式在不同的「應用程式集區」處理•保護應用程式集區中的應用程式可以免於受到其它應用程式集區錯誤的影響2.IIS5.0隔離模式•提供老舊應用程式相容性的執行模式建議採用工作者處理序隔離模式,因提供較佳的穩定性與安全性-37-建立應用程式集區2.輸入識別碼在某些情況,您可能需要讓某個特定應用程式擁有自已獨立的執行空間與環境,所以您需要替它建立獨立的應用程式集區1.「應用程式集區新增應用程式集區」-38-替應用程式指定不同的應用程式集區-39-設定安全的工作處理序身份識別決定在應用程式集區內的身份識別•內建身份識別–本機系統(LocalSystem)-權限最高,允許存取整部系統,應避免設定此身份識別–網路服務(NetworkService)-權限低,可以存取網路上的資源(預設)–本機服務(LocalService)-權限最低,只能存取本機資源,適用於不需存取其它伺服服務的應用程式•自訂身份識別–必須加入到IIS_WPG群組-40-網頁程式撰寫的基本安全原則•不要將使用者及密碼資料直接寫到網頁內•不要將隱藏的輸入欄位私密性資料儲存在網頁或cookies•必需完整確認所有資料輸入的型態檢查、長度檢查並設計正確的查詢方法以降低SQLInjection類型的攻擊威脅•留意所有資料長度的使用檢查以避免不當的程式碼導致緩衝區溢位的攻擊-41-其它IIS安全性建議•備份Metabase與網頁應用程式•IIS記錄與稽核•使用虛擬目錄取代真實目錄•利用群組原則控制IIS的安裝•選擇安全性的遠端管理工具與方式-42-備份IISMetabase•Metabase維護IIS大部份的組態•為了避免不當的組態設定或刪除、毀損的意外,管理員需定期或重大變更後備份Metabase(1)選取備份選