當ASP以其靈活、簡單、實用、強大的特性迅速風靡全球網站的時候,其本身的一些缺陷、漏洞也正威脅著所有的網站開發人員,繼上一篇中介紹了一些IIS的系統漏洞及ASP的安全問題後,本期中將針對最新的ASP、IIS安全性漏洞進行詳細的探討,請所有的ASP網站開發人員密切關注,提高警惕。
本月初微軟再次被指責對其出品的WEB伺服器軟體的安全問題不加重視。在微軟的流行產品IIS SEVER4.0中被發現存在一種被稱為“非法HTR請求”的缺陷。據微軟稱,此缺陷在特定情況下會導致任意代碼都可以在伺服器端運行。但用發現這一漏洞的Internet安全公司eEye的CEO Firas Bushnaq的話說:這隻是冰山一角而已。Bushnaq說,微軟隱瞞了些情況,比如駭客可以利用這一漏洞對IIS伺服器進行完全的控制,而恰恰許多電子商務網站是基於這套系統的。
下面羅列出了該IIS系統漏洞的詳細情況:
IIS的最新安全性漏洞
受影響的系統:
Internet Information Server 4.0 (IIS4)
Microsoft Windows NT 4.0 SP3 Option Pack 4
Microsoft Windows NT 4.0 SP4 Option Pack 4
Microsoft Windows NT 4.0 SP5 Option Pack 4
公布日期:6.8.1999
microsoft已經證實了這個漏洞,但目前還沒有提供可用的補丁程式。
微軟資訊安全諮詢 (MS99-019):
主題:"非正常的 HTR 請求" 漏洞
發布時間: 6.15.1999
摘要:
微軟已經證實在其發布的WEB伺服器產品Internet Information Server 4.0中存在一個嚴重的系統漏洞,該漏洞導致對於IIS伺服器的“服務拒絕攻擊”,在這種情況下,可能導致任何2進位代碼在伺服器上運行。有關該漏洞的補丁將在近期發布,請所有IIS使用者密切關注。
漏洞介紹:
IIS支援多種需要伺服器端處理的檔案類型,譬如:ASP、ASA、IDC、HTR,當一個WEB使用者從用戶端請求此類檔案時,相應的DLL檔案將自動對其進行處理。然而在ISM.DLL這個負責處理HTR檔案的檔案中被發現存在嚴重的安全性漏洞。(註:HTR檔案本身是用來遠端管理使用者密碼的)
該漏洞包含了一個在ISM.DLL中未經驗證的緩衝,它可能對WEB伺服器的安全運作造成兩方面的威脅。首先,是來自服務拒絕攻擊的威脅,一個來自非正常的對.HTR檔案請求將導致緩衝溢出,從而直接導致IIS崩潰,當這種情況發生時,無須重啟伺服器,但是IIS WEB 伺服器必須重新啟動。另一個威脅更令人頭痛,通過使用一個精心構建過的檔案請求將可以利用標準的緩衝溢出手段導致2進位代碼在伺服器端運行,在這種情況下,什麼都可能發生!該漏洞不包括提供用來系統管理使用者密碼的功能的.HTR檔案。
原理分析:
至少在一個IIS的副檔名中(例如:ASP,IDC,HTR)存在溢出。我們推測溢出將在IIS把完整的URL傳遞給DLL去處理副檔名時發生。如果ISAPI DLL 沒有正確的檢查限制範圍從而導致INETINFO.EXE產生一個溢出,使用者就從可以遠端執行2進位代碼。攻擊方法:向IIS發一個如下的HTTP請求:"GET /[overflow].htr HTTP/1.0",IIS將崩潰。這裡的[overflow]可以是3K長的代碼。
大家可能對.HTR檔案不是很熟悉,其實IIS具有讓NT使用者通過WEB目錄/iisadmpwd/更改自己的口令的能力。而這個功能正是由一組.HTR檔案和ISAPI的一個擴充DLL: ISM.DLL實現的。當一個完整的URL傳遞到ISM.DLL時,由於沒有適當的大小限制的檢查,就會導致溢出產生,從而使得伺服器崩潰。HTR/ISM.DLL ISAPI 是IIS4預設安裝。
解決途徑:
由於目前微軟尚未發布可供使用的補丁程式,因此我們只能做一些應急的防範。
1、將.HTR副檔名從ISAPI DLL 的列表中刪除
在你的NT案頭上,點擊“開始”—>“程式”—>“Windows NT 4.0 Option Pack”—>“Microsoft Internet Information Server”—>“網際網路服務管理員”;雙擊“Internet Information Server”;滑鼠右鍵單擊電腦名稱並選擇“屬性”;在“主屬性”下拉式菜單中選擇“WWW服務”並點擊“編輯”按鈕;選擇“主目錄”檔案夾,並點擊“配置”按鈕,在“應用程式對應”列表框中選中.HTR的相關映射,選擇“刪除”,並確定。
2、安裝微軟提供的補丁程式,請密切關注以下網址
http://www.microsoft.com/security
http://www.microsoft.com/security/products/iis/CheckList.asp
可能一些朋友會感到不解,為什麼我在ASP篇17、18期連續利用兩大篇幅著重討論IIS、ASP的安全性問題,如果你是一個WEB開發人員、ASP程式員,我想你就應該能夠體會我的用意。我們進行網路編程、開發互動性的網站,當然首先是為了發展、建設自身網站,但是這一些都是建立在安全的基礎上,這裡的安全性組件括對自己辛辛苦苦開發的ASP或其他網路應用程式代碼的保護、確保網站伺服器安全正常的運行、確保使用者資訊的安全及認證等等,當今後電子商務成為真正廣泛運作的一種商務運行手段後,安全性更是關鍵之關鍵。我們中的很多朋友在作為ASP程式員的同時又身兼網路系統管理員的職責,因此熟悉系統的運作、及時瞭解系統漏洞、第一時間解決安全性問題就顯得十分重要和必要,因此在本文的結尾,作者將整理的一些關於NT、IIS系統配置的安全性建議羅列出來,希望能給大家一些協助。
1、使用最新版本的Microsoft Internet Information Server4.0,並安裝NT最新版本的Service Pack5,伺服器的檔案系統不要使用FAT,應該使用NTFS。
2、把IIS中的sample、scripts、iisadmin和msadc等web目錄設定為禁止匿名訪問並限制IP地址。在微軟還沒有提供補丁之前,把ism.dll有關的應用程式對應刪除。
3、有條件的話就採用防火牆機制,最簡單的如web服務開在前台,目錄放在後台,如果能一個服務一台機當然最好。
4、Web目錄,CGI目錄,scripts目錄和winnt目錄等重要目錄要用NTFS的特性設定詳細的安全許可權,包含註冊表資訊的Winnt目錄只允許管理員完全控制,一般的使用者唯讀許可權也不要給。凡是與系統有關的重要檔案,除了Administrator,其它帳號都應該設定為唯讀許可權,而不是everyone/完全控制 。
5、只開你需要的服務,block掉所有不應該開啟的連接埠,如NetBios連接埠139,這是一個典型的危險連接埠;怎樣禁止這些連接埠?除了使用防火牆外,NT的Tcp/IP設定裡面也提供了這種功能:開啟控制台-網路-協議-TCP/IP-屬性-進階-啟用安全機制-配置,這裡面提供了TCP和UDP連接埠的限制和IP協議的限制功能。
6、管理員的帳號要設定得複雜一些,建議加入特殊字元。
7、把FTP,Telnet的TCP連接埠改為非標準連接埠,通常我都是設定到10000~65000的範圍
8、刪除可以刪除的所有共用,包括印表機共用和隱藏的共用如ICP$,Admin$等,微軟說這些特殊共用資源很重要,大多數情況下不能刪除,而實際上放在Internet上的機器大多數不需要共用。
IPC$: 適用於遠端管理電腦和查看共用資源,在網上最好不要用
Admin$: 實際上就是 c:\winnt,也沒有必要共用
C$: 登入狀態Admin和Backup-operator的使用者可以用\\電腦名稱\C$的方式訪問C盤,雖然僅限於區域網路,但是遠程駭客也有辦法偽裝成區域網路的登入使用者,所以都應該關掉。
Print$: 這是放印表機驅動程式的目錄,與上面的一樣也是個很危險的入口。
Netlogon: 這是處理域登入請求的共用。如果你的機器為主網域控制站,域內有其它機器要登入進來,就不要刪除它,否則照樣可以刪除。
如何關閉這些共用?用“伺服器管理員”—>“共用目錄”—>“停止分享”
9、將ASP的目錄集中管理,ASP的程式目錄設定詳盡的存取權限,一般建議不要使用“讀”許可權。
10、把winnt下的sam._檔案改名,實踐證明這個可能泄露密碼的檔案可以刪除不要。
11、對於已知的NT安全性漏洞,都應該在自己的機器上做測試檢查。並及時安裝補丁程式。
12、有必要的情況下採用IIS4.0提供的SSL安全通訊機制來防止資料在網上被截獲。