【畢業(yè)學(xué)位論文】(Word原稿)基于過程內(nèi)路徑補(bǔ)全的高覆蓋率軟件脆弱性分析工具的設(shè)計(jì)-軟件工程_第1頁
【畢業(yè)學(xué)位論文】(Word原稿)基于過程內(nèi)路徑補(bǔ)全的高覆蓋率軟件脆弱性分析工具的設(shè)計(jì)-軟件工程_第2頁
【畢業(yè)學(xué)位論文】(Word原稿)基于過程內(nèi)路徑補(bǔ)全的高覆蓋率軟件脆弱性分析工具的設(shè)計(jì)-軟件工程_第3頁
【畢業(yè)學(xué)位論文】(Word原稿)基于過程內(nèi)路徑補(bǔ)全的高覆蓋率軟件脆弱性分析工具的設(shè)計(jì)-軟件工程_第4頁
【畢業(yè)學(xué)位論文】(Word原稿)基于過程內(nèi)路徑補(bǔ)全的高覆蓋率軟件脆弱性分析工具的設(shè)計(jì)-軟件工程_第5頁
已閱讀5頁,還剩21頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

基于過程內(nèi)路徑補(bǔ)全的高覆蓋率軟件脆弱性分析工具的設(shè)計(jì) 基于過程內(nèi)路徑補(bǔ)全 高覆蓋率軟件脆弱性分析工具的設(shè)計(jì) 摘 要 隨著社會(huì)經(jīng)濟(jì)的高速發(fā)展以及信息技術(shù)的越發(fā)成熟,計(jì)算機(jī)已經(jīng)深入到社會(huì)生產(chǎn)生活的各個(gè)方面 ,各種計(jì)算機(jī)軟件呈智能化、復(fù)雜化發(fā)展,在各個(gè)領(lǐng)域發(fā)揮著舉足輕重的作用。另一方面,軟件規(guī)模的急劇擴(kuò)大以及云計(jì)算等新型分布式技術(shù)的發(fā)展使得傳統(tǒng)的測(cè)試手段越發(fā)力不從心,同時(shí),從事開發(fā)工作的程序員迫于工程進(jìn)度壓力以及自身的疏忽或者不好的開發(fā)習(xí)慣使得軟件中潛在的脆弱點(diǎn)越來越多, 黑客往往利用這些脆弱點(diǎn)對(duì)個(gè)人計(jì)算機(jī)、信息系統(tǒng)進(jìn)行入侵破壞、盜取個(gè)人信息或者企業(yè)國家的機(jī)密數(shù)據(jù) ,這些行為深刻威脅到軟件的正常運(yùn)行、信息安全乃至人身以及社會(huì)的安全。然而公布漏洞補(bǔ)丁等補(bǔ)救行為往往是發(fā)生在針對(duì)脆弱點(diǎn)的攻擊發(fā)生之后,此時(shí)損失已經(jīng)產(chǎn)生,補(bǔ)救顯得相對(duì)滯后。因此,以 上種種原因便使得計(jì)算機(jī)安全技術(shù)越發(fā)重要,新的計(jì)算機(jī)軟件脆弱點(diǎn)檢測(cè) 技術(shù)的研究或者工具的開發(fā)顯得迫不及待。 基于以上的社會(huì)背景以及計(jì)算機(jī)軟件發(fā)展形勢(shì),本課題以設(shè)計(jì)與實(shí)現(xiàn)一軟件脆弱性分析工具為目的,通過該工具可以對(duì)各種計(jì)算機(jī)軟件進(jìn)行分析,能夠在被其他惡意軟件或惡意黑客行為加以利用產(chǎn)生攻擊前檢測(cè)出所分析的計(jì)算機(jī)軟件當(dāng)中已知的或未知的潛在軟件脆 弱點(diǎn),并且能夠產(chǎn)生軟件脆弱點(diǎn)檢測(cè)報(bào)告,以提供給該計(jì)算機(jī)軟件的開發(fā)者、維護(hù)人員以及用戶起到參考、開發(fā)、測(cè)試和維護(hù)作用。 動(dòng)態(tài)污點(diǎn)分析 ,作為一種成熟的 動(dòng)態(tài)程序分析技術(shù),能夠在目標(biāo)程序運(yùn)行時(shí)進(jìn)行數(shù)據(jù)流跟蹤 , 通過內(nèi)存建模以及寄存器建??梢詼?zhǔn)確找出各內(nèi)存數(shù)據(jù)與程序輸入的聯(lián)系,從而發(fā)現(xiàn)程序的潛在漏洞,目前被廣泛應(yīng)用到軟件測(cè)試以及漏洞挖掘等計(jì)算機(jī)安全領(lǐng)域。動(dòng)態(tài)污點(diǎn)分析的優(yōu)點(diǎn)在于動(dòng)態(tài)執(zhí)行具有的上下文信息能夠保證程序分析的準(zhǔn)確性,同時(shí)不需要源代碼的支持;但另一方面,動(dòng)態(tài)污點(diǎn)分析依賴于動(dòng)態(tài)程序執(zhí)行路徑,因此分析路徑的覆蓋率相對(duì) 靜態(tài)分析而言較低,導(dǎo)致了相對(duì)較高的漏報(bào)率。 此外,動(dòng)態(tài)分析需要在目標(biāo)程序運(yùn)行時(shí)需要額外的分析的代碼進(jìn)行分析工作,這往往會(huì)在目標(biāo)程序與分析程序間產(chǎn)生上下文切換,從而導(dǎo)致了較高的性能消耗,給動(dòng)態(tài)分析工具的實(shí)用性帶來巨大的挑戰(zhàn)。 目前存在的使用污點(diǎn)傳播分析的一些工具能夠?qū)Σ糠诸愋偷能浖嗳觞c(diǎn)進(jìn)行有效的檢測(cè),然而這些工具在各方面都具有不可忽視的缺點(diǎn),使得其難以得到實(shí)際的使用。如一些工具需要結(jié)合源碼的靜態(tài)分析來支持動(dòng)態(tài)的分析工作,一些工具在檢測(cè)上局限性很大,只能檢測(cè)一種或很有限的幾種軟件脆弱點(diǎn),而一些工具則在性能上包括時(shí) 間開銷以及空間開銷上遇到瓶頸。 為了在新的形勢(shì)下更好地檢測(cè)計(jì)算機(jī)軟件脆弱點(diǎn),結(jié)合已經(jīng)存在的各種脆弱點(diǎn)分析工具的優(yōu)缺點(diǎn), 本文 對(duì)一個(gè)新的軟件脆弱性分析工具 行了闡述,該工具在缺乏目標(biāo)程序源代碼的情況下使用了動(dòng)態(tài)污點(diǎn)分析技術(shù)對(duì) 進(jìn)制可執(zhí)行文件進(jìn)行 數(shù)據(jù)流跟蹤 分析, 能夠在目標(biāo)程序潛在的軟件脆弱點(diǎn)被惡意軟件或黑客利用產(chǎn)生攻擊前就能被檢測(cè)出來。其首先 根據(jù)目標(biāo)程序的輸入如所打開的文件內(nèi)容進(jìn)行污染源的確定,同時(shí)對(duì) 臺(tái)的大部分常見指令,尤其是與字符串操作相關(guān)的指令建立起污點(diǎn)傳播規(guī)則以進(jìn)行 動(dòng)態(tài) 污點(diǎn)傳播 基于過程內(nèi)路徑補(bǔ)全的高覆蓋率軟件脆弱性分析工具的設(shè)計(jì) 分析; 與 其他使用動(dòng)態(tài)污點(diǎn)傳播分析工具不一樣的是, 用一些新的方法與技術(shù)在檢測(cè)軟件脆弱點(diǎn)的有效性以及減少性能消耗等方面得到改進(jìn)。一方面, 過針對(duì)脆弱點(diǎn)特征建立對(duì)應(yīng)規(guī)則, 能夠有效挖掘目標(biāo)程序中潛在的脆弱點(diǎn);同時(shí)該工具針對(duì)程序各 過程進(jìn)行了過程 內(nèi)動(dòng)態(tài)未執(zhí)行的分支 路徑的補(bǔ)全,提高了程序分析的覆蓋率并降低了對(duì)脆弱點(diǎn)的漏報(bào)率,從而彌補(bǔ)了動(dòng)態(tài)分析產(chǎn)生的缺點(diǎn)。 為了更好地提高性能尤其是時(shí)間上的開銷,取了無關(guān) 濾等優(yōu)化措施, 根據(jù)對(duì) 數(shù)行為的研究在分析過程中過濾掉對(duì)污點(diǎn)傳播以及安全不會(huì)產(chǎn)生影響的 數(shù)不進(jìn)行處理,這樣便能進(jìn)一步地提高本工具的性能。 此外 針對(duì)基本塊處理以及過程內(nèi)靜態(tài)路徑補(bǔ)全進(jìn)行多種優(yōu)化,進(jìn)一步降低了 時(shí)間消耗。 本文還對(duì) 能開銷、軟件脆弱點(diǎn)檢測(cè)、過程內(nèi)靜態(tài)路徑補(bǔ)全等方面設(shè)計(jì)了實(shí)驗(yàn)進(jìn)行評(píng)價(jià),實(shí)驗(yàn)的目標(biāo)程序選取了 具有一般性、有效性、通用性、對(duì)比性的軟件,并將 實(shí)驗(yàn)數(shù)據(jù)與其他動(dòng)態(tài)分析工具進(jìn)行了橫向比較從而得出較為客觀的結(jié)果。 通過實(shí)驗(yàn)數(shù)據(jù)表明, 經(jīng)過了多層優(yōu)化之后 性能上相對(duì)與其他動(dòng)態(tài)分析工具有著比較明顯的優(yōu)勢(shì),其中結(jié)合了無關(guān) 濾等優(yōu)化措施后對(duì) 試程序的平均相對(duì)時(shí)間消耗為 ,同時(shí)只有 10 倍的相對(duì)空間消耗,這一數(shù)值遠(yuǎn)低于其他動(dòng)態(tài)分析工具。另一方面,經(jīng)過過程內(nèi)靜態(tài)路徑補(bǔ)全后對(duì)目標(biāo)程序分析的平均覆蓋率為 88%,達(dá)到了提高分析覆蓋率的目的。使用軟件脆弱點(diǎn)檢測(cè)規(guī)則的 夠成功檢測(cè)出多種 文字處理軟件 中 的 多個(gè) 潛在軟件脆弱點(diǎn), 這 使得其在軟件行業(yè)快速發(fā)展以及信息安全日益重要的大背景下具有較高的實(shí)用價(jià)值。 總的來說, 一個(gè)基于過程內(nèi)路徑補(bǔ)全方法的軟件脆弱性分析工具,其采用動(dòng)態(tài)污點(diǎn)傳播分析的技術(shù)能夠有效地 檢測(cè)出目標(biāo)程序中潛在的軟件脆弱點(diǎn),并且在對(duì)目標(biāo)程序的分析上達(dá)到較高的覆蓋率 ,在計(jì)算機(jī)軟件安全、測(cè)試、維護(hù)等關(guān)鍵領(lǐng)域均具有較高的實(shí)用意義 。 關(guān)鍵詞: 動(dòng)態(tài)污點(diǎn)分析,脆弱點(diǎn)挖掘 ,路徑補(bǔ)全,覆蓋率 基于過程內(nèi)路徑補(bǔ)全的高覆蓋率軟件脆弱性分析工具的設(shè)計(jì) F A N s as we of is of of an in of in in of On or of to of of of as it it in of as a of of at of in be of to in to or or a to of or is a to be of is it or to be in on of of of is to a By to a of be by or to at a be to or as a is at in of by in to 基于過程內(nèi)路徑補(bǔ)全的高覆蓋率軟件脆弱性分析工具的設(shè)計(jì) in to as of of of is in On of on of in of s is on to is be of of is to a At on is in of of in to so in of of In to by of in of in a is 86 is to of by or to a by of by of as of is to of of 86 to in On be to to of of is to of in to up of On in to of PI is to PI is to be no on of to of PI be on to in In to at as so of in 基于過程內(nèi)路徑補(bǔ)全的高覆蓋率軟件脆弱性分析工具的設(shè)計(jì) of be in to a a 0X is of On on 8%, be to be a is to of in by it of in of of In a is a on is to of of be at of in of 基于過程內(nèi)路徑補(bǔ)全的高覆蓋率軟件脆弱性分析工具的設(shè)計(jì) 目 錄 第 1章 緒論 弱點(diǎn)挖掘的研究現(xiàn)狀 靜態(tài)分析方法 動(dòng)態(tài)分析方法 采用的方法 動(dòng)態(tài)污點(diǎn)分析技術(shù) 脆弱點(diǎn)檢測(cè)規(guī)則 過程內(nèi)路徑補(bǔ)全 章小結(jié) 2章 系統(tǒng)總體設(shè)計(jì) 統(tǒng)設(shè)計(jì)原則 函數(shù)級(jí)脆弱點(diǎn)分析 間接污點(diǎn)分析 過程內(nèi)路徑補(bǔ)全 統(tǒng)總體架構(gòu) 章小結(jié) 三章 各模塊設(shè)計(jì)與 實(shí)現(xiàn) 態(tài) 污點(diǎn)傳播分析 污染源 確定 內(nèi)存模型 寄存器模型 污點(diǎn)傳播規(guī)則 弱點(diǎn)檢測(cè)規(guī)則 程內(nèi)路徑補(bǔ)全 章小結(jié) 四章 優(yōu)化 支點(diǎn)精簡 關(guān) 濾 本塊處理優(yōu)化 章小結(jié) 五 章 實(shí)驗(yàn)與評(píng)價(jià) 價(jià)目的 驗(yàn)設(shè)計(jì)與結(jié)果 性能開銷 脆弱點(diǎn)檢測(cè) 過程內(nèi)路徑補(bǔ)全 章小結(jié) 基于過程內(nèi)路徑補(bǔ)全的高覆蓋率軟件脆弱性分析工具的設(shè)計(jì) 第五章 結(jié)論 考文獻(xiàn) 辭 基于過程內(nèi)路徑補(bǔ)全的高覆蓋率軟件脆弱性分析工具的設(shè)計(jì) 第 1 頁 共 19 頁 第一章 緒論 當(dāng)今是 信息技術(shù)的快速發(fā)展 的時(shí)代 ,計(jì) 算機(jī)已經(jīng)被普遍應(yīng)用到人類生產(chǎn)生活的各個(gè)方面,無論是家庭、學(xué)校, 或者是企業(yè)、國防等關(guān)鍵領(lǐng)域或重要場(chǎng)所,都可以看見計(jì)算機(jī)的影子。隨著計(jì)算機(jī)在社會(huì)生活的不斷深入,人類對(duì)計(jì)算機(jī)的依賴程度也越來越高,因此,計(jì)算機(jī)軟件的安全性與可靠性也得到越來 越多的關(guān)注與重視。這是因?yàn)橐环矫妫?隨著計(jì)算機(jī)行業(yè)的發(fā)展,軟件的規(guī)模越來越大,其復(fù)雜程度也越來越高, 同時(shí)一些 新的技術(shù)的出現(xiàn)如云計(jì)算等,給 軟件測(cè)試與維護(hù)工作帶來了巨大的挑戰(zhàn),盡管有成熟的軟件工程理論以及項(xiàng)目管理手段的支持,由于從事軟件開發(fā)工作的程序自身由于項(xiàng)目進(jìn)度壓力或者其他原因產(chǎn)生的疏忽,軟件中往往存在著許許多多各式各樣的 脆弱點(diǎn),而這些脆弱點(diǎn)很難在測(cè)試的時(shí)候就被完全發(fā)現(xiàn),這些脆弱點(diǎn)便成為了黑客對(duì)個(gè)人計(jì)算機(jī)、信息系統(tǒng)進(jìn)行入侵的后門,這不但會(huì)給個(gè)人、企業(yè)的財(cái)產(chǎn)帶來損害,還會(huì)給社會(huì)的穩(wěn)定、國家的安全帶來巨大的威脅。 另一方面,計(jì)算機(jī)技術(shù)的發(fā)展也使得黑客的攻擊技術(shù)更加先進(jìn)以及攻擊手段更顯多樣化,同時(shí)計(jì)算機(jī)技術(shù)的普及使得黑客的門檻越來越低 ,計(jì)算機(jī)安全顯得越來越重要。 針對(duì)日益嚴(yán)峻的軟件安全形勢(shì),信息安全技術(shù)也在不斷地發(fā)展,主動(dòng)防御、入侵檢測(cè)、綜合安全網(wǎng)關(guān)( 成熟技術(shù)在家庭和企業(yè)得到了廣泛應(yīng)用,同時(shí)也出現(xiàn)了云安全技術(shù)、深度包檢測(cè)( 終端安全管控等新型信息安全技術(shù)。但對(duì)大多數(shù)安全軟件來說,根據(jù)攻擊者的行為發(fā)現(xiàn)軟件漏洞是常見的模式,然而針對(duì)軟件潛在漏洞的攻擊行為無刻不在,這種漏洞發(fā)現(xiàn)模式發(fā)生在攻擊行為之后,往往已 經(jīng)造成不可忽視的損失。 這就使得漏洞挖掘工具的設(shè)計(jì)與實(shí)現(xiàn)更為重要。 弱點(diǎn)挖掘的 研究現(xiàn)狀 當(dāng)前對(duì) 軟件脆弱點(diǎn)挖掘的研究主要集中于兩個(gè)方向:靜態(tài)分析方法與動(dòng)態(tài)分析方法。 態(tài)分析方法 靜態(tài)分析方法是指在目標(biāo)程序不執(zhí)行的情況下對(duì)程序進(jìn)行分析的方法。在大多數(shù)情況下,靜態(tài)分析方法的輸入是目標(biāo)程序的源代碼, 采用模型檢查、抽象解釋等形式化方法 對(duì)程序進(jìn)行分析。 目前存在不少靜態(tài)分析工具用于軟件脆弱點(diǎn)的挖掘。 學(xué)的 人研究開發(fā)過 ( ,該靜態(tài)分析工具允許用戶使用一種稱作狀態(tài)機(jī)語言編寫自定義的時(shí)序規(guī)則,從而實(shí)現(xiàn)了靜態(tài)分析工具的可擴(kuò)展性。 實(shí)際效果非常優(yōu)秀,號(hào)稱在 核中找出來數(shù)百個(gè)安全漏洞。 工具是絡(luò)研究中心和 間的合作項(xiàng)目,其在對(duì) 一些開放源碼的系統(tǒng)進(jìn)行測(cè)試中, 得了不錯(cuò)的效果。 靜態(tài)分析方法的優(yōu)點(diǎn)在于能夠分析代碼的完備性,能夠利用嚴(yán)格的數(shù)學(xué)方法對(duì)程序進(jìn)行驗(yàn)證,同時(shí),源代碼的存在可以使得函數(shù)原型、變量名、變量類型等 重要的 符 號(hào)信息能在分析過程得以 使用 。然而由于缺乏運(yùn)行時(shí)上下文信息,因此其分析結(jié)果準(zhǔn)確性較低,而大型程序往往源代碼 相對(duì) 龐大, 因而 靜態(tài)分析的工作量 也 相當(dāng) 巨 大 。更重要的是,在大部分情況下,各種商業(yè)軟件的代碼是不能獲得的,這就給 大部分的 靜態(tài)分析 工具 帶來了巨大的困難。 態(tài)分析方法 基于過程內(nèi)路徑補(bǔ)全的高覆蓋率軟件脆弱性分析工具的設(shè)計(jì) 第 2 頁 共 19 頁 動(dòng)態(tài)分析方法是指在實(shí)際執(zhí)行目標(biāo)程序的情況下對(duì)程序進(jìn)行分析的方法。 與靜態(tài)分析方法不一樣的是,動(dòng)態(tài)分析方法是通過程序執(zhí)行進(jìn)行動(dòng)態(tài)的數(shù)據(jù)跟蹤,因此往往只需要目標(biāo)代碼而不需要目標(biāo)程序的源代碼,這優(yōu)點(diǎn)適用于軟件脆弱點(diǎn)挖掘領(lǐng)域。另一方面,動(dòng)態(tài)運(yùn)行 時(shí)所具有的上下文信息如內(nèi)存信息、寄存器信息等能夠被應(yīng)用于 脆弱點(diǎn)分析當(dāng)中使得分析結(jié)果更為準(zhǔn)確,降低了誤報(bào)率 。 動(dòng)態(tài)污點(diǎn)分析技術(shù)是一種成熟的動(dòng)態(tài)分析技術(shù),被應(yīng)用到軟件脆弱點(diǎn)分析 等領(lǐng)域 當(dāng)中。通過確立污染源如程序的用戶輸入或者輸入流等、建立內(nèi)存模型和污點(diǎn)傳播規(guī)則,以及數(shù)據(jù)流分析,能夠發(fā)現(xiàn)目標(biāo)中潛在的脆弱點(diǎn)。 但由于分析結(jié)果依賴于實(shí)際程序執(zhí)行的路徑,因此對(duì)程序分析的覆蓋率較低,也導(dǎo)致了較高的漏報(bào)率。 同時(shí),由于符號(hào)信息的缺乏使得變量、循環(huán)等信息的識(shí)別成為了動(dòng)態(tài)分析中的難題。 目標(biāo)存在著很多漏洞挖掘工具 使用動(dòng)態(tài)分析方法特別 是動(dòng)態(tài)污點(diǎn)分析方法。 是一個(gè)檢測(cè) C 程序安全攻擊的動(dòng)態(tài)數(shù)據(jù)流跟蹤框架,但它的一個(gè)最大的缺點(diǎn)是需要源代碼的支持,這在很大程序上限制了該工具的用途。 是一個(gè)能夠檢測(cè)各種基于破壞控制數(shù)據(jù)的攻擊的動(dòng)態(tài)數(shù)據(jù)流跟蹤工具,其在性能上低開銷的特點(diǎn)使得其實(shí)用性很好,然而它只能檢測(cè)已經(jīng)發(fā)生了的攻擊,因此對(duì)于 0 未能在發(fā)布前被檢測(cè)到)的軟件脆弱點(diǎn)來說它是無能為力的 。 基于 二進(jìn)制分析平臺(tái)的 是另外一個(gè)動(dòng)態(tài)分析工具,它 使用動(dòng)態(tài)污點(diǎn)分析方法能夠 自動(dòng)、 準(zhǔn)確 地 檢測(cè) 到 軟件中 潛在的漏洞,然而它的性能開銷很大,數(shù)據(jù)顯示它的平均時(shí)間開銷為 30 倍,這就使得 它難以被應(yīng)用到對(duì)商業(yè)軟件的實(shí)時(shí)保護(hù)中。 為了解決動(dòng)態(tài)分析時(shí)空間消耗過大的問題, 人提出了一種新的方法對(duì)非法內(nèi)存訪問 (行了檢測(cè) 7,該方法是用動(dòng)態(tài)污點(diǎn)傳播分析,并且通過標(biāo)記復(fù)用限制了內(nèi)存標(biāo)記的使用個(gè)數(shù),同時(shí)通過修改硬件的相關(guān)部分使得污點(diǎn)標(biāo)記的傳播與污點(diǎn)數(shù)據(jù)的傳播能夠在同一指令周期內(nèi)完成,這樣便能夠在一定程度上降低時(shí)間消耗。然而這種方法只能對(duì) 種特定的軟件脆弱點(diǎn)進(jìn)行檢測(cè)。 采用的 方法 考慮到很多情況下目標(biāo)程序的源代碼是無法得到的,因此本脆弱點(diǎn)挖掘工具采取動(dòng)態(tài)分析的方法, 并且在不修改硬件的情況下 針對(duì) 臺(tái)上的目標(biāo)二進(jìn)制代碼進(jìn)行分析,同時(shí)結(jié)合 目前存在的各種脆弱點(diǎn)分析工具的優(yōu)缺點(diǎn),采用了以下的技術(shù)或方法: 態(tài)污點(diǎn)分析技術(shù) 程序的任何輸入如用戶文本框的輸入或所打開的文件等,都是有可能帶有威脅性的,比如通過打開含有惡意代碼的文件使得目標(biāo)程序運(yùn)行時(shí)控制跳轉(zhuǎn)的內(nèi)存數(shù)據(jù)受文件數(shù)據(jù)的影響使得被迫跳轉(zhuǎn)至攻擊代碼中從而導(dǎo)致程序崩潰。 過跟蹤 I/O 流確立污染源,以污染源的數(shù)據(jù)(有 可能含有惡意代碼)為初始污點(diǎn),通過建立污點(diǎn)傳播規(guī)則跟蹤目標(biāo)代碼運(yùn)行時(shí)各內(nèi)存數(shù)據(jù)特別是與控制跳轉(zhuǎn)等相關(guān)的關(guān)鍵數(shù)據(jù)與污點(diǎn)之間的數(shù)據(jù)依賴關(guān)系,這樣便能進(jìn)一步檢測(cè)出潛在的軟件脆弱點(diǎn)。 弱點(diǎn)檢測(cè)規(guī)則 通過動(dòng)態(tài)污點(diǎn)分析技術(shù),我們便能掌握目標(biāo)程序運(yùn)行時(shí)的數(shù)據(jù)依賴關(guān)系,此時(shí), 合污點(diǎn)傳播關(guān)系建立起針對(duì)各類型脆弱點(diǎn)的脆弱點(diǎn)檢測(cè)規(guī)則,便能在動(dòng)態(tài)運(yùn)行時(shí)發(fā)現(xiàn)潛在的軟件脆弱點(diǎn),從而能夠在針對(duì)脆弱點(diǎn)的攻擊發(fā)生前便能產(chǎn)生警告。由于具有動(dòng)態(tài)運(yùn)行上下文的支持,因此根據(jù)這種脆弱點(diǎn)檢測(cè)規(guī)則所 檢測(cè)的結(jié)果準(zhǔn)確性很高,在實(shí)驗(yàn)中并沒有產(chǎn)生脆弱點(diǎn)的誤報(bào)。 程內(nèi)路徑補(bǔ)全 動(dòng)態(tài)污點(diǎn)分析的結(jié)果與每次程序執(zhí)行的路徑有很大的依賴性,因此其分析結(jié)果具有較大的局限性,對(duì)目標(biāo)程序的分析覆蓋率較低,與靜態(tài)分析方法相比具有較高的漏報(bào)率。而 基于過程內(nèi)路徑補(bǔ)全的高覆蓋率軟件脆弱性分析工具的設(shè)計(jì) 第 3 頁 共 19 頁 另一方面,靜態(tài)分析方法雖然不能在誤報(bào)率上得到保證,但其在分析的完備性上具有較大的優(yōu)越性。結(jié)合這兩種方法的優(yōu)缺點(diǎn), 用了一種新的方法,即過程內(nèi)路徑補(bǔ)全。 過程內(nèi)補(bǔ)全是指在各過程內(nèi)部的各個(gè)跳轉(zhuǎn)點(diǎn)補(bǔ)全動(dòng)態(tài)執(zhí)行時(shí)并沒有被執(zhí)行的另外幾條路徑。通過 過程內(nèi)的 靜態(tài)路徑補(bǔ)全便能擴(kuò)大對(duì)目標(biāo) 程序分析的覆蓋面,同時(shí) 能夠發(fā)現(xiàn)原先動(dòng)態(tài)執(zhí)行路徑未能發(fā)現(xiàn)的脆弱點(diǎn),動(dòng)態(tài)分析結(jié)果與靜態(tài)分析結(jié)果結(jié)合起來便能降低脆弱點(diǎn)的漏報(bào)率。 章小節(jié) 本章主要介紹了本課題特別是脆弱點(diǎn)挖掘的背景以及當(dāng)前世界對(duì)脆弱點(diǎn)挖掘的研究情況,同時(shí),結(jié)合著當(dāng)前 存在的各種脆弱點(diǎn)挖掘技術(shù)或工具的優(yōu)缺點(diǎn) 以及實(shí)際需求對(duì) 采用的技術(shù)分成三部分進(jìn)行了簡要的介紹。 第二章 系統(tǒng)總體設(shè)計(jì) 統(tǒng)設(shè)計(jì)原則 與目前存在的一些動(dòng)態(tài)脆弱點(diǎn)分析工具 特別是使用動(dòng)態(tài)污點(diǎn)分析技術(shù)的工具 不同的是, 以下幾個(gè)設(shè)計(jì)原則方面有所改進(jìn),使得 夠更有效 率地對(duì)軟件中潛在的脆弱點(diǎn)進(jìn)行挖掘分析: 數(shù)級(jí)脆弱點(diǎn)分析 圖 2側(cè)部分 為一緩沖區(qū)溢出攻擊的例子, 在函數(shù) 對(duì)字符串進(jìn)行拷貝操作,如果源字符串 度超過目標(biāo)字符串 度則會(huì)發(fā)生緩沖區(qū)溢出。 雖然 為了更好地進(jìn)行描述,例子中以 C 語言源碼的方式進(jìn)行描述。目前大部分使用動(dòng)態(tài)污點(diǎn)分析技術(shù)的軟件脆弱點(diǎn)挖掘工具在處理類似圖 2所顯示的脆弱點(diǎn)時(shí)都遇到一個(gè)問題,即它們只關(guān)心 目標(biāo)程序的控制流是否被修改,比如 、函數(shù) 指針 偏移量以及函數(shù)返回地址指針的行為進(jìn)行檢查,然而,對(duì)企圖修改數(shù)據(jù)流信息的行為則缺乏相應(yīng)的關(guān)注與處理手段 。因此,正如圖 2側(cè)部分所示,大部分的工具在檢測(cè)此類脆弱點(diǎn)時(shí)存在檢測(cè)空隙,即只有當(dāng)函數(shù)指針、函數(shù)指針偏移量、函數(shù)返回地址指針 (藍(lán)色區(qū)域) 被 緩沖區(qū)數(shù)據(jù)(紅色區(qū)域) 確實(shí)修改了才能被工具檢測(cè)出來,而僅僅修改了數(shù)據(jù)流信息的脆弱點(diǎn)是無法被檢測(cè)出來的。 基于過程內(nèi)路徑補(bǔ)全的高覆蓋率軟件脆弱性分析工具的設(shè)計(jì) 第 4 頁 共 19 頁 圖 2沖區(qū)溢出脆弱點(diǎn)與檢測(cè)空隙 為了解決以上問題, 函數(shù)級(jí)脆弱點(diǎn)進(jìn)行了分析,即對(duì)一些可能引起安全問題的數(shù)在被調(diào)用前進(jìn)行檢查,如對(duì) 數(shù)被調(diào)用前檢查,對(duì)其兩個(gè)參數(shù)的長度進(jìn)行比較,從而便能在函數(shù)指針、函數(shù)指針偏移量、函數(shù)返回地址指針被修改前就能檢測(cè)出 使用該 數(shù)的 潛在的緩沖區(qū)溢出脆弱點(diǎn)。 接污點(diǎn)分析 當(dāng)前大部分使用動(dòng)態(tài)污點(diǎn)分析技術(shù)的軟件脆弱點(diǎn)挖掘工具遇到的另外一個(gè)問題是無法檢測(cè)出不直接受污點(diǎn)數(shù)據(jù)影響的軟件脆弱點(diǎn)。這是由于大部分

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論