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

        ?

        SQL注入漏洞挖掘技術(shù)研究

        2024-09-14 00:00:00袁也陸余良趙家振朱凱龍
        物聯(lián)網(wǎng)技術(shù) 2024年3期
        關(guān)鍵詞:動(dòng)態(tài)分析機(jī)器學(xué)習(xí)數(shù)據(jù)庫

        摘 要:SQL注入漏洞廣泛存在于Web應(yīng)用程序中,允許攻擊者在非授權(quán)條件下不受限制地訪問Web應(yīng)用程序所使用的數(shù)據(jù)庫,對Web應(yīng)用程序安全構(gòu)成了嚴(yán)重威脅,如何挖掘SQL注入漏洞是網(wǎng)絡(luò)安全領(lǐng)域的一個(gè)重要研究課題。近年來,圍繞SQL注入漏洞挖掘,形成了多種理論成果和實(shí)用工具,為了厘清研究現(xiàn)狀和未來發(fā)展方向,本文廣泛調(diào)研了相關(guān)領(lǐng)域研究進(jìn)展,對SQL注入漏洞挖掘方面的已有研究成果進(jìn)行了系統(tǒng)梳理。首先,介紹了SQL注入的基本概念及不同類型SQL注入的攻擊原理;然后,詳細(xì)闡述了SQL注入漏洞挖掘技術(shù);最后,總結(jié)并討論了SQL注入漏洞挖掘技術(shù)的未來發(fā)展方向。

        關(guān)鍵詞:SQL注入漏洞;Web應(yīng)用程序;數(shù)據(jù)庫;SQL注入漏洞挖掘技術(shù);靜態(tài)分析;動(dòng)態(tài)分析;機(jī)器學(xué)習(xí)

        中圖分類號(hào):TP393 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):2095-1302(2024)03-00-04

        0 引 言

        Web 應(yīng)用程序在社會(huì)生活中扮演著極其重要的角色,被廣泛應(yīng)用于數(shù)字政務(wù)、社交平臺(tái)、購物網(wǎng)站、在線教育、網(wǎng)上銀行、遠(yuǎn)程辦公等領(lǐng)域。存在于Web應(yīng)用程序的漏洞可以被攻擊者利用開展數(shù)據(jù)竊取、拒絕服務(wù)、獲取權(quán)限等攻擊,給社會(huì)穩(wěn)定和個(gè)人信息安全帶來了嚴(yán)重威脅。SQL注入漏洞是數(shù)量最多、影響范圍最廣的Web應(yīng)用漏洞之一,圖1顯示了2013年以來國家信息安全漏洞共享平臺(tái)(China National Vulnerability Database, CNVD)收錄的SQL注入漏洞數(shù)量,可以看出整體的趨勢是不斷增長的,從2013年到2021年,收錄的SQL注入漏洞數(shù)量增長了5倍[1]。開放式Web應(yīng)用程序安全項(xiàng)目(Open Web Application Security Project, OWASP)在2013年和2017年發(fā)布的Web安全漏洞Top10中顯示,注入類漏洞危害程度排名第一[2],其中SQL注入漏洞是注入漏洞中最主要的一類漏洞。因此,如何挖掘SQL注入漏洞是網(wǎng)絡(luò)安全研究者關(guān)注的重要課題。

        近年來,國內(nèi)外學(xué)者針對SQL注入漏洞做了大量研究, SQL注入漏洞挖掘通過對Web應(yīng)用程序注入點(diǎn)進(jìn)行漏洞檢測,及時(shí)發(fā)現(xiàn)并修復(fù)漏洞,從而防止攻擊者利用SQL注入漏洞實(shí)施攻擊。傳統(tǒng)的SQL注入漏洞挖掘技術(shù)根據(jù)技術(shù)特點(diǎn)可以分為靜態(tài)分析方法和動(dòng)態(tài)分析方法。隨著機(jī)器學(xué)習(xí)方法的快速發(fā)展,研究者將機(jī)器學(xué)習(xí)應(yīng)用到SQL注入漏洞挖掘中,出現(xiàn)了基于機(jī)器學(xué)習(xí)的SQL注入漏洞挖掘技術(shù),提高了漏洞挖掘的精準(zhǔn)度。

        本文廣泛調(diào)研了SQL注入漏洞挖掘技術(shù)研究進(jìn)展,對已有研究成果進(jìn)行了系統(tǒng)梳理。首先介紹了SQL注入的基本概念、不同類型SQL注入的攻擊原理以及SQL注入的危害;然后詳細(xì)闡述了SQL注入漏洞挖掘技術(shù);最后展望了SQL注入漏洞挖掘技術(shù)的未來發(fā)展方向。

        1 SQL注入概述

        SQL注入是一種常見的數(shù)據(jù)庫攻擊手段:攻擊者通過在Web表單的用戶輸入框中填寫包含SQL關(guān)鍵字的數(shù)據(jù)來使數(shù)據(jù)庫執(zhí)行非常規(guī)代碼,從而可以非法且不受限制地訪問存儲(chǔ)在后端數(shù)據(jù)庫中的數(shù)據(jù)[3]。本節(jié)首先介紹SQL注入攻擊流程,然后根據(jù)攻擊原理對SQL注入進(jìn)行分類介紹,最后說明SQL注入的危害。

        1.1 SQL注入攻擊流程

        攻擊者將惡意的SQL代碼插入到SQL查詢語句中,之后再將這些特殊的SQL查詢語句傳遞給后臺(tái)的數(shù)據(jù)庫服務(wù)器加以解析并執(zhí)行,最終返回攻擊者想要得到的信息[3]。

        圖2顯示了 SQL注入攻擊流程。

        一次成功的SQL注入攻擊,必須要滿足三個(gè)條件:一是找到SQL注入點(diǎn),并能夠注入惡意查詢語句;二是程序?qū)τ脩舻妮斎氩]有嚴(yán)格的檢查和過濾;三是惡意的查詢語句會(huì)被數(shù)據(jù)庫正常執(zhí)行,并返回攻擊者想要的數(shù)據(jù)庫信息[3]。

        1.2 SQL注入類型

        根據(jù)攻擊原理不同,SQL注入可以分為永真式攻擊、推理式攻擊、堆疊注入攻擊、存儲(chǔ)階段攻擊和編碼攻擊[3]。

        永真式攻擊:通過構(gòu)造SQL查詢條件始終為真,導(dǎo)致后臺(tái)的身份驗(yàn)證條件無效,從而達(dá)到繞過服務(wù)器驗(yàn)證的目的。例如:SELECT * FROM users WHERE name= 'admin' OR '1'='1',攻擊者利用OR '1' ='1'使得查詢表達(dá)式永遠(yuǎn)為真,導(dǎo)致程序?qū)Σ樵儣l件的判斷失去作用,從而非法獲取數(shù)據(jù)。

        推理式攻擊:當(dāng)網(wǎng)站的安全性較高,數(shù)據(jù)庫錯(cuò)誤消息不會(huì)通過前端為攻擊者提供反饋時(shí),攻擊者必須使用不同的方法從數(shù)據(jù)庫獲得響應(yīng)。在這種情況下,攻擊者將命令注入網(wǎng)站,然后通過觀察網(wǎng)站功能的變化情況和變化的時(shí)間快慢來推斷數(shù)據(jù)庫的一些參數(shù)。主要有兩種方式:一種是布爾盲注,通過向服務(wù)器提出對錯(cuò)問題,從頁面的反應(yīng)中推斷出信息。如果注入的語句評估為true,網(wǎng)站正常運(yùn)行;如果語句的評估結(jié)果為1,雖然沒有描述性的錯(cuò)誤消息,但該頁面與正常運(yùn)行的頁面也有很大的不同。另一種是時(shí)間盲注,將時(shí)間延遲函數(shù)插入到SQL查詢語句中,通過觀察Web應(yīng)用程序的響應(yīng)是否有延遲來判斷注入是否成功。

        堆疊注入攻擊:在這種攻擊類型中,攻擊者利用“;”在原有查詢中插入附加查詢。在“;”后面加入構(gòu)造好的查詢,相當(dāng)于執(zhí)行多條SQL語句,例如:“SELECT * FROM users WHERE name='admin';DELETE FROM users;”。但是這類攻擊實(shí)現(xiàn)的前提是數(shù)據(jù)庫允許在單個(gè)字符串中包含多條語句。如果不允許,則攻擊很難實(shí)現(xiàn)。

        存儲(chǔ)階段攻擊:許多數(shù)據(jù)庫都有內(nèi)置的存儲(chǔ)過程。攻擊者使用惡意SQL注入代碼執(zhí)行這些內(nèi)置函數(shù),從而進(jìn)行一些非法操作。當(dāng)正常的SQL語句被創(chuàng)建為存儲(chǔ)過程時(shí),攻擊者可以注入另一個(gè)存儲(chǔ)過程作為替代,以執(zhí)行特權(quán)升級、遠(yuǎn)程命令等惡意操作。

        編碼攻擊:編碼攻擊不是一種獨(dú)立的攻擊方法,但它可以幫助上述方法逃脫過濾器。一些網(wǎng)站會(huì)通過過濾特定關(guān)鍵字來對用戶輸入進(jìn)行過濾,攻擊者可以改變這些關(guān)鍵字的編碼方式從而達(dá)到逃避檢測的效果,例如使用十六進(jìn)制、ASCII和Unicode字符編碼。一般情況下,檢測技術(shù)無法過濾關(guān)鍵字的所有編碼形式,從而導(dǎo)致過濾失敗。這種攻擊方式很難完全防御,因?yàn)樗箝_發(fā)人員考慮所有可能的編碼,這在實(shí)踐中并不可行。動(dòng)態(tài)SQL語句是在執(zhí)行過程中構(gòu)造的,它根據(jù)不同的條件產(chǎn)生不同的SQL語句。Web應(yīng)用程序廣泛使用動(dòng)態(tài)SQL語句是為了增加應(yīng)用的靈活性和通用性,同時(shí)也給開發(fā)人員帶來了便利,但是這也帶來了安全隱患:沒有經(jīng)過驗(yàn)證的輸入會(huì)使得動(dòng)態(tài)SQL語句存在SQL注入的風(fēng)險(xiǎn)[4]。

        1.3 SQL注入危害

        攻擊者利用SQL注入獲取Web應(yīng)用程序數(shù)據(jù)庫中的大量數(shù)據(jù),從而實(shí)現(xiàn)一些惡意目的,給程序安全造成極大威脅。具體危害主要有以下四方面:

        (1)數(shù)據(jù)泄露導(dǎo)致用戶隱私信息泄露;

        (2)攻擊者通過SQL注入獲得了數(shù)據(jù)庫管理員權(quán)限,可能對數(shù)據(jù)庫進(jìn)行惡意操作,例如篡改數(shù)據(jù)、刪除數(shù)據(jù),甚至直接刪庫;

        (3)通過操作數(shù)據(jù)庫對網(wǎng)頁內(nèi)容進(jìn)行篡改,發(fā)布一些違規(guī)信息;

        (4)在滿足條件的情況下可以直接向服務(wù)器寫入木馬,獲取服務(wù)器權(quán)限。

        2 SQL注入漏洞挖掘技術(shù)

        SQL注入漏洞挖掘技術(shù)通過對Web應(yīng)用程序進(jìn)行分析,發(fā)現(xiàn)并修復(fù)潛在的SQL注入漏洞,從而防御SQL注入攻擊。傳統(tǒng)的SQL注入漏洞挖掘技術(shù)按照是否運(yùn)行目標(biāo)程序可以分為基于靜態(tài)分析的漏洞挖掘技術(shù)和基于動(dòng)態(tài)分析的漏洞挖掘技術(shù)[5]。近年來,以深度學(xué)習(xí)和神經(jīng)網(wǎng)絡(luò)為代表的機(jī)器學(xué)習(xí)成為網(wǎng)絡(luò)安全領(lǐng)域的研究熱點(diǎn),機(jī)器學(xué)習(xí)經(jīng)常被用于減少靜態(tài)源代碼分析的誤報(bào)率,提高動(dòng)態(tài)惡意數(shù)據(jù)生成的效率,從而提高SQL注入漏洞的挖掘效果。因此,本節(jié)按照是否應(yīng)用機(jī)器學(xué)習(xí)將SQL注入漏洞挖掘技術(shù)分為傳統(tǒng)SQL注入漏洞挖掘技術(shù)和基于機(jī)器學(xué)習(xí)的SQL注入漏洞挖掘技術(shù)。

        2.1 傳統(tǒng)SQL注入漏洞挖掘技術(shù)

        傳統(tǒng)SQL注入漏洞挖掘技術(shù)主要包括基于靜態(tài)分析的漏洞挖掘技術(shù)和基于動(dòng)態(tài)分析的漏洞挖掘技術(shù)。其中,基于靜態(tài)分析的漏洞挖掘技術(shù)是在不運(yùn)行Web應(yīng)用的方式下進(jìn)行的一種代碼分析技術(shù); 基于動(dòng)態(tài)分析的漏洞挖掘技術(shù)需要為Web應(yīng)用程序構(gòu)建適當(dāng)?shù)拇a執(zhí)行環(huán)境,然后在Web應(yīng)用程序成功運(yùn)行的前提下進(jìn)行。由于實(shí)施原理不同,分類進(jìn)行介紹可以更好地講清楚兩種漏洞挖掘技術(shù)的特點(diǎn)、優(yōu)勢以及局限性。

        2.1.1 基于靜態(tài)分析的SQL注入漏洞挖掘技術(shù)

        靜態(tài)分析方法指的是在不執(zhí)行Web應(yīng)用程序代碼的前提下對其進(jìn)行分析,主要借助于抽象語法樹、控制流程圖、調(diào)用流程圖等代碼語法語義特征,根據(jù)漏洞的特征進(jìn)行匹配從而發(fā)現(xiàn)漏洞[6]。

        Medeiros等人[7]提出了一種名為WAP的漏洞檢測方法,該方法主要利用代碼分析和靜態(tài)污點(diǎn)分析。主要有兩個(gè)步驟:一是通過代碼分析,獲取從污染源到易被感染的執(zhí)行點(diǎn)之間的代碼切片;二是使用靜態(tài)污點(diǎn)分析方法分析用戶輸入的數(shù)據(jù)是否會(huì)不經(jīng)過過濾便到達(dá)易被感染的執(zhí)行點(diǎn),從而檢測出漏洞。但是由于該技術(shù)不支持上下文,在遇到別名問題時(shí)出現(xiàn)的誤報(bào)比較多。

        Livshits等人[8]針對別名問題提出了一種解決思路,該技術(shù)根據(jù)用戶提供的漏洞規(guī)范,通過靜態(tài)分析在Web應(yīng)用程序代碼中找到與規(guī)范匹配的所有漏洞,并且改進(jìn)對象命名方案給出了解決別名問題的方案,實(shí)驗(yàn)結(jié)果也證明該方案有效,減少了由于別名問題導(dǎo)致的假陽性數(shù)量。

        Wang等人[9]提出了一種稱為SPINNER的SQL注入漏洞檢測技術(shù)。當(dāng)前的靜態(tài)分析方法中,根據(jù)邏輯順序可分為前向分析和后向分析。前向分析即從污點(diǎn)源追蹤污點(diǎn)到執(zhí)行點(diǎn),這種方式容易導(dǎo)致過度污染;后向分析即從命令執(zhí)行API的參數(shù)追溯變量的來源,這種方式由于復(fù)雜的數(shù)據(jù)依賴關(guān)系比較困難,容易導(dǎo)致污染不足。該系統(tǒng)開發(fā)了一種雙向分析方式,它結(jié)合了前向靜態(tài)分析技術(shù)和后向靜態(tài)分析技術(shù),從而降低兩種方式的局限性。但是這種檢測方式結(jié)合了兩種不同方式,也隨之增加了額外的開銷,這是該系統(tǒng)明顯的局限性。

        尤楓等人[10]提出一種可以減少系統(tǒng)開銷的方案,即用 Chopping切片技術(shù)對代碼進(jìn)行切片分析的方法。首先對源代碼進(jìn)行詞法和語法分析并轉(zhuǎn)換成依賴圖,然后通過 Chopping切片規(guī)則獲取含有SQL注入的疑似路徑,自動(dòng)生成攻擊向量并提交運(yùn)行結(jié)果進(jìn)行驗(yàn)證。但是這種方法在應(yīng)用程序規(guī)模較大時(shí),系統(tǒng)依賴圖規(guī)模隨之變得龐大且復(fù)雜,不利于切片獲取。

        靜態(tài)分析方法無需執(zhí)行目標(biāo)程序,不受制于程序的特定運(yùn)行環(huán)境,且能夠?qū)Υa進(jìn)行全覆蓋分析,但是不能很好地處理Web應(yīng)用語言的動(dòng)態(tài)特性,會(huì)引入較高的誤報(bào)率;其次,靜態(tài)污點(diǎn)分析需要對整個(gè)源程序的依賴關(guān)系進(jìn)行梳理,導(dǎo)致系統(tǒng)開銷比較大[11]。

        2.1.2 基于動(dòng)態(tài)分析的SQL注入漏洞挖掘技術(shù)

        動(dòng)態(tài)分析技術(shù)需要實(shí)際執(zhí)行程序,搭建完程序運(yùn)行環(huán)境后,在程序成功運(yùn)行的前提下進(jìn)行調(diào)試、模糊測試、模擬攻擊等,最后根據(jù)輸出結(jié)果挖掘相關(guān)漏洞。在動(dòng)態(tài)分析技術(shù)中,測試用例是一個(gè)關(guān)鍵性問題,如何提升測試用例的質(zhì)量成為需要研究人員重點(diǎn)考慮的研究方向。

        Wang等人[12]針對測試用例匱乏的問題提出一種改進(jìn)方案,先利用增廣攻擊樹構(gòu)建出測試用例的生成模型,然后利用模型批量生產(chǎn)測試用例。雖然該方法有效解決了測試用例短缺的問題,但是這些測試用例的準(zhǔn)確性卻無法得到保障。

        田偉[13]提出一種改進(jìn)測試用例準(zhǔn)確性的方案。在Wang等人[12]的方法思路基礎(chǔ)上,提出了模型驅(qū)動(dòng)的測試用例生成方法,根據(jù)不同的運(yùn)行環(huán)境構(gòu)建不同的模型,既能達(dá)到批量生產(chǎn)測試用例的效果,又具備了一定的精確性。但是該方法的短板也很明顯,模型根據(jù)運(yùn)行環(huán)境定制,無法拓展延伸。

        成曉利[14]針對測試用例生成偏差大導(dǎo)致檢測效率低的問題,通過對SQL注入漏洞進(jìn)行等級劃分;再針對不同的等級設(shè)計(jì)不同的測試用例,通過分級操作有效提高檢測效率。

        Boyd等人[15]提出了一種基于模擬攻擊的漏洞挖掘方法,該方法實(shí)現(xiàn)了一個(gè)SQL注入漏洞掃描器,由爬蟲面板、參數(shù)測試面板、漏洞利用面板、報(bào)告生成面板組成。爬蟲面板利用網(wǎng)絡(luò)爬蟲爬取網(wǎng)頁和Web應(yīng)用程序,獲得網(wǎng)頁源碼和Web應(yīng)用程序源碼;然后使用字符串匹配算法從剛剛獲取的源碼文件中提取相應(yīng)參數(shù),由參數(shù)測試面板對參數(shù)進(jìn)行測試,如果測試結(jié)果顯示存在漏洞的可能性,就通過漏洞面板進(jìn)一步挖掘漏洞;最后由報(bào)告面板生成報(bào)告。

        動(dòng)態(tài)分析方法能夠?qū)Τ绦虻膶傩赃M(jìn)行分析,精確定位漏洞代碼,誤報(bào)率低,但是動(dòng)態(tài)分析無法像靜態(tài)分析那樣對整個(gè)源代碼進(jìn)行審查,單一的執(zhí)行路徑也容易導(dǎo)致路徑覆蓋不全面,容易出現(xiàn)漏報(bào)的問題;其次,動(dòng)態(tài)分析往往對執(zhí)行環(huán)境有要求,為不同項(xiàng)目搭建不同的運(yùn)行環(huán)境不適用于大型程序。

        2.2 基于機(jī)器學(xué)習(xí)的SQL注入漏洞挖掘技術(shù)

        鑒于傳統(tǒng)的SQL注入漏洞挖掘技術(shù)的不足,提出一種能夠自主學(xué)習(xí)、精確度高并且對實(shí)施環(huán)境要求不高的漏洞挖掘技術(shù)十分必要。在當(dāng)今機(jī)器學(xué)習(xí)與大數(shù)據(jù)的環(huán)境下,從數(shù)據(jù)中可以發(fā)現(xiàn)許多有效信息,基于機(jī)器學(xué)習(xí)的SQL注入漏洞挖掘技術(shù)就是利用機(jī)器學(xué)習(xí)算法自主學(xué)習(xí)大量漏洞數(shù)據(jù),從海量數(shù)據(jù)中提取出漏洞代碼段特征,更深層次地理解代碼語義,然后對SQL注入漏洞進(jìn)行挖掘。

        Shi等人[16]提出一種利用機(jī)器學(xué)習(xí)強(qiáng)大的自我學(xué)習(xí)能力進(jìn)行漏洞挖掘的方法,該方法利用機(jī)器學(xué)習(xí)的算法自動(dòng)學(xué)習(xí)SQL語句結(jié)構(gòu),并構(gòu)建一個(gè)安全語句知識(shí)庫;在檢測漏洞時(shí),利用規(guī)則匹配的原理,通過對比知識(shí)庫中的SQL語句從而發(fā)現(xiàn)SQL注入漏洞。

        Zhang[17]提出了一種使用深度學(xué)習(xí)算法識(shí)別SQL注入漏洞的方法。該方法提取的特征主要包括三組:文件是否包含輸入驗(yàn)證和清理的屬性、文件定義的所有功能(某些項(xiàng)目可能定義自己的驗(yàn)證和清理方法)和特征的上下文,然后使用多種機(jī)器學(xué)習(xí)算法和三組特征來訓(xùn)練分類器,最終達(dá)到識(shí)別源代碼文件中SQL注入漏洞的效果。

        郭寧[18]提出了一種改進(jìn)利用深度學(xué)習(xí)挖掘SQL注入漏洞的方法。該方法主要有兩個(gè)方面:一是利用字節(jié)碼進(jìn)行特征提取,由于字節(jié)碼是中間語言,因此通過向量轉(zhuǎn)換可以去除源代碼中的冗余字符避免過度擬合;二是以LSTM算法模型為基礎(chǔ)構(gòu)建神經(jīng)網(wǎng)絡(luò)。該方案不僅利用深度學(xué)習(xí)模型提升了漏洞挖掘的精確性,還有效緩解了過度擬合的問題。

        基于機(jī)器學(xué)習(xí)的SQL注入漏洞挖掘技術(shù)有效提升了漏洞挖掘的精準(zhǔn)度,并且不需要搭建環(huán)境,但是仍然存在一些問題:一是基于機(jī)器學(xué)習(xí)的方式嚴(yán)重依賴于預(yù)定義特征的準(zhǔn)確性;二是數(shù)據(jù)集對基于機(jī)器學(xué)習(xí)的方法來說非常重要,目前仍然缺乏高質(zhì)量且大數(shù)量的數(shù)據(jù)集[19];三是跨項(xiàng)目的問題,不同項(xiàng)目的開發(fā)環(huán)境不同,使用的開發(fā)框架也不相同,導(dǎo)致漏洞特征也不相同,因此某個(gè)Web應(yīng)用程序的漏洞代碼并不能作為另一個(gè)應(yīng)用程序的機(jī)器學(xué)習(xí)的訓(xùn)練樣本。

        3 SQL注入漏洞挖掘技術(shù)研究展望

        如今,隨著各種網(wǎng)絡(luò)攻擊入侵技術(shù)的不斷更新,SQL注入形式也不斷翻新,導(dǎo)致越來越難以防御。經(jīng)過多年的研究,在傳統(tǒng)的SQL注入漏洞挖掘技術(shù)方面取得了顯著進(jìn)展,積累了豐富的理論知識(shí),但是受制于工作原理,在面對新型的SQL注入時(shí)效果并不理想。隨著人工智能技術(shù)的興起,研究人員將機(jī)器學(xué)習(xí)技術(shù)結(jié)合到SQL注入漏洞挖掘技術(shù)中,并取得了顯著成果,但是SQL注入變化較多,如何結(jié)合機(jī)器學(xué)習(xí)依然是一個(gè)開放性問題,面臨著諸多挑戰(zhàn),并且基于機(jī)器學(xué)習(xí)的方法還存在模型選擇難、缺乏統(tǒng)一評估標(biāo)準(zhǔn)等弊端。結(jié)合近幾年的研究趨勢,SQL注入漏洞挖掘技術(shù)可以從以下幾個(gè)方向展開研究。

        3.1 規(guī)范化數(shù)據(jù)集建設(shè)

        對于基于機(jī)器學(xué)習(xí)的SQL注入漏洞挖掘技術(shù)而言,需要對應(yīng)數(shù)據(jù)集來進(jìn)行訓(xùn)練數(shù)據(jù)集的構(gòu)建。數(shù)據(jù)集就是具有漏洞的Web應(yīng)用程序代碼,然而現(xiàn)實(shí)中通常一款Web應(yīng)用程序存在漏洞的數(shù)量并不足以支撐機(jī)器學(xué)習(xí)所需。因此當(dāng)前需要一個(gè)統(tǒng)一的數(shù)據(jù)集,從而方便研究人員進(jìn)行相應(yīng)的訓(xùn)練數(shù)據(jù)集的構(gòu)建,并便于對機(jī)器學(xué)習(xí)模型的效果進(jìn)行比較。

        3.2 面向平臺(tái)技術(shù)革新

        隨著物聯(lián)網(wǎng)、云計(jì)算、大數(shù)據(jù)等技術(shù)的發(fā)展,對SQL注入漏洞挖掘技術(shù)的研究已經(jīng)由傳統(tǒng)Web應(yīng)用程序向新技術(shù)設(shè)施平臺(tái)擴(kuò)展。首先無論是物聯(lián)網(wǎng),還是云設(shè)備,亦或是其他大數(shù)據(jù)存儲(chǔ)設(shè)備,相比于傳統(tǒng)Web應(yīng)用程序數(shù)據(jù)庫,數(shù)據(jù)量更大、流量更多,為了應(yīng)對這些變化,SQL注入漏洞挖掘技術(shù)的性能需要進(jìn)一步提升,實(shí)現(xiàn)功耗更低、實(shí)時(shí)性更強(qiáng);其次,伴隨新平臺(tái)出現(xiàn)的還有新型SQL注入漏洞,以往的SQL注入漏洞挖掘技術(shù)能否應(yīng)對依然存疑,因此針對新平臺(tái)的特點(diǎn)開發(fā)新的SQL注入漏洞挖掘技術(shù)也是當(dāng)前需要關(guān)注的重要研究方向。

        3.3 跨項(xiàng)目開展漏洞挖掘

        目前跨項(xiàng)目的問題阻礙了機(jī)器學(xué)習(xí)在漏洞挖掘方面的應(yīng)用。由于各類Web應(yīng)用程序的開發(fā)環(huán)境不同,使用的開發(fā)框架也不同,導(dǎo)致不同Web應(yīng)用程序上漏洞的特征和分布也不同,不具備共性使得某個(gè)Web應(yīng)用程序的漏洞代碼并不能作為另一個(gè)Web應(yīng)用程序機(jī)器學(xué)習(xí)的訓(xùn)練樣本。遷移學(xué)習(xí)算法可能會(huì)在一定程度上解決上述問題,尋找?guī)讉€(gè)類似的項(xiàng)目將它們存在的漏洞綜合起來作為數(shù)據(jù)集進(jìn)行訓(xùn)練,然后通過得到的模型對相應(yīng)的Web應(yīng)用程序進(jìn)行預(yù)測。結(jié)合遷移學(xué)習(xí)解決跨項(xiàng)目帶來的漏洞數(shù)據(jù)少的問題也是未來的研究重點(diǎn)。

        4 結(jié) 語

        SQL注入漏洞是Web應(yīng)用程序中數(shù)量最多、影響范圍最廣的安全漏洞之一,對網(wǎng)絡(luò)安全造成了嚴(yán)重威脅,如何挖掘SQL注入漏洞是安全領(lǐng)域重點(diǎn)關(guān)注的研究方向。本文首先介紹了SQL注入的基本概念及不同類型SQL注入的攻擊原理;然后,詳細(xì)闡述了SQL注入漏洞挖掘技術(shù);最后,總結(jié)并討論了SQL注入漏洞挖掘技術(shù)的未來發(fā)展方向。

        參考文獻(xiàn)

        [1] CNVD.漏洞列表[EB/OL]. (2021-12-31)[2022-10-06]. https://www.cnvd.org.cn/flaw/list?flag=true.

        [2] OWASP. The open web application security project [EB/OL]. [2022-10-06]. http://www.owasp.org.cn/OWASP-CHINA/owasp-project/OWASPTop102017v1.1.pdf.

        [3] CLARKE J. SQL注入攻擊與防御[M]. 2版.施宏斌,譯.北京:清華大學(xué)出版社,2014.

        [4] CSDN. What is an SQL injection attack? The harm and protection of SQL injection attack [EB/OL]. (2021-05-26)[2022-10-06]. https://blog.csdn.net/qq_2213188715/article/details/117290807.

        [5]劉祎璠. 基于靜態(tài)分析的SQL注入漏洞檢測方法研究[D].長沙:湖南大學(xué),2015.

        [6]胡建偉,趙偉,閆崢,等.基于機(jī)器學(xué)習(xí)的SQL注入漏洞挖掘技術(shù)的分析與實(shí)現(xiàn)[J].信息網(wǎng)絡(luò)安全,2019,19(11):36-42.

        [7] MEDEIROS I,NEVES N,CORREIA M. Detecting and removing Web application vulnerabilities with static analysis and data mining [J]. IEEE transactions on reliability,2015,65(1):54-69.

        [8] LIVSHITS V B,LAM M S. Finding security vulnerabilities in java applications with static analysis [C]// Proceedings of the 14th conference on USENIX Security Symposium. Baltimore,USA:USENIX Association,2005,14:18.

        [9] WANG M,JUNG C,AHAD A,et al. Spinner: automated dynamic command subsystem perturbation [C]// Proceedings of the 2021 ACM SIGSAC Conference on Computer and Communications Security. [S.l.]:ACM,2021:1839-1860.

        [10]尤楓,馬金慧,張雅峰.基于Chopping的Web應(yīng)用SQL注入漏洞檢測方法[J].計(jì)算機(jī)系統(tǒng)應(yīng)用,2018,27(1):86-91.

        [11] JOHNSON B,SONG Y,MURPHY-HILL E,et al. Why don't software developers use static analysis tools to find bugs? [C]// 2013 35th International Conference on Software Engineering(ICSE). San Francisco,CA,USA:IEEE,2013:672-681.

        [12] WANG J,PHAN R C W,WHITLEY J N,et al. Augmented attack tree modeling of SQL injection attacks [C]// 2010 2nd IEEE International Conference on Information Management and Engineering. Chengdu,China :IEEE,2010:182-186.

        [13]田偉. 模型驅(qū)動(dòng)的Web應(yīng)用SQL注入安全漏洞滲透測試研究[D].天津:南開大學(xué),2012.

        [14]成曉利. Web應(yīng)用SQL注入漏洞測試系統(tǒng)的研究與實(shí)現(xiàn)[D]. 成都:西南交通大學(xué),2013.

        [15] BOYD S W,KEROMYTIS A D. SQLrand: preventing SQL injection attacks [C]// International Conference on Applied Cryptography and Network Security. Berlin,Heidelberg:Springer,2004:292-302.

        [16] SHI C,ZHANG T,YU Y,et al. A new approach for SQL-injection detection [M]// Instrumentation,Measurement,Circuits and Systems. Berlin,Heidelberg:Springer,2012:245-254.

        [17] ZHANG K. A machine learning based approach to identify SQL injection vulnerabilities [C]// 2019 34th IEEE/ACM International Conference on Automated Software Engineering(ASE). San Diego,CA,USA:IEEE,2019:1286-1288.

        [18]郭寧. 基于深度學(xué)習(xí)的漏洞挖掘關(guān)鍵技術(shù)研究[D].北京:北京郵電大學(xué),2020.

        [19]白鑫玉. SQL注入攻擊檢測技術(shù)研究[D].北京:北京交通大學(xué),2021.

        猜你喜歡
        動(dòng)態(tài)分析機(jī)器學(xué)習(xí)數(shù)據(jù)庫
        數(shù)據(jù)庫
        基于污點(diǎn)傳播動(dòng)態(tài)分析的Android安全系統(tǒng)研究
        基于組合評價(jià)法的企業(yè)融資效率動(dòng)態(tài)綜合評價(jià)
        基于機(jī)器學(xué)習(xí)的圖像特征提取技術(shù)在圖像版權(quán)保護(hù)中的應(yīng)用
        基于網(wǎng)絡(luò)搜索數(shù)據(jù)的平遙旅游客流量預(yù)測分析
        前綴字母為特征在維吾爾語文本情感分類中的研究
        基于支持向量機(jī)的金融數(shù)據(jù)分析研究
        會(huì)計(jì)準(zhǔn)則改革動(dòng)態(tài)及相關(guān)研究
        數(shù)據(jù)庫
        據(jù)題類析高中物理動(dòng)態(tài)問題的部分解題技巧
        考試周刊(2016年4期)2016-03-14 09:35:14
        国产精品 无码专区| 亚洲欧美国产精品久久久| 国产性感丝袜美女av| 美女脱掉内裤扒开下面让人插| 国产精品永久久久久久久久久 | 91精选视频在线观看| 精品国产日韩无 影视| 人妻在线有码中文字幕| 美女mm131爽爽爽| 中文字幕一区二区三区精华液| 2021国产最新无码视频| 久久久免费精品国产色夜| 国产成人av一区二区三区不卡| 六月婷婷久香在线视频| 国产成人无码A区在线观| 一区二区三区日本在线| 在线人成视频播放午夜| 午夜精品久久久久久| 国产九色AV刺激露脸对白| 东京热日本道免费高清| 四虎影在永久在线观看| 欧美黑人又粗又硬xxxxx喷水| 亚洲 无码 制服 丝袜 自拍| 国产av一区二区日夜精品剧情| 天天爽夜夜爽夜夜爽精品视频 | 人妻无码一区二区三区四区| 亚洲精品国产综合久久一线| 中文日本强暴人妻另类视频| 亚洲精品国产精品国自产| 亚洲最大中文字幕无码网站 | 插鸡网站在线播放免费观看| 射死你天天日| 亚洲国产精品综合久久20| 成av人片一区二区久久| 一二三四日本中文在线| 国产香蕉尹人综合在线观| 97久久久一区二区少妇| 午夜精品久久久久久久| 又硬又粗又大一区二区三区视频| 18禁黄无遮挡免费网站| 亚洲人成网站色在线入口口|