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

    一種漏洞代碼語(yǔ)義描述語(yǔ)言的設(shè)計(jì)與實(shí)現(xiàn)

    2020-06-17 01:36:58陳錦富陳書(shū)杰張慶晨周敏敏
    關(guān)鍵詞:源代碼示例漏洞

    陳錦富,陳書(shū)杰,張慶晨,周敏敏,張 磊

    (1.江蘇大學(xué) 計(jì)算機(jī)科學(xué)與通信工程學(xué)院,江蘇 鎮(zhèn)江 212013;2.中國(guó)信息安全測(cè)評(píng)中心,北京100085)

    漏洞是在系統(tǒng)硬件、軟件的設(shè)計(jì)和實(shí)現(xiàn)時(shí)或在安全策略的制定配置上的錯(cuò)誤而引起的缺陷[1].惡意用戶可以利用安全漏洞進(jìn)行非法訪問(wèn)系統(tǒng)或破壞系統(tǒng)的正常使用,所以需要綜合使用各種安全工具來(lái)防御入侵以及分析漏洞,如:反病毒軟件、入侵檢測(cè)系統(tǒng)、防火墻、安全漏洞源、漏洞評(píng)估工具[2]等.由于這些安全工具通常自定義各自的輸出格式規(guī)范,因此用不同的安全工具檢測(cè)同一個(gè)安全漏洞得到的輸出結(jié)果形式就會(huì)出現(xiàn)不同.不同的安全漏洞源中對(duì)該安全漏洞的描述也會(huì)出現(xiàn)不同,尤其當(dāng)這些安全漏洞在不同漏洞源中的命名方式也不同時(shí),這些不同的描述就很難關(guān)聯(lián)起來(lái)[3].顯然,由于缺乏一種統(tǒng)一而有效的漏洞模式信息描述的規(guī)范,使得不同安全工具間的協(xié)同工作變得極其困難,同時(shí)也使得對(duì)漏洞信息的深入研究受到一定的限制和影響[4].所以,制定一種通用而有效的描述方法來(lái)描述安全漏洞信息是必要的.

    為此,研究人員提出了用一種形式化的語(yǔ)言或者編程語(yǔ)言代替自然語(yǔ)言來(lái)描述漏洞屬性信息[5],從而實(shí)現(xiàn)漏洞信息的自動(dòng)獲取以及漏洞的自動(dòng)檢測(cè)和分析.形式化描述語(yǔ)言可分為基于BNF (backus-naur form)范式[6]和基于XML (eXtensible markup language)[7]的描述語(yǔ)言.基于BNF范式的描述語(yǔ)言具有效率較高、描述能力較強(qiáng)等優(yōu)點(diǎn),但比較難以設(shè)計(jì)與維護(hù),另外由于在BNF范式設(shè)計(jì)中不同語(yǔ)言有著不同的語(yǔ)法規(guī)則和符號(hào)集合,所以它們之間的信息交互變得困難.基于XML的描述語(yǔ)言的優(yōu)勢(shì)在于它具有相對(duì)成熟完善的技術(shù)體系,同時(shí)還具備了良好的靈活性和擴(kuò)展性,為不同語(yǔ)言之間的信息交互提供了極大的便利,并且可以解決跨平臺(tái)的問(wèn)題[8].但XML效率相對(duì)較低,且描述能力有限,但是發(fā)現(xiàn)其描述能力和效率問(wèn)題在漏洞的相關(guān)研究方面幾乎沒(méi)有影響[9].

    筆者從漏洞源代碼角度出發(fā)設(shè)計(jì)一種漏洞代碼語(yǔ)義描述語(yǔ)言VCSDL (vulnerability code semantic description language),結(jié)合漏洞模式基本信息以及漏洞源代碼信息設(shè)計(jì)框架結(jié)構(gòu),試圖在對(duì)漏洞信息描述的內(nèi)容規(guī)格、全面性以及通用性等方面帶來(lái)一定的提高和改善,以實(shí)際案例詳細(xì)闡述VCSDL的描述與發(fā)布,討論其應(yīng)用模式,最后將其與安全領(lǐng)域其他描述語(yǔ)言在性能上進(jìn)行定性對(duì)比分析.

    1 相關(guān)研究

    目前存在諸多研究計(jì)算機(jī)漏洞的組織,每個(gè)組織都有自己對(duì)計(jì)算機(jī)漏洞的研究成果,并且針對(duì)研究成果有自己的記錄形式[10].在這種情況下,這些計(jì)算機(jī)漏洞的詳細(xì)信息如何表示、如何與其他組織進(jìn)行交流、如何在網(wǎng)絡(luò)上供公眾瀏覽就成了問(wèn)題[11].因此,如果能夠開(kāi)發(fā)一種相對(duì)統(tǒng)一的對(duì)漏洞信息進(jìn)行描述、交流和展示的語(yǔ)言,具有統(tǒng)一的標(biāo)準(zhǔn)和格式,并且可以擴(kuò)展,可以隨時(shí)添加新的漏洞和信息,則成了很有意義的事[12].這種語(yǔ)言就是漏洞描述語(yǔ)言.

    漏洞描述語(yǔ)言的主要功能是實(shí)現(xiàn)對(duì)漏洞信息描述的格式和標(biāo)準(zhǔn)進(jìn)行限定,具有擴(kuò)展性、普適性,能完成漏洞信息的交流和展示.現(xiàn)存的比較通用的漏洞描述語(yǔ)言主要有OVAL(open vulnerability and assessment language)[13]和CVDL(XML-based computer vulnerability formal description language)[14].文中主要研究這2種漏洞描述語(yǔ)言并進(jìn)行比較分析.

    1.1 OVAL

    OVAL由美國(guó)國(guó)土安全部的通信辦公室和網(wǎng)絡(luò)安全辦公室共同支持,是一個(gè)國(guó)際化的信息安全相關(guān)的語(yǔ)言標(biāo)準(zhǔn),主要用于促進(jìn)安全內(nèi)容的公開(kāi)和開(kāi)放,并且規(guī)范了從所有安全工具和服務(wù)中轉(zhuǎn)化的安全信息[15].OVAL包含用于對(duì)安全系統(tǒng)以及所有的安全漏洞庫(kù)進(jìn)行編碼的語(yǔ)言,該語(yǔ)言對(duì)安全評(píng)估過(guò)程的3個(gè)主要步驟進(jìn)行了標(biāo)準(zhǔn)化:測(cè)試系統(tǒng)的配置信息;特殊機(jī)器狀態(tài)(漏洞,配置,補(bǔ)丁狀態(tài)等)的系統(tǒng)分析;評(píng)估結(jié)果的報(bào)告[16].OVAL組織開(kāi)發(fā)了3種使用XML編寫(xiě)的作為OVAL語(yǔ)言的框架和詞匯表.這3種Schema對(duì)應(yīng)于評(píng)估過(guò)程的3個(gè)步驟:“系統(tǒng)特點(diǎn)Schema”代表系統(tǒng)信息;“定義Schema”表達(dá)特定的機(jī)器狀態(tài);“結(jié)果Schema”用于評(píng)估結(jié)果的報(bào)告.每次要建立一個(gè)使用OVAL描述的漏洞文件時(shí),需要引用一個(gè)OVAL Schema作為該文件的內(nèi)容結(jié)構(gòu),生成的文件也遵循XML語(yǔ)法.

    1.2 CVDL

    CVDL也是一種基于XML的形式化漏洞描述語(yǔ)言,由張永錚等[14]提出.CVDL漏洞描述語(yǔ)言具有通用性、全面性以及內(nèi)容嚴(yán)謹(jǐn)規(guī)范等優(yōu)點(diǎn),特別是在描述漏洞檢測(cè)、安全性影響、漏洞屬性特征等方面表現(xiàn)突出.并且CVDL還具有良好的結(jié)構(gòu)化描述能力,可以支持漏洞信息的收集以及漏洞檢測(cè)等工作的自動(dòng)化.CVDL架構(gòu)主要包含5個(gè)部分:Brief,Detection,Security,Character和Remedy.每個(gè)部分對(duì)應(yīng)了一種應(yīng)用.

    2 VCSDL的設(shè)計(jì)

    上述2種描述語(yǔ)言雖然在對(duì)漏洞模式描述的全面性、通用性以及結(jié)構(gòu)化方面做得較好,但這2種描述語(yǔ)言都只針對(duì)漏洞模式的基本信息,沒(méi)有針對(duì)漏洞源代碼的描述.而漏洞源代碼包含了許多重要信息,例如觸發(fā)漏洞的主要函數(shù)、漏洞的觸發(fā)方式等信息,同時(shí),同種編程語(yǔ)言的不同安全漏洞往往會(huì)表現(xiàn)出一些相同的特征,所以筆者從漏洞源代碼的角度出發(fā),提出一種漏洞代碼語(yǔ)義描述語(yǔ)言VCSDL.

    Web標(biāo)準(zhǔn)化組織W3C推出了一種可擴(kuò)展標(biāo)記語(yǔ)言XML.XML具有較高的可擴(kuò)展性、良好的數(shù)據(jù)格式以及高度結(jié)構(gòu)化等優(yōu)點(diǎn),為數(shù)據(jù)描述和數(shù)據(jù)交換提供了一種有效的手段和通用方法,其在信息交換和整合領(lǐng)域具有重要的意義.由于XML模式機(jī)制在約束元素的內(nèi)容規(guī)格方面具有較大的優(yōu)勢(shì),所以考慮采用XML模式機(jī)制來(lái)設(shè)計(jì)VCSDL.

    為了使VCSDL的應(yīng)用更加廣泛,更易于被用戶接受,VCSDL將使用關(guān)鍵字和標(biāo)簽對(duì)XML文檔賦予特定的語(yǔ)義信息來(lái)描述漏洞源代碼.設(shè)計(jì)原則:① 具有通用性,可以描述不同種類的漏洞源代碼;② 具有精準(zhǔn)的描述能力,可以描述漏洞模式和漏洞觸發(fā)條件;③ 具有較強(qiáng)的可擴(kuò)展性,可用于描述內(nèi)容多變,新增類型的漏洞模式;④ 具有易用性,用戶可以很方便地使用該語(yǔ)言編寫(xiě)規(guī)則文件;⑤ 具有清晰的形式化語(yǔ)義以及相對(duì)簡(jiǎn)單的結(jié)構(gòu)化語(yǔ)法.

    2.1 框架結(jié)構(gòu)

    VCSDL的設(shè)計(jì)主要基于XML采用樹(shù)形結(jié)構(gòu),VCSDL的框架結(jié)構(gòu)如圖1所示,一個(gè)漏洞描述文件的根元素為,可以包含多個(gè)漏洞模式語(yǔ)義的描述元素.VCSDL主要包含4個(gè)子元素,即基本信息Description、源代碼語(yǔ)義信息Analy-sisinfo、源代碼上下文信息Context、漏洞觸發(fā)條件Condition,每個(gè)子元素對(duì)應(yīng)了一個(gè)屬性類,用來(lái)描述漏洞代碼屬性的不同方面.

    圖1 VCSDL的框架結(jié)構(gòu)圖

    2.2 Description元素

    Description元素用來(lái)描述漏洞代碼的基本信息,主要包含漏洞代碼標(biāo)識(shí)號(hào)ID、名稱Name、CWE ID、漏洞模式建立的時(shí)間Time、危險(xiǎn)程度Severity、種類Category和其他對(duì)漏洞模式的相關(guān)描述信息Summary這7個(gè)元素.Description的結(jié)構(gòu)如圖2所示.該結(jié)構(gòu)具有良好的可擴(kuò)展性和靈活性.設(shè)計(jì)CWE ID是為了使VCSDL能夠與國(guó)外主流數(shù)據(jù)庫(kù)兼容,方便漏洞信息在國(guó)際上進(jìn)行交流,實(shí)現(xiàn)CWE ID作為主鍵的搜索,增強(qiáng)其可擴(kuò)展性.Summary元素的設(shè)計(jì)是為了兼容網(wǎng)絡(luò)上公開(kāi)發(fā)布的對(duì)漏洞信息的自然語(yǔ)言形式的描述.

    圖2 Description元素的結(jié)構(gòu)圖

    2.3 Analysisinfo元素

    Analysisinfo元素用來(lái)描述漏洞代碼提煉出的語(yǔ)義信息,主要包括漏洞代碼的描述語(yǔ)言Language、分析范圍Domain、分析模式Mode和敏感性說(shuō)明Sensitive這4個(gè)元素.其內(nèi)容結(jié)構(gòu)如圖3所示,每個(gè)元素分別自定義了枚舉數(shù)據(jù)類型.

    圖3 Analysisinfo元素的結(jié)構(gòu)圖

    2.4 Context元素

    Context元素的結(jié)構(gòu)如圖4所示.Context元素用來(lái)描述漏洞代碼的上下文信息,主要包括全局變量名信息Var、函數(shù)信息Function、命名空間Namespace和類名Classname.其中:Var又包含變量名稱Va-lue、變量類型Type;Function包含了函數(shù)相關(guān)信息描述Identifier、函數(shù)參數(shù)描述Inarg.

    圖4 Context元素的結(jié)構(gòu)圖

    2.5 Condition元素

    Condition元素主要使用邏輯運(yùn)算表達(dá)式和必要的算術(shù)運(yùn)算表達(dá)式來(lái)表示漏洞的觸發(fā)條件.主要包括漏洞觸發(fā)的邏輯表達(dá)式Trigger、漏洞觸發(fā)條件的相關(guān)性Type和漏洞觸發(fā)條件的有序性Seq這3個(gè)元素.其內(nèi)容結(jié)構(gòu)如圖5所示.

    圖5 Condition元素的結(jié)構(gòu)圖

    2.6 VCSDL的Schema

    VCSDL的Schema主要定義了語(yǔ)言中包含了哪些元素類、哪些子元素、這些元素的數(shù)據(jù)結(jié)構(gòu)和屬性、是否是必選、是否允許值為空、取值范圍以及元素相互之間的結(jié)構(gòu)和從屬關(guān)系等.VCSDL的部分Schema結(jié)構(gòu)如下:最外層聲明根元素名稱Vulns;第2層聲明子元素Vuln;第3層聲明4個(gè)描述元素的名稱;第4層聲明元素包含的屬性名稱以及屬性的數(shù)據(jù)類型.

    建立該XML Schema 文件后就可以依據(jù)該 Schema 文件創(chuàng)建相應(yīng)的 XML 文件,可以在 XMLSpy 中創(chuàng)建XML,在新建一個(gè) XML 文檔后選擇相應(yīng)的 Schema 文件就創(chuàng)建了一個(gè) XML 文檔,該 XML 文檔包含對(duì)應(yīng)的 Schema 中定義的主要元素.然后利用 XMLSpy在視圖中填入相應(yīng)的數(shù)據(jù)就可以創(chuàng)建一個(gè)XML文檔.

    2.7 增強(qiáng)關(guān)鍵字

    為了增強(qiáng)VCSDL的描述能力,引入增強(qiáng)關(guān)鍵字.這些關(guān)鍵字有效提高了VCSDL的抽象描述能力,能對(duì)常見(jiàn)的漏洞代碼模式進(jìn)行更加靈活的描述.定義的關(guān)鍵字以字符“#”開(kāi)頭,例如:#ifblock(a)表示變量a的值經(jīng)過(guò)了檢測(cè);#deref(p)表示對(duì)指針p的各種解引用;#free(t)表示釋放內(nèi)存t索引的內(nèi)存;#&a表示取變量a的地址;#def(a,b)表示變量a由變量b的值來(lái)定義等.為了省略與要描述的漏洞模式無(wú)關(guān)的信息,引入了通配符 “*”和占位符“-”,它們和這些關(guān)鍵字可以在Context和Condition部分更加詳細(xì)地描述漏洞源代碼變量以及函數(shù)的關(guān)系,增強(qiáng)VCSDL的描述能力.此外,為了更為精準(zhǔn)地描述漏洞觸發(fā)條件,同時(shí)避免漏洞模式的文檔結(jié)構(gòu)過(guò)于復(fù)雜,VCSDL使用邏輯表達(dá)式描述該漏洞觸發(fā)條件.

    2.8 與類結(jié)構(gòu)相關(guān)的描述

    VCSDL還考慮了與類結(jié)構(gòu)相關(guān)的漏洞代碼的描述.在Context元素中引入了Base,Son,Union,Part這4個(gè)子元素,用來(lái)說(shuō)明類與類之間的繼承關(guān)系.為了說(shuō)明函數(shù)多態(tài)性引發(fā)的漏洞,VCSDL在Function中引入Applyto元素,該元素具有2個(gè)布爾屬性override和extend,分別說(shuō)明該漏洞模式是否適用于子類中對(duì)該函數(shù)的重載或者繼承的實(shí)現(xiàn).通過(guò)使用VCSDL可以將存在漏洞的源程序在代碼層面上建立統(tǒng)一的語(yǔ)義表達(dá).

    2.9 與特定工程相關(guān)的描述

    VCSDL考慮了與特定工程有關(guān)的軟件漏洞代碼的描述.發(fā)現(xiàn)許多與工程相關(guān)的漏洞是通過(guò)修改不同版本的漏洞代碼獲得,這些漏洞模式往往表現(xiàn)為純粹的漏洞代碼塊,很難規(guī)范化來(lái)描述.VCSDL采用的描述方法是將Analysisinfo元素的子元素Mode的屬性值設(shè)為pure-code,表示漏洞模式為純代碼塊.同時(shí)在Context元素中說(shuō)明代碼塊中與漏洞模式相關(guān)的變量信息,最后將該漏洞代碼塊中與漏洞模式相關(guān)的代碼語(yǔ)句直接存儲(chǔ)在Condition中.

    3 VCSDL的應(yīng)用

    一種漏洞描述語(yǔ)言的實(shí)用性決定了它是否能夠被廣泛地認(rèn)可和應(yīng)用,所以完全有必要針對(duì)VCSDL的應(yīng)用進(jìn)行討論.從目前對(duì)漏洞研究的需求來(lái)看,VCSDL的應(yīng)用主要包含漏洞源代碼信息的描述、漏洞描述信息的發(fā)布以及不同漏洞數(shù)據(jù)源之間的交流等方面,其中漏洞源代碼信息描述和漏洞描述信息的發(fā)布是其他應(yīng)用的基礎(chǔ),同時(shí)也最具有應(yīng)用價(jià)值,所以主要針對(duì)這2種應(yīng)用展開(kāi)討論.

    3.1 案例描述

    軟件漏洞源代碼在本質(zhì)上是用特定的語(yǔ)言編寫(xiě)的一段程序,所以軟件漏洞源代碼具備了類聲明、變量聲明、函數(shù)定義、數(shù)據(jù)操作和流程控制等程序語(yǔ)言所具備的要素.本研究的對(duì)象為Juliet漏洞集,該漏洞集示例來(lái)自NIST網(wǎng)站[17],對(duì)漏洞類型達(dá)到了全面的覆蓋.主要以JAVA語(yǔ)言為例,其他的語(yǔ)言可以此為參照進(jìn)行相關(guān)的標(biāo)注.雖然VCSDL描述的漏洞代碼類型不同,但是VCSDL文檔具有一個(gè)固定的文檔架構(gòu),架構(gòu)如下:

    xsi:SchemaLocation="D:VCSDLVCSDL.xsd">

    其中:第1行指示XML文檔的版本和編碼;第2-4行指示VCSDL的版本號(hào)、命名空間和文檔的存儲(chǔ)位置.元素實(shí)現(xiàn)對(duì)不同類型漏洞代碼的具體描述,每個(gè)元素可以包含多個(gè)模式語(yǔ)義的描述元素.

    以漏洞CWE614-Sensitive-Cookie-Without-Secure--Servlet-01為示例[17].其中:CWE614為該用例對(duì)應(yīng)的CWE編號(hào);Sensitive-Cookie為該用例的類型簡(jiǎn)稱;Secure--Servlet為問(wèn)題的描述;01為其復(fù)雜度.

    該示例的Description元素所描述的基本信息收集自CWE(common weakness enumeration)官網(wǎng),為了便于存儲(chǔ)和讀取漏洞信息,需進(jìn)入CWE官網(wǎng)下載XML版本的漏洞數(shù)據(jù)版本并將其轉(zhuǎn)化為關(guān)系型數(shù)據(jù)庫(kù)存儲(chǔ),通過(guò)讀取關(guān)系型數(shù)據(jù)庫(kù)直接獲取基本信息.在此例中,Description共包含了7條有效的非空信息.該實(shí)例的ID為VCSDL-614,CWEID為CWE-614,漏洞名稱為CWE614-Sensitive-Cookie-Without-Secure--Servlet-01,建立的時(shí)間是2008-09-23,嚴(yán)重程度為1,漏洞類型為Sensitive-Cookie,從其他描述可以看出:由于未設(shè)置HTTPS會(huì)話中敏感cookie的Secure屬性,這可能導(dǎo)致用戶代理通過(guò)HTTP會(huì)話以純文本格式發(fā)送這些cookie,從而出現(xiàn)該漏洞.

    通過(guò)對(duì)示例漏洞源代碼的基本語(yǔ)義分析,得到該示例的Analysisinfo元素,共包含4條有效的非空信息,即:該示例所使用的語(yǔ)言為JAVA語(yǔ)言,分析范圍為全局范圍,漏洞觸發(fā)模式是函數(shù)相關(guān),敏感性說(shuō)明主要包含了路徑敏感和上下文敏感.

    通過(guò)對(duì)示例漏洞源代碼的基本語(yǔ)義分析,可以得到該示例的Context元素,共包含4條有效的非空信息,分別是1個(gè)全局變量cookie,3個(gè)帶參函數(shù)并且參數(shù)列表都相同,同時(shí)描述good函數(shù)時(shí)使用了增強(qiáng)關(guān)鍵字#call(good,good1),表明good函數(shù)中調(diào)用了good1函數(shù).

    通過(guò)Analysisinfo元素描述得知,該漏洞代碼漏洞觸發(fā)模式函數(shù)相關(guān),而從Context元素對(duì)漏洞代碼包含的3個(gè)函數(shù)描述分析得出漏洞代碼的觸發(fā)條件.該示例的Condition元素的具體描述共包含3條有效的非空信息.其中:當(dāng)Condition的元素type屬性值取positive時(shí),表明該條件是觸發(fā)該漏洞需要滿足的條件;當(dāng)type屬性取negative時(shí)表明違反該條件時(shí)會(huì)觸發(fā)該漏洞,即該表達(dá)式是程序應(yīng)當(dāng)遵守的規(guī)則,違反該規(guī)則的代碼段即表現(xiàn)為一個(gè)漏洞.Seq取false表明觸發(fā)條件不需要強(qiáng)制有序.可以看出:該示例由于沒(méi)有設(shè)置HTTPS會(huì)話中敏感cookie的安全屬性,所以可能會(huì)導(dǎo)致用戶代理通過(guò)HTTPS會(huì)話以明文方式發(fā)送這些cookie,從而導(dǎo)致信息的泄漏.

    3.2 VCSDL的發(fā)布

    目前,漏洞資源信息主要來(lái)自于漏洞數(shù)據(jù)庫(kù)以及網(wǎng)頁(yè)資源,但這些漏洞資源信息的描述往往并沒(méi)有按照統(tǒng)一的語(yǔ)言標(biāo)準(zhǔn),所以它們之間的整合需要先轉(zhuǎn)換成VCSDL文檔的第1個(gè)部分Description元素,Description元素主要用來(lái)描述漏洞的基本信息.漏洞數(shù)據(jù)庫(kù)中存儲(chǔ)的漏洞信息以及網(wǎng)頁(yè)展示的信息具有較高的結(jié)構(gòu)化,所以可以使用XSLT (eXtensible stylesheet language transformations)語(yǔ)言或者簡(jiǎn)單的編程完成轉(zhuǎn)換,VCSDL文檔的第2部分主要是對(duì)漏洞源代碼信息的描述,需要借助抽象語(yǔ)法樹(shù)分析漏洞的源代碼提取出相關(guān)屬性,然而VCSDL中的一些屬性是抽象語(yǔ)法樹(shù)無(wú)法獲取的,所以需要借助人工分析來(lái)完成.

    發(fā)布VCSDL的主要目的是為用戶提供一個(gè)可視化的漏洞信息展示.目前,大多數(shù)的漏洞資源信息都是以網(wǎng)頁(yè)的形式發(fā)布,但這只方便了用戶對(duì)漏洞信息的瀏覽,并不方便對(duì)漏洞的進(jìn)一步分析以及識(shí)別,VCSDL以文檔形式對(duì)漏洞基本信息以及源代碼信息進(jìn)行了結(jié)構(gòu)化的描述,為漏洞的后續(xù)工作提供了支持.但文檔形式的VCSDL的可讀性遠(yuǎn)遠(yuǎn)不如網(wǎng)頁(yè)形式,所以為了提高VCSDL的可讀性,采用XSLT將文檔中的漏洞信息轉(zhuǎn)換為統(tǒng)一風(fēng)格的網(wǎng)頁(yè)形式.因此,采用VCSDL發(fā)布漏洞信息不僅方便了對(duì)漏洞的進(jìn)一步分析,同時(shí)方便了對(duì)用戶的直觀展示,具有較高的應(yīng)用價(jià)值.

    4 描述語(yǔ)言對(duì)比分析

    為了更好地說(shuō)明VCSDL語(yǔ)言的優(yōu)勢(shì)和特點(diǎn),在相關(guān)漏洞研究領(lǐng)域選取了5種比較具有代表性的描述語(yǔ)言,在通用性、全面性、自動(dòng)化支持、兼容性、靈活性、規(guī)格嚴(yán)謹(jǐn)性、可擴(kuò)展性、易操作性以及交互轉(zhuǎn)換支持等方面與VCSDL進(jìn)行詳細(xì)的對(duì)比,對(duì)比分析結(jié)果如表1所示.其中:OVAL主要側(cè)重于漏洞檢測(cè)方面的屬性;CVDL針對(duì)漏洞的檢測(cè)、評(píng)估以及預(yù)防做出較為詳盡的描述,但缺少漏洞代碼屬性方面的描述;VDL是一種自行設(shè)計(jì)的基于BNF范式的安全脆弱點(diǎn)描述語(yǔ)言,其僅僅解決了漏洞命名不規(guī)范的問(wèn)題;AVDL主要針對(duì)的是Web應(yīng)用程序漏洞,并且其文檔架構(gòu)優(yōu)化較差;WAS是一種非通用的漏洞描述語(yǔ)言.使用3種代表不同程度的符號(hào)(好/一般/差)來(lái)定性評(píng)價(jià)各方面的屬性,程度符號(hào)則代表6種描述語(yǔ)言在屬性方面相互比較的一種相對(duì)程度,從表1可以看出:VCSDL具有通用性、全面性和高度結(jié)構(gòu)化等特點(diǎn),相比于其他描述語(yǔ)言,優(yōu)勢(shì)主要體現(xiàn)在全面性、兼容性以及擴(kuò)展性等方面.

    表1 描述語(yǔ)言對(duì)比分析

    注:√表示好;○表示一般;×表示差.

    5 結(jié) 論

    1) 同種編程語(yǔ)言條件下,不同的安全漏洞可能會(huì)表現(xiàn)出相同的特征,從漏洞源代碼角度觸發(fā),基于XML提出了一種形式化漏洞代碼描述語(yǔ)言VCSDL,該描述語(yǔ)言主要針對(duì)漏洞基本信息以及漏洞源代碼信息進(jìn)行了結(jié)構(gòu)化的描述.

    2) 討論了VCSDL的應(yīng)用模式,以Juliet漏洞集中的漏洞代碼為案例詳細(xì)闡述了VCSDL對(duì)漏洞信息的描述,同時(shí)分析了VCSDL的轉(zhuǎn)換以及VCSDL的發(fā)布,采用VCSDL發(fā)布有助于對(duì)漏洞信息的自動(dòng)化分析以及后續(xù)工作.

    3) 與其他領(lǐng)域相關(guān)的描述語(yǔ)言相比,VCSDL主要具有通用性、全面性以及高結(jié)構(gòu)化等優(yōu)點(diǎn),尤其是能夠詳盡地描述漏洞代碼屬性.

    4) 由于漏洞集過(guò)于龐大,通過(guò)人工逐條手動(dòng)標(biāo)注明顯不可取,所以下一步工作將研究如何實(shí)現(xiàn)對(duì)龐大的漏洞集進(jìn)行自動(dòng)化標(biāo)注并生成VCSDL文件.

    猜你喜歡
    源代碼示例漏洞
    大還是小
    人工智能下復(fù)雜軟件源代碼缺陷精準(zhǔn)校正
    漏洞
    基于TXL的源代碼插樁技術(shù)研究
    2019年高考上海卷作文示例
    常見(jiàn)單位符號(hào)大小寫(xiě)混淆示例
    山東冶金(2019年5期)2019-11-16 09:09:22
    “全等三角形”錯(cuò)解示例
    軟件源代碼非公知性司法鑒定方法探析
    三明:“兩票制”堵住加價(jià)漏洞
    漏洞在哪兒
    阿鲁科尔沁旗| 蕲春县| 县级市| 林周县| 香港 | 辛集市| 宝山区| 龙泉市| 台安县| 江山市| 搜索| 广宁县| 光山县| 来安县| 凯里市| 武乡县| 琼中| 新丰县| 鄄城县| 陵川县| 阳信县| 南澳县| 额济纳旗| 双牌县| 陆丰市| 江西省| 和龙市| 朝阳区| 郯城县| 乌什县| 禹城市| 洪洞县| 普定县| 商河县| 罗江县| 波密县| 望奎县| 澜沧| 永川市| 达日县| 孝义市|