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

        ?

        針對(duì)PHP應(yīng)用的二階漏洞檢測(cè)方法

        2018-04-19 05:09:12陳興剛
        信息安全研究 2018年4期
        關(guān)鍵詞:基本塊控制流污點(diǎn)

        周 航 方 勇 黃 誠 劉 亮 陳興剛

        1(四川大學(xué)電子信息學(xué)院 成都 610065)

        2(四川大學(xué)網(wǎng)絡(luò)空間安全學(xué)院 成都 610207)

        3(成都市計(jì)量檢定測(cè)試院 成都 610056)

        (helloworld@stu.scu.edu.cn)

        隨著HTML5的快速發(fā)展,Web應(yīng)用系統(tǒng)在各個(gè)行業(yè)中的應(yīng)用越來越廣泛,采用PHP開發(fā)的網(wǎng)站更是不計(jì)其數(shù).據(jù)2014年相關(guān)報(bào)告統(tǒng)計(jì),Github上PHP開源項(xiàng)目已經(jīng)接近14萬[1],而這一數(shù)據(jù)仍在不斷增長(zhǎng).PHP作為腳本語言,存在入門簡(jiǎn)單、語法靈活、語法不嚴(yán)謹(jǐn)?shù)忍攸c(diǎn).這些特點(diǎn)導(dǎo)致PHP語言開發(fā)的Web系統(tǒng)長(zhǎng)期以來遭受網(wǎng)絡(luò)攻擊,針對(duì)PHP應(yīng)用的安全研究刻不容緩.

        目前針對(duì)程序源代碼漏洞檢測(cè)方法主要分為2類:動(dòng)態(tài)檢測(cè)技術(shù)和靜態(tài)檢測(cè)技術(shù).動(dòng)態(tài)檢測(cè)技術(shù)可分為主動(dòng)檢測(cè)和被動(dòng)檢測(cè)2種方式:主動(dòng)檢測(cè)利用沙箱環(huán)境,將PHP源代碼逐一在沙箱中運(yùn)行,通過動(dòng)態(tài)分析污點(diǎn)的匯聚點(diǎn)分析漏洞類型;被動(dòng)檢測(cè)主要是對(duì)用戶行為進(jìn)行監(jiān)控,例如PHP擴(kuò)展Taint,當(dāng)用戶輸入的污染數(shù)據(jù)傳入某些危險(xiǎn)函數(shù)時(shí)擴(kuò)展就會(huì)發(fā)出警告[2].靜態(tài)分析主要采用了基于數(shù)據(jù)流分析的污點(diǎn)分析技術(shù),對(duì)一個(gè)變量而言,它本身只有2種狀態(tài):污染狀態(tài)和非污染狀態(tài)[3].污點(diǎn)分析可以抽象為一個(gè)三元組〈sources,sinks,sanitizers〉,它的整個(gè)過程就是分析程序中污點(diǎn)源引入的數(shù)據(jù)是否不經(jīng)過無害處理而直接進(jìn)入污點(diǎn)匯聚點(diǎn)[4].相比于動(dòng)態(tài)檢測(cè),靜態(tài)檢測(cè)不需要在運(yùn)行源代碼的情況下進(jìn)行分析,有著執(zhí)行速度快、效率高、代碼覆蓋面廣等優(yōu)點(diǎn)[5].

        針對(duì)Web二階漏洞檢測(cè)技術(shù),國內(nèi)外的專家學(xué)者作了如下研究:Yan等人[6]采用識(shí)別準(zhǔn)則的方式對(duì)二階SQL注入漏洞進(jìn)行檢測(cè),該方法對(duì)準(zhǔn)則庫依賴極強(qiáng)并且準(zhǔn)則庫需要人為添加維護(hù),在實(shí)際環(huán)境中不可取;田玉杰等人[7]提出了一種基于改進(jìn)參數(shù)化的二階SQL注入攻擊防御模型,但是該模型的建立是以正常用戶輸入中不允許包含SQL代碼為前提的,誤報(bào)率較高且通用性差.Backes等人[8]提出了一種基于語法相似性的方法進(jìn)行漏洞檢測(cè),該方法針對(duì)大規(guī)模漏洞檢測(cè)非常有效,但是它對(duì)模板代碼有著很高的要求,對(duì)特定系統(tǒng)的漏洞檢測(cè)十分局限.上述文獻(xiàn)中提到的二階漏洞檢測(cè)方法普遍存在依賴規(guī)則、通用性較差的缺點(diǎn).針對(duì)這些問題,本文主要進(jìn)行了如下研究及工作:

        1)研究了二階漏洞的產(chǎn)生原理以及當(dāng)前針對(duì)此類問題的檢測(cè)方法,分析了這些方法在進(jìn)行二階漏洞檢測(cè)時(shí)的不足.

        2)提出了二階漏洞的靜態(tài)檢測(cè)方法.在抽象語法樹的基礎(chǔ)上提出了控制流圖的構(gòu)建方法,利用控制流圖以及語法分析技術(shù)重建數(shù)據(jù)庫讀寫操作模型,結(jié)合數(shù)據(jù)流分析檢測(cè)源碼中可能存在的二階漏洞.

        3)基于上述方法實(shí)現(xiàn)原型系統(tǒng)CodeAn,并選取Github上PHP開源項(xiàng)目進(jìn)行漏洞檢測(cè).實(shí)驗(yàn)結(jié)果表明:該系統(tǒng)誤報(bào)率為9%,低于同類漏洞檢測(cè)工具.

        1 關(guān)鍵技術(shù)研究

        1.1 二階漏洞分析及示例

        在常見的一階漏洞中,污點(diǎn)源通常定義為用戶的輸入[9].污點(diǎn)分析的過程就是分析用戶的輸入在到達(dá)敏感函數(shù)之前是否經(jīng)過了適當(dāng)?shù)膬艋幚?但是如果污點(diǎn)源引入的數(shù)據(jù)不直接進(jìn)入污點(diǎn)匯聚點(diǎn)而是先存入數(shù)據(jù)庫,當(dāng)污染的數(shù)據(jù)再次從數(shù)據(jù)庫中取出來并且沒有經(jīng)過適當(dāng)?shù)膬艋幚砭瓦M(jìn)入污點(diǎn)匯聚點(diǎn),此過程就可能會(huì)導(dǎo)致新的Web應(yīng)用漏洞,這類漏洞通常被定義為二階漏洞.針對(duì)此類漏洞的污點(diǎn)分析就可以抽象為一個(gè)四元組〈sources,database,sinks,santizers〉.

        圖1展示了二階漏洞的模型:攻擊者向服務(wù)端發(fā)起惡意請(qǐng)求;服務(wù)端接收惡意數(shù)據(jù)后存入數(shù)據(jù)庫之中;在程序的運(yùn)行過程中,數(shù)據(jù)庫中的污染數(shù)據(jù)被取出來并且沒有進(jìn)行適當(dāng)?shù)剡^濾就直接進(jìn)入危險(xiǎn)函數(shù),導(dǎo)致Web二階漏洞產(chǎn)生.

        圖1 二階漏洞模型

        本文以存儲(chǔ)型XSS為例(存儲(chǔ)型XSS可以看作是二階XSS漏洞),介紹二階漏洞的產(chǎn)生原理.圖2為1段存儲(chǔ)用戶輸入數(shù)據(jù)、讀取用戶輸入數(shù)據(jù)并輸出的代碼.在程序的第2行,服務(wù)端獲取用戶的數(shù)據(jù)并對(duì)數(shù)據(jù)進(jìn)行SQL注入過濾;第3行將過濾后的數(shù)據(jù)存入數(shù)據(jù)庫中;第5行讀取數(shù)據(jù)庫內(nèi)容,并且不經(jīng)過任何過濾直接將內(nèi)容輸出到頁面.

        圖2 二階漏洞代碼示例

        在程序執(zhí)行過程中,系統(tǒng)對(duì)數(shù)據(jù)進(jìn)行了addslashes過濾防止SQL注入.在系統(tǒng)取出數(shù)據(jù)之后并沒有進(jìn)行第2次針對(duì)性地過濾,導(dǎo)致XSS跨站腳本漏洞的產(chǎn)生.

        用戶需要發(fā)送2次請(qǐng)求就可以造成XSS攻擊,如圖3所示:

        圖3 用戶攻擊請(qǐng)求

        1.2 數(shù)據(jù)庫結(jié)構(gòu)重建

        在分析數(shù)據(jù)庫讀寫操作時(shí),若SELECT語句使用星號(hào)查詢所有字段,數(shù)據(jù)流分析時(shí)會(huì)無法準(zhǔn)確定位數(shù)據(jù)庫操作的具體列;其次列本身的數(shù)據(jù)類型和長(zhǎng)度可能對(duì)數(shù)據(jù)存在隱式凈化.為了提高數(shù)據(jù)流分析的準(zhǔn)確率和減少不必要的工作量,提出如下方法進(jìn)行處理.

        遍歷源碼中.sql后綴以及.php后綴的文件,利用正則表達(dá)式匹配文件中所有CREATE TABLE的SQL語句.使用語法解析器解析并重建數(shù)據(jù)庫的表結(jié)構(gòu):包括所有表名、列名、列類型和長(zhǎng)度.在MySQL中,字符串之外的數(shù)據(jù)類型都存在隱式凈化,例如:整數(shù)類型Int、時(shí)間類型Time等等.針對(duì)字符串之外的數(shù)據(jù)類型,不對(duì)該列進(jìn)行數(shù)據(jù)庫讀寫分析;而針對(duì)字符串類型,設(shè)置長(zhǎng)度閾值為10.通常長(zhǎng)度小于10的列缺乏構(gòu)造有效攻擊載荷的條件,也不對(duì)其進(jìn)行數(shù)據(jù)庫讀寫分析.通過處理,得到表1所示的數(shù)據(jù)庫結(jié)構(gòu)信息:

        表1 數(shù)據(jù)庫結(jié)構(gòu)信息

        1.3 針對(duì)數(shù)據(jù)庫的讀操作模型分析

        二階漏洞模型如圖1所示,由圖1可知漏洞產(chǎn)生的根本原因是數(shù)據(jù)庫中的污染數(shù)據(jù)傳入了敏感函數(shù).本文將PHP中的100多個(gè)敏感函數(shù)根據(jù)漏洞類型分為8類,部分信息如表2所示:

        表2 敏感函數(shù)及分類

        為了分析數(shù)據(jù)在databases→sinks之間的傳播,本文進(jìn)行了如下研究:

        在控制流圖中,函數(shù)調(diào)用的語句可以抽象為Expr-FuncCall〈name,args,result〉,其中name表示函數(shù)名,args表示參數(shù),result表示函數(shù)返回值;數(shù)組元素的訪問可以抽象為Expr-ArrayDim-Fetch〈var,dim,result〉,其中var表示數(shù)組名,dim表示數(shù)組鍵名,result表示返回值.

        PHP中使用內(nèi)置的query系列函數(shù)獲取數(shù)據(jù)庫資源標(biāo)識(shí)符,為了構(gòu)建數(shù)據(jù)庫的讀操作模型,利用控制流圖獲取query函數(shù)的參數(shù)args,此參數(shù)為待執(zhí)行的SQL語句.通過語法解析器分析數(shù)據(jù)庫讀操作查詢的相關(guān)表名以及字段名.如果存在UNION或者JOIN操作,則可能存在多個(gè)表;如果存在別名操作,則需要通過數(shù)據(jù)庫結(jié)構(gòu)信息進(jìn)行別名映射.PHP中使用內(nèi)置的fetch系列函數(shù)將數(shù)據(jù)庫資源標(biāo)識(shí)符轉(zhuǎn)換為關(guān)聯(lián)數(shù)組或索引數(shù)組.在對(duì)數(shù)據(jù)庫查詢結(jié)果數(shù)組進(jìn)行訪問時(shí),若Expr-ArrayDimFetch中的屬性dim為字符串類型,則其值與數(shù)據(jù)庫中的列名一致;若屬性dim為數(shù)字類型,則通過數(shù)據(jù)庫結(jié)構(gòu)信息查找相應(yīng)的列名.

        遍歷控制流圖中的基本塊,獲取基本塊中所有函數(shù)調(diào)用語句Expr-FuncCall及其屬性name和args.根據(jù)表2提供的列表,提取敏感函數(shù)調(diào)用的相關(guān)信息.以敏感函數(shù)所在的控制流圖基本塊為起點(diǎn)進(jìn)行后向數(shù)據(jù)流分析,對(duì)敏感函數(shù)的參數(shù)args構(gòu)建數(shù)據(jù)依賴關(guān)系,標(biāo)記敏感參數(shù)args到數(shù)據(jù)庫資源標(biāo)識(shí)符的所有有效路徑.

        1.4 針對(duì)數(shù)據(jù)庫的寫操作模型分析

        從二階漏洞模型可知,漏洞產(chǎn)生的另外一個(gè)原因是用戶輸入的污染數(shù)據(jù)sources存儲(chǔ)進(jìn)數(shù)據(jù)庫之中.sources點(diǎn)規(guī)則定義如表3所示:

        表3 sources列表

        為了分析數(shù)據(jù)在sources→databases之間的傳播,本文進(jìn)行了如下研究:

        MySQL中存在3種數(shù)據(jù)庫寫操作語句:INSERT,REPLACE,UPDATE.INSERT和REPLACE用于向數(shù)據(jù)庫中插入數(shù)據(jù),UPDATE用于向數(shù)據(jù)庫中更新數(shù)據(jù).此處對(duì)UPDATE語句進(jìn)行分析,其語法結(jié)構(gòu)如下所示:

        在構(gòu)建數(shù)據(jù)庫寫操作模型時(shí),主要針對(duì)表、列以及列輸入變量進(jìn)行分析.UPDATE語法中的assignment的結(jié)構(gòu)為col-name=value,通常列輸入變量為value.而語法結(jié)構(gòu)中的WHERE子句用于界定數(shù)據(jù)更新的條件,LIMIT用于界定可更新的行數(shù).本文只關(guān)注外部數(shù)據(jù)到數(shù)據(jù)庫之間的傳遞,對(duì)限定語句不進(jìn)行研究.

        遍歷控制流圖中的基本塊,獲取數(shù)據(jù)庫語句執(zhí)行函數(shù)query的參數(shù)args,此參數(shù)為待執(zhí)行的SQL語句.通過語法解析器進(jìn)行解析[10]提取數(shù)據(jù)庫寫操作的表、列以及輸入變量,結(jié)合數(shù)據(jù)庫結(jié)構(gòu)得到表4所示的數(shù)據(jù)庫寫操作模型.而針對(duì)存在隱式凈化的列字段,不對(duì)其相應(yīng)變量進(jìn)行下一步的數(shù)據(jù)依賴關(guān)系分析.

        表4 數(shù)據(jù)庫寫操作模型

        以列的輸入變量所在控制流圖基本塊為起點(diǎn)進(jìn)行后向數(shù)據(jù)流分析,對(duì)輸入變量構(gòu)建數(shù)據(jù)依賴關(guān)系.在依賴關(guān)系中,依賴變量來自表3中的sources列表,則標(biāo)記一條有效路徑并結(jié)束當(dāng)前變量的分析,直到所有變量的路徑標(biāo)記完畢.

        1.5 基于控制流圖的數(shù)據(jù)流分析技術(shù)

        1.5.1 控制流圖構(gòu)建過程

        控制流圖[11](control flow graph,CFG)也稱控制流程圖,由圖形符號(hào)表示程序在執(zhí)行期間可能通過的所有執(zhí)行路徑.控制流圖可通過遍歷AST節(jié)點(diǎn),利用控制節(jié)點(diǎn)分割基本塊得到.PHP中控制節(jié)點(diǎn)及其分類如圖4所示,構(gòu)建方法如過程1所示.

        圖4 用戶攻擊請(qǐng)求

        過程1.CFG生成過程.

        1)遍歷AST節(jié)點(diǎn);

        2)如果節(jié)點(diǎn)屬于STMT-Jump,即為每個(gè)分支建立新的基本塊,并且將新的基本塊用有向邊連接到前一個(gè)基本塊,跳轉(zhuǎn)條件被添加到有向邊上;

        3)如果節(jié)點(diǎn)屬于STMT-Loop,即建立一個(gè)新的基本塊,在數(shù)據(jù)流分析期間對(duì)循環(huán)條件進(jìn)行分析;

        4)如果節(jié)點(diǎn)屬于STMT-Stop或STMT-Return,則停止解析;

        5)一旦創(chuàng)建新的基本塊,即對(duì)基本塊進(jìn)行數(shù)據(jù)流模擬并創(chuàng)建塊摘要;

        6)所有AST節(jié)點(diǎn)遍歷結(jié)束之后停止本過程.

        1.5.2 基于控制流圖的數(shù)據(jù)流分析

        數(shù)據(jù)流分析以控制流圖中的基本塊為最小單位,在控制流圖的構(gòu)建過程中模擬每個(gè)基本塊的數(shù)據(jù)流.

        最常見的數(shù)據(jù)依賴[12]情況就是賦值運(yùn)算.如果變量$x的取值決定于$y,那么就可以認(rèn)為$x依賴于$y.在分析的過程中,對(duì)每個(gè)基本塊的變量進(jìn)行搜集,構(gòu)建數(shù)據(jù)依賴關(guān)系.

        但是PHP中允許使用多個(gè)變量指向同一個(gè)內(nèi)容[13],這種關(guān)系稱為引用.如果存在引用關(guān)系,則可能導(dǎo)致分析存在缺陷.因此在基本塊的數(shù)據(jù)流模擬時(shí),將所有引用關(guān)系指向保存的一個(gè)引用結(jié)構(gòu)中.

        數(shù)據(jù)流分析的關(guān)鍵就在于為每個(gè)數(shù)據(jù)匯聚點(diǎn)構(gòu)建數(shù)據(jù)依賴圖,由于當(dāng)前塊中數(shù)據(jù)只依賴于之前基本塊中的數(shù)據(jù)[14],在控制流圖的基礎(chǔ)上使用后向的數(shù)據(jù)流分析方法:循環(huán)遍歷當(dāng)前基本塊的所有入口邊緣,并在每個(gè)數(shù)據(jù)塊摘要的屬性中查找污點(diǎn)變量的名稱.如果找到匹配項(xiàng),則通過依賴分析以及引用分析將變量替換為對(duì)應(yīng)的依賴變量,并復(fù)制所有污點(diǎn)標(biāo)記以及凈化標(biāo)記.最后通過鏈接到基本塊的所有入口邊緣繼續(xù)跟蹤,直到標(biāo)記出所有的路徑.數(shù)據(jù)依賴圖示例如圖5所示:

        圖5 數(shù)據(jù)依賴圖

        在數(shù)據(jù)流分析的過程中,內(nèi)置函數(shù)對(duì)數(shù)據(jù)的處理會(huì)改變其原有的污點(diǎn)屬性[15].本文把內(nèi)置的凈化函數(shù)分為4類:編解碼類、安全類、散列類、強(qiáng)制轉(zhuǎn)換類.

        編解碼類:例如base64-decode,base64-encode等,在進(jìn)行污點(diǎn)分析的過程中,數(shù)據(jù)經(jīng)過編碼函數(shù)處理之后則去除污點(diǎn)標(biāo)記,經(jīng)過解碼函數(shù)處理之后恢復(fù)原有污點(diǎn)標(biāo)記.

        安全類:例如addslashes,stripslashes等,在數(shù)據(jù)流的分析過程中,數(shù)據(jù)經(jīng)過前者處理之后去除對(duì)應(yīng)的污點(diǎn)標(biāo)記,經(jīng)過后者處理之后恢復(fù)對(duì)應(yīng)的污點(diǎn)標(biāo)記.

        散列類:例如md5等,數(shù)據(jù)經(jīng)過此類函數(shù)處理之后,污染源的所有污點(diǎn)屬性被清除.

        強(qiáng)制轉(zhuǎn)換類:例如intval等,與散列類函數(shù)一樣,去除所有污點(diǎn)屬性.

        2 系統(tǒng)框架及實(shí)現(xiàn)

        本文提出了一種針對(duì)PHP源代碼Web二階漏洞的檢測(cè)模型,系統(tǒng)整體框架如圖6所示.系統(tǒng)第1部分使用語法解析器對(duì)PHP源碼進(jìn)行預(yù)處理,讀取源碼并轉(zhuǎn)換為token序列,然后通過語法規(guī)則將token序列轉(zhuǎn)換為AST.第2部分遍歷抽象語法樹節(jié)點(diǎn),并利用上文提到的方法構(gòu)建程序控制流圖:利用控制節(jié)點(diǎn)將源碼分割成單獨(dú)的基本塊,并在基本塊中進(jìn)行數(shù)據(jù)流模擬,并提取基本塊的塊摘要.第3部分以數(shù)據(jù)庫為中心,對(duì)其讀寫操作進(jìn)行建模:利用正則表達(dá)式提取PHP應(yīng)用中創(chuàng)建表的SQL語句,通過語法分析構(gòu)建數(shù)據(jù)庫結(jié)構(gòu)信息.在抽象語法樹和控制流圖的基礎(chǔ)上重構(gòu)SQL執(zhí)行語句,對(duì)數(shù)據(jù)庫讀寫操作模型進(jìn)行重建.對(duì)于數(shù)據(jù)庫的讀寫分析分為2部分:databases→sinks以及sources→databases之間的數(shù)據(jù)流傳播.本文利用后向數(shù)據(jù)流分析技術(shù)對(duì)敏感變量構(gòu)建數(shù)據(jù)依賴圖,標(biāo)記所有的有效路徑.在敏感函數(shù)和內(nèi)置凈化函數(shù)的基礎(chǔ)上分析可能存在的二階漏洞.

        3 實(shí) 驗(yàn)

        3.1 實(shí)驗(yàn)步驟及環(huán)境

        為了驗(yàn)證理論的可行性及有效性,本文實(shí)現(xiàn)了原型系統(tǒng)CodeAn.選擇了Github上10個(gè)PHP開源項(xiàng)目進(jìn)行性能分析.實(shí)驗(yàn)環(huán)境如表5所示,測(cè)試采用了誤報(bào)率以及總耗時(shí)2個(gè)關(guān)鍵要素進(jìn)行評(píng)估.實(shí)驗(yàn)步驟如下:

        圖6 系統(tǒng)框架圖

        1)選取Github上10個(gè)PHP開源項(xiàng)目,分別選取某一版本作為檢測(cè)對(duì)象并統(tǒng)計(jì)其公開的二階漏洞.

        2)搭建原型系統(tǒng)CodeAn,分別使用常見漏洞檢測(cè)工具Fortify,RIPS,CodeAn對(duì)PHP開源項(xiàng)目進(jìn)行漏洞檢測(cè).

        3)從檢測(cè)漏洞數(shù)、總耗時(shí)、誤報(bào)率3個(gè)方面對(duì)檢測(cè)結(jié)果進(jìn)行統(tǒng)計(jì),得到實(shí)驗(yàn)結(jié)果.

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

        實(shí)驗(yàn)結(jié)果如表5所示,RIPS檢測(cè)漏洞數(shù)23,誤報(bào)率為17%,總耗時(shí)3 733 s;Fortify檢測(cè)漏洞數(shù)31,誤報(bào)率為23%,總耗時(shí)4 033 s;CodeAn檢測(cè)漏洞數(shù)28,誤報(bào)率為9%,總耗時(shí)2550s.通過分析發(fā)現(xiàn),Fortify和RIPS產(chǎn)生的誤報(bào)事件都集中在2個(gè)方面:一方面是未考慮數(shù)據(jù)庫中字段類型以及長(zhǎng)度對(duì)數(shù)據(jù)產(chǎn)生的隱式凈化;另一方面是在數(shù)據(jù)流分析的過程中,沒有考慮解碼函數(shù)以及散列函數(shù)對(duì)數(shù)據(jù)產(chǎn)生的影響,而前者會(huì)恢復(fù)數(shù)據(jù)的污點(diǎn)標(biāo)記,后者會(huì)去除數(shù)據(jù)的污點(diǎn)標(biāo)記.

        相比Fortify和RIPS而言,本系統(tǒng)有著更低誤報(bào)率和更快的響應(yīng)時(shí)間.

        表5 實(shí)驗(yàn)結(jié)果

        4 總 結(jié)

        本文闡述了二階漏洞的產(chǎn)生原理并提出了針對(duì)此類漏洞的檢測(cè)方法:利用控制流圖和語法分析技術(shù)對(duì)數(shù)據(jù)庫讀寫操作進(jìn)行建模,以數(shù)據(jù)庫為中心進(jìn)行數(shù)據(jù)流分析.實(shí)驗(yàn)結(jié)果表明,文中提到的二階漏洞檢測(cè)方法和常見工具相比,誤報(bào)率更低,耗時(shí)更短.

        本文主要針對(duì)面向過程的PHP應(yīng)用程序,針對(duì)面向?qū)ο蟮腜HP應(yīng)用程序檢測(cè)效果不佳.下階段將針對(duì)此方向進(jìn)行更深入的研究.

        [1]Zapponi C.Programming languages and Git Hub[J/OL].[2017-11-10].http://githut.info/

        [2]Nguyen-Tuong A,Guarnieri S,Greene D,et al.Automatically hardening Web applications using precise tainting[C]//Porc of Int Federation for Information Processing.Berlin:Springer,2005:295-307

        [3]霍志鵬.基于靜態(tài)分析的PHP代碼缺陷檢測(cè)[D].北京:北京郵電大學(xué),2015

        [4]王蕾,李豐,李煉,等.污點(diǎn)分析技術(shù)的原理和實(shí)踐應(yīng)用[J].軟件學(xué)報(bào),2017,28(4):860-882

        [5]王耀輝,王丹,付利華.面向PHP程序的SQL漏洞檢測(cè)系統(tǒng)[J].計(jì)算機(jī)工程,2016,42(4):112-118

        [6]Yan L,Li X,Feng R,et al.Detection method of the second-order SQL injection in Web applications[G]//LNCS 8332:Proc of Int Workshop on Structured Object-Oriented Formal Language and Method.Berlin:Springer,2013:154-165

        [7]田玉杰,趙澤茂,張海川,等.二階SQL注入攻擊防御模型[J].信息網(wǎng)絡(luò)安全,2014(11):70-73

        [8]Backes M,Rieck K,Skoruppa M,et al.Efficient and flexible discovery of PHP application vulnerabilities[C]//Proc of IEEE European Symp on Security and Privacy.Piscataway,NJ:IEEE,2017:334-349

        [9]Papagiannis I,Migliavacca M,Pietzuch P.PHP aspis:Using partial taint tracking to protect against injection attacks[C]//Proc of USENIX Conf on Web Application Development.Berkeley:USENIX Association,2011:2- 2

        [10]Cao D,Bai D.Design and implementation for SQL parser based on ANTLR[C]//Proc of Int Conf on Computer Engineering and Technology.Piscataway,NJ:IEEE,2010:V4-276-V4-279

        [11]夏玉輝,張威,萬琳,等.一種基于控制流圖的靜態(tài)測(cè)試方法[C]//全國軟件測(cè)試會(huì)議與移動(dòng)計(jì)算、柵格、智能化高級(jí)論壇會(huì)議錄.武漢:中國計(jì)算機(jī)學(xué)會(huì)容錯(cuò)計(jì)算專業(yè)委員會(huì),2009

        [12]聶世超.PHP程序靜態(tài)分析系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].長(zhǎng)春:吉林大學(xué),2011

        [13]The PHP Group.References explained[EB/OL].[2017-11-10].http://php.net/manual/zh/language.references.php

        [14]Xie Y,Aiken A.Static detection of security vulnerabilities in scripting languages[C]//Proc of USENIX Security Symp.Berkeley:USENIX Association,2006:179-192

        [15]Ouni A,Kessentini M,Inoue K,et al.Search-based Web service antipatterns detection[J].IEEE Trans on Services Computing,2015,10(4):603-617

        猜你喜歡
        基本塊控制流污點(diǎn)
        基于代碼重寫的動(dòng)態(tài)污點(diǎn)分析
        基于級(jí)聯(lián)森林的控制流錯(cuò)誤檢測(cè)優(yōu)化算法
        抵御控制流分析的Python 程序混淆算法
        距離與權(quán)重相結(jié)合的導(dǎo)向式灰盒模糊測(cè)試方法
        工控系統(tǒng)中PLC安全漏洞及控制流完整性研究
        電子科技(2021年2期)2021-01-08 02:25:58
        抵御控制流分析的程序混淆算法
        一種檢測(cè)控制流錯(cuò)誤的多層分段標(biāo)簽方法
        使用Lightroom污點(diǎn)去除工具清理照片中的瑕疵
        我國“污點(diǎn)證人”刑事責(zé)任豁免制度的構(gòu)建
        基于控制流隱藏的代碼迷惑
        亚洲一区二区三区偷拍视频| 99热这里只有精品国产99热门精品| 中字无码av电影在线观看网站| 国产精品一区二区av白丝在线| 日本一级片一区二区三区| 无码色av一二区在线播放 | 日本精品人妻无码77777| 99久久国产亚洲综合精品| 日本小视频一区二区三区| 国产91清纯白嫩初高中在线观看| 无码国产福利av私拍| 日韩精品中文字幕无码专区| 视频一区视频二区亚洲免费观看| 中文字幕人妻日韩精品| 婷婷久久香蕉五月综合加勒比| 五月天精品视频在线观看| 噜噜噜色97| 天堂丝袜美腿在线观看| 国产黄大片在线观看| 无码人妻丰满熟妇精品区| 人妻精品一区二区免费| 天堂蜜桃视频在线观看| 亚洲啪av永久无码精品放毛片| 91免费在线| 国产精品久久婷婷六月| 久久综合伊人77777麻豆| 少妇高潮惨叫正在播放对白| 午夜a福利| 在线视频自拍视频激情| 亚洲国产精品成人精品无码区在线| 日本高清aⅴ毛片免费| 无码丰满熟妇浪潮一区二区av| av在线高清观看亚洲| 国产白袜脚足j棉袜在线观看| 国产精品综合日韩精品第一页| 国产自产在线视频一区| 亚洲av无码乱码精品国产| 天天干夜夜操| 午夜天堂精品一区二区| 日韩精品一区二区三区在线视频| 精品av天堂毛片久久久|