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

        ?

        SQL注入攻擊檢測(cè)與防御技術(shù)研究

        2021-08-05 10:07:56杜建新
        關(guān)鍵詞:數(shù)據(jù)庫(kù)利用用戶

        杜建新

        (內(nèi)蒙古師范大學(xué),內(nèi)蒙古 呼和浩特 010030)

        0 引言

        當(dāng)前,Web應(yīng)用已經(jīng)得到了廣泛應(yīng)用,人們的網(wǎng)絡(luò)購(gòu)物、社交交友等都離不開Web應(yīng)用程序。但是由于Web應(yīng)用開發(fā)門檻較低,開發(fā)人員技術(shù)水平參差不齊,很多開發(fā)人員缺少安全開發(fā)思維,開發(fā)的Web應(yīng)用的安全防護(hù)能力較弱,存在SQL注入、跨站腳本攻擊等各種安全問題,攻擊者利用上述漏洞竊取企業(yè)和用戶信息、控制系統(tǒng)權(quán)限,嚴(yán)重威脅企業(yè)和用戶的信息安全。SQL注入攻擊以數(shù)據(jù)庫(kù)作為攻擊對(duì)象,通過(guò)偽造字符串實(shí)現(xiàn)在數(shù)據(jù)庫(kù)中盜取信息的目的,是一種典型的代碼注入式攻擊[1]。對(duì)攻擊者來(lái)說(shuō),SQL注入攻擊的原理相對(duì)簡(jiǎn)單,且一旦攻擊成功就可以獲取較大的收益。因此,開展針對(duì)SQL注入攻擊檢測(cè)與防御技術(shù)的研究具有重要的研究?jī)r(jià)值和現(xiàn)實(shí)意義。

        1 SQL注入產(chǎn)生過(guò)程分析

        大部分Web應(yīng)用程序在正常工作時(shí)都需要與后臺(tái)數(shù)據(jù)庫(kù)進(jìn)行數(shù)據(jù)傳遞,而SQL是訪問數(shù)據(jù)庫(kù)服務(wù)器的標(biāo)準(zhǔn)語(yǔ)言。目前大多數(shù)的編程語(yǔ)言都可采用可編程方法與數(shù)據(jù)庫(kù)建立連接并傳遞數(shù)據(jù)。在實(shí)際使用Web應(yīng)用時(shí),通常需要將Web表單、cookie等數(shù)值傳遞給SQL進(jìn)行查詢,如果系統(tǒng)在傳遞該數(shù)值前沒有對(duì)其進(jìn)行驗(yàn)證,那么可能導(dǎo)致出現(xiàn)SQL注入漏洞[2]。

        對(duì)構(gòu)建的動(dòng)態(tài)SQL語(yǔ)句,需要將輸入傳遞進(jìn)去,在傳遞前如果沒有對(duì)代碼進(jìn)行驗(yàn)證或編碼,那么攻擊者可將SQL語(yǔ)句當(dāng)作輸入提供給應(yīng)用,同時(shí)將SQL語(yǔ)句輸入給數(shù)據(jù)庫(kù)執(zhí)行。在構(gòu)造動(dòng)態(tài)字符串的過(guò)程中,轉(zhuǎn)義字符處理不當(dāng)、數(shù)據(jù)類型處理錯(cuò)誤、查詢語(yǔ)句設(shè)計(jì)不合理、查詢錯(cuò)誤、處理錯(cuò)誤以及對(duì)多個(gè)查詢請(qǐng)求處理不當(dāng)?shù)染赡軐?dǎo)致SQL注入攻擊的發(fā)生。圖1為SQL注入攻擊流程圖,首先傳遞動(dòng)態(tài)參數(shù)網(wǎng)頁(yè),對(duì)是否注入漏洞和數(shù)據(jù)庫(kù)類型進(jìn)行判斷,得到確認(rèn)后探測(cè)數(shù)據(jù)庫(kù)表名、列名和列值,然后擴(kuò)張權(quán)限,實(shí)施攻擊。

        圖1 SQL注入攻擊流程圖

        數(shù)據(jù)庫(kù)的不安全配置也是導(dǎo)致SQL注入攻擊發(fā)生的重要因素之一。很多數(shù)據(jù)庫(kù)都有默認(rèn)的預(yù)安裝內(nèi)容,例如主流的數(shù)據(jù)庫(kù)SQL Server的系統(tǒng)管理員賬戶默認(rèn)為“sa”;My SQL數(shù)據(jù)庫(kù)的默認(rèn)賬戶為“root”等,其他數(shù)據(jù)庫(kù)也會(huì)采用同樣的方式設(shè)置默認(rèn)賬戶,而且這些賬戶對(duì)應(yīng)的口令通常是公開的。一旦攻擊者利用SQL注入漏洞和授權(quán)賬戶連接數(shù)據(jù)庫(kù),即可利用內(nèi)置賬戶的權(quán)限執(zhí)行其他代碼。因此,開發(fā)人員在編碼時(shí)應(yīng)當(dāng)與數(shù)據(jù)庫(kù)管理人員協(xié)作,確保系統(tǒng)訪問數(shù)據(jù)庫(kù)時(shí)是在最低權(quán)限模型下運(yùn)行,或根據(jù)系統(tǒng)的實(shí)際功能需要對(duì)登錄角色權(quán)限進(jìn)行分離。

        2 SQL注入攻擊檢測(cè)技術(shù)

        2.1 SQL注入攻擊檢測(cè)基本流程

        在線檢測(cè)主要包括關(guān)鍵詞檢測(cè)和SQL語(yǔ)句異常檢測(cè),關(guān)鍵詞檢測(cè)在客戶端對(duì)用戶的數(shù)據(jù)進(jìn)行檢測(cè),SQL語(yǔ)句異常檢測(cè)在服務(wù)器端執(zhí)行。在客戶端對(duì)用戶的輸入進(jìn)行檢測(cè)時(shí),主要實(shí)現(xiàn)對(duì)含有特定關(guān)鍵詞的輸入進(jìn)行檢測(cè)和攔截,對(duì)檢測(cè)到的關(guān)鍵詞進(jìn)行Error提示,并采取相應(yīng)的措施。如果該輸入繞過(guò)了客戶端的關(guān)鍵詞檢測(cè),則在服務(wù)器端對(duì)已經(jīng)嵌套在SQL語(yǔ)句中的輸入進(jìn)行SQL語(yǔ)句異常檢測(cè);如果檢測(cè)到異常,則同樣提示Error錯(cuò)誤并采取相應(yīng)措施,對(duì)通過(guò)檢測(cè)的SQL語(yǔ)句就可以傳遞給數(shù)據(jù)庫(kù)服務(wù)器用于執(zhí)行,服務(wù)器執(zhí)行該語(yǔ)句后給出響應(yīng),同時(shí)在數(shù)據(jù)庫(kù)日志中進(jìn)行記錄并將數(shù)據(jù)發(fā)送給離線檢測(cè)。

        離線檢測(cè)的輸入是在線檢測(cè)部分發(fā)送來(lái)的數(shù)據(jù)庫(kù)日志文件和從網(wǎng)絡(luò)中直接過(guò)去的數(shù)據(jù)庫(kù)查詢語(yǔ)句。在采用文本處理方法對(duì)該SQL語(yǔ)句進(jìn)行處理后,將其分成測(cè)試數(shù)據(jù)和訓(xùn)練數(shù)據(jù)2個(gè)部分,對(duì)訓(xùn)練數(shù)據(jù)采用多種機(jī)器學(xué)習(xí)模型進(jìn)行訓(xùn)練,得到較優(yōu)的檢測(cè)模型,利用該模型對(duì)測(cè)試數(shù)據(jù)進(jìn)行測(cè)試,實(shí)現(xiàn)離線條件下的SQL語(yǔ)句異常檢測(cè)。

        目前,較為主流的SQL注入檢測(cè)方法是通過(guò)對(duì)用戶輸入的字符串或合成的SQL語(yǔ)句的合法性進(jìn)行判別來(lái)確定是否存在SQL注入攻擊行為。在檢測(cè)字符串或SQL語(yǔ)句時(shí),根據(jù)檢測(cè)方式的不同,現(xiàn)有方法大致可分為基于污點(diǎn)分析的檢測(cè)方法、基于文本向量化和機(jī)器學(xué)習(xí)的檢測(cè)方法以及基于規(guī)則匹配的檢測(cè)方法,下面分別對(duì)這3種方法進(jìn)行介紹和分析。

        2.2 基于污點(diǎn)分析的檢測(cè)方法

        基于污點(diǎn)分析的檢測(cè)方法是信息流分析技術(shù)的一種,該方法先對(duì)敏感數(shù)據(jù)進(jìn)行標(biāo)記,跟蹤標(biāo)記數(shù)據(jù)在系統(tǒng)中的傳播情況,進(jìn)而判定該行為是否為攻擊行為[3]。具體來(lái)說(shuō),先對(duì)用戶輸入的不可信數(shù)據(jù)或可信的常量字符串?dāng)?shù)據(jù)進(jìn)行污點(diǎn)標(biāo)記,在程序執(zhí)行的過(guò)程中,跟蹤該標(biāo)記數(shù)據(jù)的傳播情況,在將SQL語(yǔ)句傳遞給數(shù)據(jù)庫(kù)之前對(duì)其進(jìn)行解析,分析污點(diǎn)信息,判斷是否存在SQL注入攻擊。圖2為基于污點(diǎn)分析的檢測(cè)模塊流程圖,先獲取一條指令,對(duì)安全函數(shù)進(jìn)行參數(shù)解析,獲取規(guī)則匹配數(shù)據(jù),判斷是否屬于污點(diǎn)攻擊行為。

        圖2 基于污點(diǎn)分析的檢測(cè)模塊流程圖

        在實(shí)際應(yīng)用時(shí),常見的方法主要包括利用積極污點(diǎn)標(biāo)記方法標(biāo)記常量字符串中的可信敏感字符,將污點(diǎn)信息以轉(zhuǎn)變編碼的方式存儲(chǔ)在字符串的編碼中,同時(shí)動(dòng)態(tài)跟蹤其傳播情況,根據(jù)編碼值確定SQL語(yǔ)句中敏感字符的來(lái)源,對(duì)SQL注入攻擊行為進(jìn)行防御。另一種常見的方法是標(biāo)記外部輸入的動(dòng)態(tài)污點(diǎn)分析檢測(cè)方法,該方法首先對(duì)用戶的輸入進(jìn)行標(biāo)記,解析根據(jù)輸入數(shù)據(jù)流動(dòng)態(tài)構(gòu)造的SQL語(yǔ)句,利用語(yǔ)法分析從中提取SQL語(yǔ)法數(shù),利用污點(diǎn)檢測(cè)算法檢測(cè)其中的結(jié)點(diǎn)是否被污染,從而判定是否存在SQL注入行為。

        2.3 基于文本向量化和機(jī)器學(xué)習(xí)的檢測(cè)方法

        目前較為常見的SQL語(yǔ)句向量化方法主要有基于查詢轉(zhuǎn)換的方法、基于改進(jìn)查詢規(guī)范化的方法、基于Token圖的方法以及基于TFIDF文本向量化的方法等。其中基于查詢轉(zhuǎn)換的方法首先利用轉(zhuǎn)換函數(shù)將特殊字符、符號(hào)等轉(zhuǎn)換為詞的形式,然后利用詞來(lái)對(duì)SQL語(yǔ)句進(jìn)行向量化標(biāo)識(shí)?;诟倪M(jìn)查詢規(guī)范化的方法根據(jù)SQL語(yǔ)句的特點(diǎn),以空格為分隔符將其轉(zhuǎn)換為Token序列,然后根據(jù)Token與數(shù)字索引的關(guān)系,再將Token序列轉(zhuǎn)換為數(shù)值序列,最終用以數(shù)值組成的向量來(lái)標(biāo)識(shí)SQL語(yǔ)句?;赥oken圖的方法同樣以空格作為分隔符對(duì)SQL語(yǔ)句進(jìn)行分割,在將其轉(zhuǎn)化為Token序列后,定義滑動(dòng)窗口以Token圖向量來(lái)標(biāo)識(shí)SQL語(yǔ)句。圖3為基于ITFIDF算法的SQL注入攻擊檢測(cè)模型示意圖,基于TFIDF文本向量化的方法巧妙地利用了TFIDF算法的2個(gè)指標(biāo),即詞頻和逆文檔頻率,對(duì)SQL語(yǔ)句中的敏感字符進(jìn)行處理,計(jì)算敏感字符的TFIDF值,通過(guò)設(shè)計(jì)文本向量化方法將SQL語(yǔ)句數(shù)據(jù)集轉(zhuǎn)換為特征向量。

        圖3 基于ITFIDF算法的SQL注入攻擊檢測(cè)模型示意圖

        目前機(jī)器學(xué)習(xí)方法中用來(lái)檢測(cè)SQL注入攻擊的典型方法主要包括基于數(shù)據(jù)挖掘和SVM的方法、基于神經(jīng)網(wǎng)絡(luò)的檢測(cè)方法以及基于馬爾科夫模型的方法等[4]?;谖谋鞠蛄炕蜋C(jī)器學(xué)習(xí)的檢測(cè)方法通過(guò)將SQL語(yǔ)句轉(zhuǎn)換為特征向量,可以較為準(zhǔn)確地描述SQL語(yǔ)句的特征,利用機(jī)器學(xué)習(xí)對(duì)其進(jìn)行分析并得出檢測(cè)模型,得到的規(guī)則比人為制定的規(guī)則更為實(shí)用,但是該方法的檢測(cè)效率依賴于特征向量的準(zhǔn)確性和分類器的性能。

        2.4 基于規(guī)則匹配的檢測(cè)方法

        基于規(guī)則匹配的檢測(cè)方法的基本原理是設(shè)定一定的規(guī)則,通過(guò)檢測(cè)是否違反規(guī)則來(lái)判定是否存在攻擊行為。典型的方法包括基于正則表達(dá)式匹配的方法、基于語(yǔ)法樹特征匹配的方法和基于模式匹配的方法等[5]。

        基于正則表達(dá)式匹配的方法利用構(gòu)建的正則表達(dá)式對(duì)用戶的輸入進(jìn)行匹配和過(guò)濾?;谡Z(yǔ)法樹特征匹配的方法首先構(gòu)建SQL語(yǔ)句語(yǔ)法樹,然后通過(guò)與待檢測(cè)語(yǔ)句進(jìn)行比對(duì)來(lái)檢測(cè)語(yǔ)句中是否存在SQL注入攻擊的可能?;谀J狡ヅ涞姆椒ㄖ饕o態(tài)階段和動(dòng)態(tài)階段;在靜態(tài)階段主要利用正常的查詢語(yǔ)句構(gòu)建合法模型;在動(dòng)態(tài)階段執(zhí)行查詢時(shí),將查詢語(yǔ)句與構(gòu)建的合法模型進(jìn)行比對(duì),從而發(fā)現(xiàn)其中可能存在的異常。

        3 SQL注入攻擊防御技術(shù)

        SQL注入攻擊防御方法大致可分為代碼層防御技術(shù)和平臺(tái)層防御技術(shù),下面分別對(duì)這2種技術(shù)進(jìn)行比較和分析。表1為幾種防御技術(shù)對(duì)比。

        表1 幾種防御技術(shù)對(duì)比

        3.1 代碼層防御技術(shù)

        3.1.1 基于預(yù)處理和參數(shù)化查詢的方法

        該方法是指在程序中將參數(shù)化語(yǔ)句提前編譯好,當(dāng)程序訪問數(shù)據(jù)庫(kù)使用動(dòng)態(tài)SQL語(yǔ)句時(shí),不是直接將用戶的輸入傳遞給SQL語(yǔ)句,而是利用編譯好的參數(shù)進(jìn)行傳遞,從而降低發(fā)生SQL注入攻擊的概率。

        3.1.2 基于輸入驗(yàn)證的方法

        該方法在用戶輸入時(shí)即對(duì)其輸入字段進(jìn)行限制,如果數(shù)字、日期等具有固定格式的參數(shù)的數(shù)據(jù)類型已經(jīng)確定,則對(duì)其范圍進(jìn)行限定,此外,還可以利用黑名單和白名單的方法對(duì)用戶的輸入進(jìn)行限定。

        3.1.3 基于安全函數(shù)的方法

        該方法采用安全函數(shù)來(lái)對(duì)用戶的輸入進(jìn)行過(guò)濾和轉(zhuǎn)義,該安全函數(shù)既可以是系統(tǒng)自帶的,也可以是開發(fā)人員自定義的。該方法能夠提高攻擊者開展SQL注入攻擊的難度,進(jìn)而降低被攻擊的風(fēng)險(xiǎn)。

        3.2 平臺(tái)層防御技術(shù)

        與代碼層防御技術(shù)不同,平臺(tái)層防御技術(shù)主要在應(yīng)用程序運(yùn)行過(guò)程中發(fā)揮作用,該技術(shù)通過(guò)優(yōu)化運(yùn)行處理流程或優(yōu)化系統(tǒng)配置等檢測(cè)防止出現(xiàn)SQL注入攻擊的情況[6]。目前平臺(tái)層防御可采取的措施如下。

        3.2.1 維護(hù)數(shù)據(jù)和數(shù)據(jù)庫(kù)

        安全地提高數(shù)據(jù)庫(kù)的安全性是防止SQL注入攻擊的有效措施。為盡可能提高數(shù)據(jù)庫(kù)的安全性,需要對(duì)未授權(quán)用戶的訪問進(jìn)行限制,對(duì)已授權(quán)用戶的操作權(quán)限進(jìn)行設(shè)定,同時(shí)在數(shù)據(jù)庫(kù)服務(wù)器上采取有效的安全加固措施,將用戶的操作限定在其權(quán)限內(nèi),不允許其訪問超出權(quán)限的數(shù)據(jù)資源,具體的措施例如隔離數(shù)據(jù)庫(kù)登錄、額外系統(tǒng)對(duì)象鎖定等。

        3.2.2 服務(wù)器和網(wǎng)絡(luò)的安全配置

        根據(jù)Apache、IIS等不同的服務(wù)器類型,有針對(duì)性地進(jìn)行Web服務(wù)器安全配置??梢詫?duì)網(wǎng)絡(luò)訪問控制進(jìn)行安全配置,例如利用防火墻和路由器ACL網(wǎng)絡(luò)層等限制與其他系統(tǒng)的連接。此外,還可將數(shù)據(jù)庫(kù)服務(wù)器與Web服務(wù)器部署在不同的主機(jī)上,降低來(lái)自Web應(yīng)用攻擊的概率,同時(shí)也不會(huì)將數(shù)據(jù)庫(kù)服務(wù)器暴露給攻擊者。平臺(tái)層防御在Web應(yīng)用程序?qū)訉?duì)SQL注入攻擊進(jìn)行抵御,但是如果注入漏洞較為復(fù)雜,防御的效率可能較低。

        4 結(jié)論

        當(dāng)前,開展針對(duì)SQL注入攻擊與檢測(cè)技術(shù)的研究具有重要的現(xiàn)實(shí)意義。該文詳細(xì)分析了SQL注入攻擊檢測(cè)和防御基本技術(shù)和方法,在SQL注入攻擊檢測(cè)與防御研究中,盡管研究者們?nèi)〉昧艘幌盗醒芯砍晒岢龅姆椒ㄔ谝欢ǔ潭壬辖档土税l(fā)生SQL注入攻擊的可能性,但是該方法的檢測(cè)性能還有較大的提升空間。同時(shí),隨著攻擊方式的多樣化,還需要投入更多的人力物力開展針對(duì)SQL注入攻擊檢測(cè)與防御的相關(guān)研究。

        猜你喜歡
        數(shù)據(jù)庫(kù)利用用戶
        利用min{a,b}的積分表示解決一類絕對(duì)值不等式
        利用一半進(jìn)行移多補(bǔ)少
        利用數(shù)的分解來(lái)思考
        Roommate is necessary when far away from home
        數(shù)據(jù)庫(kù)
        關(guān)注用戶
        商用汽車(2016年11期)2016-12-19 01:20:16
        關(guān)注用戶
        商用汽車(2016年6期)2016-06-29 09:18:54
        數(shù)據(jù)庫(kù)
        關(guān)注用戶
        商用汽車(2016年4期)2016-05-09 01:23:12
        數(shù)據(jù)庫(kù)
        长腿丝袜在线观看国产| 少妇激情av一区二区| 欧美成人在线A免费观看| 岛国av一区二区三区| av在线免费观看大全| 亚洲日韩国产一区二区三区| 女同久久精品国产99国产精品| 欧美zozo另类人禽交| 国产免费网站在线观看不卡| 色一情一乱一伦麻豆| 久久久久久久性潮| 亚洲VR永久无码一区| av在线免费观看男人天堂| 女人被男人爽到呻吟的视频| 中文字幕精品无码一区二区| 麻豆国产成人AV网| 国产精品久久久黄色片| 一二区成人影院电影网| 老熟女多次高潮露脸视频| av亚洲在线一区二区| 亚洲三级视频一区二区三区| 亚洲国产精品va在线看黑人| 国产日韩欧美网站| 国产三级在线观看不卡| 色窝窝亚洲av网在线观看| 8ⅹ8x擦拨擦拨成人免费视频| 久久婷婷综合色拍亚洲| 丝袜美腿在线观看视频| 台湾佬中文娱乐网22| 国内精品九九久久久精品| 青青青伊人色综合久久| 亚洲成人av在线第一页| 日本免费a级毛一片| 超碰日韩AV在线| 国产伦奸在线播放免费| 国产果冻豆传媒麻婆精东| 国产精品午睡沙发系列 | 日韩电影一区二区三区| 亚洲国产精品无码久久九九大片健 | 看全色黄大色黄大片 视频| 男人无码视频在线观看|