牛曉晨
(西安郵電大學 計算機學院,陜西 西安 710121)
IIS7 是Windows Server 2008 中的一個支持HTTP 發布服務的Web 服務器, 它是網站架設的基礎平臺。 ASP 是Active Server Page 的縮寫,意為“動態服務器頁面”,是一種基于IIS 平臺的動態網站開發技術,而Asp.net 是Asp 的一個升級。它們都是微軟公司的技術, 因此使用它們開發出來的網站數目眾多。本文從權限設置的角度來談一下如何防范黑客對這兩類網站的入侵。
為了充分利用資源,一臺服務器上往往裝有多個網站。 這些網站有的是管理員自己開發的,代碼的安全性跟管理員的開發水平密切相關;有的是購買商業軟件,安全性較好,補丁也更新的快;有的則是網上下載的破解免費版,網站代碼的安全性較差,甚至有的里面直接被植入了后門。 由于站點源碼來源的復雜和開發者水平的參差不齊,要從外部預防所有可能出現的源碼漏洞是不可能的,只能從內部考慮:如果黑客滲透進來了,木馬被植入了網站,要怎么做才能最大化降低其破壞力?
通過權限設置可以將影響降到最低。 操作系統權限指的是不同賬戶對文件、文件夾和注冊表等的訪問能力。 IIS7 默認的匿名賬戶是IUSR, 這是一個具有Users 組權限的內建帳號,默認情況下服務器上所有網站的啟動用戶身份均是IUSR。 因此當某一網站被入侵后,由于Users 組權限的作用,黑客實際上已取得了全部網站和硬盤文件的訪問權。 因此通過對不同的網站設置不同的啟動賬戶,并對相應文件和文件夾的讀取和執行權限進行設置,可以阻止黑客的進一步破壞。
每個網站對應新建一個啟動賬戶, 因后期需要對這些賬戶統一進行權限設置操作,如對注冊表訪問權限設置,所以還需要新建用戶組IIS_guests 將這些賬號加進來。
在IIS 管理器中添加網站,在彈出的選項卡中點擊傳遞身份驗證下的“連接為”按鈕,選擇特定用戶,點擊設置按鈕,輸入建好的用戶名和密碼,點確定。 建站后系統為每一個站點自動建立一個應用程序池,應用程序池的運行身份為剛才指定的賬戶,每個應用程序池對應一個IIS 工作進程(w3wp.exe),有多少個網站在任務管理器里就會顯示有多少個進程,進程用戶名顯示為應用程序池名。 對于Asp 站點,到此就完成了網站啟動賬戶的指定。 對于Asp.net 站點還需要進行如下操作:
(1)若Asp.net 的開發非.Net4.0 框架,需將應用程序池的托管模式由默認的“集成”改為“經典”。 (2)將網站的IIS 設置項中的“身份認證”選項卡里的“ASP.NET 模擬”項設為啟動。(3)給予啟動賬戶對“C:WindowsMicrosoft.NETFrameworkv2.0.50727Temporary ASP.NET Files”目錄的讀寫權限。
2.1 節新建賬戶都屬于authenticated users,而authenticated users 屬于Users 組,因此就算把新建用戶從Users 組刪除,其仍具有Users 組的權限。 為了阻止黑客入侵網站后對服務器文件的訪問,我們要對磁盤文件和文件夾做如下權限設置:
(1) 刪除所有盤符的根權限中的Users 組和everyone 權限。因為指定的網站啟動用戶均默認具備了Users 組的權限,不這樣做,黑客滲透入某一網站后將會看的服務器上所以盤符下的文件。 (2)刪除網站文件存放目錄的Users 組權限,同時添加其啟動賬戶的讀權限。 這使得只有該網站的啟動賬戶才能訪問該網站的文件。 (3)對于access 數據庫文件和可上傳文件的文件夾添加啟動賬戶的寫權限。 (4)如果有ftp 上傳要求,需新建ftp 管理賬戶,并添加該賬戶對網站根目錄的讀寫權限。
基本上每個網站都有上傳文件和圖片的功能, 而黑客往往通過上傳漏洞將木馬傳到服務器上。 由2.2 節的權限設置可知,除上傳目錄外,其它目錄均不可寫,黑客只能將木馬寫入到上傳目錄里,所以需要關閉此目錄的腳步執行功能。 關閉方法如下:在IIS 管理器里,選中某一網站上傳文件夾,雙擊其“處理程序映射”功能選項,接著選擇右側操作子欄里的“編輯功能權限”選項,將“腳本”選項去掉,這樣上傳目錄里的腳本就無法運行了。
遠程桌面是遠程管理服務器的利器, 通過修改默認的3389 端口可防止其被黑客利用,但是木馬腳本可通過讀取注冊表來獲得真實的連接端口。 因此需要在注冊表[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlTerminal Server]項的權限中設置IIS_guests 組權限為拒絕讀取。
將海陽頂端網asp 木馬和WebAdmin 2.0 Asp.net 木馬放入網站進行測試,結果如下:木馬只能讀取入侵網站所在目錄中的文件,只能修改本站點的上傳目錄文件和access 數據庫文件,植入上傳目錄中的木馬無法運行,遠程桌面的端口信息無法獲取。
本文分析了Asp 與Asp.Net 網站腳本漏洞產生原因,給出一種基于權限設置的入侵防范方法,并進行了講解與測試。 實驗表明該方法有效地保護了服務器資源不被竊取,阻止了黑客的進一步入侵。
[1]Microsoft.MSDN Library [EB/OL].2013.http://msdn.microsoft.com/library/