• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    基于模糊度量的軟件漏洞檢測技術(shù)研究

    2010-08-07 08:20:42張晛譞范明鈺
    關(guān)鍵詞:自動機安全漏洞漏洞

    張晛譞 范明鈺

    電子科技大學(xué)計算機學(xué)院 四川 610054

    0 引言

    軟件的漏洞檢測主要分為動態(tài)檢測和靜態(tài)檢測兩大類。其中動態(tài)檢測指通過運行被測程序,檢查運行結(jié)果與預(yù)期結(jié)果的差異,并分析運行效率和健壯性等性能,一般多用黑盒測試的方法。而靜態(tài)檢測是指不運行被測程序本身,通過分析或檢查源程序的語法、結(jié)構(gòu)、過程、接口等來檢查程序的正確性。本文主要研究一種對于軟件源代碼的新型自動靜態(tài)檢測技術(shù)模型,事實上,對于某些專業(yè)人員來說,通過可執(zhí)行代碼得到的匯編代碼也可以看作有了軟件的源代碼。

    1 軟件安全漏洞的產(chǎn)生

    根據(jù)軟件安全漏洞的分類,漏洞產(chǎn)生主要有四大方面的原因:軟件設(shè)計缺陷、軟件代碼編寫缺陷、執(zhí)行環(huán)境差異和補丁文件對整個系統(tǒng)的影響。實際上,各種原因在本質(zhì)上都是因為軟件流程上存在一些“危險路徑”,使得軟件可能會陷入于開發(fā)者設(shè)想中不符的流程。而造成這樣“危險路徑”的原因絕大多數(shù)是由于函數(shù)的調(diào)用引起的,其中包括危險函數(shù)的調(diào)用和不恰當(dāng)?shù)暮瘮?shù)調(diào)用順序等。

    2 軟件安全漏洞檢測現(xiàn)狀的不足

    根據(jù)軟件安全漏洞的產(chǎn)生原因,對漏洞的檢測就是要找到這些可能存在安全隱患的軟件執(zhí)行流程“路徑”。而大部分的漏洞檢測方法基本上都是一種可以稱之為“點檢測”的檢測方法,它們針對某一小段單一功能的具體代碼或者某一個函數(shù),采用特征碼匹配和分析的方法進行安全漏洞的檢測。這樣的檢測方法會產(chǎn)生大量的“漏報”和“誤報”,因為軟件流程具有一個整體性,對待數(shù)據(jù)流的某一部分可能對整個功能做出錯誤的估計。

    3 基于模糊度量的軟件安全漏洞檢測技術(shù)

    文獻提出了針對緩沖區(qū)溢出和循環(huán)拷貝出錯漏洞的有限狀態(tài)自動機模型,本文在此基礎(chǔ)上提出基于模糊度量的軟件安全漏洞檢測方法。其核心理論為模糊有限狀態(tài)自動機。

    3.1 模糊有限狀態(tài)自動機

    自動機可抽象地用一個五元組表示,即:A=(X,S,Y,∏,g),式中 X、S 和 Y 分別是輸入集、狀態(tài)集和輸出集,∏和 g分別是狀態(tài)轉(zhuǎn)移函數(shù)和輸出函數(shù)。在確定的自動機中,狀態(tài)轉(zhuǎn)移函數(shù)∏和輸出函數(shù)g都是確定的,可以用嚴(yán)格的數(shù)學(xué)函數(shù)來描述。如果把狀態(tài)轉(zhuǎn)移函數(shù)∏和輸出函數(shù)g模糊化,或者∏和g只能用模糊函數(shù)來描述,則自動機A即為模糊有限狀態(tài)自動機。

    模糊有限狀態(tài)自動機與模糊文法相對應(yīng),可以作為軟件源程序模糊識別的標(biāo)準(zhǔn),只要建立合適狀態(tài)轉(zhuǎn)移函數(shù)和輸出函數(shù),就可以讓整個檢測模型具有模糊識別能力。模糊自動機在復(fù)雜系統(tǒng)的行為分析、模式識別、學(xué)習(xí)系統(tǒng)和控制等方面具有顯著的優(yōu)勢,這些模糊自動機的特點對識別未知漏洞具有相當(dāng)重要的作用。因為軟件系統(tǒng)本身就是一個復(fù)雜的系統(tǒng),分析軟件系統(tǒng)的行為模式就是發(fā)現(xiàn)軟件安全漏洞的主要方式。針對于未知漏洞,就需要分析技術(shù)具有識別和學(xué)習(xí)的能力。

    3.2 軟件安全漏洞自動檢測技術(shù)

    在綜合模型檢驗技術(shù)以及上文所提及的軟件系統(tǒng)行為分析、模式識別和自學(xué)習(xí)的功能,本文提出基于模糊度量的軟件安全漏洞檢測技術(shù),如圖1所示。

    圖1 基于模糊度量的軟件安全漏洞檢測技術(shù)

    本漏洞檢測技術(shù)主要分為輸入、挖掘過程和輸出三個主要模塊。檢測過程首先由輸入模塊開始,軟件源代碼和漏洞屬性庫作為前期輸入進入挖掘過程,然后經(jīng)過挖掘過程的內(nèi)部處理后將一部分結(jié)果反饋給漏洞屬性庫,完成自學(xué)習(xí)過程,最后輸出分析結(jié)果。其中核心模塊為輸入中的漏洞屬性庫、挖掘過程中執(zhí)行路徑模型生成器、漏洞屬性關(guān)聯(lián)生成器和模糊狀態(tài)自動機模型檢測器。接下來對各個核心模塊做出具體說明。

    漏洞屬性庫:這是一個存儲軟件安全漏洞屬性的數(shù)據(jù)庫。它將漏洞系統(tǒng)分解,將能夠?qū)Π踩[患產(chǎn)生影響的單一屬性存儲于一個獨立數(shù)據(jù)庫中。整個系統(tǒng)前期需要創(chuàng)建一個已知安全漏洞屬性數(shù)據(jù)庫,數(shù)據(jù)庫中存在某些已知安全漏洞的相關(guān)屬性。例如緩沖區(qū)溢出安全漏洞的堆或??臻g分配長度和內(nèi)容填充、循環(huán)錯誤安全漏洞的循環(huán)塊存在位置、循環(huán)內(nèi)部內(nèi)存讀寫邊界設(shè)定和內(nèi)存讀寫內(nèi)容填充,整數(shù)溢出漏洞的類型設(shè)定、值傳遞和類型轉(zhuǎn)化,格式化字符串的函數(shù)檢查和類型匹配,還有數(shù)據(jù)來源等關(guān)鍵安全屬性。這個漏洞屬性庫可以手工添加記錄,也可以通過系統(tǒng)的自學(xué)習(xí)機制反饋未知安全漏洞存在的屬性。它的作用是支持漏洞屬性關(guān)聯(lián)生成器。

    漏洞屬性關(guān)聯(lián)生成器:這個生成器主要作用是減少冗余工作量,增加系統(tǒng)效率。它將漏洞屬性庫中的屬性根據(jù)邏輯關(guān)聯(lián)情況生成漏洞狀態(tài)關(guān)聯(lián)圖,用于檢測器分析。排除掉一些無用組合,避免系統(tǒng)盲目搜索數(shù)據(jù)庫,增加冗余工作量。尤其是在數(shù)據(jù)庫比較龐大的,這個策略所帶來的意義是非常重大的。

    執(zhí)行路徑模型生成器:這是一個根據(jù)軟件源碼構(gòu)建虛擬軟件執(zhí)行路徑模型的生成器。它綜合了靜態(tài)分析覆蓋范圍大以及動態(tài)分析中軟件流程分析的優(yōu)點,將抽象的軟件源碼組建成為具有層次結(jié)構(gòu)和清晰流程的模型。

    模糊狀態(tài)自動機模型檢測器:這是本檢測方法的核心部分。定義系統(tǒng)存在缺陷的程度為[0,1],1代表系統(tǒng)存在確定性漏洞,0代表系統(tǒng)安全,0到1之間表示系統(tǒng)存在不同程度的安全缺陷,數(shù)值越靠近1安全缺陷危險程度越高。

    這個檢測器利用模糊有限狀態(tài)自動機的理論進行組建:輸入集X為執(zhí)行路徑模型生成器的輸出模型;狀態(tài)集S為漏洞屬性關(guān)聯(lián)生成器的輸出模型;輸出集Y為{qs,qf,qv},qs表示系統(tǒng)狀態(tài)安全,qv表示系統(tǒng)存在確定性安全漏洞,qf表示系統(tǒng)存在不同程度的安全缺陷。輸出函數(shù)g分為兩個部分:第一部分將輸出集Y中所反應(yīng)的安全缺陷危險程度和在軟件執(zhí)行流程模型中的路徑顯示給分析人員,第二部分將分析中出現(xiàn)的安全缺陷的各個安全屬性反饋給漏洞屬性庫,添加未記錄的漏洞屬性;狀態(tài)轉(zhuǎn)移函數(shù)∏依托漏洞屬性狀態(tài)轉(zhuǎn)移模型建立。

    模糊有限狀態(tài)自動機狀態(tài)轉(zhuǎn)移示意圖如圖2所示。

    圖2 模糊有限狀態(tài)自動機狀態(tài)轉(zhuǎn)移示意圖

    q0為初始狀態(tài),根據(jù)狀態(tài)轉(zhuǎn)移函數(shù),如果軟件執(zhí)行流程中未出現(xiàn)漏洞屬性關(guān)聯(lián)生成器中生成模型的屬性,那么狀態(tài)不發(fā)生變化,返回q0;如果出現(xiàn)漏洞相關(guān)屬性,則根據(jù)漏洞屬性進行狀態(tài)轉(zhuǎn)移并計算安全缺陷危險度。然后繼續(xù)上述思路,如果期間出現(xiàn)某確定性軟件漏洞,則直接輸出qv狀態(tài),返回危險度最大值 1,并計算該漏洞的危急程度;若直至軟件執(zhí)行流程模型某條路徑結(jié)束都未出現(xiàn)確定性安全漏洞,則根據(jù)綜合計算的安全缺陷危險程度輸出,若危險程度為 0,則輸出qs狀態(tài),否則輸出,qf和安全缺陷危險度。

    3.3 仿真實驗測試

    本文在Windows XP SP2系統(tǒng)下實現(xiàn)了該檢測方法的仿真程序,漏洞特征數(shù)據(jù)庫添加基本數(shù)據(jù)和相關(guān)測試基本安全度(此安全度可以根據(jù)實際情況進行設(shè)置,此處僅設(shè)置為測試用基本安全度)。然后對多款第三方軟件進行實驗,并將實驗結(jié)果與官方發(fā)布的漏洞進行比對。結(jié)果如表1。

    表1 仿真實驗結(jié)果

    該實驗結(jié)果表明與傳統(tǒng)檢測方法相比,基于模糊度量的軟件漏洞檢測技術(shù)可以更好的進行軟件安全漏洞檢測,尤其對未知軟件安全漏洞進行檢測,并且能給出漏洞的危急程度。

    4 結(jié)語

    本文所提出的基于模糊度量的軟件安全漏洞自動檢測技術(shù)結(jié)合了有限狀態(tài)自動機和模型檢測的思想,將通常的漏洞整體檢測,分解為對漏洞中單一屬性集合的檢測,使漏洞檢測化整為零,并具有自學(xué)習(xí)的機制。另一方面,引進模糊狀態(tài)轉(zhuǎn)移函數(shù)可更好檢測軟件安全漏洞的危急程度,指導(dǎo)相關(guān)人員根據(jù)危急程度進行修正。

    但是該檢測技術(shù)仍具有不少值得改進之處。其難點之一是漏洞屬性庫的設(shè)計。漏洞屬性庫和漏洞屬性關(guān)聯(lián)生成器這個設(shè)計其中很重要的一點就是提高系統(tǒng)檢測效率,如果漏洞屬性數(shù)據(jù)庫能更完善表明各漏洞屬性之間的依賴情況,就能有助于提高漏洞屬性關(guān)聯(lián)生成器工作時的效率。另一個難點就是模糊狀態(tài)轉(zhuǎn)移函數(shù)在設(shè)計上如果能結(jié)合漏洞屬性關(guān)聯(lián)生成器所生成的模型做出動態(tài)改變,將可以更好的檢測軟件系統(tǒng)的安全漏洞。因此,在今后的研究工作中,主要針對“漏洞屬性依賴關(guān)系”和“軟件執(zhí)行流程的安全度量”進行進一步的研究。

    [1] S.Weber,P.Karger and A.Paradkar.A Sofiware Flaw Taxonomy:Aiming Tools at Security[C].Software Engineering for Secure Systems-Building Trustworthy Applications(SESS)Proceedings.2005.

    [2] V.Benjamin Livshits and Monica S.Lam.Tracking Pointers with Path and Context Sensitivity for Bug Detection in C Programs[C].ACM 2003.

    [3] Cynthia Phillip s,Laura Painton Swiler.A graph based system for network vulnerability analysis[C].ACM 1999.

    [4] Paul Ammann,Duminda Wijesekera,and Saket Kaushik.Analysis and verification Scalable,graph2based network vulnerability analysis[C].ACM 2002.

    猜你喜歡
    自動機安全漏洞漏洞
    漏洞
    {1,3,5}-{1,4,5}問題與鄰居自動機
    一種基于模糊細(xì)胞自動機的新型疏散模型
    智富時代(2019年4期)2019-06-01 07:35:00
    安全漏洞太大亞馬遜、沃爾瑪和Target緊急下架這種玩具
    玩具世界(2018年6期)2018-08-31 02:36:26
    廣義標(biāo)準(zhǔn)自動機及其商自動機
    基于安全漏洞掃描的校園網(wǎng)告警系統(tǒng)的開發(fā)與設(shè)計
    三明:“兩票制”堵住加價漏洞
    漏洞在哪兒
    兒童時代(2016年6期)2016-09-14 04:54:43
    高鐵急救應(yīng)補齊三漏洞
    安全漏洞Shellshock簡介
    河南科技(2014年11期)2014-02-27 14:16:49
    民乐县| 克拉玛依市| 井研县| 农安县| 揭东县| 凤凰县| 花垣县| 宁明县| 瑞金市| 晋城| 措美县| 遂溪县| 光泽县| 法库县| 安达市| 镇江市| 龙口市| 明水县| 郯城县| 华安县| 无为县| 清涧县| 大兴区| 鄂托克前旗| 彭阳县| 阿鲁科尔沁旗| 徐水县| 原阳县| 介休市| 奎屯市| 刚察县| 霍州市| 龙游县| 黄平县| 乌拉特前旗| 房产| 积石山| 玛纳斯县| 斗六市| 潍坊市| 二连浩特市|