趙宇飛,熊剛,賀龍濤,李舟軍
?
面向網絡環境的SQL注入行為檢測方法
趙宇飛1,熊剛2,賀龍濤3,李舟軍1
(1. 北京航空航天大學計算機學院,北京 100083;2. 中國科學院信息工程研究所,北京 100093; 3. 國家計算機網絡應急技術處理協調中心,北京 100029)
SQL注入攻擊是Web應用面臨的主要威脅之一,傳統的檢測方法針對客戶端或服務器端進行。通過對SQL注入的一般過程及其流量特征分析,發現其在請求長度、連接數以及特征串等方面,與正常流量相比有較大區別,并據此提出了基于長度、連接頻率和特征串的LFF(length-frequency-feature)檢測方法,首次從網絡流量分析的角度檢測SQL注入行為。實驗結果表明,在模擬環境下,LFF檢測方法召回率在95%以上,在真實環境下,該方法也取得較好的檢測效果。
Web安全;SQL注入;網絡流量;異常檢測
目前,大多數信息系統和商業應用都提供了基于數據庫的Web服務,與此同時,針對Web服務中漏洞發起的攻擊也越來越多。在OWASP發布的2013年Web安全漏洞Top10中[1],由于操作難度低、危害巨大,SQL注入漏洞名列第一,且其普遍程度呈現出逐年上升的趨勢。
SQL注入是一種利用應用程序數據庫漏洞的注入技術。SQL注入攻擊針對的是使用后臺數據庫的交互式Web服務,主要通過網絡應用層協議HTTP完成。SQL注入攻擊的目標一般不是Web服務器本身,而是為了非法獲取用戶信息、數據庫中的敏感數據以及服務器數據信息[2~4]。由于SQL注入利用SQL語言的特性,理論上對Oracle、MySQL、MS Server等基于SQL語言的數據庫都有效。通過對SQL注入行為的檢測,可及時向被注入系統報警,有效保護企業及個人數據安全,同時可作為網絡取證的證據,對網絡攻擊行為形成震懾作用。
不同于以往基于客戶端或服務器端的檢測方法,本文通過分析和研究SQL注入過程及其流量特征,提出一種在網絡流量上檢查SQL注入行為的方法,本文方法的主要貢獻和創新點如下。
1) 從某ISP獲取的211 GB原始網絡流量中(經人工檢測不含SQL注入),詳細統計并分析了HTTP請求的URI長度、實體長度、HTTP連接數以及請求特征串;并通過與4種常用SQL注入工具的注入流量相比較,發現注入流量在HTTP請求長度、連接頻率以及請求特征串等方面,與正常流量相比有較大區別。這為從網絡流量分析的角度來檢測SQL注入行為奠定了理論基礎。
2) 基于上述洞察,提出了LFF(length-frequency-feature)檢測方法。對于每條HTTP請求,首先分別檢測其請求長度和連接頻率;然后采用特征串匹配算法,對請求語句進行匹配;最后經投票決策,確定HTTP請求中是否有SQL注入。該方法首次從網絡流量分析的角度來檢測SQL注入行為。
3)通過大量實驗,驗證了LFF檢測方法的有效性。首先,使用該方法對2種新的注入工具產生的SQL注入流量進行檢測,檢測的召回率在95%以上。然后,在真實網絡環境下,對未經任何處理的196 GB真實網絡流量進行檢測,實驗結果表明,在真實流量中檢測到SQL注入行為,且該方法的檢測召回率在74%以上。這說明本文提出的方法能夠有效地發現網絡流量中的SQL注入行為。
馬小婷等[5]全面分析了SQL注入檢測常用的原理和技術。大體而言,現有的SQL注入檢測分為2類。
第一類是服務器端檢測技術。Halfond[6,7]和Shar等[8]將注入語句的靜態特征與后臺運行時的動態特征相結合,通過盡可能少的前期學習,實現SQL注入檢測;Shahriar等[9]采用靜態代碼分析,根據代碼中數據庫相關的API調用找出數據庫查詢語句,再計算出表、列、值的離散程度,從而判斷是否有SQL注入發生。此外,還通過機器學習方法[10]、基于規約的方法[11]以及污點跟蹤技術[12]檢測SQL注入??傮w來看,服務器端可以檢測全部的數據庫查詢請求,但需要預先分析所有正常的SQL查詢語句,還需要通過源碼分析出注入點,前期工作量大,且檢測結果依賴于關鍵詞的提取,準確率有待提高。
第二類是客戶端SQL注入漏洞檢測。一般是在無法得到網站源碼的情況下進行,只能通過監控Web應用程序的行為判斷是否有SQL注入漏洞。Huang等[13]提出了基于錯誤注入和行為監控的Web應用程序安全分析方法,將軟件測試技術應用到Web 應用程序漏洞檢測;Stefan等[14]設計了SecuBat,通過爬蟲模塊、攻擊模塊和分析模塊的聯合使用判斷該頁面是否存在SQL注入漏洞;APPELT[15]設計了一種高效的SQL注入工具,采用多種繞過技術,以檢測網頁中是否存在SQL注入漏洞。客戶端檢測的優點在于可以忽略不同編程語言的特性,但其最大的缺點就是容易漏檢,難以覆蓋所有檢測點。
在網絡流量檢測方面,王蘇南[16]優化了高速復雜網絡環境下異常流量檢測方法,提出了無監督的網絡異常溯源算法;Zhang等[17]采用改進的最鄰近算法,利用機器學習進行網絡流量檢測和分類,但該方法處理速度較慢;周愛平等[18]系統總結了高速網絡環境中的網絡測量方法,并比較了這些方法的優劣,總體而言,這些方法都有較大局限性;王鵬等[19]提出了粒度自適應的多徑流量分割算法,能較好地區分不同類型的流量。
一次完整的SQL注入過程可分為3個階段:尋找注入點、確定數據庫類型、數據竊取。這3個階段相互獨立又緊密聯系。
本文對從某ISP獲取的211 GB原始網絡流量進行分析(經人工檢測不含SQL注入)。然后在服務器上搭建了有SQL注入漏洞的網站,通過4種常用注入工具向該網站實施SQL注入攻擊,并獲取到不同工具的注入流量,同時也對4種軟件的注入流量進行了統計分析。這4種軟件分別是:啊D2.32、明小子4.3、pangolin4.0[20]、sqlmap1.0[21]。下面具體分析每一個階段的特征和統計結果。
3.1 尋找注入點
這一階段需要尋找有注入漏洞的網頁。一般的方法是通過爬蟲遍歷網站所有網頁,對網頁所提交的參數進行更改,根據服務器返回的信息,判斷是否存在注入漏洞。這一過程中常用的攻擊方式包括注釋符攻擊(添加單引號)、重言式攻擊(添加“and 1=1--”)和其他SQL語言(添加drop或delete)。由于需要遍歷網站及參數,客戶端會多次連接服務器,故在單位時間內會產生大量連接。
由上述分析可知,對于四元組<源IP,源端口,目的IP,目的端口>,在客戶端頻繁連接服務器時,除源端口,其他值不會發生改變。所以,可以通過三元組<源IP,目的IP,目的端口>標記和區分主機發起的HTTP請求。本文希望通過檢測單位時間內HTTP連接數(即連接頻率),找出網絡流量中的SQL注入行為。
在211 GB原始流量中,HTTP請求次數為712 521次,共匯聚成34 509條三元組。表1列出了總連接數前五的三元組,相應的IP已做匿名化處理。
從表1可以看出,每個三元組的平均連接次數差異很大,這是網絡狀況等多方面的因素造成的。經統計,所有三元組的平均連接次數為4.87次/秒。
4種注入工具HTTP連接數的統計結果如表2所示。其中,啊D2.32和sqlmap1.0注入成功,另外2種工具失敗。
在表2中,啊D2.32和sqlmap1.0的平均連接次數較大,而其他2種工具的平均連接次數較少。這是因為明小子4.3和pangolin4.0注入失敗,這2種工具都設置了較大的超時重傳時間。
比較表2和表1,SQL注入工具的連接頻率會高于正常網絡流量中HTTP連接頻率的平均值。因此,計算單位時間內HTTP請求的三元組次數,可以作為SQL注入檢測的一個標準。雖然正常網絡中平均HTTP連接頻率為4.87次/秒,但大部分的連接頻率遠低于這個值,所以,本文將HTTP連接頻率的閾值設置為3次/秒。檢測時,若某三元組1 s內的連接數大于3次,則認為連接頻率過大,可能存在SQL注入行為,需要進一步的檢測。

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

表2 4種注入工具注入流量的HTTP連接數
3.2 確定數據庫類型
這一階段對數據庫中的表做select操作,根據數據庫返回信息判斷數據庫類型。這個過程中需要向URI(或HTTP實體)拼接SQL查詢語句,故URI長度(或HTTP實體長度)與正常網絡流量相比會發生很大變化。
HTTP協議主要有GET和POST 2種交互方式,不同的方式檢測HTTP請求的不同部分。GET方式檢測URI長度,POST方式檢測HTTP實體長度。因為這一階段中URI長度(或HTTP實體)變化明顯,本文試圖通過檢測URI長度(或HTTP實體長度),在發生SQL注入時找出異常的HTTP請求。
3.2.1 URI長度統計
從211 GB原始流量中,共提取到712 516條URI長度大于零的HTTP請求,對每條請求計算URI長度并進行統計。結果顯示,正常網絡流量中,平均URI長度為78.3 byte,加權平均URI長度為103.1 byte,其中長度小于100 byte的URI占到總量的80.69%。URI統計結果如圖1所示,長度小于100 byte的URI長度頻率分布直方圖如圖2所示。4種SQL注入工具的注入流量中URI長度頻數分布直方圖如圖3所示。
表3比較了正常流量和注入流量URI長度的相關統計值。表3表明,有3種工具的URI平均值大于正常流量平均值;但4種工具的加權平均值均小于正常流量的加權平均值;4種注入工具URI長度的眾數都大于正常流量眾數;正常流量URI長度的標準差是5種中最大的,說明該數據離散程度高,具有較強的代表性。由圖1可知,80%以上的URI長度小于100 byte,但由于其余20%的URI長度較大,導致正常流量URI加權平均值偏大。從表2中可以發現,明小子4.3HTTP請求個數偏少,導致其URI統計值偏低,但從圖3(b)中可以看出,仍有大量的URI長度集中在80~90 byte的范圍內。綜上所述,可以認為當HTTP請求的URI長度超過某個閾值時,該請求可能包含異常行為,需要進行進一步的判斷。
由圖2可知,大部分HTTP請求的URI長度在5~70 byte之間,故本文設置URI長度閾值為70 byte,當長度大于70時,認為該請求存在異常。

表3 URI長度統計值
3.2.2 HTTP實體長度統計
首先對211 GB原始流量中POST請求的實體長度進行統計,結果如圖4所示,橫坐標表示以前一個坐標為下限、當前坐標為上限的區間。
在211GB原始流量中共提取到190 938條POST請求,其實體長度分布呈現出“兩頭大,中間小”的情況,這是因為通常用POST方式向服務器輸入數據,比如提交HTML表單。瀏覽網頁時,登錄、評論等行為都會產生POST請求;向網站服務器傳輸圖片等文件時,采用POST方式會有較大載荷,這樣就造成圖3的情況。由于并不是所有注入工具都支持POST方式,本文挑選支持該方式的sqlmap1.0,對該工具HTTP請求實體長度也進行了統計,結果如圖5所示。

表4 實體長度統計值
圖5和圖4的對比結果如表4所示??梢钥闯?,正常流量的實體長度分布呈現出兩極化趨勢,POST注入方式并沒有在實體長度上表現出明顯的特征。將圖5與圖3(d)比較,不論是POST還是GET,其請求長度值都集中在60~80 byte的范圍;但POST請求的總次數要遠小于GET方式的總次數,說明POST注入有更強的隱蔽性。因此對于這種類型的注入需要采取其他的檢測方法。
3.3 數據竊取階段
確定數據庫類型后,一般會根據字典猜測表名和列名,再通過二分查找等方法確定列中數據個數和內容。由于需要猜測內容,注入時會向URI(或HTTP實體)拼接SQL查詢語句,拼接的語句中含有大量SQL函數。可以將SQL查詢語句或SQL函數作為特征串進行匹配和檢測。
特征串檢測適用于SQL注入的全過程,尤其適用于這一階段。因為SQL注入攻擊會利用常見數據庫信息進行注入。分析4種工具的注入流量,本文歸納出SQL注入語句的如下特征。
1) 利用SQL語言注釋符截斷原有語句,通過“and”或“or”添加查詢條件。
2) 含有select、union、from和where等SQL語言關鍵詞。
3) 含有SQL函數,包括chr、exists、ascw、count等。
4) 注入語句使用字母大小寫替換等方式繞過檢測。
可以發現,特征1)和特征2)具有很強的局限性,在正常的HTTP請求中,也會有相似關鍵詞,若只以特征1)和特征2)作為特征串,會導致誤報率較高。特征3)具有一定特異性,其缺點是需要大量SQL函數作為匹配的集合,由于SQL函數眾多,不可能全部包括。特征4)導致特征串集合規模成指數增長,故必須采用其他處理方法。
通過上述分析,本文認為用于檢測的特征串應具備以下特點:特征串不是簡單的SQL關鍵詞或函數名,而是SQL語句片段;特征串不僅包括SQL語言,還應包括常見數據庫信息;特征串應包括注入工具所使用的字典;特征串盡可能多的覆蓋注入語句的繞過方式。為了構造符合上述特點的特征串集合,本文采用2種方法,分別在下面詳細介紹。

表5 最長公共子串重復次數前五

表6 常見注入語句的正則表示
3.3.1 基于序列對比的Needle-Wunsch算法
Needle-Wunsch算法最早用于生物序列分析,適用于整體相似性度較高的2個序列。本文采用改進的Needle-Wunsch算法進行逆向匹配,從而找出注入語句的最長公共子串。對表2中1 408條SQL注入語句兩兩互求最長公共子串,共得到161 820條不同的子串。去除沒有意義的部分,根據重復次數排序,結果如表5所示。
可以看出,得到的公共子串不是分散的關鍵詞,而是基本完整的SQL語句,有利于進一步匹配;同時,公共子串中含有admin等字典內容,有利于SQL注入語句的查找。但該算法得到的結果對字母大小寫敏感,故本文又采用正則表達式方法,作為對繞過方式的檢驗。
3.3.2 特征串的正則表示
雖然通過NW算法,解決了特征串的選取問題,但仍可能通過字母大小寫替換等方式繞過特征串檢測。為了解決這個問題,以更加完備地描述SQL注入語句的特征,本文對上述獲取的特征串使用正則表達式進行表示。表6給出一些常見注入語句及其正則表示。
用于檢測的特征串集合由3部分組成,第1部分由NW算法得到的公共子串的正則表示組成;第2部分是常用數據庫信息,包括數據庫系統表等;第3部分是注入工具使用的猜測字典。
綜上所述,通過尋找注入點、確定數據庫類型以及數據竊取,構成了一次完整的SQL注入攻擊。本文分析了每個階段的流量特征,并據此對每個階段都提出了一種檢測方法。為了綜合利用這些方法,本文提出了基于長度、連接頻率和特征串的LFF檢測方法。
4.1 檢測方法描述
針對SQL注入不同階段的特征,以及前文得出的相關參數的閾值,本文提出了LFF (length-frequency-feature)檢測方法,其步驟如下。
1) 判斷HTTP請求是GET還是POST。若是GET方式,提取URI后進入步驟2),若是POST方式,提取實體后進入步驟3)。
2) 對URI進行長度檢測,若長度大于70 byte,則發出警告后進入步驟3),否則直接進入步驟3)。
3) 提取當前HTTP請求的三元組,判斷其是否存在于三元組表中;若存在,相應三元組連接數加1,若不存在,則創建該三元組;對各組進行連接頻率檢測,若連接頻率大于3次/秒,則發出警告后進入步驟4),否則直接進入步驟4)。
4) 對步驟1)提取出的結果進行特征串匹配。匹配的方法是找出特征串集合中每一項在該結果中首次出現的位置,若返回值不為空,則表明匹配成功,匹配檢測發出警告后進入步驟5),否則直接進入步驟5)。
5) 對步驟2)到步驟4)中的檢測結果進行投票決策。若有2種及以上的檢測方法發出警告,則判定當前HTTP請求存在SQL注入行為;若只有一種檢測發出警告,則記錄該請求,由人工進一步判斷;若都沒有發出警告,則認為當前HTTP請求不是SQL注入語句,進入步驟6)。
6) 獲取下一條HTTP請求,重復步驟1)至步驟5)。
LFF檢測方法流程如圖6所示。

表7 HTTP連接數檢測驗證
4.2 方法有效性驗證
為了驗證LFF檢測方法的有效性,本文使用2個新的注入工具Havij1.7pro和safe3,對搭建在服務器上的網站進行SQL注入攻擊,并獲取注入時的流量。其中,Havij1.7pro注入失敗,safe3注入成功。連同之前的4個注入工具,對這6個注入工具的檢測結果如下。
4.2.1 連接頻率檢測驗證
根據3.1節所述,將連接頻率閾值設置為3次/秒,對超過閾值的HTTP請求發出警報。6個注入工具的檢測結果如表7所示,連接頻率檢測并沒有檢測到Havij1.7pro的注入行為。這是因為該工具注入失敗,其等待時間設置為0.5 s,當服務器沒有返回信息時,該工具每隔0.5 s會再進行一次嘗試,所以連接數較低。但對于其他注入工具,該方法有較好的檢測結果。
4.2.2 長度檢測驗證
根據3.2節所述,將請求長度閾值設置為70 byte,對超過閾值的HTTP請求發出警報。結果表明,長度檢測產生警報的HTTP請求都是SQL注入語句,誤檢率為0。6個注入工具的檢測結果如表8所示。除工具sqlmap1.0,該檢測方法對其他工具都有較好的檢測效果。通過對注入工具的分析,認為長度檢測結果與注入工具的設計有關,sqlmap1.0產生的注入語句長度較短,故檢測效果較差。但從總體效果看,該檢測已經起到一定的作用。為了提高檢測召回率,可以適當減少閾值。
4.2.3 特征串檢測驗證
根據3.3中提取出的特征串,對6種工具的注入行為進行檢測,檢測結果如表9所示。可以看出,6種注入工具檢測召回率都在95%以上,有很好的檢測結果。但仍有部分注入語句沒有檢測出。這是因為還有一些語句采用了其他的繞過手段,比如,對注入點的參數進行算術運算;或是對注入語句進行ASCII編碼。這些問題需要在未來的工作中解決。

表8 長度檢測模塊驗證結果

表9 6種注入工具特征串檢測結果

表10 LFF投票決策結果驗證
4.2.4 投票決策驗證
上面各節只是對各檢測方法的驗證,本節將對投票決策的結果進行驗證和分析。根據表7~表9的結果,橫向來看,各檢測模塊都有一定的局限性,不能只根據一種檢測方法的結果就認為存在SQL注入行為;縱向來看,每種工具都至少被2種方法檢測出,即各檢測方法之間具有互補性。因此,投票決策模塊的原則是:若有2種及以上的檢測方法發出警報,就認為是SQL注入行為;若只有一種檢測發出警報,則記錄相關信息,由人工做進一步判斷;若都沒有發出警報,則認為是正常HTTP請求。
本文對投票決策的結果進行人工驗證,結果如表10所示。結果表明,對各注入工具的召回率在95%以上。表10與表9相比,檢測正確有所上升。這是因為,雖然有些語句的特征串并沒有發現,但仍然能通過單位時間連接次數和請求長度發現其異常。
從相同ISP又獲得196GB原始網絡流量,這些流量事先未經過任何處理和標記,利用LLF檢測方法對其進行檢測,作為真實網絡環境下的驗證,并希望從中發現SQL注入行為。檢測結果如表11所示。

表11 196 GB真實流量檢測結果
LFF檢測完成后,由人工對196 GB流量進行標記和驗證。其中,共有3 033條注入語句,LFF方法檢測出2 268條注入語句,召回率為74.77%,誤報率為0。部分注入語句未被發現的原因是:一些語句采用了ASCII編碼等方式進行繞過;檢測所用的特征串集合沒有覆蓋所有的特征串。結果表明,該方法沒有產生誤報,沒有將搜索引擎產生的相似流量標記為SQL注入流量。
經過核查,3 033條注入語句中,有90%以上來自同一IP地址,該IP地址為218.30.117.72,屬于北京市某公司數據中心,可能為租用云服務器實施SQL注入攻擊。
本文從網絡流量檢測的角度,提出了針對SQL注入的LFF檢測方法。LFF檢測包括長度檢測、連接頻率檢測和特征串檢測。3種檢測方法以SQL注入各階段特征為依據,并以大量正常流量作為分析基礎,其結果具有一定的普遍性和代表性。在模擬環境下,該方法檢測召回率在95%以上;在真實網絡環境中,檢測召回率在74%以上,能夠較準確地發現網絡中的SQL注入行為。未來的工作包括2個方面:1) 深入分析SQL注入的其他特征,以檢測出有繞過形式的注入語句;2) 拓展該方法的應用范圍,檢測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] 馬小婷,胡國平,李舟軍.SQL注入漏洞檢測與防御技術研究[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].成都: 電子科技大學,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] 王蘇南. 高速復雜網絡環境下異常流量檢測技術研究[D]. 鄭州: 解放軍信息工程大學,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] 周愛平, 程光, 郭曉軍. 高速網絡流量測量方法[J]. 軟件學報,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] 王鵬, 蘭巨龍, 陳庶樵. 粒度自適應的多徑流量分割算法[J]. 通信學報, 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
國家高技術研究發展計劃(“863”計劃)基金資助項目(No.2015AA016004);國家自然科學基金資助項目(No.61170189, No.61370126);教育部博士點基金資助項目(No.20111102130003);國家科技支撐計劃基金資助項目(No.2012BAH46B02, No.2012BAH46B04);中國科學院戰略性先導科技專項課題基金資助項目(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-),男,山西太原人,北京航空航天大學博士生,主要研究方向為網絡安全。
熊剛(1977-),男,湖北漢川人,博士,中國科學院信息工程研究所正高級工程師、博士生導師,主要研究方向為網絡測量、信息對抗、信息安全等。
賀龍濤(1974-),男,貴州遵義人,博士,國家計算機網絡應急技術處理協調中心正高級工程師、博士生導師,主要研究方向為信息安全。
李舟軍(1963-),男,湖南湘鄉人,博士,北京航空航天大學教授、博士生導師,主要研究方向為網絡與信息安全、數據挖掘與人工智能。