999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Simhash的SQL注入漏洞檢測技術研究

2014-04-29 00:44:03池水明闞歆煒張旻
計算機時代 2014年3期

池水明 闞歆煒 張旻

摘 要: 針對傳統SQL注入漏洞檢測方法準確率和效率無法達到很好平衡的問題,提出了一種基于Simhash文本相似性檢測的SQL注入漏洞檢測技術。使用特征值來進行網頁間的比較,提高了檢測的精度與效率,據此設計并實現了一個SQL注入漏洞檢測原型系統。實驗結果表明,該系統在檢測SQL注入漏洞時兼具了準確性與高效性。

關鍵詞: Simhash; SQL注入; Web漏洞檢測; 文本相似性

中圖分類號:TP309 文獻標志碼:A 文章編號:1006-8228(2014)03-03-03

0 引言

在當今社會中,隨著網絡規模的快速擴大和網絡技術的飛速發展,網絡已成為了人類獲得信息與服務的主流載體。越來越多的企事業單位及政府部門通過網絡給人們帶來快捷高效的服務。然而,由于計算機網絡的脆弱性,也隨之出現了大量的網絡漏洞,其中SQL注入漏洞是一種危害性非常大的漏洞,對該漏洞進行攻擊可能會破壞網絡應用的正常運行,泄露數據庫中的機密信息,甚至引發社會的混亂。

如何對動態網頁中存在的SQL注入漏洞進行檢測和防御一直是網絡安全領域關注的重點問題。針對目前已知的檢測方法準確率與效率難以兩全的情況,本文提出了一種基于Simhash文本相似性檢測的判定技術,設計并實現了相應的SQL注入漏洞檢測原型系統。

1 SQL注入漏洞檢測技術及現有網頁比較方法

目前的黑盒檢測技術主要通過對服務器返回頁面的比較來檢測網頁中的SQL注入漏洞。該方法的原理是通過構造兩個輸入并發送給服務器,這兩個輸入如果被服務器組裝成SQL語句交給數據庫執行則會得到不同的查詢結果,從而返回不同的網頁,如果將返回的兩個網頁的內容進行比較,發現存在差異,就可以確認該輸入項存在SQL注入漏洞。

因此,如何快速并準確地比較出返回網頁間的差異程度就成為了非常關鍵的問題,該比較方法也決定了整個漏洞檢測技術的準確率與效率,因此研究出一個高效的網頁比較方法是十分有必要的。目前,在檢測SQL注入漏洞中所使用的比較服務器所返回網頁間差異的方法主要有以下三種。

⑴ 根據返回的HTTP狀態碼和網頁內容長度進行比較

這種方法是最快和最方便的,無需對返回的內容進行處理即可得到比較結果。但是其比較的準確率相當低,由于完全不關注返回網頁的內容,因此在很多情況下當網頁內容完全不相同而只是長度接近也會被誤判為相似。

⑵ 根據返回頁面中是否存在關鍵字進行比較[1]

這種方法速度也很快,而且比較方式十分簡單,只要檢查返回的網頁內容中是否含有關鍵字即可。不過如何來選擇關鍵字是一個很大的問題,如果只采用有限的固定關鍵字,對于不同網站中的漏洞會有不同的比較效果,而只靠程序計算,又難以根據網頁內容即時確定關鍵字,并且選取不同的關鍵字也許會有不同的比較結果,導致結果的不確定性。

⑶ 根據網頁結構進行比較[2]

這種方法的實現是比較復雜的,首先需要將返回的網頁內容根據文檔結構及元素的嵌套關系建立網頁模型,然后再進行模型之間的比較。該方法對網頁間結構的變化比較敏感,適用性較強。不過由于需要進行網頁內容規范化預處理、建立模型、模型的相似性比較等操作步驟多,會消耗大量的時間來進行計算,因此效率并不高。

2 基于Simhash文本相似性檢測的網頁快速比較技術

由于以上的網頁比較方法在判斷結果的準確性和比較的效率上未能達到一個合理的平衡,針對這個問題,本文提出了一種基于Simhash文本相似性檢測的網頁快速比較技術。

SimHash是一種目前公認效果較好的近似文本檢測算法,它是一種對高維數據進行概率降維的方法,能夠將高維的向量映射為位數較小且固定的指紋,被廣泛用于搜索引擎中的網頁去重部分。傳統的Hash函數能夠將一樣的文本生成一樣的Hash函數,但是通過Simhash算法,內容差不多相同的文本所得到的特征值也比較相近。因此可以使用Simhash算法來計算出一個網頁內容的特征值,然后通過比較兩個網頁的特征值的相近程度來判斷它們是否相似。使用該方法來比較服務器返回頁面的主要流程包括:首先提取服務器返回頁面的HTML文檔并進行分詞處理,然后使用SimHash算法計算出被分詞后的文檔的特征值,最后對網頁間的特征值進行比較,以判斷網頁是否相同。

2.1 HTML文檔分詞處理

HTML是一種用于描述網頁文檔結構的超文本標記語言,它通過標記符號來標記要顯示在網頁中各個部分的內容,每對符號表示不同的意義,用來將網頁分成不同的邏輯結構。由于SimHash算法計算特征值的單位是字符串中的一個個詞,因此要計算出服務器返回的HTML文檔的特征值,就需要對該文檔根據HTML格式和分隔符來進行分詞操作,將一整段字符串拆分為以詞為單位的序列。

2.2 SimHash算法計算特征值

在得到一個經過分詞的HTML文檔后,就可以使用SimHash算法來計算該文檔的特征值了。該算法首先計算文檔中每一個詞的哈希值并將它們關聯到一個多維向量上,再將這個向量降維為一個固定位數的二進制值來作為特征值代表該文檔。對于一個被分詞后的字符串數組A,使用Simhash算法來計算它的精度為f的特征值的偽代碼如下:

1: m←length[A]

2: for i←1 to f

3: do V[i]←S[i]←0

4: for i←1 to m

5: do 使用哈希算法計算出A[i]的一個大小為f的二進制哈希值數組b

6: for j←1 to f

7: do if b[j]=1

8: then V[j]+1

9: else V[j]-1

10: for i←1 to f

11: do if V[i]>0

12: then S[i]←1

13: else S[i]←0

14: return 由S數組轉換而成的二進制碼

其中,f的大小決定了該算法計算出的特征值的精確度,且f越大,計算特征值S的速度越慢。

2.3 特征值比較

只要計算出兩個HTML文檔各自的特征值,就可以通過計算它們的海明距離,即兩個二進制值間不相同的位數,來得到兩個HTML文檔之間的差異程度。該比較方式的優點是計算速度極快,因此該比較方法所消耗的時間主要是在計算特征值時所消耗的,且返回的是一個數字,可以選取不同的閾值來限制所要求網頁間的相似程度。

3 基于Simhash文本相似性檢測的SQL注入漏洞檢測原型系統

為了驗證本比較技術用于SQL注入漏洞檢測時的有效性,設計并實現了一個基于Simhash文本相似性檢測的SQL注入漏洞檢測原型系統,并在漏洞檢測方法上有所改進。

3.1 SQL注入漏洞檢測方法的改進

為了提高系統識別SQL注入漏洞的準確率,對檢測SQL注入漏洞的方法進行了一些改進。本方法的主要流程是:先對需要檢測的網頁發出一次正常的請求,返回的頁面內容記為a,然后對需要檢測的輸入項屬性的屬性值進行構造,產生兩個請求,其中,第一個請求中的參數如被數據庫直接運行,將會返回與正常頁面幾乎完全相同的頁面,該請求返回的頁面內容記為b,第二個請求中的參數如被數據庫直接運行,則不會返回需要的結果或是返回錯誤信息,該請求返回的頁面內容記為c。對于單個輸入項,服務器端可能有如下幾種情況:

⑴ 如數據庫直接使用該屬性值進行查詢,則a與b相似且a與c不同;

⑵ 如插入的測試值被過濾刪除,則a、b、c均相似;

⑶ 如插入的測試值被識別并返回錯誤頁面,則b與c相似,a與b及a與c均不同。

因此,當使用Simhash算法對a、b、c三者進行比較后,如發現a與b相似且a與c不同,即可判斷該屬性的屬性值被數據庫直接執行了,也就檢測出了SQL注入漏洞。

3.2 原型系統模塊化設計

本文設計的基于Simhash文本相似性檢測的SQL注入漏洞檢測原型系統如圖1所示,其中五個主要模塊的功能如下。

⑴ 測試網址生成模塊

該模塊能夠根據待檢測的網頁信息來生成測試網址,由于數據庫中的數據分為數字型與字符型,因此需要根據不同的屬性類型來選擇合適的測試代碼添加到測試網址或是附加信息中去,保證數據庫運行這些語句時產生應有的效果。

⑵ HTML文檔獲取模塊

該模塊根據上個模塊所生成的測試網址來獲取需要進行比較的目標網頁的HTML文檔,包括正常網頁的HTML文檔和附加了測試代碼后返回的HTML文檔。在實現時,本系統使用了HttpClient來作為連接服務器的工具,通過GET和POST方法來獲取目標頁面的HTML文檔內容[3]。

⑶ HTML文檔分詞模塊

該模塊主要是對獲得的HTML文檔進行分詞處理,通過使用正則表達式來匹配使用“<”與“>”符號來作為邊界的標簽,而標簽以外的文本內容則根據文本分割符予以分割成詞。

⑷ 特征值計算模塊

該模塊使用Simhash算法來對分詞處理后的HTML文檔進行計算,產生一個固定位數的二進制特征值,該特征值包含了整個文檔的相關信息。

⑸ 漏洞判斷模塊

該模塊通過計算兩個HTML文檔特征值的海明距離來得到這兩個頁面間的差異程度。然后根據三個測試頁面間的比較結果來判斷出該頁面是否存在SQL注入漏洞。

[SQL注入漏洞檢測原型系統][待檢測網頁信息][測試網址生成模塊] [測試網址][HTML文檔獲取模塊] [HTML文檔分詞模塊][HTML文檔][特征值計算模塊] [特征值][漏洞判斷模塊] [判斷結果] [標簽序列]

4 實驗及結果分析

4.1 Simhash算法的有效性驗證

為了驗證通過Simhash算法來計算HTML文檔特征值的效率及準確度,我們進行了一個實驗,將計算大量HTML文檔的特征值并記錄所消耗的時間及特征值比較結果,該實驗的測試環境為:

⑴ CPU為Intel Pentium、2.6 GHz;

⑵ 內存為1 GB;

⑶ 操作系統為Windows XP SP3;

⑷ 使用Java實現算法及檢測程序。

該實驗結果表明:使用Simhash算法計算一個HTML文檔的特征值,包括分詞處理所消耗的時間在內,所消耗的時間與HTML文檔中包含的詞數呈線性關系,平均下來約為每10毫秒250詞,一般的網頁文檔中的詞數不超過1000個,因此計算一個網頁的特征值一般不會超過40毫秒,效率非常高。

對網頁間特征值的比較中,可以發現,當特征值的位數為64時,特征值間海明距離小于3的網頁幾乎完全相同,海明距離大于5的網頁之間則有著較大的區別,顯然使用Simhash算法來檢測網頁間的相似程度是可行的。

4.2 檢測系統的有效性驗證

為了驗證基于Simhash文本相似性檢測的SQL注入漏洞檢測系統的優越性,我們使用該系統對大量網頁進行了檢測,并對檢測結果的正確性進行手工驗證。結果發現,該系統能夠快速有效地找出網頁中潛在的SQL注入漏洞,且誤報率低于5%。總體而言,本文的比較算法在準確率和效率上都有較好的表現,能夠有效地解決其他SQL注入漏洞檢測工具在這兩者上無法兼顧的問題。

5 結束語

SQL注入漏洞檢測對于網絡應用的安全有著很高的價值,準確的檢測結果能夠使應用的漏洞被快速有效地清除。本文將基于Simhash文本相似性檢測的網頁快速比較技術應用于SQL注入漏洞的檢測過程中,同時提高了檢測的效率與和檢測結果的正確率。但檢測系統在對擁有簡易防注入措施的網絡應用的檢測中有可能判斷錯誤,產生誤報,在一定的程度上影響了檢測結果的正確率。因此還需要再強化系統對不同情況中存在的SQL注入漏洞的檢測能力,優化系統的功能。

參考文獻:

[1] CLARKE J,黃曉磊,李化譯.SQL注入攻擊與防御[M].清華大學出版

社,2010.

[2] 張晨,汪永益,王雄等.基于網頁DOM樹比對的SQL注入漏洞檢測[J].

計算機工程,2012.18:111-115

[3] 姜麗華.防范SQL注入的應用分析[J].煤炭技術,2011.12:220-221

主站蜘蛛池模板: 国产主播喷水| 国产第一色| 好吊妞欧美视频免费| 成年人国产视频| 国产毛片高清一级国语| 伊人成色综合网| 久久精品无码国产一区二区三区| 91成人免费观看| 亚洲欧美日韩综合二区三区| 毛片免费观看视频| 9久久伊人精品综合| 久久成人国产精品免费软件 | 免费一级毛片在线播放傲雪网| 欧美乱妇高清无乱码免费| 在线观看亚洲成人| 日韩黄色在线| 一级全免费视频播放| 嫩草国产在线| 久久精品国产免费观看频道| 国产欧美视频在线| 国产人人乐人人爱| 国产精品无码一区二区桃花视频| 55夜色66夜色国产精品视频| 69精品在线观看| 精久久久久无码区中文字幕| 欧美亚洲日韩中文| 91福利一区二区三区| 久久久久久午夜精品| 亚洲成AV人手机在线观看网站| 亚洲IV视频免费在线光看| 素人激情视频福利| 国产一区二区三区在线观看免费| 一本大道香蕉中文日本不卡高清二区| 亚洲性网站| 又猛又黄又爽无遮挡的视频网站| 精品国产免费观看| 亚洲成a人片| 91在线视频福利| 99re这里只有国产中文精品国产精品 | 国产亚洲精品97在线观看| 亚洲国产成人无码AV在线影院L| 亚洲AⅤ综合在线欧美一区| 国产在线欧美| 国内精品视频| 亚洲免费人成影院| 亚洲三级网站| 国产第一页免费浮力影院| 亚洲日本中文字幕乱码中文| 综合五月天网| 国产精品护士| 无码免费视频| 一本一本大道香蕉久在线播放| 日日碰狠狠添天天爽| 高清亚洲欧美在线看| 色综合天天综合中文网| 日韩性网站| 精品自拍视频在线观看| 欧美成人亚洲综合精品欧美激情| 欧美综合区自拍亚洲综合天堂| 99一级毛片| 国产精品亚洲专区一区| 国产成人综合网在线观看| 熟女日韩精品2区| 97久久超碰极品视觉盛宴| 国产网站免费看| 99视频精品在线观看| 99re66精品视频在线观看| 91香蕉国产亚洲一二三区| 欧美一级大片在线观看| 国产精品极品美女自在线| 91香蕉视频下载网站| 97视频免费在线观看| 中文字幕免费在线视频| 91精品啪在线观看国产91| 高清精品美女在线播放| 国产永久在线视频| 欧美午夜小视频| 2019年国产精品自拍不卡| 综合色亚洲| 波多野结衣爽到高潮漏水大喷| 试看120秒男女啪啪免费| 久草青青在线视频|