云南電網(wǎng)有限責(zé)任公司曲靖供電局 朱家山
漏洞攻擊是信息安全領(lǐng)域的典型事件,全球范圍內(nèi),每年因漏洞攻擊帶來的損失不計其數(shù),甚至產(chǎn)生顛覆性的破壞。2015年,攻擊者通過線上變電站攻擊及線下的電力客服中心進(jìn)行電話DDoS攻擊導(dǎo)致烏克蘭首都及西部地區(qū)140萬居民遭遇了長達(dá)數(shù)小時的大規(guī)模停電,造成了巨大的經(jīng)濟(jì)損失。在電網(wǎng)信息化轉(zhuǎn)型的背景下,各供電企業(yè)加大了信息化建設(shè)及改造升級的力度,隨著信息系統(tǒng)數(shù)量及種類增多,系統(tǒng)之間的信息資源共享使得各系統(tǒng)之間交互更加頻繁,系統(tǒng)的關(guān)聯(lián)關(guān)系呈現(xiàn)復(fù)雜化特征,為電力企業(yè)的信息安全管理帶來極大的挑戰(zhàn)。現(xiàn)階段,電力企業(yè)高度依賴于信息系統(tǒng),電力系統(tǒng)已經(jīng)演變成集營銷管理系統(tǒng)、計量計費系統(tǒng)、電力MIS系統(tǒng)、電力自動化系統(tǒng)等的電力資源整合系統(tǒng),信息系統(tǒng)安全是保障電力系統(tǒng)安全、穩(wěn)定運行的基礎(chǔ)。
本文針對近年來的漏洞信息抽取技術(shù)進(jìn)行了深入的研究,提出了一種基于BERT+CRF模型的漏洞信息結(jié)構(gòu)化抽取的方法,采用人工智能深度學(xué)習(xí)方法進(jìn)行建模,基于序列標(biāo)注模型實現(xiàn)漏洞關(guān)鍵信息抽取,解決了現(xiàn)有人工手段抽取漏洞信息中人力投入大、漏洞信息精確度不高等問題。
通過從全球范圍內(nèi)權(quán)威的漏洞信息共享平臺獲取漏洞數(shù)據(jù),對各平臺發(fā)布的漏洞信息構(gòu)成要素進(jìn)行分析,整合各漏洞信息共享平臺的屬性集合,去除漏洞集合中存在冗余的屬性、對相似性屬性及同類不同名屬性進(jìn)行統(tǒng)一命名,構(gòu)建漏洞信息本體模型。針對漏洞信息本體模型制定標(biāo)注方案,從漏洞數(shù)據(jù)集中劃分出部分?jǐn)?shù)據(jù)集,進(jìn)行序列標(biāo)注,生成模型訓(xùn)練語料。基于訓(xùn)練語料及序列標(biāo)注模型構(gòu)建漏洞信息結(jié)構(gòu)化抽取模型,通過漏洞信息結(jié)構(gòu)化抽取模型從漏洞數(shù)據(jù)集中抽取漏洞關(guān)鍵信息要素。基于標(biāo)注的語料和漏洞本體模型設(shè)計漏洞關(guān)鍵信息抽取模型的性能評估方法,對漏洞信息抽取模型進(jìn)行性能評估,并基于評估結(jié)果改進(jìn)及優(yōu)化模型。根據(jù)抽取到的漏洞關(guān)鍵信息及漏洞本體模型構(gòu)建結(jié)構(gòu)化的漏洞數(shù)據(jù)庫。
構(gòu)建漏洞信息本體模型的過程中,需要從漏洞描述、網(wǎng)絡(luò)安全公告等文本信息中抽取出相關(guān)的實體、建立各實體之間的關(guān)聯(lián)關(guān)系。在進(jìn)行實體的抽取過程中,對于結(jié)構(gòu)化數(shù)據(jù),需要通過領(lǐng)域本體的抽取方式進(jìn)行本體抽取,對于非結(jié)構(gòu)化數(shù)據(jù)需要借助信息抽取技術(shù)從非結(jié)構(gòu)化文本中抽取結(jié)構(gòu)化信息。通過領(lǐng)域本體方法進(jìn)行本體的抽取過程中首先對領(lǐng)域的術(shù)語及術(shù)語之間的關(guān)系進(jìn)行整合,構(gòu)建術(shù)語表,將術(shù)語表中的術(shù)語作為本體的概念集合,并確定概念之間的關(guān)系,將術(shù)語表直接轉(zhuǎn)換為本體集合。對于非結(jié)構(gòu)化數(shù)據(jù)的信息抽取技術(shù)中,需要用到命名實體識別及實體關(guān)系抽取技術(shù),一種普遍的做法是通過人工預(yù)先標(biāo)注數(shù)據(jù),利用標(biāo)注好的數(shù)據(jù)集訓(xùn)練本體模型,利用訓(xùn)練好的本體模型從非結(jié)構(gòu)化文本中提取命名實體。
具體實施步驟如下:(1)選取權(quán)威漏洞信息共享平臺,獲取漏洞信息,構(gòu)建本體漏洞概念的屬性集合,對各個漏洞庫的屬性集合進(jìn)行整合,剔除冗余屬性,對相似性屬性及同類屬性進(jìn)行合并,定義漏洞必要屬性、可選屬性、關(guān)鍵屬性、非關(guān)鍵屬性,其中必要屬性指指漏洞信息中應(yīng)包括的最少屬性;可選屬性指漏洞的屬性中除了必要屬性之外的屬性;關(guān)鍵屬性指描述和解決該漏洞所需要的關(guān)鍵要素;非關(guān)鍵屬性指漏洞屬性中除了關(guān)鍵屬性之外的屬性。必要屬性:本地編號、漏洞名稱、危害等級、發(fā)布時間、漏洞影響的實體;可選屬性:漏洞公告、參考網(wǎng)址、補丁、廠商、威脅類型、漏洞來源;關(guān)鍵屬性:漏洞名稱、漏洞簡介、危害等級、威脅類型、發(fā)布時間、漏洞影響的實體、漏洞補丁;非關(guān)鍵屬性:廠商、漏洞來源、參考網(wǎng)址。(2)構(gòu)建漏洞實體詞典,基于CRF模型引入詞典特征構(gòu)建漏洞命名實體識別器,識別漏洞描述中的相關(guān)漏洞概念屬性。(3)對概念本體的完整性、正確性及可擴(kuò)展性進(jìn)行評估,保障每個概念定義清晰,不存在歧義,滿足完整性需求。

表1 漏洞描述文本對應(yīng)的序列標(biāo)注
從漏洞信息數(shù)據(jù)集中篩選部分樣本進(jìn)行序列標(biāo)注,采用BIO標(biāo)注法,將單個字符作為最小的標(biāo)注粒度,標(biāo)注每個字符對應(yīng)的具體類別,其中類別標(biāo)簽中B開頭的表示詞的起始位置,I開頭表示詞的所有字符中除了起始位置之外的位置,O開頭表示無關(guān)字符。標(biāo)簽中B、I、O之后的表示字符對應(yīng)的類別,以“-”隔開,其中“entity”表示漏洞影響的實體名稱,“version-i”表示離散的實體版本號,“version-b”表示連續(xù)的版本號的開始版本號,“version-n”表示連續(xù)的版本號的結(jié)束版本號,“type”表示漏洞影響的類型等。例如漏洞信息短文本描述如下:“該漏洞影響了Pillow的4.0.1和5.1.2之間的版本”,漏洞描述文本對應(yīng)的序列標(biāo)注如表1所示。

圖1 BERT+CRF模型結(jié)構(gòu)圖
基于標(biāo)注的數(shù)據(jù)訓(xùn)練漏洞關(guān)鍵信息抽取模型,采用BERT+CRF模型結(jié)構(gòu),首先通過BERT模型對漏洞描述文本進(jìn)行特征提取及編碼,獲得文本對應(yīng)的字符向量,將之映射為CRF層的發(fā)射概率,經(jīng)過CRF層輸出每個字符對應(yīng)的類別概率,最后通過字符及字符的位置關(guān)系及類別得到該文本中包含的漏洞關(guān)鍵信息,BERT+CRF模型結(jié)構(gòu)如圖1所示。
如圖1所示,w表示漏洞描述文本,通過將漏洞描述文本進(jìn)行字符分割處理,分割成單個字符輸入至BERT模型中,經(jīng)過BERT模型訓(xùn)練,每個字符得到一個對應(yīng)的編碼向量,通過將向量降維到與標(biāo)簽類別數(shù)目相同的維度之后,將向量中的值壓縮至0-1之間作為CRF層的發(fā)射概率,CRF層擬合之后輸出每個字符對應(yīng)的標(biāo)簽概率P,最后根據(jù)輸出結(jié)果與定義的標(biāo)簽進(jìn)行合并,獲得漏洞關(guān)鍵信息。
漏洞關(guān)鍵信息抽取模型構(gòu)建完成后,需要從標(biāo)注的漏洞數(shù)據(jù)中隨機抽取出一部分未參與訓(xùn)練的樣本,用模型抽取出關(guān)鍵信息與標(biāo)注結(jié)果對比,設(shè)計對比的方法,計算出漏洞抽取模型的精度。
最后,將利用模型抽取到的非結(jié)構(gòu)漏洞關(guān)鍵信息與原來已經(jīng)存在的結(jié)構(gòu)化信息進(jìn)行融合,結(jié)合構(gòu)建的漏洞本體模型中定義的屬性及邏輯關(guān)系構(gòu)建電力企業(yè)內(nèi)部漏洞數(shù)據(jù)庫,支撐信息安全管理工作。
結(jié)語:本文分析了電力企業(yè)在信息安全領(lǐng)域面臨的嚴(yán)峻形勢,提出了一種基于BERT+CRF的漏洞信息結(jié)構(gòu)化抽取方法,通過從全球權(quán)威的漏洞信息共享平臺獲取漏洞描述文本信息,采用基于序列標(biāo)注的方法對漏洞描述中的關(guān)鍵信息進(jìn)行抽取,并結(jié)合漏洞本體構(gòu)建電力企業(yè)內(nèi)部漏洞數(shù)據(jù)庫,形成常態(tài)化的漏洞信息收集、分析及通報工作機制,提升電網(wǎng)信息系統(tǒng)的安全防范能力及信息安全水平。