亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        面向網(wǎng)絡(luò)環(huán)境的SQL注入行為檢測(cè)方法

        2016-07-18 11:56:37趙宇飛熊剛賀龍濤李舟軍
        通信學(xué)報(bào) 2016年2期
        關(guān)鍵詞:三元組網(wǎng)絡(luò)流量語(yǔ)句

        趙宇飛,熊剛,賀龍濤,李舟軍

        ?

        面向網(wǎng)絡(luò)環(huán)境的SQL注入行為檢測(cè)方法

        趙宇飛1,熊剛2,賀龍濤3,李舟軍1

        (1. 北京航空航天大學(xué)計(jì)算機(jī)學(xué)院,北京 100083;2. 中國(guó)科學(xué)院信息工程研究所,北京 100093; 3. 國(guó)家計(jì)算機(jī)網(wǎng)絡(luò)應(yīng)急技術(shù)處理協(xié)調(diào)中心,北京 100029)

        SQL注入攻擊是Web應(yīng)用面臨的主要威脅之一,傳統(tǒng)的檢測(cè)方法針對(duì)客戶端或服務(wù)器端進(jìn)行。通過(guò)對(duì)SQL注入的一般過(guò)程及其流量特征分析,發(fā)現(xiàn)其在請(qǐng)求長(zhǎng)度、連接數(shù)以及特征串等方面,與正常流量相比有較大區(qū)別,并據(jù)此提出了基于長(zhǎng)度、連接頻率和特征串的LFF(length-frequency-feature)檢測(cè)方法,首次從網(wǎng)絡(luò)流量分析的角度檢測(cè)SQL注入行為。實(shí)驗(yàn)結(jié)果表明,在模擬環(huán)境下,LFF檢測(cè)方法召回率在95%以上,在真實(shí)環(huán)境下,該方法也取得較好的檢測(cè)效果。

        Web安全;SQL注入;網(wǎng)絡(luò)流量;異常檢測(cè)

        1 引言

        目前,大多數(shù)信息系統(tǒng)和商業(yè)應(yīng)用都提供了基于數(shù)據(jù)庫(kù)的Web服務(wù),與此同時(shí),針對(duì)Web服務(wù)中漏洞發(fā)起的攻擊也越來(lái)越多。在OWASP發(fā)布的2013年Web安全漏洞Top10中[1],由于操作難度低、危害巨大,SQL注入漏洞名列第一,且其普遍程度呈現(xiàn)出逐年上升的趨勢(shì)。

        SQL注入是一種利用應(yīng)用程序數(shù)據(jù)庫(kù)漏洞的注入技術(shù)。SQL注入攻擊針對(duì)的是使用后臺(tái)數(shù)據(jù)庫(kù)的交互式Web服務(wù),主要通過(guò)網(wǎng)絡(luò)應(yīng)用層協(xié)議HTTP完成。SQL注入攻擊的目標(biāo)一般不是Web服務(wù)器本身,而是為了非法獲取用戶信息、數(shù)據(jù)庫(kù)中的敏感數(shù)據(jù)以及服務(wù)器數(shù)據(jù)信息[2~4]。由于SQL注入利用SQL語(yǔ)言的特性,理論上對(duì)Oracle、MySQL、MS Server等基于SQL語(yǔ)言的數(shù)據(jù)庫(kù)都有效。通過(guò)對(duì)SQL注入行為的檢測(cè),可及時(shí)向被注入系統(tǒng)報(bào)警,有效保護(hù)企業(yè)及個(gè)人數(shù)據(jù)安全,同時(shí)可作為網(wǎng)絡(luò)取證的證據(jù),對(duì)網(wǎng)絡(luò)攻擊行為形成震懾作用。

        不同于以往基于客戶端或服務(wù)器端的檢測(cè)方法,本文通過(guò)分析和研究SQL注入過(guò)程及其流量特征,提出一種在網(wǎng)絡(luò)流量上檢查SQL注入行為的方法,本文方法的主要貢獻(xiàn)和創(chuàng)新點(diǎn)如下。

        1) 從某ISP獲取的211 GB原始網(wǎng)絡(luò)流量中(經(jīng)人工檢測(cè)不含SQL注入),詳細(xì)統(tǒng)計(jì)并分析了HTTP請(qǐng)求的URI長(zhǎng)度、實(shí)體長(zhǎng)度、HTTP連接數(shù)以及請(qǐng)求特征串;并通過(guò)與4種常用SQL注入工具的注入流量相比較,發(fā)現(xiàn)注入流量在HTTP請(qǐng)求長(zhǎng)度、連接頻率以及請(qǐng)求特征串等方面,與正常流量相比有較大區(qū)別。這為從網(wǎng)絡(luò)流量分析的角度來(lái)檢測(cè)SQL注入行為奠定了理論基礎(chǔ)。

        2) 基于上述洞察,提出了LFF(length-frequency-feature)檢測(cè)方法。對(duì)于每條HTTP請(qǐng)求,首先分別檢測(cè)其請(qǐng)求長(zhǎng)度和連接頻率;然后采用特征串匹配算法,對(duì)請(qǐng)求語(yǔ)句進(jìn)行匹配;最后經(jīng)投票決策,確定HTTP請(qǐng)求中是否有SQL注入。該方法首次從網(wǎng)絡(luò)流量分析的角度來(lái)檢測(cè)SQL注入行為。

        3)通過(guò)大量實(shí)驗(yàn),驗(yàn)證了LFF檢測(cè)方法的有效性。首先,使用該方法對(duì)2種新的注入工具產(chǎn)生的SQL注入流量進(jìn)行檢測(cè),檢測(cè)的召回率在95%以上。然后,在真實(shí)網(wǎng)絡(luò)環(huán)境下,對(duì)未經(jīng)任何處理的196 GB真實(shí)網(wǎng)絡(luò)流量進(jìn)行檢測(cè),實(shí)驗(yàn)結(jié)果表明,在真實(shí)流量中檢測(cè)到SQL注入行為,且該方法的檢測(cè)召回率在74%以上。這說(shuō)明本文提出的方法能夠有效地發(fā)現(xiàn)網(wǎng)絡(luò)流量中的SQL注入行為。

        2 相關(guān)工作

        馬小婷等[5]全面分析了SQL注入檢測(cè)常用的原理和技術(shù)。大體而言,現(xiàn)有的SQL注入檢測(cè)分為2類。

        第一類是服務(wù)器端檢測(cè)技術(shù)。Halfond[6,7]和Shar等[8]將注入語(yǔ)句的靜態(tài)特征與后臺(tái)運(yùn)行時(shí)的動(dòng)態(tài)特征相結(jié)合,通過(guò)盡可能少的前期學(xué)習(xí),實(shí)現(xiàn)SQL注入檢測(cè);Shahriar等[9]采用靜態(tài)代碼分析,根據(jù)代碼中數(shù)據(jù)庫(kù)相關(guān)的API調(diào)用找出數(shù)據(jù)庫(kù)查詢語(yǔ)句,再計(jì)算出表、列、值的離散程度,從而判斷是否有SQL注入發(fā)生。此外,還通過(guò)機(jī)器學(xué)習(xí)方法[10]、基于規(guī)約的方法[11]以及污點(diǎn)跟蹤技術(shù)[12]檢測(cè)SQL注入。總體來(lái)看,服務(wù)器端可以檢測(cè)全部的數(shù)據(jù)庫(kù)查詢請(qǐng)求,但需要預(yù)先分析所有正常的SQL查詢語(yǔ)句,還需要通過(guò)源碼分析出注入點(diǎn),前期工作量大,且檢測(cè)結(jié)果依賴于關(guān)鍵詞的提取,準(zhǔn)確率有待提高。

        第二類是客戶端SQL注入漏洞檢測(cè)。一般是在無(wú)法得到網(wǎng)站源碼的情況下進(jìn)行,只能通過(guò)監(jiān)控Web應(yīng)用程序的行為判斷是否有SQL注入漏洞。Huang等[13]提出了基于錯(cuò)誤注入和行為監(jiān)控的Web應(yīng)用程序安全分析方法,將軟件測(cè)試技術(shù)應(yīng)用到Web 應(yīng)用程序漏洞檢測(cè);Stefan等[14]設(shè)計(jì)了SecuBat,通過(guò)爬蟲模塊、攻擊模塊和分析模塊的聯(lián)合使用判斷該頁(yè)面是否存在SQL注入漏洞;APPELT[15]設(shè)計(jì)了一種高效的SQL注入工具,采用多種繞過(guò)技術(shù),以檢測(cè)網(wǎng)頁(yè)中是否存在SQL注入漏洞。客戶端檢測(cè)的優(yōu)點(diǎn)在于可以忽略不同編程語(yǔ)言的特性,但其最大的缺點(diǎn)就是容易漏檢,難以覆蓋所有檢測(cè)點(diǎn)。

        在網(wǎng)絡(luò)流量檢測(cè)方面,王蘇南[16]優(yōu)化了高速?gòu)?fù)雜網(wǎng)絡(luò)環(huán)境下異常流量檢測(cè)方法,提出了無(wú)監(jiān)督的網(wǎng)絡(luò)異常溯源算法;Zhang等[17]采用改進(jìn)的最鄰近算法,利用機(jī)器學(xué)習(xí)進(jìn)行網(wǎng)絡(luò)流量檢測(cè)和分類,但該方法處理速度較慢;周愛(ài)平等[18]系統(tǒng)總結(jié)了高速網(wǎng)絡(luò)環(huán)境中的網(wǎng)絡(luò)測(cè)量方法,并比較了這些方法的優(yōu)劣,總體而言,這些方法都有較大局限性;王鵬等[19]提出了粒度自適應(yīng)的多徑流量分割算法,能較好地區(qū)分不同類型的流量。

        3 SQL注入過(guò)程及其特征分析

        一次完整的SQL注入過(guò)程可分為3個(gè)階段:尋找注入點(diǎn)、確定數(shù)據(jù)庫(kù)類型、數(shù)據(jù)竊取。這3個(gè)階段相互獨(dú)立又緊密聯(lián)系。

        本文對(duì)從某ISP獲取的211 GB原始網(wǎng)絡(luò)流量進(jìn)行分析(經(jīng)人工檢測(cè)不含SQL注入)。然后在服務(wù)器上搭建了有SQL注入漏洞的網(wǎng)站,通過(guò)4種常用注入工具向該網(wǎng)站實(shí)施SQL注入攻擊,并獲取到不同工具的注入流量,同時(shí)也對(duì)4種軟件的注入流量進(jìn)行了統(tǒng)計(jì)分析。這4種軟件分別是:啊D2.32、明小子4.3、pangolin4.0[20]、sqlmap1.0[21]。下面具體分析每一個(gè)階段的特征和統(tǒng)計(jì)結(jié)果。

        3.1 尋找注入點(diǎn)

        這一階段需要尋找有注入漏洞的網(wǎng)頁(yè)。一般的方法是通過(guò)爬蟲遍歷網(wǎng)站所有網(wǎng)頁(yè),對(duì)網(wǎng)頁(yè)所提交的參數(shù)進(jìn)行更改,根據(jù)服務(wù)器返回的信息,判斷是否存在注入漏洞。這一過(guò)程中常用的攻擊方式包括注釋符攻擊(添加單引號(hào))、重言式攻擊(添加“and 1=1--”)和其他SQL語(yǔ)言(添加drop或delete)。由于需要遍歷網(wǎng)站及參數(shù),客戶端會(huì)多次連接服務(wù)器,故在單位時(shí)間內(nèi)會(huì)產(chǎn)生大量連接。

        由上述分析可知,對(duì)于四元組<源IP,源端口,目的IP,目的端口>,在客戶端頻繁連接服務(wù)器時(shí),除源端口,其他值不會(huì)發(fā)生改變。所以,可以通過(guò)三元組<源IP,目的IP,目的端口>標(biāo)記和區(qū)分主機(jī)發(fā)起的HTTP請(qǐng)求。本文希望通過(guò)檢測(cè)單位時(shí)間內(nèi)HTTP連接數(shù)(即連接頻率),找出網(wǎng)絡(luò)流量中的SQL注入行為。

        在211 GB原始流量中,HTTP請(qǐng)求次數(shù)為712 521次,共匯聚成34 509條三元組。表1列出了總連接數(shù)前五的三元組,相應(yīng)的IP已做匿名化處理。

        從表1可以看出,每個(gè)三元組的平均連接次數(shù)差異很大,這是網(wǎng)絡(luò)狀況等多方面的因素造成的。經(jīng)統(tǒng)計(jì),所有三元組的平均連接次數(shù)為4.87次/秒。

        4種注入工具HTTP連接數(shù)的統(tǒng)計(jì)結(jié)果如表2所示。其中,啊D2.32和sqlmap1.0注入成功,另外2種工具失敗。

        在表2中,啊D2.32和sqlmap1.0的平均連接次數(shù)較大,而其他2種工具的平均連接次數(shù)較少。這是因?yàn)槊餍∽?.3和pangolin4.0注入失敗,這2種工具都設(shè)置了較大的超時(shí)重傳時(shí)間。

        比較表2和表1,SQL注入工具的連接頻率會(huì)高于正常網(wǎng)絡(luò)流量中HTTP連接頻率的平均值。因此,計(jì)算單位時(shí)間內(nèi)HTTP請(qǐng)求的三元組次數(shù),可以作為SQL注入檢測(cè)的一個(gè)標(biāo)準(zhǔn)。雖然正常網(wǎng)絡(luò)中平均HTTP連接頻率為4.87次/秒,但大部分的連接頻率遠(yuǎn)低于這個(gè)值,所以,本文將HTTP連接頻率的閾值設(shè)置為3次/秒。檢測(cè)時(shí),若某三元組1 s內(nèi)的連接數(shù)大于3次,則認(rèn)為連接頻率過(guò)大,可能存在SQL注入行為,需要進(jìn)一步的檢測(cè)。

        表1 211 GB原始流量中總連接數(shù)前五的三元組

        表2 4種注入工具注入流量的HTTP連接數(shù)

        3.2 確定數(shù)據(jù)庫(kù)類型

        這一階段對(duì)數(shù)據(jù)庫(kù)中的表做select操作,根據(jù)數(shù)據(jù)庫(kù)返回信息判斷數(shù)據(jù)庫(kù)類型。這個(gè)過(guò)程中需要向URI(或HTTP實(shí)體)拼接SQL查詢語(yǔ)句,故URI長(zhǎng)度(或HTTP實(shí)體長(zhǎng)度)與正常網(wǎng)絡(luò)流量相比會(huì)發(fā)生很大變化。

        HTTP協(xié)議主要有GET和POST 2種交互方式,不同的方式檢測(cè)HTTP請(qǐng)求的不同部分。GET方式檢測(cè)URI長(zhǎng)度,POST方式檢測(cè)HTTP實(shí)體長(zhǎng)度。因?yàn)檫@一階段中URI長(zhǎng)度(或HTTP實(shí)體)變化明顯,本文試圖通過(guò)檢測(cè)URI長(zhǎng)度(或HTTP實(shí)體長(zhǎng)度),在發(fā)生SQL注入時(shí)找出異常的HTTP請(qǐng)求。

        3.2.1 URI長(zhǎng)度統(tǒng)計(jì)

        從211 GB原始流量中,共提取到712 516條URI長(zhǎng)度大于零的HTTP請(qǐng)求,對(duì)每條請(qǐng)求計(jì)算URI長(zhǎng)度并進(jìn)行統(tǒng)計(jì)。結(jié)果顯示,正常網(wǎng)絡(luò)流量中,平均URI長(zhǎng)度為78.3 byte,加權(quán)平均URI長(zhǎng)度為103.1 byte,其中長(zhǎng)度小于100 byte的URI占到總量的80.69%。URI統(tǒng)計(jì)結(jié)果如圖1所示,長(zhǎng)度小于100 byte的URI長(zhǎng)度頻率分布直方圖如圖2所示。4種SQL注入工具的注入流量中URI長(zhǎng)度頻數(shù)分布直方圖如圖3所示。

        表3比較了正常流量和注入流量URI長(zhǎng)度的相關(guān)統(tǒng)計(jì)值。表3表明,有3種工具的URI平均值大于正常流量平均值;但4種工具的加權(quán)平均值均小于正常流量的加權(quán)平均值;4種注入工具URI長(zhǎng)度的眾數(shù)都大于正常流量眾數(shù);正常流量URI長(zhǎng)度的標(biāo)準(zhǔn)差是5種中最大的,說(shuō)明該數(shù)據(jù)離散程度高,具有較強(qiáng)的代表性。由圖1可知,80%以上的URI長(zhǎng)度小于100 byte,但由于其余20%的URI長(zhǎng)度較大,導(dǎo)致正常流量URI加權(quán)平均值偏大。從表2中可以發(fā)現(xiàn),明小子4.3HTTP請(qǐng)求個(gè)數(shù)偏少,導(dǎo)致其URI統(tǒng)計(jì)值偏低,但從圖3(b)中可以看出,仍有大量的URI長(zhǎng)度集中在80~90 byte的范圍內(nèi)。綜上所述,可以認(rèn)為當(dāng)HTTP請(qǐng)求的URI長(zhǎng)度超過(guò)某個(gè)閾值時(shí),該請(qǐng)求可能包含異常行為,需要進(jìn)行進(jìn)一步的判斷。

        由圖2可知,大部分HTTP請(qǐng)求的URI長(zhǎng)度在5~70 byte之間,故本文設(shè)置URI長(zhǎng)度閾值為70 byte,當(dāng)長(zhǎng)度大于70時(shí),認(rèn)為該請(qǐng)求存在異常。

        表3 URI長(zhǎng)度統(tǒng)計(jì)值

        3.2.2 HTTP實(shí)體長(zhǎng)度統(tǒng)計(jì)

        首先對(duì)211 GB原始流量中POST請(qǐng)求的實(shí)體長(zhǎng)度進(jìn)行統(tǒng)計(jì),結(jié)果如圖4所示,橫坐標(biāo)表示以前一個(gè)坐標(biāo)為下限、當(dāng)前坐標(biāo)為上限的區(qū)間。

        在211GB原始流量中共提取到190 938條POST請(qǐng)求,其實(shí)體長(zhǎng)度分布呈現(xiàn)出“兩頭大,中間小”的情況,這是因?yàn)橥ǔS肞OST方式向服務(wù)器輸入數(shù)據(jù),比如提交HTML表單。瀏覽網(wǎng)頁(yè)時(shí),登錄、評(píng)論等行為都會(huì)產(chǎn)生POST請(qǐng)求;向網(wǎng)站服務(wù)器傳輸圖片等文件時(shí),采用POST方式會(huì)有較大載荷,這樣就造成圖3的情況。由于并不是所有注入工具都支持POST方式,本文挑選支持該方式的sqlmap1.0,對(duì)該工具HTTP請(qǐng)求實(shí)體長(zhǎng)度也進(jìn)行了統(tǒng)計(jì),結(jié)果如圖5所示。

        表4 實(shí)體長(zhǎng)度統(tǒng)計(jì)值

        圖5和圖4的對(duì)比結(jié)果如表4所示??梢钥闯觯A髁康膶?shí)體長(zhǎng)度分布呈現(xiàn)出兩極化趨勢(shì),POST注入方式并沒(méi)有在實(shí)體長(zhǎng)度上表現(xiàn)出明顯的特征。將圖5與圖3(d)比較,不論是POST還是GET,其請(qǐng)求長(zhǎng)度值都集中在60~80 byte的范圍;但POST請(qǐng)求的總次數(shù)要遠(yuǎn)小于GET方式的總次數(shù),說(shuō)明POST注入有更強(qiáng)的隱蔽性。因此對(duì)于這種類型的注入需要采取其他的檢測(cè)方法。

        3.3 數(shù)據(jù)竊取階段

        確定數(shù)據(jù)庫(kù)類型后,一般會(huì)根據(jù)字典猜測(cè)表名和列名,再通過(guò)二分查找等方法確定列中數(shù)據(jù)個(gè)數(shù)和內(nèi)容。由于需要猜測(cè)內(nèi)容,注入時(shí)會(huì)向URI(或HTTP實(shí)體)拼接SQL查詢語(yǔ)句,拼接的語(yǔ)句中含有大量SQL函數(shù)??梢詫QL查詢語(yǔ)句或SQL函數(shù)作為特征串進(jìn)行匹配和檢測(cè)。

        特征串檢測(cè)適用于SQL注入的全過(guò)程,尤其適用于這一階段。因?yàn)镾QL注入攻擊會(huì)利用常見數(shù)據(jù)庫(kù)信息進(jìn)行注入。分析4種工具的注入流量,本文歸納出SQL注入語(yǔ)句的如下特征。

        1) 利用SQL語(yǔ)言注釋符截?cái)嘣姓Z(yǔ)句,通過(guò)“and”或“or”添加查詢條件。

        2) 含有select、union、from和where等SQL語(yǔ)言關(guān)鍵詞。

        3) 含有SQL函數(shù),包括chr、exists、ascw、count等。

        4) 注入語(yǔ)句使用字母大小寫替換等方式繞過(guò)檢測(cè)。

        可以發(fā)現(xiàn),特征1)和特征2)具有很強(qiáng)的局限性,在正常的HTTP請(qǐng)求中,也會(huì)有相似關(guān)鍵詞,若只以特征1)和特征2)作為特征串,會(huì)導(dǎo)致誤報(bào)率較高。特征3)具有一定特異性,其缺點(diǎn)是需要大量SQL函數(shù)作為匹配的集合,由于SQL函數(shù)眾多,不可能全部包括。特征4)導(dǎo)致特征串集合規(guī)模成指數(shù)增長(zhǎng),故必須采用其他處理方法。

        通過(guò)上述分析,本文認(rèn)為用于檢測(cè)的特征串應(yīng)具備以下特點(diǎn):特征串不是簡(jiǎn)單的SQL關(guān)鍵詞或函數(shù)名,而是SQL語(yǔ)句片段;特征串不僅包括SQL語(yǔ)言,還應(yīng)包括常見數(shù)據(jù)庫(kù)信息;特征串應(yīng)包括注入工具所使用的字典;特征串盡可能多的覆蓋注入語(yǔ)句的繞過(guò)方式。為了構(gòu)造符合上述特點(diǎn)的特征串集合,本文采用2種方法,分別在下面詳細(xì)介紹。

        表5 最長(zhǎng)公共子串重復(fù)次數(shù)前五

        表6 常見注入語(yǔ)句的正則表示

        3.3.1 基于序列對(duì)比的Needle-Wunsch算法

        Needle-Wunsch算法最早用于生物序列分析,適用于整體相似性度較高的2個(gè)序列。本文采用改進(jìn)的Needle-Wunsch算法進(jìn)行逆向匹配,從而找出注入語(yǔ)句的最長(zhǎng)公共子串。對(duì)表2中1 408條SQL注入語(yǔ)句兩兩互求最長(zhǎng)公共子串,共得到161 820條不同的子串。去除沒(méi)有意義的部分,根據(jù)重復(fù)次數(shù)排序,結(jié)果如表5所示。

        可以看出,得到的公共子串不是分散的關(guān)鍵詞,而是基本完整的SQL語(yǔ)句,有利于進(jìn)一步匹配;同時(shí),公共子串中含有admin等字典內(nèi)容,有利于SQL注入語(yǔ)句的查找。但該算法得到的結(jié)果對(duì)字母大小寫敏感,故本文又采用正則表達(dá)式方法,作為對(duì)繞過(guò)方式的檢驗(yàn)。

        3.3.2 特征串的正則表示

        雖然通過(guò)NW算法,解決了特征串的選取問(wèn)題,但仍可能通過(guò)字母大小寫替換等方式繞過(guò)特征串檢測(cè)。為了解決這個(gè)問(wèn)題,以更加完備地描述SQL注入語(yǔ)句的特征,本文對(duì)上述獲取的特征串使用正則表達(dá)式進(jìn)行表示。表6給出一些常見注入語(yǔ)句及其正則表示。

        用于檢測(cè)的特征串集合由3部分組成,第1部分由NW算法得到的公共子串的正則表示組成;第2部分是常用數(shù)據(jù)庫(kù)信息,包括數(shù)據(jù)庫(kù)系統(tǒng)表等;第3部分是注入工具使用的猜測(cè)字典。

        綜上所述,通過(guò)尋找注入點(diǎn)、確定數(shù)據(jù)庫(kù)類型以及數(shù)據(jù)竊取,構(gòu)成了一次完整的SQL注入攻擊。本文分析了每個(gè)階段的流量特征,并據(jù)此對(duì)每個(gè)階段都提出了一種檢測(cè)方法。為了綜合利用這些方法,本文提出了基于長(zhǎng)度、連接頻率和特征串的LFF檢測(cè)方法。

        4 基于LFF的SQL注入檢測(cè)方法

        4.1 檢測(cè)方法描述

        針對(duì)SQL注入不同階段的特征,以及前文得出的相關(guān)參數(shù)的閾值,本文提出了LFF (length-frequency-feature)檢測(cè)方法,其步驟如下。

        1) 判斷HTTP請(qǐng)求是GET還是POST。若是GET方式,提取URI后進(jìn)入步驟2),若是POST方式,提取實(shí)體后進(jìn)入步驟3)。

        2) 對(duì)URI進(jìn)行長(zhǎng)度檢測(cè),若長(zhǎng)度大于70 byte,則發(fā)出警告后進(jìn)入步驟3),否則直接進(jìn)入步驟3)。

        3) 提取當(dāng)前HTTP請(qǐng)求的三元組,判斷其是否存在于三元組表中;若存在,相應(yīng)三元組連接數(shù)加1,若不存在,則創(chuàng)建該三元組;對(duì)各組進(jìn)行連接頻率檢測(cè),若連接頻率大于3次/秒,則發(fā)出警告后進(jìn)入步驟4),否則直接進(jìn)入步驟4)。

        4) 對(duì)步驟1)提取出的結(jié)果進(jìn)行特征串匹配。匹配的方法是找出特征串集合中每一項(xiàng)在該結(jié)果中首次出現(xiàn)的位置,若返回值不為空,則表明匹配成功,匹配檢測(cè)發(fā)出警告后進(jìn)入步驟5),否則直接進(jìn)入步驟5)。

        5) 對(duì)步驟2)到步驟4)中的檢測(cè)結(jié)果進(jìn)行投票決策。若有2種及以上的檢測(cè)方法發(fā)出警告,則判定當(dāng)前HTTP請(qǐng)求存在SQL注入行為;若只有一種檢測(cè)發(fā)出警告,則記錄該請(qǐng)求,由人工進(jìn)一步判斷;若都沒(méi)有發(fā)出警告,則認(rèn)為當(dāng)前HTTP請(qǐng)求不是SQL注入語(yǔ)句,進(jìn)入步驟6)。

        6) 獲取下一條HTTP請(qǐng)求,重復(fù)步驟1)至步驟5)。

        LFF檢測(cè)方法流程如圖6所示。

        表7 HTTP連接數(shù)檢測(cè)驗(yàn)證

        4.2 方法有效性驗(yàn)證

        為了驗(yàn)證LFF檢測(cè)方法的有效性,本文使用2個(gè)新的注入工具Havij1.7pro和safe3,對(duì)搭建在服務(wù)器上的網(wǎng)站進(jìn)行SQL注入攻擊,并獲取注入時(shí)的流量。其中,Havij1.7pro注入失敗,safe3注入成功。連同之前的4個(gè)注入工具,對(duì)這6個(gè)注入工具的檢測(cè)結(jié)果如下。

        4.2.1 連接頻率檢測(cè)驗(yàn)證

        根據(jù)3.1節(jié)所述,將連接頻率閾值設(shè)置為3次/秒,對(duì)超過(guò)閾值的HTTP請(qǐng)求發(fā)出警報(bào)。6個(gè)注入工具的檢測(cè)結(jié)果如表7所示,連接頻率檢測(cè)并沒(méi)有檢測(cè)到Havij1.7pro的注入行為。這是因?yàn)樵摴ぞ咦⑷胧。涞却龝r(shí)間設(shè)置為0.5 s,當(dāng)服務(wù)器沒(méi)有返回信息時(shí),該工具每隔0.5 s會(huì)再進(jìn)行一次嘗試,所以連接數(shù)較低。但對(duì)于其他注入工具,該方法有較好的檢測(cè)結(jié)果。

        4.2.2 長(zhǎng)度檢測(cè)驗(yàn)證

        根據(jù)3.2節(jié)所述,將請(qǐng)求長(zhǎng)度閾值設(shè)置為70 byte,對(duì)超過(guò)閾值的HTTP請(qǐng)求發(fā)出警報(bào)。結(jié)果表明,長(zhǎng)度檢測(cè)產(chǎn)生警報(bào)的HTTP請(qǐng)求都是SQL注入語(yǔ)句,誤檢率為0。6個(gè)注入工具的檢測(cè)結(jié)果如表8所示。除工具sqlmap1.0,該檢測(cè)方法對(duì)其他工具都有較好的檢測(cè)效果。通過(guò)對(duì)注入工具的分析,認(rèn)為長(zhǎng)度檢測(cè)結(jié)果與注入工具的設(shè)計(jì)有關(guān),sqlmap1.0產(chǎn)生的注入語(yǔ)句長(zhǎng)度較短,故檢測(cè)效果較差。但從總體效果看,該檢測(cè)已經(jīng)起到一定的作用。為了提高檢測(cè)召回率,可以適當(dāng)減少閾值。

        4.2.3 特征串檢測(cè)驗(yàn)證

        根據(jù)3.3中提取出的特征串,對(duì)6種工具的注入行為進(jìn)行檢測(cè),檢測(cè)結(jié)果如表9所示??梢钥闯?,6種注入工具檢測(cè)召回率都在95%以上,有很好的檢測(cè)結(jié)果。但仍有部分注入語(yǔ)句沒(méi)有檢測(cè)出。這是因?yàn)檫€有一些語(yǔ)句采用了其他的繞過(guò)手段,比如,對(duì)注入點(diǎn)的參數(shù)進(jìn)行算術(shù)運(yùn)算;或是對(duì)注入語(yǔ)句進(jìn)行ASCII編碼。這些問(wèn)題需要在未來(lái)的工作中解決。

        表8 長(zhǎng)度檢測(cè)模塊驗(yàn)證結(jié)果

        表9 6種注入工具特征串檢測(cè)結(jié)果

        表10 LFF投票決策結(jié)果驗(yàn)證

        4.2.4 投票決策驗(yàn)證

        上面各節(jié)只是對(duì)各檢測(cè)方法的驗(yàn)證,本節(jié)將對(duì)投票決策的結(jié)果進(jìn)行驗(yàn)證和分析。根據(jù)表7~表9的結(jié)果,橫向來(lái)看,各檢測(cè)模塊都有一定的局限性,不能只根據(jù)一種檢測(cè)方法的結(jié)果就認(rèn)為存在SQL注入行為;縱向來(lái)看,每種工具都至少被2種方法檢測(cè)出,即各檢測(cè)方法之間具有互補(bǔ)性。因此,投票決策模塊的原則是:若有2種及以上的檢測(cè)方法發(fā)出警報(bào),就認(rèn)為是SQL注入行為;若只有一種檢測(cè)發(fā)出警報(bào),則記錄相關(guān)信息,由人工做進(jìn)一步判斷;若都沒(méi)有發(fā)出警報(bào),則認(rèn)為是正常HTTP請(qǐng)求。

        本文對(duì)投票決策的結(jié)果進(jìn)行人工驗(yàn)證,結(jié)果如表10所示。結(jié)果表明,對(duì)各注入工具的召回率在95%以上。表10與表9相比,檢測(cè)正確有所上升。這是因?yàn)?,雖然有些語(yǔ)句的特征串并沒(méi)有發(fā)現(xiàn),但仍然能通過(guò)單位時(shí)間連接次數(shù)和請(qǐng)求長(zhǎng)度發(fā)現(xiàn)其異常。

        5 真實(shí)網(wǎng)絡(luò)環(huán)境下的實(shí)驗(yàn)驗(yàn)證

        從相同ISP又獲得196GB原始網(wǎng)絡(luò)流量,這些流量事先未經(jīng)過(guò)任何處理和標(biāo)記,利用LLF檢測(cè)方法對(duì)其進(jìn)行檢測(cè),作為真實(shí)網(wǎng)絡(luò)環(huán)境下的驗(yàn)證,并希望從中發(fā)現(xiàn)SQL注入行為。檢測(cè)結(jié)果如表11所示。

        表11 196 GB真實(shí)流量檢測(cè)結(jié)果

        LFF檢測(cè)完成后,由人工對(duì)196 GB流量進(jìn)行標(biāo)記和驗(yàn)證。其中,共有3 033條注入語(yǔ)句,LFF方法檢測(cè)出2 268條注入語(yǔ)句,召回率為74.77%,誤報(bào)率為0。部分注入語(yǔ)句未被發(fā)現(xiàn)的原因是:一些語(yǔ)句采用了ASCII編碼等方式進(jìn)行繞過(guò);檢測(cè)所用的特征串集合沒(méi)有覆蓋所有的特征串。結(jié)果表明,該方法沒(méi)有產(chǎn)生誤報(bào),沒(méi)有將搜索引擎產(chǎn)生的相似流量標(biāo)記為SQL注入流量。

        經(jīng)過(guò)核查,3 033條注入語(yǔ)句中,有90%以上來(lái)自同一IP地址,該IP地址為218.30.117.72,屬于北京市某公司數(shù)據(jù)中心,可能為租用云服務(wù)器實(shí)施SQL注入攻擊。

        6 結(jié)束語(yǔ)

        本文從網(wǎng)絡(luò)流量檢測(cè)的角度,提出了針對(duì)SQL注入的LFF檢測(cè)方法。LFF檢測(cè)包括長(zhǎng)度檢測(cè)、連接頻率檢測(cè)和特征串檢測(cè)。3種檢測(cè)方法以SQL注入各階段特征為依據(jù),并以大量正常流量作為分析基礎(chǔ),其結(jié)果具有一定的普遍性和代表性。在模擬環(huán)境下,該方法檢測(cè)召回率在95%以上;在真實(shí)網(wǎng)絡(luò)環(huán)境中,檢測(cè)召回率在74%以上,能夠較準(zhǔn)確地發(fā)現(xiàn)網(wǎng)絡(luò)中的SQL注入行為。未來(lái)的工作包括2個(gè)方面:1) 深入分析SQL注入的其他特征,以檢測(cè)出有繞過(guò)形式的注入語(yǔ)句;2) 拓展該方法的應(yīng)用范圍,檢測(cè)XSS等其他類型的攻擊。

        [1] OWASP 2013 top 10 risks[EB/OL]. https://www.owasp.org/index.php/ Top_10_2013-Top_10, 2015-3-12.

        [2] MCDONALD, S. SQL Injection: modes of attack, defense, and why it matters[EB/OL]. http://www.governmentsecurity.org/articles/SQLInjectionModesofAttackDefence and Why It Matters. php, 2015-3-11.

        [3] ORSO A, HALFOND W G J, VIEGAS J. A classification of SQL injection attacks and countermeasures[C]//The International Symposium on Secure Software Engineering. c2006.

        [4] APPELT D, NGUYEN D C, BRIAND L. Behind an application firewall, are we safe from SQL injection attacks[C]//IEEE International Conference on Software Testing, Verification and Validation (ICST). c2015:1-10.

        [5] 馬小婷,胡國(guó)平,李舟軍.SQL注入漏洞檢測(cè)與防御技術(shù)研究[J].計(jì)算機(jī)安全,2010, (11):18-24.

        MA X T, HU G P, LI Z J. Research on detection and prevention technologies for SQL injection vulnerability[J]. Computer Security, 2010, (11):18-24.

        [6] HALFOND W G J, ORSO A. AMNESIA: analysis and monitoring for NEutralizing SQL-injection attacks[C]//20th IEEE/ACM International Conference on Automated Software Engineering. ACM, c2005: 174-183.

        [7] HALFOND W G J, ORSO A. Detection and prevention of SQL injection attacks[J]. Malware Detection, 2006, (27): 85-109.

        [8] SHAR L K, TAN H B K, BRIAND L C. Mining SQL injection and cross site scripting vulnerabilities using hybrid program analysis[C]//2013 International Conference on Software Engineering. IEEE Press, c2013:642-651.

        [9] SHAHRIAR H,NORTH S,CHEN W C. Early detection of SQL injection attacks[J]. International Journal of Network Security & Its Applications, 2013, 5(4):53-65.

        [10] VALEUR F,MUTZ D,VIGNA G. A learning-based approach to the detection of SQL attacks[M]. Detection of Intrusions and Malware, and Vulnerability Assessment. Springer Berlin Heidelberg, 2005: 123-140.

        [11] KEMALIS K,TZOURAMANIS T.SQL-IDS: a specification-based approach for SQL-injection detection[C]//2008 ACM Symposium on Applied Computing. ACM, c2008:2153-2158.

        [12] 陸開奎.基于動(dòng)態(tài)污點(diǎn)分析的漏洞攻擊檢測(cè)技術(shù)研究與實(shí)現(xiàn)[D].成都: 電子科技大學(xué),2013.

        LU K K. The Research and realization of dynamic taint analysis based security attack detection technology[D]. Chengdu: University of Electronic Science and Technology of China, 2013.

        [13] HUANG Y W,HUANG S K,TSAI C H. Web application security assessment by fault injection and behavior monitoring[C]//WWW’03 International Conference on World Wide Web. c2003:148-159.

        [14] KALS S, KIRDA E, KRUEGEL C, et al. SecuBat: a Web vulnerability scanner[C]//International Conference on World Wide Web. c2006: 247-256.

        [15] APPELT D, NGUYEN C D, BRIAND L C, et al. Automated testing for SQL injection vulnerabilities: an input mutation approach[C]//International Symposium on Software Testing & Analysis, c2014: 259-269.

        [16] 王蘇南. 高速?gòu)?fù)雜網(wǎng)絡(luò)環(huán)境下異常流量檢測(cè)技術(shù)研究[D]. 鄭州: 解放軍信息工程大學(xué),2012.

        WANG S N. Research on anomaly detection technology in high-speed complex network environment[D]. Zhengzhou: PLA Information Engineering University,2012.

        [17] ZHANG J, XIANG Y, WANG Y, et al. Network traffic classification using correlation information[J]. IEEE Transactions on Parallel & Distributed Systems, 2013, 24(1):104 - 117.

        [18] 周愛(ài)平, 程光, 郭曉軍. 高速網(wǎng)絡(luò)流量測(cè)量方法[J]. 軟件學(xué)報(bào),2014, 25(1):135-153.

        ZHOU A P, CHENG G, GUO X J. High-speed network traffic measurement method[J]. Journal of Software, 2014, 25(1):135-153.

        [19] 王鵬, 蘭巨龍, 陳庶樵. 粒度自適應(yīng)的多徑流量分割算法[J]. 通信學(xué)報(bào), 2015, 36(1):211-217.

        WANG P, LAN J L, CHEN S Q. Multipath traffic splitting algorithm based on adaptive granularity[J].Journal on Communications , 2015, 36(1):211-217.

        [20] Pangolin-SQLinjection tools [EB/OL]. http://nosec.org/cn/productservice/pangolin, 2014-12-22.

        [21] Sqlmap-Automatic SQL injection and databasetakeover tool[EB/OL]. http://sqlmap.org/, 2015-3-5.

        Approach to detecting SQL injection behaviors in network environment

        ZHAO Yu-fei1, XIONG Gang2, HE Long-tao3, LI Zhou-jun1

        (1. School of Computer Science, Beihang University, Beijing 100083, China; 2. Institute of Information Engineering, Chinese Academy of Sciences, Beijing 100093, China; 3. National Computer Network Emergency Response Technical Team/Coordination Center of China, Beijing 100029, China)

        SQL injection attack is one of the main threats that many Web applications faced with. The traditional detection method depended on the clients or servers. Firstly the process of SQL injection attack was analyzed, and then the differences between attack traffic and normal traffic in HTTP request length, HTTP connections and feature string were discovered. Based on the request length, request frequency and feature string, a new method, LFF (length-frequency-feature), was proposed to detect SQL injection behaviors from network traffic. The results of experiments indicated that in simulation environments the recall of LFF approach reach up to 95%, and in real network traffic the LFF approach also get a good detection result.

        Web security, SQL injection, network traffic, outlier detection

        TP393

        A

        10.11959/j.issn.1000-436x.2016034

        2015-04-08;

        2015-07-15

        熊剛,xionggang@iie.ac.cn

        國(guó)家高技術(shù)研究發(fā)展計(jì)劃(“863”計(jì)劃)基金資助項(xiàng)目(No.2015AA016004);國(guó)家自然科學(xué)基金資助項(xiàng)目(No.61170189, No.61370126);教育部博士點(diǎn)基金資助項(xiàng)目(No.20111102130003);國(guó)家科技支撐計(jì)劃基金資助項(xiàng)目(No.2012BAH46B02, No.2012BAH46B04);中國(guó)科學(xué)院戰(zhàn)略性先導(dǎo)科技專項(xiàng)課題基金資助項(xiàng)目(No.XDA06030200)

        The National High Technology Research and Development Program of China (863 Program) (No.2015AA016004), The National Natural Science Foundation of China (No.61170189, No.61370126), Ph.D. Programs Foundation of Ministry of Education of China (No.20111102130003), The National Key Technology R&D Program (No.2012BAH46B02, No.2012BAH46B04), The Strategic Priority Research Program of the Chinese Academy of Sciences (No.XDA06030200)

        趙宇飛(1990-),男,山西太原人,北京航空航天大學(xué)博士生,主要研究方向?yàn)榫W(wǎng)絡(luò)安全。

        熊剛(1977-),男,湖北漢川人,博士,中國(guó)科學(xué)院信息工程研究所正高級(jí)工程師、博士生導(dǎo)師,主要研究方向?yàn)榫W(wǎng)絡(luò)測(cè)量、信息對(duì)抗、信息安全等。

        賀龍濤(1974-),男,貴州遵義人,博士,國(guó)家計(jì)算機(jī)網(wǎng)絡(luò)應(yīng)急技術(shù)處理協(xié)調(diào)中心正高級(jí)工程師、博士生導(dǎo)師,主要研究方向?yàn)樾畔踩?/p>

        李舟軍(1963-),男,湖南湘鄉(xiāng)人,博士,北京航空航天大學(xué)教授、博士生導(dǎo)師,主要研究方向?yàn)榫W(wǎng)絡(luò)與信息安全、數(shù)據(jù)挖掘與人工智能。

        猜你喜歡
        三元組網(wǎng)絡(luò)流量語(yǔ)句
        基于語(yǔ)義增強(qiáng)雙編碼器的方面情感三元組提取
        軟件工程(2024年12期)2024-12-28 00:00:00
        基于帶噪聲數(shù)據(jù)集的強(qiáng)魯棒性隱含三元組質(zhì)檢算法*
        基于多元高斯分布的網(wǎng)絡(luò)流量異常識(shí)別方法
        基于神經(jīng)網(wǎng)絡(luò)的P2P流量識(shí)別方法
        重點(diǎn):語(yǔ)句銜接
        關(guān)于余撓三元組的periodic-模
        AVB網(wǎng)絡(luò)流量整形幀模型端到端延遲計(jì)算
        精彩語(yǔ)句
        如何搞定語(yǔ)句銜接題
        三元組輻射場(chǎng)的建模與仿真
        漂亮丰满人妻被中出中文字幕| 中文字幕人成人乱码亚洲 | 爱情岛永久地址www成人| 亚洲综合偷自成人网第页色| 一本久道在线视频播放| 久久久极品少妇刺激呻吟网站| 国产精品毛片一区二区| 午夜三级网| 国产黄三级三级三级三级一区二区 | 国产午夜精品一区二区三区视频| 青青草视频在线你懂的| 亚洲精品第一页在线观看 | 91麻豆精品激情在线观看最新| 亚洲一区二区精品在线看| 精品国产一区二区三区av天堂| 国产女人高潮叫床免费视频| 六月丁香久久| 国产三级在线观看高清| 亚洲av免费手机在线观看| 怡红院免费的全部视频| 国产高清国内精品福利99久久| 日本成人精品一区二区三区| 欧美人与动性xxxxx杂性| 人妻av一区二区三区精品| 国产成人自拍视频在线免费| 蜜桃视频在线观看网址| 亚洲国产成人精品无码一区二区| 欧美人妻精品一区二区三区| 国产成人亚洲合集青青草原精品| 亚洲综合中文日韩字幕| 欧美不卡一区二区三区| 一本色道久久综合狠狠躁| 国产一区二区在线观看视频免费| 国产剧情一区二区三区在线 | 色综合无码av网站| 国产福利一区二区三区视频在线看| 女人天堂av人禽交在线观看| 久久99精品久久久久久秒播| 手机看片国产日韩| 日产国产亚洲精品系列| 亚洲欧美乱日韩乱国产|