文章目錄
- 6.7 IIS伺服器安全技術方案
- 6.7.1 實戰Unicode漏洞
- 6.7.2 IIS CGI解譯錯誤漏洞
- 6.7.3 .printer緩衝區漏洞
- 6.7.4 IIS伺服器的安全配置
6.7 IIS伺服器安全技術方案
由於ASP的方便易用,越來越多的網站背景程式都使用ASP指令碼語言。但是,由於ASP本身存在一些安全性漏洞,稍不小心就會給駭客提供可乘之機。事實上,安全不僅是網管的事,程式開發人員也必須在某些安全細節上注意,養成良好的安全習慣,否則會給自己的網站帶來巨大的安全隱患。目前,大多數網站上的ASP程式有這樣或那樣的安全性漏洞,但如果編寫程式的時候稍加註意,還是可以避免的。在本節中對IIS伺服器的漏洞進行詳細分析與解決。
6.7.1 實戰Unicode漏洞
Unicode是如今最熱門的漏洞之一,也是經常被駭客們利用的漏洞之一。如果能知道駭客所採用的入侵手段,就可以進行有效防禦。下面筆者就介紹一下駭客是如何利用該漏洞進行入侵的,通過對該漏洞的分析,來找到防禦的方法。
1.方案分析
在Unicode字元解碼時,IIS 5.0/6.0存在一個安全性漏洞,導致使用者可以遠程通過IIS執行任意命令。當使用者使用IIS開啟檔案時,如果該檔案名稱包含Unicode字元,系統會對其進行解碼。如果使用者提供一些特殊的編碼,將導致IIS錯誤地開啟或者執行某些Web根目錄以外的檔案。未經授權的使用者可能會利用IUSR_machinename帳號的上下文空間訪問任何已知的檔案。該帳號在預設情況下屬於Everyone和Users組的成員,因此任何與Web根目錄在同一邏輯磁碟機上的能被這些使用者組訪問的檔案都可能被刪除、修改或者執行。通過此漏洞,使用者可查看檔案內容、建立檔案夾、刪除檔案、複製檔案且改名、顯示目標主機當前的環境變數、把某個檔案夾內的全部檔案一次性複製到另外的檔案夾去、把某個檔案夾移動到指定的目錄和顯示某一路徑下相同檔案類型的檔案內容等等。
Unicode漏洞不僅影響中文Windows IIS 6.0+SP6,還影響中文Windows 2000+IIS 5.0、中文Windows 2000+IIS 5.0+SP1。
2.實施過程
如果駭客利用Unicode漏洞進入目標主機,並執行過FTP命令,例如到某個FTP網站下載過檔案,就會被記錄下來,使用者不要認為駭客刪除那個檔案或給檔案改名就可以逃脫入侵的證據。在目標主機的winnt/system32/logfiles/msftpsvc1目錄下,可以找到運行FTP的日誌,如果駭客執行過FTP命令,在記錄檔裡可以看到類似下面的記錄(其中126.0.0.1為日誌中記載的入侵者的IP):
l 11:49:19 126.0.0.1 [2]USER wr 331
l 11:49:19 126.0.0.1 [2]PASS – 230
l 11:49:19 126.0.0.1 [2]sent /aa.txt 226
l 11:49:19 126.0.0.1 [2]QUIT – 226
如果網路記憶體在Unicode漏洞,可採取以下4種解決方案。
(1)限制網路使用者訪問和調用CMD命令的許可權。
(2)在SCRIPTS、MSADC目錄沒必要使用的情況下,刪除該檔案夾或者改名。
(3)安裝Windows NT系統時不要使用預設WINNT路徑,可以改名為其他檔案夾。例如:C:\mywindowsnt。
(4)使用者可從如下地址下載Microsoft提供的補丁:
l IIS 6.0的補丁地址
http://www.microsoft.com/ntserve ... q269862/default.asp。
l IIS 5.0補丁地址
http://www.microsoft.com/windows ... q269862/default.asp。
3.補充說明
要檢測網路中某IP段的Unicode漏洞情況,可使用如Red.exe、SuperScan、RangeScan掃描器、Unicode掃描程式Uni2.pl及流光Fluxay 6.7和SSS等掃描軟體來檢測。
6.7.2 IIS CGI解譯錯誤漏洞
IIS CG也是經常被駭客們利用的漏洞之一。如果伺服器存在這個漏洞不及時修補的話,該漏洞有可能將會被入侵者利用,加大伺服器被攻擊的指數。
1.方案分析
IIS在載入可執行CGI程式時,會進行兩次解碼。第一次解碼是對CGI檔案名稱進行Http解碼,然後判斷此檔案名稱是否為可執行檔,如檢查尾碼名是否為“.exe”或“.com”等。在檔案名稱檢查通過之後,IIS會進行第二次解碼。正常情況下,應該只對該CGI的參數進行解碼,然而,當漏洞被攻擊後,IIS會錯誤地將已經解碼的CGI檔案名稱和CGI參數一起進行解碼。這樣,CGI檔案名稱就被錯誤地解碼兩次。通過精心構造CGI檔案名稱,攻擊者可以繞過IIS對檔案名稱所做的安全檢查。在某些條件下,攻擊者可以執行任意系統命令。
2.實施過程
為了避免發生IIS CGI解譯錯誤漏洞和防止此漏洞對系統安全造成不利影響,使用者可以安裝漏洞補丁。可從如下地址下載Microsoft提供的補丁:
http://www.microsoft.com/Downloads/Release.asp?ReleaseID=29787。
3.補充說明
該漏洞對IIS 6.0/5.0(SP6/SP6a沒有安裝)遠程本地均適用,使用者可通過SSS掃描軟體進行測試。
6.7.3 .printer緩衝區漏洞
.printer緩衝區漏洞也是經常被駭客們利用的漏洞之一,下面介紹該漏洞的危害以及解決方案。
1.方案分析
此漏洞僅存在於運行IIS 5.0的Windows 2000伺服器中。由於IIS 5.0的列印ISAPI(Internet Server Application Programming Interface)擴充介面建立了.printer副檔名到Msw3prt.dll的映射關係(預設情況下該映射也存在),當遠端使用者提交對.printer的URL請求時,IIS5.0會調用Msw3prt.dll解釋該請求,再加上Msw3prt.dll缺乏足夠的緩衝區邊界檢查,遠端使用者可以提交一個精心構造的針對.printer的URL請求,其“Host:”域包含大約420B的資料,此時在Msw3prt.dll中發生典型的緩衝區溢位,潛在地允許執行任意代碼。在溢出發生後,Web服務會停止使用者響應,而Windows 2000將接著自動重啟它,進而使得系統管理員很難檢查到已發生的攻擊。
2.實施過程
為了避免發生.printer緩衝區漏洞和防止此漏洞對系統安全造成不利影響,可通過安裝Microsoft漏洞補丁程式,為http://www.microsoft.com/Downloads/...ReleaseID=29321。
3.補充說明
針對.Printer漏洞的檢測軟體很多,例如easyscan(http://www.netguard.com.cn)、x-scaner(http://www.xfocus.org )和SSS掃描軟體等。
6.7.4 IIS伺服器的安全配置
ASP網站能夠安全穩定的運行,依託高效穩定的ASP檔案的編譯和執行環境,IIS伺服器作為ASP指令碼的編譯和執行載體,其安全性的好壞,直接關係到整個ASP網站安全。下面將對如何?IIS伺服器的安全配置做具體方案分析和描述。
1.方案分析
對IIS伺服器進行安全配置,可以從以下幾方面進行方案分析。由於IIS伺服器可以執行多種伺服器指令碼,為了提高網站的安全性,可以對所執行的指令碼進行篩選,也就是說篩選器中只保留與ASP指令碼有關的項。同時,伺服器應該啟用身分識別驗證,並且最好不使用IIS伺服器中預設的網站目錄,而是自已建立新目錄。以上只是對IIS伺服器進行安全配置的基本方案,在實際應用中還應該做到具體問題具體分析,這樣才能有效保證網站的安全性。
2.實施過程
通過IIS安全配置能夠加強IIS網站的安全性,下面以Windows 2003 Server作業系統為例介紹有關IIS安全配置的操作。
(1)選擇“管理工具”→“Internet資訊服務(IIS)管理器”命令,開啟“Internet資訊服務(IIS)管理器”視窗。
(2)滑鼠右鍵單擊“預設網站”選項,在彈出的捷徑功能表中選擇“屬性”命令,開啟“預設網站屬性”對話方塊,6.50所示。
圖6.50 “預設網站屬性”對話方塊
(3)使用者若想記錄下瀏覽者訪問網站的記錄,以便當網站出現問題時可以通過日誌分析出問題,則需要勾選“啟用日誌記錄”複選框,然後在“活動紀錄格式”下拉式清單方塊中指定日誌格式。各種日誌的內在差別不是很大,常用的日誌格式有Microsoft IIS記錄檔格式和W3C擴充記錄檔格式。單擊“屬性”按鈕開啟日誌屬性對話方塊,從中可對日誌記錄的屬性進行詳細的設定。6.51所示。
圖6.51 “日誌記錄屬性”對話方塊
(4)選中“預設網站屬性”對話方塊中的“主目錄”選項卡,從中可以配置主目錄和內容許可權,6.52所示。主目錄的分配有3種方式:預設為單選“此電腦上的目錄”選項。在“本地路徑”文字框中輸入或單擊“瀏覽”按鈕可以指定本地主目錄路徑;單選“另一電腦上的共用位置”項可以指定遠程主目錄,具體形式為:\\伺服器\\共用名稱;單選“重新導向到URL”項可以將網站指向到其他網域名稱的目錄上,例如將本站網站指向到http://www.mingrisoft/bbs/,並將該網站作為當前Web網站的主目錄。在此筆者將主目錄的分配方式設定為:“此電腦上的目錄”選項,本地路徑為:E:\ChatSystem,6.52所示。
圖6.52 “主目錄”選項卡
在“主目錄”選項卡中可以對網站檔案許可權進行設定。如果檔案有讀取和寫入許可權,則勾選“讀取”和“寫入”複選框。如果網站檔案中包含有指令檔則還應勾選“指令碼資源訪問”複選框。
對於應用程式的執行許可權可分為“純指令碼”和“指令碼和可執行檔”兩種,兩者之間的區別在於:可執行程式在伺服器端執行,其尾碼常為.exe、.dll、.bin和.dat等;而指令碼程式是先下載到客戶機然後進行解釋執行的,指令碼程式是採用VBScript、JScript、Pert和PHP等指令碼語言編寫的。
(5)單擊“應用程式設定”區右側的“配置”按鈕對IIS副檔名映射進行設定,6.53所示。從中可以刪除不必要的應用程式對應,如果用不到其他映射,那麼只保留副檔名為.asa和.asp檔案即可。
圖6.53 “應用程式配置”對話方塊
(6)選中“預設網站屬性”對話方塊中的“ISAPI篩選器”選項卡,可以管理此網站的“ISAPI篩選器”,6.54所示。ISAPI篩選器最常用於與安全性相關的應用程式,例如客戶身分識別驗證等。單擊“添加”按鈕可以添加“ISAPI篩選器”。
圖6.54 “ISAPI篩選器”選項卡
“ISAPI篩選器”是一種伺服器端應用程式的實現方式,也稱為ISAPI應用程式,是指使用ISAPI技術開發的程式。ISAPI類似於早期的CGI技術,能夠實現簡單的瀏覽器/伺服器(Brower/Server架構)的互動式應用。由於ISAPI佔用伺服器記憶體小,能夠運行於獨立的記憶體空間,具有很大的靈活性,所以逐漸地成為了CGI的替代技術。
ISAPI應用程式以動態連結程式庫即.dll檔案的形式實現,凡是訪問網站的使用者必須通過該.dll檔案處理,從而實現應用程式的運行。因此這種類似過篩子的應用程式的工作方式就被叫做ISAPI篩選器。
(7)選中“預設Web網站屬性”對話方塊中的“目錄安全性”選項卡可以定義訪問該網站的Windows使用者帳號,6.55所示。
圖6.55 “目錄安全性”選項卡
單擊“身分識別驗證和存取控制”地區中的“編輯”按鈕開啟訪問主目錄的“驗證方法”對話方塊,6.56所示。
圖6.56 “驗證方法”對話方塊
匿名訪問就是通過系統預設的使用者進行訪問。如果想指定特定使用者訪問主目錄,則單擊“瀏覽”按鈕開啟“選擇使用者”對話方塊,6.57所示。
圖6.57 “選擇使用者”對話方塊
注意:使用者帳號就是作業系統上的使用者。
單擊要訪問的使用者名稱,單擊“確定”按鈕確定要選擇該使用者,然後在返回的“驗證方法”對話方塊中的“密碼”文字框內輸入該使用者的密碼,並重新輸入密碼進行確認,6.58所示。
圖6.58 設定使用者密碼
注意:使用者的密碼就是建立作業系統時設定的密碼。
(8)刪除原預設安裝的Inetpub目錄。在系統硬碟下(本例以系統硬碟F盤為例),滑鼠右鍵單擊“Inetpub”目錄,然後選擇“刪除”命令,刪除原預設安裝的Inetpub目錄,6.59所示。
圖6.59 刪除Inetpub目錄
注意:刪除原預設安裝的Inetpub目錄是為了防止駭客猜測到網站主目錄而對網站進行破壞。
(9)刪除無用的虛擬目錄。單擊展開“Internet資訊服務”對話方塊中的“預設網站”目錄,6.60所示。
圖6.60 預設網站目錄
(10)為了防止駭客利用IIS等的許可權和功能進行破壞,應刪除以下的虛擬目錄:_Vti bin、IIS Samples、Scripts、IIShelp、IIS Admin和MSADC等。滑鼠右鍵單擊要刪除的目錄,然後選擇快顯功能表中的“刪除”命令即可,6.61所示。
圖6.61 刪除虛擬目錄
3.補充說明
要建立一個安全可靠的Web伺服器,必須要實現Window和IIS的雙重安全,因為IIS的使用者同時也是Window的使用者,並且IIS目錄的許可權依賴Windows的NTFS檔案系統的許可權控制,所以要保護IIS安全就必須確保Window作業系統的安全,通過以下幾點來確保Window作業系統的安全:
(1)使用NTFS檔案系統,可以方便對檔案和目錄進行許可權管理。
(2)關閉預設共用,首先開啟登錄編輯程式,然後展開“HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters”選項,添加索引值AutoShareServer,類型為REG_DWORD,值為0,這樣可以徹底關閉“預設共用”。
(3)修改共用許可權,建立新的共用許可權後可以立即修改Everyone的預設許可權,這樣就可以讓Web伺服器的訪問者得到一些不必要的存取權限。
(4)可以對系統管理員帳號進行更名,避免非法使用者攻擊。