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

        ?

        基于序列標(biāo)注的漏洞信息結(jié)構(gòu)化抽取方法

        2020-03-11 12:51:18陳鈞衍陶非凡
        關(guān)鍵詞:單詞文本信息

        陳鈞衍 陶非凡 張 源

        1(復(fù)旦大學(xué)軟件學(xué)院 上海 201203)2(上海通用識(shí)別技術(shù)研究所 上海 201114)

        0 引 言

        互聯(lián)網(wǎng)的影響滲入現(xiàn)代生活的方方面面,運(yùn)行在個(gè)人電腦與智能移動(dòng)設(shè)備上的各類軟件在其中扮演了重要的角色。這些軟件在為現(xiàn)代生活提供了各種便利的同時(shí),也成為了惡意攻擊者的跳板。軟件開(kāi)發(fā)過(guò)程中的錯(cuò)誤實(shí)現(xiàn)會(huì)導(dǎo)致安全漏洞,攻擊者可以利用它們通過(guò)互聯(lián)網(wǎng)竊取或篡改受害者的設(shè)備上的數(shù)據(jù)。

        知名軟件當(dāng)中的已知安全漏洞在發(fā)布時(shí)會(huì)得到一個(gè)通用漏洞披露(Common Vulnerabilities and Exposures,CVE)號(hào)作為統(tǒng)一的稱呼和引用方式。CVE數(shù)據(jù)庫(kù)中除了CVE號(hào)和漏洞本身的描述,還包含漏洞的嚴(yán)重程度、攻擊類型、目標(biāo)平臺(tái)、軟件版本和攻擊方式等信息。盡管其攻擊原理已經(jīng)被公布,但不夠謹(jǐn)慎的開(kāi)發(fā)者未必能及時(shí)為軟件與設(shè)備部署安全補(bǔ)丁。與此同時(shí),攻擊者也常常利用已知漏洞的攻擊原理來(lái)攻擊新的軟件與系統(tǒng)。為了深入理解已知漏洞的工作機(jī)制與原理,研究者常需要對(duì)它們進(jìn)行分析與測(cè)試。為此,研究者首先需要在CVE數(shù)據(jù)庫(kù)中篩選出滿足條件的漏洞。其篩選條件往往是受影響軟件、攻擊效果等關(guān)鍵信息。在確定了待研究漏洞之后,還需要分析其主要特征,得到受影響軟件、攻擊方式、漏洞觸發(fā)條件等信息。這樣才能正確地測(cè)試與利用漏洞。

        與研究者的需求相悖的是,現(xiàn)有的CVE數(shù)據(jù)庫(kù)相當(dāng)不完善。一個(gè)CVE的核心是它的描述文本,其關(guān)鍵信息以非結(jié)構(gòu)化的形式包含其中,研究者無(wú)法簡(jiǎn)單地利用。此外,雖然目前的CVE數(shù)據(jù)庫(kù)中已經(jīng)附帶了幾項(xiàng)結(jié)構(gòu)化的輔助信息,如CPE、CVSS等,然而有調(diào)研[2]指出:已有的輔助信息無(wú)法覆蓋到所有CVE,且內(nèi)容與形式也缺乏一定之規(guī),甚至常有錯(cuò)漏。因此已有的輔助信息亦無(wú)法作為足夠可靠的信息來(lái)源。

        在CVE的數(shù)量有限時(shí),安全研究者尚可人工篩查數(shù)據(jù)庫(kù)給出的結(jié)果。然而隨著互聯(lián)網(wǎng)應(yīng)用和用戶數(shù)量的快速增長(zhǎng),網(wǎng)絡(luò)安全問(wèn)題受到了前所未有的重視。如圖 1所示,從2017年開(kāi)始,每年新增的CVE數(shù)量超過(guò)一萬(wàn)個(gè),出現(xiàn)了一波爆發(fā)式的增長(zhǎng)。效率較低的手工分析與不夠精準(zhǔn)的索引已經(jīng)無(wú)法滿足安全研究的需求。為了更好地分析研究CVE,本文將描述文本轉(zhuǎn)換成結(jié)構(gòu)化的形式,研究者能夠憑借結(jié)構(gòu)化的信息更好地分析與索引CVE數(shù)據(jù)。

        圖1 歷年CVE數(shù)量變化趨勢(shì)

        本文使用信息抽取技術(shù)從CVE的漏洞描述文本當(dāng)中抽取結(jié)構(gòu)化的信息。為此,本文首先對(duì)已有的大量CVE描述文本進(jìn)行了研究,總結(jié)出漏洞描述的七個(gè)核心要素。之后,為了自動(dòng)化地從描述文本當(dāng)中提取出漏洞要素,本文引入了自然語(yǔ)言處理的技術(shù)。然而此類描述文本往往包含大量的安全領(lǐng)域?qū)S性~匯,已有的成熟句法處理模型并不能在漏洞信息抽取問(wèn)題上給出優(yōu)質(zhì)的分析結(jié)果。因此本文選擇引入機(jī)器學(xué)習(xí)的方法,訓(xùn)練領(lǐng)域?qū)S玫脑~向量和信息抽取模型。

        在考察了機(jī)器學(xué)習(xí)與自然語(yǔ)言處理領(lǐng)域的新興成果之后[6,8],本文將信息提取的問(wèn)題轉(zhuǎn)換為一個(gè)序列標(biāo)注模型:將漏洞描述的文本視為一個(gè)序列,以單詞為最小輸入單元。而模型為每一個(gè)輸入的單詞輸出一個(gè)標(biāo)簽,這個(gè)標(biāo)簽說(shuō)明了該單詞所屬的漏洞要素。本文設(shè)計(jì)神經(jīng)網(wǎng)絡(luò)并在數(shù)據(jù)集上訓(xùn)練整個(gè)標(biāo)注過(guò)程,最終實(shí)現(xiàn)對(duì)漏洞要素信息的結(jié)構(gòu)化提取。

        本文的主要貢獻(xiàn)有:

        (1) 提出了漏洞信息的結(jié)構(gòu)化表示方案,以統(tǒng)一的形式對(duì)漏洞進(jìn)行描述。

        (2) 設(shè)計(jì)了基于序列標(biāo)注的方案,解決了從非結(jié)構(gòu)化的CVE描述文本中抽取結(jié)構(gòu)化信息的問(wèn)題。

        (3) 構(gòu)造數(shù)據(jù)集,訓(xùn)練模型實(shí)現(xiàn)上述方案,并設(shè)計(jì)實(shí)驗(yàn)驗(yàn)證了該模型的信息抽取效果。

        1 相關(guān)工作

        目前并沒(méi)有直接從CVE當(dāng)中抽取結(jié)構(gòu)化的信息的工作。部分工作與本文的目標(biāo)近似,試圖補(bǔ)充CVE的結(jié)構(gòu)化信息。而另一些工作與我們一樣,在安全領(lǐng)域的文本上應(yīng)用了機(jī)器學(xué)習(xí)與自然語(yǔ)言處理的技術(shù)。本文將對(duì)幾種不同類型的工作分別進(jìn)行講解。

        1.1 CVE信息的分析與利用

        部分研究者試圖從CVE構(gòu)建攻擊圖(Attack Graph)[1],以此輔助安全系統(tǒng)的分析與建模。文中指出,已有的CVE數(shù)據(jù)庫(kù)并不能提供形式統(tǒng)一的結(jié)構(gòu)化信息。因此他們嘗試從CVE的文本描述中提取信息,并以此完成攻擊圖的構(gòu)建。但其信息提取策略仍然依賴于已有的CVSS、CPE、OVAL等輔助信息,而沒(méi)有充分利用非結(jié)構(gòu)化的描述文本。文獻(xiàn)[3]則將機(jī)器學(xué)習(xí)技術(shù)引入到CVE文本信息提取的領(lǐng)域,使用卷積神經(jīng)網(wǎng)絡(luò)從CVE文本直接生成CVSS數(shù)據(jù)。然而CVSS的格式仍然較為簡(jiǎn)單,其使用的技術(shù)不足以支持進(jìn)一步的復(fù)雜結(jié)構(gòu)化信息提取。

        1.2 安全文本分析

        部分威脅情報(bào)的工作[4-5]使用已有的成熟NLP句法依賴模型[10]處理安全文本。他們嘗試從威脅指標(biāo)(Indicators of Compromise,IoC)與網(wǎng)絡(luò)威脅情報(bào)(Cyber Threat Intelligence,CTI)的自然語(yǔ)言文本當(dāng)中提取信息。而Semfuzz[7]也使用了相似的處理手段,其分析目標(biāo)是CVE的描述文本。但他們的技術(shù)仍然受限于已有的通用模型,在遇見(jiàn)安全領(lǐng)域的專有名詞時(shí),可能給出錯(cuò)誤的解析結(jié)果。Igen[9]放棄了通用語(yǔ)言模型,轉(zhuǎn)而使用卷積神經(jīng)網(wǎng)絡(luò)來(lái)從IoC中提取域名、IP一類的信息。不過(guò)它處理的仍然是特征較為明顯且形式較為單一的內(nèi)容,無(wú)法適用于本文所面臨的問(wèn)題。

        現(xiàn)有工作所提出的方案都存在各自的缺陷,接下來(lái)本文將闡述所設(shè)計(jì)的方案如何解決這些問(wèn)題。

        2 方案概述

        2.1 漏洞信息結(jié)構(gòu)化表征

        對(duì)CVE和漏洞本身的深入理解是結(jié)構(gòu)化信息抽取方案的基礎(chǔ)。本節(jié)將闡述對(duì)漏洞進(jìn)行完備描述所必需的核心要素,以此為后續(xù)提供一個(gè)結(jié)構(gòu)化的抽取模型。為此,本文調(diào)研了1999年-2017年間產(chǎn)生的七萬(wàn)余CVE,并對(duì)各類漏洞描述模式進(jìn)行了總結(jié),以覆蓋所有可能情形。

        對(duì)一個(gè)漏洞而言,最重要的信息是它所影響的軟件與平臺(tái),以及它影響該軟件的方式。漏洞影響軟件的方式可以細(xì)分為漏洞類型(例如:SQL注入,緩沖區(qū)溢出)、導(dǎo)致漏洞產(chǎn)生的實(shí)現(xiàn)錯(cuò)誤原因、漏洞觸發(fā)環(huán)境(特定的配置或運(yùn)行方式)、攻擊要求(是否需要本地接入,是否需要認(rèn)證)、攻擊途徑(例如:通過(guò)上傳文件,通過(guò)定制參數(shù))以及攻擊所造成的結(jié)果。一個(gè)CVE的漏洞描述文本不一定會(huì)包含所有要素,但其中表述的重要信息總能被歸于這些要素之一。

        圖2以兩個(gè)真實(shí)的CVE文本為樣例,說(shuō)明七個(gè)漏洞要素的內(nèi)容。本文將在此結(jié)構(gòu)化方案的基礎(chǔ)上繼續(xù)闡述后續(xù)的信息抽取方案。

        圖2 漏洞結(jié)構(gòu)化模型示例

        2.2 漏洞信息結(jié)構(gòu)化提取的挑戰(zhàn)

        從CVE的描述文本當(dāng)中提取結(jié)構(gòu)化信息并不容易,本文面臨著若干挑戰(zhàn):

        首先,CVE的描述文本以自然語(yǔ)言的形式存在,沒(méi)有嚴(yán)格的書(shū)寫(xiě)規(guī)范。不同軟件、不同時(shí)期或不同作者撰寫(xiě)的描述文本風(fēng)格之間差異較大,且包含的漏洞要素種類也不一致。因而漏洞文本中的結(jié)構(gòu)化信息無(wú)法簡(jiǎn)單地以固定的模板抽取。

        已有工作[4-5,7]中引入了自然語(yǔ)言處理技術(shù)來(lái)提取安全領(lǐng)域的文本中的信息,然而它們僅憑借已有的通用NLP模型處理文本。無(wú)論是基于貝葉斯方法亦或者神經(jīng)網(wǎng)絡(luò),這些模型都是從大量的普通文本訓(xùn)練而來(lái),對(duì)安全領(lǐng)域?qū)S忻~處理能力較差。舉例而言,一個(gè)漏洞的描述當(dāng)中必然包含受影響的軟件名稱, CVE的文本中因而存在大量的軟件名。當(dāng)它們是一個(gè)不常見(jiàn)的單詞(例如:Apache)時(shí),已有模型尚且能夠?qū)⑵渥R(shí)別為一個(gè)專有名詞;但當(dāng)它們本身就是常用詞(例如:ruby,curl)時(shí),模型便會(huì)給出完全錯(cuò)誤的解析結(jié)果。除此之外,描述漏洞時(shí)還常常使用一些安全領(lǐng)域的專有詞匯(例如:stack, overflow, exploit),這些詞的用法和詞性與日常不同,常常會(huì)將模型的解析結(jié)果導(dǎo)向錯(cuò)誤的方向。這就使得通用模型并不能在漏洞描述文本上給出較好的解析結(jié)果。

        針對(duì)這些挑戰(zhàn),本文提出了自己的解決方案:引入機(jī)器學(xué)習(xí)的方法,在標(biāo)注好的漏洞描述文本數(shù)據(jù)集的基礎(chǔ)上訓(xùn)練領(lǐng)域?qū)S玫哪P?,并用此模型?lái)完成文本信息抽取的任務(wù)。

        2.3 基于序列標(biāo)注的信息抽取方案

        本文并非首個(gè)利用機(jī)器學(xué)習(xí)技術(shù)解析CVE描述文本的工作。曾有工作[3]嘗試通過(guò)卷積神經(jīng)網(wǎng)絡(luò)來(lái)完成從文本到漏洞嚴(yán)重等級(jí)的映射。然而信息抽取這項(xiàng)任務(wù)上所需的輸出并非一組簡(jiǎn)單的浮點(diǎn)數(shù)字,而是源文本當(dāng)中的幾個(gè)有意義的字符串,以及它們所對(duì)應(yīng)的要素類別。這對(duì)模型的設(shè)計(jì)提出了更高的要求。為此,本文考察了自然語(yǔ)言處理領(lǐng)域的分詞和實(shí)體名詞識(shí)別等工作的研究成果,決定將信息抽取問(wèn)題轉(zhuǎn)換為一個(gè)序列標(biāo)注問(wèn)題。此模型接受一個(gè)文本序列作為輸入,序列中的每一個(gè)元素都是一個(gè)單詞。每輸入一個(gè)單詞,該模型都會(huì)為其給出一個(gè)標(biāo)注值作為輸出。以CVE-2016-7103為例,其描述文本中每個(gè)單詞的標(biāo)注結(jié)果如圖 3所示。每一個(gè)單詞得到了0~7之中的一個(gè)標(biāo)注值。其中0為無(wú)用成分,而1~7分別對(duì)應(yīng)漏洞描述中七種不同的要素?!癈ross-site scripting XSS vulnerability”短語(yǔ)中的四個(gè)單詞均被標(biāo)注為“1”,說(shuō)明模型將該短語(yǔ)判斷為此CVE的漏洞類型。

        圖3 序列標(biāo)注示例

        3 雙向LSTM+CRF序列標(biāo)注網(wǎng)絡(luò)

        3.1 基于漏洞語(yǔ)料庫(kù)的詞向量構(gòu)建

        在討論模型的架構(gòu)細(xì)節(jié)之前,本文將先對(duì)輸入數(shù)據(jù)格式轉(zhuǎn)換的問(wèn)題進(jìn)行說(shuō)明。大多數(shù)模型只能接收向量形式的輸入格式,無(wú)法直接對(duì)字符串進(jìn)行處理。因此,在使用模型對(duì)文本數(shù)據(jù)進(jìn)行標(biāo)注之前,首先需要將每個(gè)單詞轉(zhuǎn)換成對(duì)應(yīng)的詞向量。生成的詞向量必須滿足兩個(gè)要求:具備較低維數(shù),以避免拖慢計(jì)算效率;能夠較好地在低維空間中體現(xiàn)出語(yǔ)義信息。

        一種常見(jiàn)方式是將每個(gè)字符轉(zhuǎn)換為one-hot向量,即一個(gè)長(zhǎng)度等于字典大小,且除目標(biāo)字符對(duì)應(yīng)位置為1外,其他位置全為0的向量。這種編碼方式的實(shí)現(xiàn)較為簡(jiǎn)單,然而缺陷較大,通常無(wú)法在訓(xùn)練中獲得比較好的效果。首先是計(jì)算效率上的考慮,此方式生成的詞向量過(guò)于稀疏,信息密度極低。且由于本文的模型中,字典大小等于所有可能出現(xiàn)的單詞數(shù)量,生成的詞向量長(zhǎng)度過(guò)大,會(huì)嚴(yán)重拖慢計(jì)算速度。與此同時(shí),不同的one-hot詞向量之間均為正交關(guān)系,無(wú)法體現(xiàn)出字面不同但含義相近的詞向量之間的聯(lián)系。

        為滿足上述要求,本文采用了word2vec詞嵌入模型[15]來(lái)將每個(gè)單詞轉(zhuǎn)換為詞向量。該算法用語(yǔ)料庫(kù)訓(xùn)練了一個(gè)能對(duì)上下文中的某個(gè)單詞做出預(yù)測(cè)的神經(jīng)網(wǎng)絡(luò)。而訓(xùn)練完成的網(wǎng)絡(luò)的隱藏層便是每個(gè)單詞所對(duì)應(yīng)的詞向量。該算法能夠在保留主體信息的同時(shí)將單詞嵌入到低維空間,生成較小的詞向量。同時(shí)對(duì)于語(yǔ)義相近的單詞,其生成的詞向量在空間中也會(huì)具有較近的距離。這便能充分反映單詞之間的語(yǔ)義關(guān)聯(lián)。而為了讓所得詞向量充分體現(xiàn)該單詞在漏洞描述文本中的語(yǔ)義,本文以CVE的描述文本作為語(yǔ)料庫(kù)來(lái)訓(xùn)練word2vec模型。

        3.2 模型設(shè)計(jì)

        為序列(文本)當(dāng)中的每一項(xiàng)元素(單詞)給出一個(gè)輸出并不簡(jiǎn)單。與為每一個(gè)單詞給出一個(gè)特定的輸出不同,單詞的詞性和含義與上下文單詞相關(guān),對(duì)一個(gè)單詞的標(biāo)注并非孤立的過(guò)程。每個(gè)標(biāo)注結(jié)果都必須依賴其上下文的內(nèi)容,同時(shí)也要考慮其上下文中其他單詞的標(biāo)注結(jié)果。

        聯(lián)系上下文給出輸出的一個(gè)可行選擇是:帶有記憶單元的循環(huán)神經(jīng)網(wǎng)絡(luò)。然而普通的循環(huán)神經(jīng)網(wǎng)絡(luò)無(wú)法很好地處理長(zhǎng)期依賴問(wèn)題。它能夠正確處理序列中鄰近的上下文,但卻會(huì)在多次迭代之后稀釋遠(yuǎn)距離信息。而在漏洞文本當(dāng)中,上下文關(guān)聯(lián)并非是局部的,例如句末的代詞便可能直接與句首的主語(yǔ)相關(guān)。對(duì)此,缺乏足夠區(qū)分度的循環(huán)神經(jīng)網(wǎng)絡(luò)無(wú)法很好地處理。

        為了獲得更好的序列標(biāo)注效果,本文選擇了LSTM(長(zhǎng)短期記憶)網(wǎng)絡(luò)[11]。相較普通的循環(huán)神經(jīng)網(wǎng)絡(luò),LSTM網(wǎng)絡(luò)額外包含了輸入、輸出與遺忘的門限控制單元,能夠在訓(xùn)練中獲得篩選重要數(shù)據(jù)的能力。經(jīng)過(guò)合理訓(xùn)練的LSTM網(wǎng)絡(luò)能夠充分利用遠(yuǎn)距離的上下文的信息。另外,一個(gè)LSTM網(wǎng)絡(luò)僅能將序列前部的信息單向向后傳遞。但在文本當(dāng)中,后文的內(nèi)容也會(huì)影響對(duì)前文的理解,單向的記憶不足以對(duì)此做出處理。為此,本文添加了一個(gè)結(jié)構(gòu)相同、但接受相反方向輸入的LSTM單元,共同構(gòu)成雙向的LSTM網(wǎng)絡(luò)。這個(gè)雙向的網(wǎng)絡(luò)能綜合上下文的信息,為序列中每個(gè)元素給出更準(zhǔn)確的標(biāo)注結(jié)果。

        在確定了基本的網(wǎng)絡(luò)結(jié)構(gòu)后出現(xiàn)了另一個(gè)問(wèn)題:當(dāng)前的模型并未約束輸出格式,也沒(méi)有使用模型對(duì)標(biāo)注序列本身的特征進(jìn)行學(xué)習(xí)。因此,盡管神經(jīng)網(wǎng)絡(luò)在訓(xùn)練的過(guò)程當(dāng)中確實(shí)能夠?qū)W習(xí)到原始文本的特征,卻時(shí)常給出對(duì)人類而言并不合理、甚至并不合法的標(biāo)注結(jié)果。為了讓模型學(xué)習(xí)到輸出格式的分布特征,本文在雙向LSTM之后添加了一層CRF[12]單元。CRF是一個(gè)基于條件概率的模型,它能夠在訓(xùn)練過(guò)程中學(xué)習(xí)到訓(xùn)練集的標(biāo)注結(jié)果本身的分布特點(diǎn)。CRF單元會(huì)在雙向LSTM給出的結(jié)果基礎(chǔ)上,推導(dǎo)出一個(gè)擁有極大似然概率的序列標(biāo)注結(jié)果。

        綜合上述的內(nèi)容構(gòu)建而成的網(wǎng)絡(luò)如圖 4所示。

        圖4 LSTM+CRF神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)

        4 實(shí)驗(yàn)設(shè)計(jì)

        4.1 數(shù)據(jù)集構(gòu)建

        在討論實(shí)驗(yàn)過(guò)程之前,本文將先對(duì)各種數(shù)據(jù)的來(lái)源進(jìn)行闡述。訓(xùn)練上述的神經(jīng)網(wǎng)絡(luò)模型需要一批已經(jīng)經(jīng)過(guò)標(biāo)注的數(shù)據(jù)。然而按照前文所述,為標(biāo)注一條數(shù)據(jù),標(biāo)注者需要在漏洞描述文本中找出可能存在的要素,并為每個(gè)單詞逐一標(biāo)注對(duì)應(yīng)的序號(hào)。這種標(biāo)注方法較為復(fù)雜,要求標(biāo)注者具備漏洞安全領(lǐng)域的知識(shí),難度較大,且耗時(shí)較長(zhǎng)。為了快速獲得大量的已標(biāo)定數(shù)據(jù),本文采用了人工標(biāo)注與自動(dòng)生成相結(jié)合的方式。

        首先,兩個(gè)安全專家手工為隨機(jī)選擇的634個(gè)CVE的文本進(jìn)行完整的標(biāo)注,這些文本構(gòu)成了人工標(biāo)注數(shù)據(jù)集。這些數(shù)據(jù)隨后被平分成兩部分:一半作為檢測(cè)模型效果的測(cè)試數(shù)據(jù)集,而另一半則成為生成訓(xùn)練數(shù)據(jù)的原型數(shù)據(jù)集。原型數(shù)據(jù)集的規(guī)模較小,并不能直接用于神經(jīng)網(wǎng)絡(luò)的訓(xùn)練。因此,本文復(fù)用了已標(biāo)注文本當(dāng)中的漏洞要素,人工添加部分內(nèi)容,按照一系列的模板生成了訓(xùn)練所用的數(shù)據(jù)集。

        具體而言,本文根據(jù)用于訓(xùn)練的已標(biāo)注文本,為漏洞結(jié)構(gòu)化描述中的每個(gè)要素都生成了一個(gè)可選列表,并對(duì)此列表加以人工拓展。列表當(dāng)中的每個(gè)要素都已經(jīng)過(guò)人工標(biāo)注。之后,本文根據(jù)已有的CVE,制定了30種不同的描述文本模板,如圖5所示。

        圖5 模板生成示例

        一個(gè)模板中有兩個(gè)關(guān)鍵內(nèi)容:待生成的描述文本的基本句式,以及其中出現(xiàn)的漏洞要素種類。模板當(dāng)中,用雙花括號(hào)包圍的便是待填充的要素。數(shù)據(jù)生成時(shí)從對(duì)應(yīng)類型可選要素列表中各任取一項(xiàng),并整體替換對(duì)應(yīng)要素。另外,為了保證生成的文本的多樣性,模板中的介詞和連詞(用雙方括號(hào)包圍)也會(huì)進(jìn)行隨機(jī)化處理。本文針對(duì)不同句式分別設(shè)計(jì)了可選填充短語(yǔ)列表,在漏洞要素確定后,使用隨機(jī)選取的詞匯填充雙方括號(hào)部分。這樣就完成了文本生成的過(guò)程,本文按上述流程生成了總共十萬(wàn)條已標(biāo)注的描述文本數(shù)據(jù)。這些數(shù)據(jù)構(gòu)成了模板數(shù)據(jù)集。

        4.2 模型訓(xùn)練

        使用word2vec將輸入文本轉(zhuǎn)換為詞向量,需要先對(duì)其進(jìn)行預(yù)處理。預(yù)處理的目的是去除文本當(dāng)中無(wú)特定含義,不影響實(shí)際的標(biāo)注結(jié)果的功能性內(nèi)容,并對(duì)一些不合法的輸入內(nèi)容做轉(zhuǎn)換。

        首先是各類停止詞,例如:“the”,“is”,“at”,“which”。它們?cè)谖谋局休^為普遍,且通常不包含實(shí)際的含義。另外是各類標(biāo)點(diǎn)符號(hào),包括逗號(hào)、括號(hào)、引號(hào)等。它們會(huì)被對(duì)應(yīng)的短語(yǔ)替換(如用LRB替換左括號(hào),DQM替換引號(hào))。最后一類是數(shù)字和符號(hào),在CVE的描述文本當(dāng)中常見(jiàn)如“3.1.3”或“4.0.1a”一類由數(shù)字字母和連接符號(hào)構(gòu)成的版本號(hào)。它們的具體內(nèi)容與標(biāo)注結(jié)果并無(wú)關(guān)聯(lián),因此本文對(duì)其進(jìn)行了統(tǒng)一的替換,全部用“UNKN”代替。完成預(yù)處理之后,本文使用Gensim[13],通過(guò)word2vec詞嵌入算法將所有單詞轉(zhuǎn)換為300維的詞向量。

        神經(jīng)網(wǎng)絡(luò)使用Tensorflow[14]構(gòu)建,該工具直接提供了封裝好的LSTM和CRF單元以供使用。本文在網(wǎng)絡(luò)中設(shè)置了3層雙向、總計(jì)6個(gè)LSTM單元,其隱藏層維數(shù)均為300。其中每個(gè)LSTM單元之后都附帶一層設(shè)置為0.1的dropout(丟棄層),以防止過(guò)擬合。三層雙向LSTM之后,是一層學(xué)習(xí)標(biāo)注特征的CRF單元。而前面的輸出最終會(huì)通過(guò)一個(gè)邏輯斯蒂函數(shù)轉(zhuǎn)換為最終的標(biāo)注結(jié)果。本文在訓(xùn)練數(shù)據(jù)集上,使用交叉熵算法作為損失函數(shù),以Adam優(yōu)化算法和128的batch大小,對(duì)模型進(jìn)行1 000輪訓(xùn)練,得到了最終的訓(xùn)練結(jié)果。

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

        上一節(jié)敘述了如何在包含十萬(wàn)條漏洞描述文本的模板數(shù)據(jù)集上完成對(duì)模型的訓(xùn)練。本節(jié)將在人工標(biāo)注數(shù)據(jù)集的另一半,也就是測(cè)試數(shù)據(jù)集上驗(yàn)證其信息抽取的效果。

        在展示結(jié)果之前,本文需先對(duì)結(jié)果評(píng)估的策略進(jìn)行說(shuō)明。訓(xùn)練過(guò)程中使用較為簡(jiǎn)單的方式計(jì)算損失函數(shù):對(duì)比模型和測(cè)試集對(duì)每一個(gè)單詞的標(biāo)注結(jié)果,并據(jù)此計(jì)算交叉熵。盡管在此評(píng)估策略下,模型能給出95%以上的準(zhǔn)確率,但該結(jié)果并不能完全肯定模型的效果。本文要達(dá)成的目標(biāo)是信息抽取,而非序列標(biāo)注本身,每一個(gè)單詞的標(biāo)注錯(cuò)誤都可能導(dǎo)致整個(gè)漏洞要素含義不明。因此,本文在對(duì)模型的信息抽取效果進(jìn)行自動(dòng)化評(píng)估之時(shí),僅當(dāng)一個(gè)漏洞要素當(dāng)中的每個(gè)單詞均標(biāo)注正確時(shí),才認(rèn)為得到了一個(gè)正確的結(jié)果。

        然而,嚴(yán)格的策略會(huì)錯(cuò)過(guò)一些可能的正確結(jié)果。因?yàn)榇崛〉囊剡吔缬袝r(shí)是模棱兩可的。額外包含的謂語(yǔ)、介詞或者補(bǔ)充說(shuō)明并不會(huì)妨礙人們對(duì)這些短語(yǔ)的準(zhǔn)確理解。為此,除按照嚴(yán)格策略下的自動(dòng)化評(píng)估之外,本文還人工核查了每一項(xiàng)信息抽取的結(jié)果。實(shí)驗(yàn)結(jié)果如表 1所示。

        表1 CVE文本信息抽取結(jié)果

        從表中可以看出,嚴(yán)格策略和人工判定下準(zhǔn)確率均較高,且人工判定總是會(huì)給出更高的準(zhǔn)確率。根據(jù)觀察,這種偏差主要有以下兩類情況: (1) 存在多余的不影響短語(yǔ)理解的介詞和謂詞短語(yǔ);(2) 部分漏洞要素包含冗余的補(bǔ)充解釋。總體而言,這兩類情況都不會(huì)阻礙對(duì)抽取出的漏洞要素的理解。因此,本文認(rèn)為訓(xùn)練所得的模型確實(shí)能夠以較高的準(zhǔn)確率完成漏洞要素的信息抽取任務(wù)。

        5 結(jié) 語(yǔ)

        本文針對(duì)從CVE漏洞描述中抽取結(jié)構(gòu)化信息的問(wèn)題,分析了面臨的技術(shù)挑戰(zhàn),提出一個(gè)通用的漏洞信息結(jié)構(gòu)化表征方案。為實(shí)現(xiàn)信息的結(jié)構(gòu)化抽取,本文將此問(wèn)題轉(zhuǎn)換為一個(gè)序列標(biāo)注模型,通過(guò)設(shè)計(jì)雙向LSTM和CRF的多層神經(jīng)網(wǎng)絡(luò)模型實(shí)現(xiàn)了對(duì)CVE描述文本的結(jié)構(gòu)化信息抽取。本文構(gòu)建了大規(guī)模數(shù)據(jù)集來(lái)完成該神經(jīng)網(wǎng)絡(luò)的訓(xùn)練,并在人工標(biāo)注的數(shù)據(jù)集上驗(yàn)證了其效果,結(jié)果表明本文提出的方案可以實(shí)現(xiàn)較好的漏洞要素抽取效果。本文的工作實(shí)現(xiàn)了將CVE漏洞描述文本進(jìn)行結(jié)構(gòu)化抽取的第一步。

        猜你喜歡
        單詞文本信息
        單詞連一連
        在808DA上文本顯示的改善
        基于doc2vec和TF-IDF的相似文本識(shí)別
        電子制作(2018年18期)2018-11-14 01:48:06
        看圖填單詞
        訂閱信息
        中華手工(2017年2期)2017-06-06 23:00:31
        看完這些單詞的翻譯,整個(gè)人都不好了
        文本之中·文本之外·文本之上——童話故事《坐井觀天》的教學(xué)隱喻
        展會(huì)信息
        如何快速走進(jìn)文本
        單詞拾趣
        久久久精品人妻一区二区三区日本| 亚洲乱码中文字幕在线播放| 白白色发布在线播放国产| 色欲色香天天天综合网www| 久久99热精品免费观看欧美| 亚洲男同gay在线观看| 天堂丝袜美腿在线观看| 亚洲综合综合在线| 亚洲尺码电影av久久| 四川丰满妇女毛片四川话| 久久99人妖视频国产| 99久久国语露脸国产精品| 国产一级农村无码| 久久精品国产亚洲av麻豆瑜伽| 久久国产精品99精品国产987| 国产成人久久精品77777综合| 91麻豆精品国产91久久麻豆| 日本一区不卡高清在线观看| 亚洲伊人久久成人综合网| 久久不见久久见免费影院国语| 亚洲乱码中文字幕视频| 人妻风韵犹存av中文字幕 | 看全色黄大色大片免费久久| 老妇高潮潮喷到猛进猛出| 美女裸体无遮挡免费视频国产| 亚洲第一av导航av尤物| 一本一道久久综合久久| 国产免费99久久精品| 国产一线视频在线观看高清| 精品国产一区二区三区19| 亚洲国产精品无码久久| 性感的小蜜桃在线观看| 国产亚洲无码1024| 亚洲熟妇AV一区二区三区宅男| 国模无码一区二区三区| 久久久99精品成人片| 国内自拍偷国视频系列| 亚洲国产成人久久精品美女av| 亚洲av无码资源在线观看| 中文字幕精品一区久久| 毛片精品一区二区二区三区|