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

        ?

        基于Simhash的SQL注入漏洞檢測(cè)技術(shù)研究

        2014-04-29 00:44:03池水明闞歆煒張旻
        計(jì)算機(jī)時(shí)代 2014年3期

        池水明 闞歆煒 張旻

        摘 要: 針對(duì)傳統(tǒng)SQL注入漏洞檢測(cè)方法準(zhǔn)確率和效率無(wú)法達(dá)到很好平衡的問題,提出了一種基于Simhash文本相似性檢測(cè)的SQL注入漏洞檢測(cè)技術(shù)。使用特征值來(lái)進(jìn)行網(wǎng)頁(yè)間的比較,提高了檢測(cè)的精度與效率,據(jù)此設(shè)計(jì)并實(shí)現(xiàn)了一個(gè)SQL注入漏洞檢測(cè)原型系統(tǒng)。實(shí)驗(yàn)結(jié)果表明,該系統(tǒng)在檢測(cè)SQL注入漏洞時(shí)兼具了準(zhǔn)確性與高效性。

        關(guān)鍵詞: Simhash; SQL注入; Web漏洞檢測(cè); 文本相似性

        中圖分類號(hào):TP309 文獻(xiàn)標(biāo)志碼:A 文章編號(hào):1006-8228(2014)03-03-03

        0 引言

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

        如何對(duì)動(dòng)態(tài)網(wǎng)頁(yè)中存在的SQL注入漏洞進(jìn)行檢測(cè)和防御一直是網(wǎng)絡(luò)安全領(lǐng)域關(guān)注的重點(diǎn)問題。針對(duì)目前已知的檢測(cè)方法準(zhǔn)確率與效率難以兩全的情況,本文提出了一種基于Simhash文本相似性檢測(cè)的判定技術(shù),設(shè)計(jì)并實(shí)現(xiàn)了相應(yīng)的SQL注入漏洞檢測(cè)原型系統(tǒng)。

        1 SQL注入漏洞檢測(cè)技術(shù)及現(xiàn)有網(wǎng)頁(yè)比較方法

        目前的黑盒檢測(cè)技術(shù)主要通過對(duì)服務(wù)器返回頁(yè)面的比較來(lái)檢測(cè)網(wǎng)頁(yè)中的SQL注入漏洞。該方法的原理是通過構(gòu)造兩個(gè)輸入并發(fā)送給服務(wù)器,這兩個(gè)輸入如果被服務(wù)器組裝成SQL語(yǔ)句交給數(shù)據(jù)庫(kù)執(zhí)行則會(huì)得到不同的查詢結(jié)果,從而返回不同的網(wǎng)頁(yè),如果將返回的兩個(gè)網(wǎng)頁(yè)的內(nèi)容進(jìn)行比較,發(fā)現(xiàn)存在差異,就可以確認(rèn)該輸入項(xiàng)存在SQL注入漏洞。

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

        ⑴ 根據(jù)返回的HTTP狀態(tài)碼和網(wǎng)頁(yè)內(nèi)容長(zhǎng)度進(jìn)行比較

        這種方法是最快和最方便的,無(wú)需對(duì)返回的內(nèi)容進(jìn)行處理即可得到比較結(jié)果。但是其比較的準(zhǔn)確率相當(dāng)?shù)?,由于完全不關(guān)注返回網(wǎng)頁(yè)的內(nèi)容,因此在很多情況下當(dāng)網(wǎng)頁(yè)內(nèi)容完全不相同而只是長(zhǎng)度接近也會(huì)被誤判為相似。

        ⑵ 根據(jù)返回頁(yè)面中是否存在關(guān)鍵字進(jìn)行比較[1]

        這種方法速度也很快,而且比較方式十分簡(jiǎn)單,只要檢查返回的網(wǎng)頁(yè)內(nèi)容中是否含有關(guān)鍵字即可。不過如何來(lái)選擇關(guān)鍵字是一個(gè)很大的問題,如果只采用有限的固定關(guān)鍵字,對(duì)于不同網(wǎng)站中的漏洞會(huì)有不同的比較效果,而只靠程序計(jì)算,又難以根據(jù)網(wǎng)頁(yè)內(nèi)容即時(shí)確定關(guān)鍵字,并且選取不同的關(guān)鍵字也許會(huì)有不同的比較結(jié)果,導(dǎo)致結(jié)果的不確定性。

        ⑶ 根據(jù)網(wǎng)頁(yè)結(jié)構(gòu)進(jìn)行比較[2]

        這種方法的實(shí)現(xiàn)是比較復(fù)雜的,首先需要將返回的網(wǎng)頁(yè)內(nèi)容根據(jù)文檔結(jié)構(gòu)及元素的嵌套關(guān)系建立網(wǎng)頁(yè)模型,然后再進(jìn)行模型之間的比較。該方法對(duì)網(wǎng)頁(yè)間結(jié)構(gòu)的變化比較敏感,適用性較強(qiáng)。不過由于需要進(jìn)行網(wǎng)頁(yè)內(nèi)容規(guī)范化預(yù)處理、建立模型、模型的相似性比較等操作步驟多,會(huì)消耗大量的時(shí)間來(lái)進(jìn)行計(jì)算,因此效率并不高。

        2 基于Simhash文本相似性檢測(cè)的網(wǎng)頁(yè)快速比較技術(shù)

        由于以上的網(wǎng)頁(yè)比較方法在判斷結(jié)果的準(zhǔn)確性和比較的效率上未能達(dá)到一個(gè)合理的平衡,針對(duì)這個(gè)問題,本文提出了一種基于Simhash文本相似性檢測(cè)的網(wǎng)頁(yè)快速比較技術(shù)。

        SimHash是一種目前公認(rèn)效果較好的近似文本檢測(cè)算法,它是一種對(duì)高維數(shù)據(jù)進(jìn)行概率降維的方法,能夠?qū)⒏呔S的向量映射為位數(shù)較小且固定的指紋,被廣泛用于搜索引擎中的網(wǎng)頁(yè)去重部分。傳統(tǒng)的Hash函數(shù)能夠?qū)⒁粯拥奈谋旧梢粯拥腍ash函數(shù),但是通過Simhash算法,內(nèi)容差不多相同的文本所得到的特征值也比較相近。因此可以使用Simhash算法來(lái)計(jì)算出一個(gè)網(wǎng)頁(yè)內(nèi)容的特征值,然后通過比較兩個(gè)網(wǎng)頁(yè)的特征值的相近程度來(lái)判斷它們是否相似。使用該方法來(lái)比較服務(wù)器返回頁(yè)面的主要流程包括:首先提取服務(wù)器返回頁(yè)面的HTML文檔并進(jìn)行分詞處理,然后使用SimHash算法計(jì)算出被分詞后的文檔的特征值,最后對(duì)網(wǎng)頁(yè)間的特征值進(jìn)行比較,以判斷網(wǎng)頁(yè)是否相同。

        2.1 HTML文檔分詞處理

        HTML是一種用于描述網(wǎng)頁(yè)文檔結(jié)構(gòu)的超文本標(biāo)記語(yǔ)言,它通過標(biāo)記符號(hào)來(lái)標(biāo)記要顯示在網(wǎng)頁(yè)中各個(gè)部分的內(nèi)容,每對(duì)符號(hào)表示不同的意義,用來(lái)將網(wǎng)頁(yè)分成不同的邏輯結(jié)構(gòu)。由于SimHash算法計(jì)算特征值的單位是字符串中的一個(gè)個(gè)詞,因此要計(jì)算出服務(wù)器返回的HTML文檔的特征值,就需要對(duì)該文檔根據(jù)HTML格式和分隔符來(lái)進(jìn)行分詞操作,將一整段字符串拆分為以詞為單位的序列。

        2.2 SimHash算法計(jì)算特征值

        在得到一個(gè)經(jīng)過分詞的HTML文檔后,就可以使用SimHash算法來(lái)計(jì)算該文檔的特征值了。該算法首先計(jì)算文檔中每一個(gè)詞的哈希值并將它們關(guān)聯(lián)到一個(gè)多維向量上,再將這個(gè)向量降維為一個(gè)固定位數(shù)的二進(jìn)制值來(lái)作為特征值代表該文檔。對(duì)于一個(gè)被分詞后的字符串?dāng)?shù)組A,使用Simhash算法來(lái)計(jì)算它的精度為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 使用哈希算法計(jì)算出A[i]的一個(gè)大小為f的二進(jìn)制哈希值數(shù)組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數(shù)組轉(zhuǎn)換而成的二進(jìn)制碼

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

        2.3 特征值比較

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

        3 基于Simhash文本相似性檢測(cè)的SQL注入漏洞檢測(cè)原型系統(tǒng)

        為了驗(yàn)證本比較技術(shù)用于SQL注入漏洞檢測(cè)時(shí)的有效性,設(shè)計(jì)并實(shí)現(xiàn)了一個(gè)基于Simhash文本相似性檢測(cè)的SQL注入漏洞檢測(cè)原型系統(tǒng),并在漏洞檢測(cè)方法上有所改進(jìn)。

        3.1 SQL注入漏洞檢測(cè)方法的改進(jìn)

        為了提高系統(tǒng)識(shí)別SQL注入漏洞的準(zhǔn)確率,對(duì)檢測(cè)SQL注入漏洞的方法進(jìn)行了一些改進(jìn)。本方法的主要流程是:先對(duì)需要檢測(cè)的網(wǎng)頁(yè)發(fā)出一次正常的請(qǐng)求,返回的頁(yè)面內(nèi)容記為a,然后對(duì)需要檢測(cè)的輸入項(xiàng)屬性的屬性值進(jìn)行構(gòu)造,產(chǎn)生兩個(gè)請(qǐng)求,其中,第一個(gè)請(qǐng)求中的參數(shù)如被數(shù)據(jù)庫(kù)直接運(yùn)行,將會(huì)返回與正常頁(yè)面幾乎完全相同的頁(yè)面,該請(qǐng)求返回的頁(yè)面內(nèi)容記為b,第二個(gè)請(qǐng)求中的參數(shù)如被數(shù)據(jù)庫(kù)直接運(yùn)行,則不會(huì)返回需要的結(jié)果或是返回錯(cuò)誤信息,該請(qǐng)求返回的頁(yè)面內(nèi)容記為c。對(duì)于單個(gè)輸入項(xiàng),服務(wù)器端可能有如下幾種情況:

        ⑴ 如數(shù)據(jù)庫(kù)直接使用該屬性值進(jìn)行查詢,則a與b相似且a與c不同;

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

        ⑶ 如插入的測(cè)試值被識(shí)別并返回錯(cuò)誤頁(yè)面,則b與c相似,a與b及a與c均不同。

        因此,當(dāng)使用Simhash算法對(duì)a、b、c三者進(jìn)行比較后,如發(fā)現(xiàn)a與b相似且a與c不同,即可判斷該屬性的屬性值被數(shù)據(jù)庫(kù)直接執(zhí)行了,也就檢測(cè)出了SQL注入漏洞。

        3.2 原型系統(tǒng)模塊化設(shè)計(jì)

        本文設(shè)計(jì)的基于Simhash文本相似性檢測(cè)的SQL注入漏洞檢測(cè)原型系統(tǒng)如圖1所示,其中五個(gè)主要模塊的功能如下。

        ⑴ 測(cè)試網(wǎng)址生成模塊

        該模塊能夠根據(jù)待檢測(cè)的網(wǎng)頁(yè)信息來(lái)生成測(cè)試網(wǎng)址,由于數(shù)據(jù)庫(kù)中的數(shù)據(jù)分為數(shù)字型與字符型,因此需要根據(jù)不同的屬性類型來(lái)選擇合適的測(cè)試代碼添加到測(cè)試網(wǎng)址或是附加信息中去,保證數(shù)據(jù)庫(kù)運(yùn)行這些語(yǔ)句時(shí)產(chǎn)生應(yīng)有的效果。

        ⑵ HTML文檔獲取模塊

        該模塊根據(jù)上個(gè)模塊所生成的測(cè)試網(wǎng)址來(lái)獲取需要進(jìn)行比較的目標(biāo)網(wǎng)頁(yè)的HTML文檔,包括正常網(wǎng)頁(yè)的HTML文檔和附加了測(cè)試代碼后返回的HTML文檔。在實(shí)現(xiàn)時(shí),本系統(tǒng)使用了HttpClient來(lái)作為連接服務(wù)器的工具,通過GET和POST方法來(lái)獲取目標(biāo)頁(yè)面的HTML文檔內(nèi)容[3]。

        ⑶ HTML文檔分詞模塊

        該模塊主要是對(duì)獲得的HTML文檔進(jìn)行分詞處理,通過使用正則表達(dá)式來(lái)匹配使用“<”與“>”符號(hào)來(lái)作為邊界的標(biāo)簽,而標(biāo)簽以外的文本內(nèi)容則根據(jù)文本分割符予以分割成詞。

        ⑷ 特征值計(jì)算模塊

        該模塊使用Simhash算法來(lái)對(duì)分詞處理后的HTML文檔進(jìn)行計(jì)算,產(chǎn)生一個(gè)固定位數(shù)的二進(jìn)制特征值,該特征值包含了整個(gè)文檔的相關(guān)信息。

        ⑸ 漏洞判斷模塊

        該模塊通過計(jì)算兩個(gè)HTML文檔特征值的海明距離來(lái)得到這兩個(gè)頁(yè)面間的差異程度。然后根據(jù)三個(gè)測(cè)試頁(yè)面間的比較結(jié)果來(lái)判斷出該頁(yè)面是否存在SQL注入漏洞。

        [SQL注入漏洞檢測(cè)原型系統(tǒng)][待檢測(cè)網(wǎng)頁(yè)信息][測(cè)試網(wǎng)址生成模塊] [測(cè)試網(wǎng)址][HTML文檔獲取模塊] [HTML文檔分詞模塊][HTML文檔][特征值計(jì)算模塊] [特征值][漏洞判斷模塊] [判斷結(jié)果] [標(biāo)簽序列]

        4 實(shí)驗(yàn)及結(jié)果分析

        4.1 Simhash算法的有效性驗(yàn)證

        為了驗(yàn)證通過Simhash算法來(lái)計(jì)算HTML文檔特征值的效率及準(zhǔn)確度,我們進(jìn)行了一個(gè)實(shí)驗(yàn),將計(jì)算大量HTML文檔的特征值并記錄所消耗的時(shí)間及特征值比較結(jié)果,該實(shí)驗(yàn)的測(cè)試環(huán)境為:

        ⑴ CPU為Intel Pentium、2.6 GHz;

        ⑵ 內(nèi)存為1 GB;

        ⑶ 操作系統(tǒng)為Windows XP SP3;

        ⑷ 使用Java實(shí)現(xiàn)算法及檢測(cè)程序。

        該實(shí)驗(yàn)結(jié)果表明:使用Simhash算法計(jì)算一個(gè)HTML文檔的特征值,包括分詞處理所消耗的時(shí)間在內(nèi),所消耗的時(shí)間與HTML文檔中包含的詞數(shù)呈線性關(guān)系,平均下來(lái)約為每10毫秒250詞,一般的網(wǎng)頁(yè)文檔中的詞數(shù)不超過1000個(gè),因此計(jì)算一個(gè)網(wǎng)頁(yè)的特征值一般不會(huì)超過40毫秒,效率非常高。

        對(duì)網(wǎng)頁(yè)間特征值的比較中,可以發(fā)現(xiàn),當(dāng)特征值的位數(shù)為64時(shí),特征值間海明距離小于3的網(wǎng)頁(yè)幾乎完全相同,海明距離大于5的網(wǎng)頁(yè)之間則有著較大的區(qū)別,顯然使用Simhash算法來(lái)檢測(cè)網(wǎng)頁(yè)間的相似程度是可行的。

        4.2 檢測(cè)系統(tǒng)的有效性驗(yàn)證

        為了驗(yàn)證基于Simhash文本相似性檢測(cè)的SQL注入漏洞檢測(cè)系統(tǒng)的優(yōu)越性,我們使用該系統(tǒng)對(duì)大量網(wǎng)頁(yè)進(jìn)行了檢測(cè),并對(duì)檢測(cè)結(jié)果的正確性進(jìn)行手工驗(yàn)證。結(jié)果發(fā)現(xiàn),該系統(tǒng)能夠快速有效地找出網(wǎng)頁(yè)中潛在的SQL注入漏洞,且誤報(bào)率低于5%。總體而言,本文的比較算法在準(zhǔn)確率和效率上都有較好的表現(xiàn),能夠有效地解決其他SQL注入漏洞檢測(cè)工具在這兩者上無(wú)法兼顧的問題。

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

        SQL注入漏洞檢測(cè)對(duì)于網(wǎng)絡(luò)應(yīng)用的安全有著很高的價(jià)值,準(zhǔn)確的檢測(cè)結(jié)果能夠使應(yīng)用的漏洞被快速有效地清除。本文將基于Simhash文本相似性檢測(cè)的網(wǎng)頁(yè)快速比較技術(shù)應(yīng)用于SQL注入漏洞的檢測(cè)過程中,同時(shí)提高了檢測(cè)的效率與和檢測(cè)結(jié)果的正確率。但檢測(cè)系統(tǒng)在對(duì)擁有簡(jiǎn)易防注入措施的網(wǎng)絡(luò)應(yīng)用的檢測(cè)中有可能判斷錯(cuò)誤,產(chǎn)生誤報(bào),在一定的程度上影響了檢測(cè)結(jié)果的正確率。因此還需要再?gòu)?qiáng)化系統(tǒng)對(duì)不同情況中存在的SQL注入漏洞的檢測(cè)能力,優(yōu)化系統(tǒng)的功能。

        參考文獻(xiàn):

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

        社,2010.

        [2] 張晨,汪永益,王雄等.基于網(wǎng)頁(yè)DOM樹比對(duì)的SQL注入漏洞檢測(cè)[J].

        計(jì)算機(jī)工程,2012.18:111-115

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

        国产亚洲日本精品二区| 成人精品国产亚洲欧洲| 亚洲黄色性生活一级片| 亚洲va中文字幕欧美不卡| 国产精品高清亚洲精品| 美女一区二区三区在线视频| 中文字幕色偷偷人妻久久一区| 日本少妇爽的大叫高潮了| 精品国产3p一区二区三区| 国产一区二区三区的区| 国产精品一区二区三区在线蜜桃| 国产日韩欧美一区二区东京热| 欧美黑人群一交| 亚洲va在线∨a天堂va欧美va| 欧美精品中文| 日本高清在线播放一区二区三区| 国产三级视频一区二区| 国产自拍视频免费在线观看| 所有视频在线观看免费| 久久精品国产清自在天天线| 国产98在线 | 日韩| 成年在线观看免费视频| 国产精品久久久久…| 国产精品国产三级国产an| 一二三四在线观看韩国视频| 国产乱码一区二区三区精品| 日韩人妻无码精品久久| 在线观看视频亚洲| 午夜视频免费观看一区二区| 精品一区二区三区国产av| 国产18禁黄网站免费观看| 无码专区人妻系列日韩精品 | 国产乱子伦精品免费无码专区 | 三年片大全在线观看免费观看大全| 欧美日韩一卡2卡三卡4卡 乱码欧美孕交 | 人妻少妇精品专区性色anvn | 亚洲AV无码乱码1区久久| 久久久精品网站免费观看| 人妻精品久久久久中文字幕| 熟妇人妻无乱码中文字幕 | 中文 国产 无码免费|