引言:IIS信息服務(wù)器在網(wǎng)絡(luò)上應(yīng)用的很廣泛,很多網(wǎng)站都是基于其管理和發(fā)布的,正因為如此,IIS服務(wù)器也成了黑客重點攻擊的目標(biāo)。因此,提高IIS服務(wù)器的安全性,是保證網(wǎng)站安全運行的基本條件。
IIS信息服務(wù)器在網(wǎng)絡(luò)上應(yīng)用的很廣泛,很多網(wǎng)站都是基于其管理和發(fā)布的,正因為如此,IIS服務(wù)器也成了黑客重點攻擊的目標(biāo)。因此,提高IIS服務(wù)器的安全性,是保證網(wǎng)站安全運行的基本條件。對于Windows Server 2012中提供的IIS 8.0來說,其擁有多層次的安全體系結(jié)構(gòu)。例如,但客戶端訪問Web網(wǎng)站時,客戶端將訪問請求發(fā)送給服務(wù)器,服務(wù)器將處理結(jié)果發(fā)送回客戶端,完成客戶端和服務(wù)器的交互過程。實際上,對于該過程,從安全控制角度來看,可以劃分為不同的層級。
圖1 添加必要的功能項目
例如,從IP層面來說,可以設(shè)置是否允許客戶端訪問Web網(wǎng)站。當(dāng)某客戶端在規(guī)定的時間內(nèi)連續(xù)訪問服務(wù)器,就會被服務(wù)器視為可疑用戶,通過將其放置到黑名單中,該用戶就無法繼續(xù)訪問服務(wù)器。從HTTP以及HTTPS層面來說,IIS就可以通過設(shè)置特定的HTTP/HTTPS協(xié)議的特性,對用戶的訪問進行管控。例如,可以限制用戶使用Get,Post,Put等方式提交數(shù)據(jù),來有效保護服務(wù)器安全。從IIS層面來說,可以設(shè)置相關(guān)的身份驗證協(xié)議,來檢測客戶端是否是合法的用戶。從業(yè)務(wù)程序?qū)用鎭碚f,同樣可以限制用戶的訪問權(quán)限。例如當(dāng)用戶訪問網(wǎng)站上的開設(shè)的論壇時,就會按照身份的不同,被劃分到管理員預(yù)設(shè)的不同的賬戶組中,用戶只能在規(guī)定的權(quán)限內(nèi),對資源進行訪問。
當(dāng)然,要提高IIS的安全性,必須保證安裝好啟用了對應(yīng)的功能。在Windows Server 2012中打開服務(wù)器管理器,點擊“添加角色和功能”項,在向?qū)Ы缑嬷械摹敖巧绷斜碇写蜷_“Web服務(wù) 器(IIS)”→“Web服 務(wù)器”→“安全性”分支,在其中選擇所有的功能項(如圖1)。點擊安裝按鈕,執(zhí)行安裝操作。
打開IIS管理器,在其中可以針對服務(wù)器級別或者具體的網(wǎng)站,執(zhí)行所需的安全設(shè)置。例如,選擇某個網(wǎng)站,從IP層面設(shè)置其安全屬性的話,在窗口中部雙擊“IP地址和域限制”項,在右側(cè)點擊“編輯功能設(shè)置”鏈接,在彈出窗口中可以看到,在默認(rèn)情況下,沒有指定的限制條件的客戶端都是可以訪問該網(wǎng)站的。點擊“添加拒絕條目”鏈接,在彈出窗口中可以設(shè)置特定的IP地址或者地址段。這樣,這些IP客戶端將無法訪問服務(wù)器。
點擊“編輯動態(tài)限制設(shè)置”鏈接,在彈出窗口中選擇“基于并發(fā)請求數(shù)量拒絕IP地址”項,在其下可以設(shè)置并發(fā)連接的數(shù)量。當(dāng)客戶端在特定的時間內(nèi)并發(fā)訪問次數(shù)超過該值后,IIS就會視為惡意的請求并對其進行攔截,選擇“基于一段時間內(nèi)的請求數(shù)量拒絕IP地址”項,在其下可以設(shè)置特定的時間段以及最大的請求數(shù)量。如果客戶端違法了該設(shè)置,同樣會被IIS視為惡意請求。
從HTTP/HTTPS層面來說,可以在窗口中部的“IIS”欄中雙擊“請求篩選”項,在“文件擴展名”面板右側(cè)點擊“拒絕文件擴展名”鏈接,在彈出窗口中輸入特定的擴展名(例如“.asa”),這樣當(dāng)客戶端試圖在瀏覽器地址欄訪問該類型的文件(例如“http://www.xxx.com/form/1.asa”等),IIS就會返回“HTTP 錯誤404.7-Not Found”之類的錯誤信息,拒絕用戶訪問這類文件。
在網(wǎng)站結(jié)構(gòu)中,存在各種目錄和文件。當(dāng)不希望用戶查看和訪問某些目錄和文件時,可以在“隱藏段”面板右側(cè)點擊“添加隱藏段”連接,輸入對應(yīng)的文件和目錄名稱,就可以實現(xiàn)上述目的。對于黑客來說,經(jīng)常使用SQL注入的方式,對SQL數(shù)據(jù)庫進行攻擊。其原理是利用SQL Server數(shù)據(jù)庫的一些漏洞,通過構(gòu)造和提交特定的URL地址,來注入相關(guān)的信息,對數(shù)據(jù)庫進行滲透。為此,可以在“URL”面板右側(cè)點擊“拒絕序列”項,在其中窗口中輸入對應(yīng)的 URL,例 如“/Default.aspx?jobid=1'or'1'='1”等。這樣,當(dāng)黑客提交這樣的URL時,就會遭到IIS的攔截。當(dāng)然,也可以添加特定的目錄和文件路徑(例如“/admin/index.asp”), 當(dāng)用戶試圖訪問這些受限制的路徑時,服務(wù)器就會返回“HTTP 錯誤404.5 –NOT Found”之類的警告信息。
在“HTTP謂詞”面板中點擊“拒絕謂詞”鏈接,在彈出窗口中輸入對應(yīng)的謂詞(例 如‘Post”),這 樣,當(dāng)用戶在對應(yīng)頁面中輸入所需內(nèi)容,點擊“提交”按鈕后,服務(wù)器就會返回“HTTP 錯誤 404.6-Not Found”之類的警告信息。當(dāng)用戶訪問目標(biāo)網(wǎng)站時,在發(fā)送的數(shù)據(jù)包中存在一些標(biāo)頭信息,例 如“Host”,“ACCEPT”,“CONTENT-TYPE”,“SET-COOKIE”等。在對應(yīng)標(biāo)頭后面跟隨對應(yīng)的數(shù)據(jù)信息,例如在“Content-Length”標(biāo)頭后面跟隨數(shù)據(jù)包內(nèi)容的長度等。如果黑客使用專用工具攔截了數(shù)據(jù)包內(nèi)容,并對其標(biāo)頭信息進行了修改(例如寫入超長數(shù)據(jù)),之后將該數(shù)據(jù)包發(fā)送給服務(wù)器,就很容易造成服務(wù)器發(fā)生溢出問題,給黑客入侵帶來了可乘之機。
在“標(biāo)頭”面板右側(cè)點擊“添加標(biāo)頭”鏈接,在彈出窗口中的“標(biāo)頭”欄中輸入具體的標(biāo)頭名(例如“Host”),在“大小限制”欄中輸入其數(shù)據(jù)的大?。ɡ纭?”)。這樣,如果用戶提交的數(shù)據(jù)包中“Host”標(biāo)頭的數(shù)據(jù)長度超過該值,服務(wù)器就會返回“HTTP 錯誤 404.10-Not Found”之類的錯誤信息。在網(wǎng)站中可以設(shè)置查詢欄,允許用戶查詢所需的內(nèi)容。為了防止用戶輸入提交非法數(shù)據(jù),可以對其進行必要的限制。在“查詢字符串”面板右側(cè)點擊“拒絕查詢字符串”鏈接,在彈出窗口中需要拒絕的內(nèi)容。這樣,當(dāng)用戶在網(wǎng)站頁面中查詢限制的內(nèi)容時,服務(wù)器就會返回“HTTP 錯誤 404.18-Not Found”之類的錯誤。
實際上,在“規(guī)則”面板中,可以對各種限制條件進行集成處理。在右側(cè)點擊“添加篩選規(guī)則”鏈接,在彈出窗口中輸入規(guī)則名稱,選擇“掃描url”和“掃描查詢字符串”項,在“掃描標(biāo)頭”,“文件擴展名”以及“字符串”欄中輸入對應(yīng)的內(nèi)容,針對的特定的標(biāo)頭,允許訪問特定的文件擴展名,拒絕訪問特定的字符串。除了使用請求篩選保護HTTP/HTTPS訪問之外,還可以使用授權(quán)規(guī)則來強化安全性。在“IIS”欄中雙擊“授權(quán)規(guī)則”項,可以看到存在默認(rèn)的授權(quán)規(guī)則。點擊右側(cè)的“編輯”鏈接,可以查看其屬性,了解到其允許所有的用戶進行訪問。
圖2 添加拒絕訪問項目
圖3 用戶身份驗證模式窗口
當(dāng)然,可以添加所需的拒絕訪問規(guī)則。點擊右側(cè)的“添加拒絕訪問”項,在彈出窗口(如圖2)中可以選擇限制的用戶類型,包括所有用戶,所有匿名用戶,指定的角色或者用戶組,指定的用戶等。例如當(dāng)使用了基本身份驗證模式后,當(dāng)用戶訪問網(wǎng)站時,就需要輸入賬戶名和密碼,通過認(rèn)證后,才可以瀏覽網(wǎng)站。例如,當(dāng)需要對用戶“fwyongh”進行控制,可以選擇“指定的用戶”項,輸入“fwyongh”,選擇“將此規(guī)則應(yīng)用于特定謂詞”項,輸入“Get”謂詞。這樣當(dāng)該用戶在網(wǎng)頁中查詢內(nèi)容,執(zhí)行提交操作時,服務(wù)器就會返回“HTTP錯誤401.2-Unauthorized”之類的錯誤信息,說明該用戶的訪問收到了服務(wù)器的限制。同請求篩選相比,授權(quán)規(guī)則可以將系統(tǒng)賬戶和HTTP/HTTPS特定的謂詞進行關(guān)聯(lián),讓指定的用戶只能訪問允許的謂詞,來使用HTTP/HTTPS協(xié)議中相應(yīng)的屬性。使用授權(quán)規(guī)則和請求篩選,可以在HTTP/HTTPS層面有力的保護IISS服務(wù)器的安全。
使用相關(guān)的身份驗證協(xié)議,可以從IIS層面上提高安全性。在“IIS”欄中雙擊“身份驗證”項,可以看到起提供了各種身份驗證模式(如圖3)。啟用的匿名身份驗證方式,允許所有用戶訪問Web服務(wù)器。
當(dāng)然,您可以根據(jù)需要對其進行控制。例如點擊右側(cè)的“編輯”按鈕,可以看到與其對應(yīng)的是名為“IUSR”賬戶。點擊“設(shè)置”,可以將其更改為別的用戶。以“IUSR”賬戶為例,打開網(wǎng)站根目錄中的屬性窗口,在“安全”面板中點擊“編輯”按鈕,在“組或用戶名”列表中選擇“IIS_IUSRS”賬戶,在權(quán)限列表中的“拒絕”列中選擇讀取和執(zhí)行,列出文件夾內(nèi)容,讀取等項目。保存配置信息后,當(dāng)以匿名方式訪問網(wǎng)站時,服務(wù)器就會返回“HTTP錯誤401.3-Unauthorized”的錯誤提示。
對于ASP.NET模擬方式來說,會使用IIS應(yīng)用程序池使用的標(biāo)識信息進行驗證。使用Windows身份驗證,會將訪問者的賬戶名和密碼提交給IIS服務(wù)器,并將其密碼進行加密處理。之后服務(wù)器會驗證該賬戶身份合法性,如果驗證通過,就可以訪問服務(wù)器,這適用于內(nèi)部的或者加入域的客戶端。對于基本身份驗證來說,當(dāng)用戶訪問時,需要輸入對應(yīng)的賬戶名和密碼,這些內(nèi)容會以Base64方式進行加密,之后將其提交給服務(wù)器。不過這種加密方式安全性很低,為了安全起見,需要將其和SSL加密結(jié)合起來使用,其適用于未加入域或者外部的客戶端。
對于摘要式身份驗證,其支持HTTP 1.0協(xié)議,該模式將用戶提交的憑據(jù)進行MD5加密,之后將其哈希值提交給IIS服務(wù)器,通過驗證后,可以訪問網(wǎng)站。適用于域環(huán)境,IIS服務(wù)器必須使活動目錄域的成員服務(wù)器或者域控制器,用戶賬戶必須使活動目錄域賬戶,并且該賬戶必須和IIS服務(wù)器位于相同的或者信任的域。選擇所需的身份驗證協(xié)議,點擊“啟用”,可以激活該驗證方式。當(dāng)激活多個身份驗證協(xié)議,其使用是由順序的。一般匿名身份驗證方式優(yōu)先級最高,之后依次為Windows驗證方式,摘要式驗證方式,基本身份驗證方式。