虞麗妹
[摘要]針對Web服務器的SQL注入攻擊技術層出不窮。而為使web服務器和數(shù)據(jù)庫服務器能夠更好的擴展功能,實現(xiàn)公共信息交換的目的就不可避免的暴露一些可以被攻擊者非法利用的安全缺陷。如何讓系統(tǒng)管理者采取有效的防范措施阻止內部信息的泄露,將整個系統(tǒng)的威脅降至最低是目前服務器防守的關鍵。針對SQL注入攻擊防范中的服務器端安全配置問題進行分析語闡釋,希望能夠對該領域的研究有所幫助。
[關鍵詞]SQLL注入攻擊防范安全配置
中圖分類號:TP3文獻標識碼:A文章編號:1671—7597(2009)1010070—01
SQLL注入攻擊(SQL-Injection-Attract)是目前網(wǎng)上最流行最熱門的黑客腳本攻擊方法之一,它是指黑客利用一些Web應用程序(如:論壇、留言本、文章發(fā)布系統(tǒng)等)中某些疏于防范的用戶可以提交或修改的數(shù)據(jù)的頁面,精心構造SQL語句,把特殊的SQL指令語句插入到系統(tǒng)實際SQL語句中并執(zhí)行它,以獲取用戶密碼等敏感信息,以及獲取主機控制權限的攻擊方法。
SQL注入攻擊是近年來Internet網(wǎng)絡上最流行的網(wǎng)站入侵方式之一,SQL注入攻擊利用的是SQL語法,對于所有平臺上的基于SQL語言標準的數(shù)據(jù)庫軟件都是有效的。由于SQL注入攻擊的原理相對簡單,易于掌握和實施,使得這種攻擊具有相當?shù)膹V泛性。因此對于SQL注入攻擊的防范顯得尤為重要了。
一、Apache服務器安全配置
(一)Apache初始安裝服務管理
因為服務器初始安裝時都會默認許多如用戶登陸名、服務端口、配置信息等,這些都給攻擊者留下了入侵的可能。安全維護工作在安裝初期就應被重視,修改默認登陸名的權限,只分配管理員用戶具有訪問配置文件的權利,關閉所有服務端口后在開啟欲用端口等等。
(二)Apache服務器目錄安全認證
Apache服務器中是允許使用,htaccess做目錄安全保護,如果攻擊者想讀取這保護內容的目錄,需要先輸入正確用戶帳號與密碼。這種保護措施可作為專門管理web服務器網(wǎng)頁存放的目錄或作為會員專區(qū)等。服務器管理者可以在保護的目錄放置—個檔案,文檔名為,htaccss文檔內容主要包含三個參數(shù):AuthName、AuthType、AuthUserFile分別存放名稱、類型和目錄名。將一些敏感的數(shù)據(jù)資源如密碼文件放入該保護目錄,就可以限制非法用戶的訪問。
(三)Apache服務器安全補丁更新
及時對提供網(wǎng)絡服務的模塊進行必要更新,使服務器保持最新補丁包,運行穩(wěn)定版本。
(四)Apache日志系統(tǒng)文件管理
將服務器程序訪問日志存放一個安全系統(tǒng)高的服務器上或保存在上面提到的保護目錄中,并利用工具如AWstats軟件對日志文件進行定期分析,以便第一時間發(fā)現(xiàn)入侵狀況。這里值得注意的是日志文件的管理只是被動的防御方式,它只是提供給管理人員分析鑒別的功效,無法做出有效的應急措施。
二、IIS服務器安全配置
(一)IIS特定服務配置
多數(shù)注入攻擊是根據(jù)IIS給出的ASP錯誤提示來判斷攻擊的。所以IIS服務器應該自行設置返回語句顯示內容,即所有錯誤都只返回一種信息,讓攻擊者無法從中得到有價值的內容。這種方式的缺點是當程序員編寫的代碼出錯時也只是得到預設的錯誤內容,對正確編寫帶來些不便。
(二)IIS服務器的權限設置
服務器應該仔細的設置系統(tǒng)執(zhí)行權限以防止惡意用戶的入侵攻擊。多數(shù)情況下服務器不給靜態(tài)網(wǎng)站設置腳本可執(zhí)行權限。動態(tài)網(wǎng)站也只是賦予其純腳本的權限。對于通過客戶端瀏覽器上傳的文件設置為無可執(zhí)行權限,該目錄中不可存放機密的系統(tǒng)配置文件。這樣是為了防止注入攻擊者上傳惡意文件,如Wehshell等。
(三)IIS服務器用戶訪問安全性
同Apache安裝時會產(chǎn)生默認用戶相同,安裝IIS后的默認用戶為Iuser_x,其密碼由系統(tǒng)隨機產(chǎn)生。這種匿名機制雖然為系統(tǒng)的共享性提供了途徑,但是也給Web服務器帶來了潛在的安全危險。如果攻擊者通過注入攻擊拿到了IIs服務器的訪問權限就使整個系統(tǒng)處于非常不利的狀態(tài)。IIS服務器如無需匿名登陸的需要可以取消該訪問服務。
已授權用戶也要使用多符號結合的密碼設置方法和經(jīng)常修改其身份驗證密碼,使注入攻擊用戶猜解困難或由于及時更改密碼攻擊者無法正常登陸。
三、MySOL安全配置
(一)最小權利法則
應用程序使用連接數(shù)據(jù)庫的賬戶應該只擁有必要的特權,這樣有助于保護整個系統(tǒng)盡可能少的受到入侵者的危害。通過限制用戶權限,隔離了不同賬戶可執(zhí)行的操作,用不同的用戶賬戶執(zhí)行查詢、插入、更新、刪除操作,可以防止原本用于執(zhí)行SELECT命令的地方卻被用于執(zhí)行INSERT、UPDATE或DELETE命令。
(二)用戶帳號安全法則
禁用默認的root管理員賬號,新建一個復雜的用戶名和密碼管理數(shù)據(jù)庫。
(三)內容加密
有些網(wǎng)站使用SSL/SSH數(shù)據(jù)加密,但是該技術只對數(shù)據(jù)傳輸過程進行加密,無法保護數(shù)據(jù)庫中已有數(shù)據(jù)。目前對數(shù)據(jù)進行加密的數(shù)據(jù)庫系統(tǒng)很少,而利用PIP支持的加密算法,可以在存儲時對數(shù)據(jù)進行加密,安全的保存在數(shù)據(jù)中,在檢索時對數(shù)據(jù)進行解密,實現(xiàn)對數(shù)據(jù)的加密功能,數(shù)據(jù)加密節(jié)中會詳細分析此種技巧。
(四)存儲過程控制
用戶應該無權通過SQL語句來實現(xiàn)對系統(tǒng)命令的調用,這是注入Webshell時十分危險的漏洞。
(五)系統(tǒng)補丁
及時更新MySQL的最新版本補丁,可有效的解決數(shù)據(jù)庫的漏洞問題。
四、結語
針對SQL注入攻擊本文從Apache服務器安全配置、IIS服務器安全配置、MySQL安全配置等方面進行了詳細闡述。本文僅是針對sQL注入攻擊防范中的服務器端安全配置問題進行了探索和研究,對SOL注入攻擊,還有很多其他的防范措施,這些都是有待于今后深入開發(fā)研究的問題。