有效預(yù)防SQL注入攻擊的六脈神劍
【51CTO.com 綜合報道】據(jù)CNNIC中國互聯(lián)網(wǎng)絡(luò)信息中心2009年7月16日發(fā)布的《第24次中國互聯(lián)網(wǎng)絡(luò)發(fā)展?fàn)顩r調(diào)查統(tǒng)計報告》中顯示,我國共有網(wǎng)民數(shù)量3.38億人,網(wǎng)站數(shù)量306.1萬個,半年內(nèi)有1.95億網(wǎng)民在上網(wǎng)過程中遇到過病毒和木馬的攻擊,1.1億網(wǎng)民遇到過賬號或密碼被盜的問題。
而據(jù)多種調(diào)查顯示,目前SQL注入攻擊是造成上述嚴(yán)重情況的根本原因之一,也是黑客對數(shù)據(jù)庫進(jìn)行攻擊的常用手段之一。隨著B/S模式應(yīng)用開發(fā)的發(fā)展,使用這種模式編寫應(yīng)用程序的程序員也越來越多。但是由于程序員的水平及經(jīng)驗也參差不齊,相當(dāng)大一部分程序員在編寫代碼的時候,沒有對用戶輸入數(shù)據(jù)的合法性進(jìn)行判斷,使應(yīng)用程序存在安全隱患,這也給黑客帶來很多可乘之機(jī)。
其實,SQL注入之所以會造成嚴(yán)重后果而不被防火墻所發(fā)現(xiàn),是因為這種攻擊方式是從正常的WWW端口訪問,而且表面看起來跟一般的Web頁面訪問沒什么區(qū)別,所以目前市面的防火墻都不會對SQL注入發(fā)出警報,如果管理員沒查看IIS日志的習(xí)慣,可能被入侵很長時間都不會發(fā)覺。
而正是因為SQL注入攻擊原理本身非常簡單的原因,才使得相關(guān)攻擊工具容易下載,成為近年來攻擊者最有效Web入侵入手段。針對這一攻擊手段,聯(lián)想網(wǎng)御的安全專家傾囊傳授廣大51CTO讀者“預(yù)防SQL注入攻擊的六脈神劍”:
1、Web應(yīng)用安全評估:結(jié)合應(yīng)用的開發(fā)周期,通過安全掃描、人工檢查、滲透測試、代碼審計、架構(gòu)分析等方法,全面的發(fā)現(xiàn)Web應(yīng)用本身的脆弱性及系統(tǒng)架構(gòu)導(dǎo)致的安全問題。應(yīng)用程序的安全問題可能是軟件生命周期的各個階段產(chǎn)生的,其各個階段可能會影響系統(tǒng)安全的要點主要有:
圖:Web應(yīng)用常見安全要點及其產(chǎn)生階段
而對應(yīng)用程序本身在評估過程中可以參考OWASP TOP TEN 2007年最新版本,重點檢查以下內(nèi)容:
序號 |
內(nèi)容 |
說明 |
1 |
跨站腳本漏洞 | Web應(yīng)用程序直接將來自使用者的執(zhí)行請求送回瀏覽器執(zhí)行,使得攻擊者可獲取使用者的Cookie或Session信息而直接以使用者身份登陸 |
2 |
注入類問題 | Web應(yīng)用程序執(zhí)行在將用戶輸入變?yōu)槊罨虿樵冋Z句的一部分時沒有做過濾,SQL 注入, 命令注入等攻擊包括在內(nèi) |
3 |
任意文件執(zhí)行 | Web應(yīng)用程序引入來自外部的惡意文件并執(zhí)行 |
4 |
不安全的對象直接引用 | 攻擊者利用Web應(yīng)用程序本身的文件操作功能讀取系統(tǒng)上任意文件或重要資料 |
5 |
跨站請求截斷攻擊 | 已登入Web應(yīng)用程序的合法使用者執(zhí)行惡意的HTTP指令,但Web應(yīng)用程式卻當(dāng)成合法需求處理,使得惡意指令被正常執(zhí)行 |
6 |
信息泄露 | Web應(yīng)用程序的執(zhí)行錯誤信息中包含敏感資料,可能包括系統(tǒng)文件路徑,內(nèi)部IP地址等 |
7 |
用戶驗證和Session管理缺陷 | Web應(yīng)用程序中自行撰寫的身份驗證相關(guān)功能有缺陷 |
8 |
不安全的加密存儲 | Web應(yīng)用程序沒有對敏感性資料使用加密、使用較弱的加密演算法或?qū)⒚荑€儲存于容易被獲取之處 |
9 |
不安全的通信 | Web應(yīng)用經(jīng)常在需要傳輸敏感信息時沒有使用加密協(xié)議 |
10 |
沒有對URL路徑進(jìn)行限制 | 某些網(wǎng)頁因為沒有權(quán)限控制,使得攻擊者可透過網(wǎng)址直接存取 |
2、Web應(yīng)用安全加固:對應(yīng)用代碼及其中間件、數(shù)據(jù)庫、操作系統(tǒng)進(jìn)行加固,并改善其應(yīng)用部署的合理性。從補(bǔ)丁、管理接口、帳號權(quán)限、文件權(quán)限、通訊加密、日志審核等方面對應(yīng)用支持環(huán)境和應(yīng)用模塊間部署方式劃分的安全性進(jìn)行增強(qiáng)。
3、對外部威脅的過濾:通過部署Web防火墻、IPS等設(shè)備,監(jiān)控并過濾惡意的外部訪問,并對惡意訪問進(jìn)行統(tǒng)計記錄,作為安全工作決策及處置的依據(jù)。
圖:威脅過濾及記錄分析
4、Web安全狀態(tài)檢測:通過常見掛馬頁面代碼的特征,持續(xù)地檢測被保護(hù)應(yīng)用頁面的當(dāng)前狀態(tài),判斷頁面是否被攻擊者加入惡意代碼。同時通過檢測Web訪問日志及Web程序的存放目錄,檢測是否存在文件篡改及是否被加入Web Shell一類的網(wǎng)頁后門。
5、事件應(yīng)急響應(yīng):提前做好發(fā)生幾率較大的安全事件的預(yù)案及演練工作,力爭以最高效、最合理的方式申報并處置安全事件,并整理總結(jié)。
圖:事件應(yīng)急響應(yīng)流程
6、安全知識培訓(xùn):讓開發(fā)和運維人員了解并掌握相關(guān)知識,在系統(tǒng)的建設(shè)階段和運維階段同步考慮安全問題,在應(yīng)用發(fā)布前最大程度的減少脆弱點。
在現(xiàn)在和將來,由于受互聯(lián)網(wǎng)地下黑色產(chǎn)業(yè)鏈中盜取用戶賬號及虛擬財產(chǎn)等行為的利益驅(qū)動,攻擊者仍將Web應(yīng)用作為傳播木馬等惡意程序的主要手段。盡管這會對廣大的運維人員和安全工作者造成很大的工作壓力,但是我們相信通過持續(xù)不斷地執(zhí)行并改進(jìn)相關(guān)安全措施,可以最大限度地保障Web應(yīng)用的安全,將關(guān)鍵系統(tǒng)可能發(fā)生的風(fēng)險控制在可接受的范圍之內(nèi)。