文雪巍,秦秀媛,王鳳領(lǐng)
(黑龍江財(cái)經(jīng)學(xué)院)
長期以來,計(jì)算機(jī)信息安全這個(gè)問題一直在困擾著人們,特別是隨著系統(tǒng)軟件和應(yīng)用軟件的廣泛使用,人們發(fā)現(xiàn)存在漏洞問題非常普遍.在這些漏洞中,數(shù)據(jù)驅(qū)動型漏洞達(dá)到了半數(shù)以上.數(shù)據(jù)驅(qū)動型漏洞是指由數(shù)據(jù)不正確使用引起的溢出產(chǎn)生的漏洞,它分為緩沖區(qū)溢出漏洞和格式化字符串漏洞等[1].
為了減少這種漏洞的出現(xiàn),數(shù)據(jù)驅(qū)動型漏洞的檢測技術(shù)成為了信息安全研究的一個(gè)重要課題.原有的檢測方法只能對漏洞語句做到詞法分析和語法分析.該文在此基礎(chǔ)上提出了語義分析的靜態(tài)檢測方法,并實(shí)現(xiàn)了一個(gè)原型檢測系統(tǒng)[2].該系統(tǒng)可以在軟件開發(fā)完成后,在軟件開發(fā)小組內(nèi)部進(jìn)行檢測,檢測出軟件中是否存在緩沖區(qū)溢出漏洞,以及漏洞出現(xiàn)的位置,為軟件開發(fā)人員提供了更準(zhǔn)確的檢測依據(jù).
這種面向語義分析的原型檢測系統(tǒng)是以語法分析和編譯原理中的詞法分析為基礎(chǔ)的,采用Wagner對緩沖區(qū)的數(shù)學(xué)描述方法,以實(shí)現(xiàn)語義方面的檢測.主要由四個(gè)模塊組成原型檢測系統(tǒng),分別是創(chuàng)建程序執(zhí)行流程模塊、綜合處理模塊、詞法分析模塊和緩沖區(qū)預(yù)先搜索模塊四個(gè)部分.原型檢測系統(tǒng)的整體結(jié)構(gòu)圖如圖1所示.

圖1 原型檢測系統(tǒng)結(jié)構(gòu)圖
根據(jù)圖1所示,其工作流程是:原型檢測系統(tǒng)首先讀入源代碼文件,如果有多個(gè)源代碼文件就逐個(gè)讀入.程序有兩個(gè)分支,“詞法分析模塊”將源代碼“粉碎”成一個(gè)token字序列(一個(gè)token字就是一個(gè)有屬性標(biāo)記的符號,比如,包括屬性有,標(biāo)識符,數(shù)字,關(guān)鍵字等).“詞法分析模塊”將token字序列傳遞給“緩沖區(qū)預(yù)先搜索模塊”(其實(shí)所謂的傳遞就是token字序列是全局變量,全局可見的),“緩沖區(qū)預(yù)先搜索模塊”根據(jù)token字序列,將字符指針,字符緩沖區(qū)等內(nèi)容從token字序列中“提取”出來,存入到固定的數(shù)據(jù)結(jié)構(gòu)中(數(shù)據(jù)結(jié)構(gòu)的描述在“緩沖區(qū)預(yù)先搜索模塊”中).“創(chuàng)建程序執(zhí)行流程模塊”根據(jù)緩沖區(qū)列表和源程序的執(zhí)行流程,對存在關(guān)系的緩沖區(qū)進(jìn)行統(tǒng)計(jì),比如,如果兩個(gè)緩沖區(qū)簡直存在關(guān)系,那么就在有向圖中這兩個(gè)節(jié)點(diǎn)之間添加一條邊.“創(chuàng)建程序執(zhí)行流程模塊”得到一個(gè)緩沖區(qū)之間關(guān)系的有向圖.“綜合處理模塊”獲得token字串序列和流程有向圖,加載漏洞函數(shù)數(shù)據(jù)庫,根據(jù)該文提出的語義分析方法進(jìn)行語義分析,最后將分析的結(jié)果輸出到檢測報(bào)告中.
2.1.1 詞法分析算法
源代碼文件的錄入過程就是依靠詞法分析實(shí)現(xiàn)的,其本質(zhì)上是將源代碼的源程序轉(zhuǎn)換成眾多的Token字.考慮到源程序各個(gè)部分的具體的內(nèi)容互不相同,為了方便檢測和控制,常常將不同的部分轉(zhuǎn)換成特定的Token字進(jìn)行具體的標(biāo)記.如下所示,為常見的C語言類轉(zhuǎn)換語句:

如果要詞法分析上面的C語言語句,可以簡單的將其劃為四個(gè)部分即:數(shù)字、特殊字符、變量、關(guān)鍵字,他們分別對應(yīng)著“1”、“=”、“b”、“int”,這樣該C語言的四個(gè)部分具有了特定的屬性,這樣既實(shí)現(xiàn)了詞法分析.類似的,可以對所有的源文件進(jìn)行這樣的詞法分析.
2.1.2 詞法分析算法流程
圖2為詞法分析算法流程圖,也即Lex的工作流程.

圖2 詞法分析流程
源文件中各個(gè)部分都被賦予了特定的屬性后,整個(gè)程序就轉(zhuǎn)換成了一個(gè)Token字符序列,該序列有明顯的獨(dú)特性,且很多模塊都可以檢測這些Token序列,因此,源文件就很容易被搜索.需要注意整個(gè)過程的最基本操作就是詞法分析[4].
2.2.1 緩沖區(qū)的搜索方法
在源代碼中開辟緩沖區(qū)可能會引起數(shù)據(jù)驅(qū)動型漏洞,因此必須對源程序中開辟的緩沖區(qū)進(jìn)行具體的檢測.一般要找到源程序中的某一個(gè)緩沖區(qū),直接從緩沖區(qū)列表中讀取即可,但是要注意這一緩沖區(qū)列表不是自動生成的,首先需要檢測整個(gè)工程,進(jìn)而根據(jù)不同緩沖區(qū)的特點(diǎn)創(chuàng)建而成.2.2.2 模塊的算法流程
模塊的算法流程顯示了緩沖區(qū)搜索的整個(gè)過程,如圖3所示.
找到并檢測程序中的緩沖區(qū),并給予其具體的定義,采用專用的數(shù)據(jù)進(jìn)行表征進(jìn)而將其存儲在特定的區(qū)域.為了方便緩沖區(qū)的標(biāo)記和定義,一般要在開辟緩沖區(qū)之前制定一個(gè)對應(yīng)緩沖區(qū)具體屬性的表.
改進(jìn)的Wagner處理方法.
在整數(shù)范圍內(nèi)Wagner方法比較常用,但是遇到有向圖循環(huán)時(shí),該處理方法就顯得格外麻煩,因?yàn)樾枰谒械淖址蠖挤謩e設(shè)置一個(gè)特別域.因此,為了降低處理過程的復(fù)雜性,可以有意的避免循環(huán)圖的出現(xiàn)或者改變循環(huán)圖為非循環(huán)圖[5].
這里優(yōu)化了Wagner方法,動態(tài)檢測時(shí)只處理與之相關(guān)的緩沖區(qū)域,盡量降低對緩沖區(qū)的干擾和影響,涉及到的約束關(guān)系相對比較簡單:

圖3 緩沖區(qū)搜索流程
(1)最常見的約束關(guān)系是緩沖區(qū)的開辟和使用(常與緩沖區(qū)的大小相關(guān));
(2)字符串的長度是否達(dá)到一定值,這時(shí)常常要考慮庫文件中的一些函數(shù),這種約束關(guān)系也是常常涉及到[6].
很明顯,上面說到的約束關(guān)系要比普通Wagner方法簡單很多,其十分有效的回避了循環(huán)圖問題,用很少的約束就達(dá)到了目的.但是上面所述的約束也存在兩個(gè)很大的缺陷:①不能把所有的緩沖區(qū)的信息都揭示出來;②沒有涉及到堆溢出的處理方法即沒有檢測堆分配和堆指針的安全性.因此,大多時(shí)候在搜索模塊必須解決上面所述的兩個(gè)突出問題.一般,綜合處理模塊負(fù)責(zé)了程序執(zhí)行流程模塊的程序執(zhí)行流程有向圖和緩沖區(qū)預(yù)先搜索模塊的緩沖區(qū)列表的創(chuàng)建,便于分析程序的語法和語義.
圖4是綜合分析模塊的算法流程.
綜合分析模塊分析檢索緩沖區(qū)時(shí)必須先得到Token字串序列和開辟的緩沖區(qū)的列表,然后參照程序執(zhí)行流程有向圖及定義的危險(xiǎn)函數(shù),進(jìn)而確定是否及哪里會出現(xiàn)溢出及有缺陷的語義和內(nèi)容,并將判斷結(jié)果及時(shí)的報(bào)告到相關(guān)文件中.

圖4 綜合分析流程
該檢測軟件的測試過程包括兩個(gè)點(diǎn):一個(gè)是測試具有代表性的開源代碼、另一個(gè)是測試存在溢出漏洞的緩沖區(qū).使用上述兩個(gè)測試過程進(jìn)行系統(tǒng)檢驗(yàn)可以得到較為完整的測試結(jié)果,檢驗(yàn)系統(tǒng)是否能夠正常運(yùn)行.
為對檢測系統(tǒng)做清晰的說明,舉幾個(gè)簡單但是特別構(gòu)造的具有緩沖區(qū)溢出漏洞的代碼,給出原型系統(tǒng)的檢測結(jié)果.代碼1為:

從代碼1可以發(fā)現(xiàn),這段代碼具有明顯的數(shù)據(jù)驅(qū)動型漏洞.目的緩沖區(qū)buffer[10]中,開辟的空間大小為10字節(jié),而源緩沖區(qū)“Hello a example”,包括’ 主站蜘蛛池模板: 亚洲无码久久久久| 亚洲美女一级毛片| 国内精品久久九九国产精品 | 国产91av在线| 国产日本一区二区三区| 99久久精品国产精品亚洲| 午夜日b视频| 一本久道久综合久久鬼色| 亚洲视频一区| 精品视频一区二区观看| 偷拍久久网| 亚洲欧洲免费视频| 国产免费久久精品99re不卡| 欧美在线中文字幕| 亚洲人在线| 青青操视频在线| 欧美日韩国产精品va| 99热这里只有精品免费国产| 国产乱人激情H在线观看| 欧美亚洲日韩中文| 婷婷色在线视频| 黄片一区二区三区| 亚洲视屏在线观看| 情侣午夜国产在线一区无码| 国产无码在线调教| 久久国产黑丝袜视频| 在线a网站| 国产一区二区三区视频| 成人亚洲国产| 99中文字幕亚洲一区二区| 国产一区二区福利| 免费福利视频网站| 亚洲天堂啪啪| 亚洲一区二区无码视频| 欧美人在线一区二区三区| 99激情网| 国产女人水多毛片18| 亚洲天堂.com| 4虎影视国产在线观看精品| 青草免费在线观看| 欧美成人综合在线| 精品伊人久久久香线蕉| 美女亚洲一区| 国产在线视频导航| 欧美日韩国产在线观看一区二区三区 | 日韩福利在线观看| 亚洲中文字幕97久久精品少妇| 久久人人97超碰人人澡爱香蕉| 亚洲资源在线视频| 特级毛片8级毛片免费观看| 日韩少妇激情一区二区| 久久综合丝袜长腿丝袜| 青草精品视频| 国国产a国产片免费麻豆| 久久久精品久久久久三级| 58av国产精品| 精品国产香蕉伊思人在线| 国产精品永久久久久| 91在线一9|永久视频在线| 国产精品亚洲综合久久小说| 一本无码在线观看| 国产高清在线观看| 无码免费视频| 波多野结衣在线一区二区| 91精品网站| 99视频有精品视频免费观看| 欧洲av毛片| 欧美日韩成人| 欧美日韩91| 国产91高跟丝袜| 亚洲无码免费黄色网址| 久久久久久国产精品mv| 欧美成人一级| 亚洲一区二区三区麻豆| 久久精品人人做人人爽97| 波多野结衣视频网站| 国产91av在线| 亚洲精品午夜无码电影网| 99re66精品视频在线观看| 国产精品网拍在线| 国产成人综合亚洲欧美在| 91无码网站|