用SQL和ASP.NET構建的網站,受到的威脅主要是SQL注入攻擊和竊取網站敏感信息。本文主要介紹了如何加強IIS安全設置、加密WEB服務器重要文件、改變SQL端口控制并在三層交換機上攔截非法訪問,通過這三項設置,打造安全的網站防御體系。
一、 配置UrlScan,攔截了SQL注入攻擊,增強了IIS的安全性。
安裝環境:IIS4.0及以上版本。
安裝文件:setup.exe
下載地址:http://technet.microsoft.com/zh-cn/security/cc242650(en-us).aspx
UrlScan是一個ISAPI篩選器,它對傳入的HTTP數據包進行分析并可以拒絕任何可疑的通信量。
運行setup.exe文件安裝完成后,在%windir%\system32\inetsrv\\下多了一個urlscan文件夾,里面包含一個urlscan.ini文件,這個文件很重要,因為對UrlScan的所有配置,都是通過修改這個文件來完成的。
如果IIS服務沒有特殊要求,采用UrlScan的默認配置就可以了。配置文件Urlscan.ini是一個是標準的INI文件,它由節、串和值組成。用記事本打開urlscan.ini文件,它主要包含以下節:
[Options]:描述常規的UrlScan選項。
[AllowVerbs]:定義UrlScan允許的謂詞(又稱作HTTP方法)。
[DenyVerbs]:定義UrlScan拒絕的謂詞。
[DenyHeaders]:列出HTTP請求中不允許的HTTP標頭。如果HTTP請求包含此節中列出的HTTP標頭之一,UrlScan將拒絕該請求。
[AllowExtensions]:定義UrlScan允許的文件擴展名。
[DenyExtensions]:定義UrlScan不允許的文件擴展名。
[DenyURLSequences]:列出HTTP請求中不允許的字符串。UrlScan拒絕那些在此節中定義的字符串的HTTP請求。
如果要更深了解urlscan.ini的用法,請參閱微軟的幫助文檔。
UrlScan的常用配置舉例:
如果服務器運行ASP程序,在DenyExtensions節刪除與ASP相關的內容(圖1)。
如果服務器運行ASP.NET程序,在AllowVerbs節添加debug謂詞,注意此節是區分大小寫的(圖2)。
如果你的網頁使用了非ASCII代碼,你需要在Option節中將AllowHighBitCharacters的值設為1(圖3)。
修改后保存urlscan.ini文件。
在對urlscan.ini文件做了更改后,你需要重啟IIS服務才能生效。快速重啟IIS的方法是:在“開始”→“運行”中輸入iisreset后,單擊“確定”即可應用UrlScan的新配置。
二、加密WEB配置文件
.NET應用程序的設置信息通常都存儲在一個名為Web.config的XML文件里。由于Web.config文件中包含了連接字符串等敏感信息,所以確保Web.config文件內容的安全性是很重要的。ASP.NET 2.0中有一個新的安全特性,可以對Web.config文件中的任何節進行加密處理。某兩種加密方法:RSA Providers和DPAPI Providers,在加密和解密時都使用“密匙(keys)”,這些“密匙”可以存儲在“機器級”和“用戶級”。
這是加密前Web.config的connectionStrings節:
下面使用DPAPI provider方法對其加密,在命令行中輸入:
aspnet_regiis -pe\"connectionStrings\" -app \"/SampleApplication\" prov RsaProtectedConfigurationProvider
加密后WEB.config節如下所示:
AAAABASyn……
如果在本地電腦上運行這個命令,然后又將加了密的連接字符串上載到服務器上,該服務器是無法對其解密的,因為機器密匙是在本地電腦上產生的。相反,如果別人設法得到了加密的Web.config文件,離開這臺服務器,也是沒有辦法解密的。
三、更改SQL數據庫端口,并在三層交換機上進行訪問控制
為了防止利用SQL默認的1433端口入侵,我們要將其改為其它端口。
如把SQL 2005的TCP端口修改為2466,操作方法:打開SQL Server配置管理器->SQL Server 2005網絡配置->MSSQLSERVER的協議->TCP/IP,在彈出對話框中選擇IP地址->IPALL->TCP端口,設置端口為2466。
在連接WEB服務器和數據庫服務器的三層交換機上,對兩個服務器的訪問進行控制,只讓訪問WEB服務器80端口和數據庫指定端口通過。在華為S5516上可由以下三條規則來實現。
rule deny ip destination 60.164.110.4 0.0.0.0
rule permit tcpdestination 60.164.110.4 0.0.0.0 destination-port eq 80
rule permit tcp destination 60.164.110.50.0.0.0 destination-port eq 2466 (假定數據庫端口定為2466)
這樣,非法數據包在還沒有到達服務器之前,就已經被過濾掉了。
(作者系西北師范大學網絡學院研究生)
注:“本文中所涉及到的圖表、公式、注解等請以PDF格式閱讀”