◆黃承彬
?
Web安全滲透測(cè)試
◆黃承彬
(福建省廈門市文化遺產(chǎn)監(jiān)管中心 福建 361012)
網(wǎng)絡(luò)技術(shù)的發(fā)展深化了Web對(duì)人們生活的影響,但也讓它成為黑客入侵的渠道之一,所以保證Web程序的安全,是各使用單位必須思考的問(wèn)題。目前解決這一問(wèn)題的方式是,使用前進(jìn)行Web安全滲透測(cè)試,檢測(cè)其是否有安全漏洞,保證Web的安全。
Web安全滲透測(cè)試;SQL安全漏洞;實(shí)驗(yàn)?zāi)M
Web安全滲透測(cè)試的進(jìn)行,需先了解Web內(nèi)有哪些安全漏洞,基于這些漏洞出現(xiàn)的原因,選擇思路完成滲透測(cè)試。借此,可提高檢測(cè)的效率,并及時(shí)發(fā)現(xiàn)Web的漏洞,并分析漏洞的特征,給出具體的分析報(bào)告,并可以根據(jù)新出現(xiàn)的漏洞,拓展思路,保證安全滲透測(cè)試的可靠。
Web內(nèi)的安全漏洞包括以下幾點(diǎn):注入攻擊、跨站腳本攻擊、安全性誤配置等。其中注入攻擊主要出現(xiàn)于服務(wù)器端,是攻擊者最常做出的攻擊行為。該攻擊的特點(diǎn)是,用戶輸入的數(shù)據(jù)變?yōu)榇a,而這個(gè)攻擊的有效需滿足兩個(gè)條件,用戶可自主輸入,程序的運(yùn)行需要代碼,把輸入的數(shù)據(jù)拼接。它最常見(jiàn)的形態(tài)是代碼、XML等注入攻擊。
這些安全漏洞出現(xiàn)的原因是,用戶可在系統(tǒng)內(nèi)提交任意一個(gè)類型的數(shù)據(jù),但服務(wù)器終端只是接收數(shù)據(jù),并未進(jìn)行數(shù)據(jù)驗(yàn)證。而從內(nèi)部操作分析,是Web編程中,程序員并未考慮到編程的安全,并疏于配置軟件,增加安全隱患。同時(shí),Web投入使用后,所有操作、管理以及定期維護(hù),均由人完成,但Web系統(tǒng)的安全會(huì)因?yàn)閭€(gè)人的操作不當(dāng),被攻擊者找到機(jī)會(huì),入侵系統(tǒng),直接導(dǎo)致系統(tǒng)的崩壞[1]。
這一測(cè)試是模擬攻擊者的操作,使用相應(yīng)的攻擊技術(shù),利用系統(tǒng)的漏洞,對(duì)目標(biāo)對(duì)象進(jìn)行深入探測(cè),以從系統(tǒng)內(nèi)發(fā)現(xiàn)最易受到攻擊的環(huán)節(jié)。由此提出的安全滲透測(cè)試,是得客戶的許可后,用可控、不會(huì)帶來(lái)破壞的方式,找到服務(wù)器的薄弱位置,它進(jìn)行的時(shí)間可以是系統(tǒng)發(fā)布前,或是系統(tǒng)投入使用后,對(duì)系統(tǒng)進(jìn)行實(shí)時(shí)跟蹤,盡肯能保證系統(tǒng)安全。
其測(cè)試的具體過(guò)程如下:收集信息,攻擊者做出攻擊行為前,必然會(huì)先收攻擊對(duì)象的信息,以為攻擊的進(jìn)行做好信息準(zhǔn)備,即了解Web系統(tǒng)的相關(guān)信息后,對(duì)其有基本的認(rèn)識(shí),初步確定攻擊方式。信息收集可采用的方式有域名、不同的信息服務(wù);整理并掃描信息后,可確定網(wǎng)絡(luò)所在的外部特征,對(duì)特定的位置進(jìn)行掃描,根據(jù)掃描結(jié)果,決定是否攻擊,而從掃描得到的漏洞中,可選擇某個(gè)漏洞作為攻擊的突破口。但如果漏洞掃描后,攻擊者不可以直接使用時(shí),可把得到的信息分成兩類,第一類是安全敏感的信息,包含預(yù)先收集的信息,第二類是漏洞信息,主要由個(gè)人疏忽造成,借由這些可快速確定攻擊的點(diǎn);攻擊,上兩個(gè)階段的操作結(jié)束后,經(jīng)過(guò)分析,可用選擇的方式是直接攻擊。攻擊的方式可分成兩類,第一類是攻擊對(duì)象再無(wú)反應(yīng),讓系統(tǒng)癱瘓,第二類攻擊是借由工具盜取系統(tǒng)內(nèi)的某些信息,比如高級(jí)機(jī)密、系統(tǒng)的控制權(quán)等,攻擊行為只是真實(shí)目的的掩蓋;攻擊成功后,攻擊者為便于下次攻擊,會(huì)在系統(tǒng)內(nèi)放入后門,有便捷的入侵渠道。網(wǎng)絡(luò)主體內(nèi)的系統(tǒng)會(huì)隨著技術(shù)的發(fā)展與維護(hù),把系統(tǒng)升級(jí),自動(dòng)修補(bǔ)漏洞,攻擊者可攻擊的路徑消失,而植入后門后,攻擊者經(jīng)過(guò)后門即可進(jìn)入系統(tǒng),且整個(gè)過(guò)程不會(huì)被使用者察覺(jué);最后,消除經(jīng)過(guò)的痕跡,Web攻擊是一個(gè)完整的過(guò)程,攻擊者從系統(tǒng)中得到信息后,必須消除自己來(lái)過(guò)的痕跡,這些痕跡會(huì)在系統(tǒng)檢測(cè)或管理員維護(hù)中發(fā)現(xiàn),有時(shí)甚至?xí)驗(yàn)闄z查,完全暴露自己,所以痕跡的消除,是把所有經(jīng)過(guò)的部分全部清理。
根據(jù)這個(gè)過(guò)程完成測(cè)試,可找到測(cè)試內(nèi)容的風(fēng)險(xiǎn),并出具風(fēng)險(xiǎn)評(píng)估報(bào)告,提供全面的滲透測(cè)試服務(wù)。
本文中的具體操作是以SQL安全漏洞為例,完成測(cè)試。
(1)注入漏洞的分析
SQL注入是供給系統(tǒng)的數(shù)據(jù)庫(kù),它的具體連接中是利用現(xiàn)有數(shù)據(jù)庫(kù)的外部接口,通過(guò)接口把數(shù)據(jù)作為操作語(yǔ)言,輸入到數(shù)據(jù)庫(kù)內(nèi),以實(shí)現(xiàn)數(shù)據(jù)庫(kù)的入侵,并控制系統(tǒng)。程序員因?yàn)閷?duì)編程的安全性認(rèn)識(shí)不足,并未過(guò)濾用戶輸入的數(shù)據(jù),引發(fā)漏洞,攻擊者抓住這些機(jī)會(huì)后,可輸入操作語(yǔ)句,從數(shù)據(jù)庫(kù)內(nèi)得到數(shù)據(jù),或是把數(shù)據(jù)刪除,影響主機(jī)運(yùn)行[2]。
(2)實(shí)驗(yàn)?zāi)M
如圖1,通過(guò)實(shí)驗(yàn)?zāi)M,可了解這一漏洞可能帶來(lái)哪些危害。但試驗(yàn)進(jìn)行需要相應(yīng)的環(huán)境,所以環(huán)境是Windows 7系統(tǒng)的一個(gè)網(wǎng)址,IP地址是localhost。這一網(wǎng)址的正常登陸是在登錄界面輸入用戶名和密碼,輸入正確后即可登錄系統(tǒng),這一情況下,攻擊者選擇的方式是入侵?jǐn)?shù)據(jù)庫(kù),具體方式是與數(shù)據(jù)庫(kù)交互,用后端編程操控,而多個(gè)程序語(yǔ)言的交互后,可得到界面。但因?yàn)閷?shí)驗(yàn)進(jìn)行中,所有數(shù)據(jù)都可進(jìn)行后臺(tái)查詢,所以具體編程過(guò)程中,可把多個(gè)字符拼接在一起,這給攻擊者留下了加入SQL語(yǔ)句的機(jī)會(huì),改變操作流程,得到系統(tǒng)的操作權(quán)限。由此,對(duì)于其帶來(lái)危害的判斷,是輕者丟失數(shù)據(jù)庫(kù)內(nèi)的數(shù)據(jù),重者直接失去系統(tǒng)道的操作權(quán)限。
圖1 模擬網(wǎng)址的登錄頁(yè)面
(3)檢測(cè)思路
基于這一思路帶來(lái)的危害,要求在實(shí)際操作中必須明確具體檢測(cè)的思路,即使用HTTP協(xié)議,給出請(qǐng)求報(bào)文。從給出的報(bào)文中,攻擊者可用工具修改報(bào)文中的內(nèi)容,把內(nèi)部的GET變?yōu)镻OST,改變數(shù)據(jù)的內(nèi)容,并修改內(nèi)部的Cookie。如果出現(xiàn)這些情況,在客戶端驗(yàn)證登錄者的信息,沒(méi)有任何作用。所以,攻擊者攻擊的方式是,改變HTTP協(xié)議的申請(qǐng)報(bào)文(如圖2),觀察服務(wù)器是否響應(yīng),從中找到漏洞。所以,對(duì)于這一漏洞的檢測(cè),是檢查所有提交數(shù)據(jù)的環(huán)節(jié)與數(shù)據(jù)內(nèi)容,查看與服務(wù)器交互的位置,檢查參數(shù)設(shè)置,判斷服務(wù)器是否響應(yīng),確定是否有安全漏洞存在。
圖2 HTTP申請(qǐng)文本的更改
實(shí)際應(yīng)用的分析:確定檢測(cè)思路后,可選擇某個(gè)真實(shí)的網(wǎng)站,用不同方式注入信息,判斷這一方法是否有效。注入漏洞的方式是,GET、POST等,用這兩種方式注入漏洞后,都返回了錯(cuò)誤信息,說(shuō)明有漏洞存在。隨后測(cè)試人員修改了HTTP請(qǐng)求并發(fā)送到遠(yuǎn)程服務(wù)器后,服務(wù)器響應(yīng)。由此,說(shuō)明這一方法是有效的。
由此,總結(jié)出Web安全滲透測(cè)試的思路是正確,且方法也具有可行性,可模擬攻擊者做出的行為,判斷系統(tǒng)內(nèi)是否有安全漏洞,有良好的使用效果。而為完善該思路,讓測(cè)試有序進(jìn)行,也可使用相應(yīng)的測(cè)試工具,借助測(cè)試工具的優(yōu)勢(shì),找到新的方案,減少系統(tǒng)被攻擊的可能性,保證系統(tǒng)運(yùn)行的穩(wěn)定與安全,降低風(fēng)險(xiǎn)。另根據(jù)漏洞出現(xiàn)的原因,要求編程人員必須注重編程過(guò)程的安全,從編程入手,控制風(fēng)險(xiǎn),保證安全。
Web安全滲透測(cè)試,是根據(jù)漏洞的類型與出現(xiàn)的原因,以及安全滲透測(cè)試的思路進(jìn)行試驗(yàn)?zāi)M,驗(yàn)證理論與想法的可行性,指明攻擊者攻擊的方式。如此,可切實(shí)保證系統(tǒng)的安全,確保系統(tǒng)運(yùn)行的穩(wěn)定,但與此同時(shí),也要完善使用的技術(shù),借助檢測(cè)工具等確定思路,實(shí)現(xiàn)思路的優(yōu)化,完成漏洞的進(jìn)一步分析。
[1]徐光.基于Kali Linux的Web滲透測(cè)試研究[J].信息安全與技術(shù),2015.
[2]羅啟漢,陳深龍,李寧等.中國(guó)科學(xué)院教育信息化中的Web應(yīng)用安全增強(qiáng)實(shí)踐[J].科研信息化技術(shù)與應(yīng)用,2011.