◆林金娜
(河南護(hù)理職業(yè)學(xué)院 河南 455000)
淺談高校網(wǎng)站安全中SQL注入問題
◆林金娜
(河南護(hù)理職業(yè)學(xué)院 河南 455000)
高校網(wǎng)站常常面臨著系統(tǒng)癱瘓、信息篡改、網(wǎng)頁掛馬等安全威脅。與跨站點(diǎn)腳本攻擊(CSS)相比,SQL注入攻擊更能達(dá)到黑客的不良目的,危害更大。對此,應(yīng)當(dāng)從代碼層防御和平臺層防御兩個方面對高校網(wǎng)站的SQL注入威脅進(jìn)行應(yīng)對。
高校網(wǎng)站;SQL注入;網(wǎng)站安全
目前,越來越多的高校建立了自己網(wǎng)站,高校網(wǎng)站是對外宣傳的窗口,是教學(xué)、管理和科研的重要依托,在給師生帶來便利的同時也面臨著嚴(yán)重的安全問題。根據(jù)360網(wǎng)站衛(wèi)士數(shù)據(jù)顯示:中國每個高校網(wǎng)站平均每天被黑客攻擊113次[1]。
黑客熱衷于攻擊教育網(wǎng)站一方面因?yàn)榻逃W(wǎng)站在搜索引擎中的權(quán)重比較高,黑客利用這一點(diǎn)提高其賭博、游戲等網(wǎng)站的搜索引擎優(yōu)化,另一方面黑客可以通過攻擊該網(wǎng)站發(fā)布假文憑或更改成績等。
360互聯(lián)網(wǎng)安全中心給出的《2015網(wǎng)站安全報告》中顯示了各類網(wǎng)站安全漏洞被掃出次數(shù)的比例分布情況,如下圖1。從圖1中可以看出,跨站腳本攻擊漏洞XSS(21.9%)、SQL注入漏洞(16.0%)。

圖1 2015年各類網(wǎng)站漏洞類型分布(掃描檢測)

圖2 某高校2016年上半年網(wǎng)站漏洞類型分布

表1 某高校2016年上半年網(wǎng)站安全事件統(tǒng)計表
表1及圖2是根據(jù)某高校2016年上半年其web應(yīng)用防火墻所給出的數(shù)據(jù),統(tǒng)計得出的網(wǎng)站漏洞類型分布情況。據(jù)統(tǒng)計,該高校2016年上半年共計發(fā)生825925個網(wǎng)站安全事件,其中SQL注入事件為519098個,占總事件的63%,跨站腳本攻擊(XSS)事件為21807個,僅占總事件的3%。這一數(shù)據(jù)與360互聯(lián)網(wǎng)安全中心給出的數(shù)據(jù)相比,SQL注入事件所占的比重提高了近三倍。
上述數(shù)據(jù)顯示高校網(wǎng)站攻擊類型分布與各類網(wǎng)站攻擊類型分布有明顯區(qū)別,SQL注入事件明顯增加,這與高校網(wǎng)站的特殊性是分不開的。
高校網(wǎng)站與其他類型網(wǎng)站相比,通常面臨著出于人為攻擊和竊取信息兩種目的的以下幾類安全威脅:(1)系統(tǒng)癱瘓,黑客通過DoS攻擊等方式使網(wǎng)站或網(wǎng)絡(luò)系統(tǒng)癱瘓;(2)信息篡改,黑客利用網(wǎng)站后臺弱口令、網(wǎng)站或系統(tǒng)漏洞等篡改網(wǎng)站內(nèi)容,發(fā)布不良信息;(3)網(wǎng)頁掛馬,黑客在正常的頁面中插入隱蔽的木馬程序[2]。
SQL注入攻擊主要是指攻擊者通過系統(tǒng)的漏洞,向系統(tǒng)中注入不合法的SQL查詢語言,來獲取系統(tǒng)中用戶的數(shù)據(jù)。SQL攻擊是由于系統(tǒng)沒有對用戶的輸入數(shù)據(jù)進(jìn)行合法性驗(yàn)證所導(dǎo)致。
SQL注入通過網(wǎng)頁對網(wǎng)站數(shù)據(jù)庫進(jìn)行修改,一旦在數(shù)據(jù)庫中添加了具有管理員權(quán)限的用戶,那么整個數(shù)據(jù)庫就落入黑客手中,黑客可以通過使用擴(kuò)展存儲過程查看、修改整個計算機(jī)的所有資料。同時,黑客甚至可以利用管理員權(quán)限在網(wǎng)頁上掛馬,對網(wǎng)站和訪問該網(wǎng)站的用戶都帶來巨大的危害。[3]
在其他各類網(wǎng)站漏洞所占比重較高的XSS又叫CSS,跨站腳本攻擊,是指入侵者向web頁面插入惡意html代碼,當(dāng)用戶瀏覽此頁的時候,惡意代碼就會被執(zhí)行,從而達(dá)到入侵者的特殊目的。該攻擊的危害是竊取cookie、放蠕蟲、網(wǎng)站釣魚等。
上述兩種攻擊比較后,不難發(fā)現(xiàn),針對高校網(wǎng)站,SQL注入攻擊更能達(dá)到黑客的不良目的,所造成危害更大。
那么高校網(wǎng)站如何對SQL注入攻擊進(jìn)行防御?由清華大學(xué)出版社出版Justin Clarke等所著的《SQL注入攻擊與防御》一書中給出以下策略,著重講到代碼層防御及平臺層防御兩個方面。
3.1 代碼層防御
(1)使用參數(shù)化語句,因?yàn)閯討B(tài)SQL是引發(fā)SQL注入漏洞的主要原因,應(yīng)該使用參數(shù)化語句而非動態(tài)SQL來安全地組裝SQL查詢;(2)盡可能堅持使用白名單輸入驗(yàn)證,確保驗(yàn)證應(yīng)用收到的所有受用戶控制的輸入的大小、類型、范圍和內(nèi)容,白名單輸入驗(yàn)證無法使用時才可以用黑名單輸入驗(yàn)證;(3)確保對包含用戶可控制輸入的查詢進(jìn)行正確編碼以防止使用單引號或其他字符來修改查詢;(4)將輸入解碼或者變?yōu)橐?guī)范格式后才能執(zhí)行輸入驗(yàn)證過濾器和輸出編碼;(5)設(shè)計時應(yīng)該考慮對敏感信息進(jìn)行附加的控制。
3.2 平臺層防御
(1)使用運(yùn)行時保護(hù),web應(yīng)用防火墻可以有效檢測、預(yù)防和緩和SQL注入,運(yùn)行時保護(hù)可以跨越多層,多級;(2)強(qiáng)化數(shù)據(jù)庫,可以顯著降低SQL注入的影響,應(yīng)該將訪問局限在必須的數(shù)據(jù)庫對象上;(3)強(qiáng)化過的web層部署和網(wǎng)絡(luò)架構(gòu)也可以降低其影響,面對攻擊,最小化網(wǎng)絡(luò)、web和應(yīng)用層上的信息泄露也有助于減少被發(fā)現(xiàn)的機(jī)會。
隨著高校網(wǎng)站影響的增加,網(wǎng)站的安全問題日漸突出,SQL注入攻擊是其中一個不容忽視的問題,應(yīng)在上述技術(shù)方面加強(qiáng)防御。但對于整個網(wǎng)站安全這個艱巨的工作來說,網(wǎng)站安全問題的出現(xiàn)不僅在技術(shù)方面,還必須在思想、管理這兩道防御工作上下足功夫。網(wǎng)站安全不僅涉及到開發(fā)、運(yùn)行還涉及到設(shè)計與管理等多個方面,首先在設(shè)計時應(yīng)兼顧其功能和安全兩個方面,其次在網(wǎng)站開通前要一定要進(jìn)行全方位的安全測試,最后在思想上要引起足夠的重視,在管理上要足夠的科學(xué),結(jié)合高校網(wǎng)站多元化建設(shè)的實(shí)際,制定合理的管理制度,才能確保網(wǎng)站的安全。
[1]360互聯(lián)網(wǎng)安全中心.2013年中國網(wǎng)站安全報告[EB/OL].北京:360互聯(lián)網(wǎng)安全中心.[2014-10-20].http://zt.360.cn/report/.
[2]張迎,寧玉文等.高校網(wǎng)站信息安全威脅與對策探析[J].中國教育信息化,2010.
[3]華馳.SQL注入給網(wǎng)絡(luò)安全帶來的隱患及解決方案[J],教育信息化,2006.