基于機(jī)器學(xué)習(xí)的自動(dòng)漏洞修復(fù)分析方法
摘要
固件/軟件中的安全漏洞對(duì)電網(wǎng)安全構(gòu)成了重要的威脅,因此電力公司在發(fā)現(xiàn)漏洞后應(yīng)迅速?zèng)Q定如何補(bǔ)救。由于要考慮的因素很多,要在打補(bǔ)丁和服務(wù)可靠性之間保持平衡,以及要處理大量的漏洞,因此做出補(bǔ)救決策在電力行業(yè)是一項(xiàng)具有挑戰(zhàn)性的任務(wù)。遺憾的是,目前的修復(fù)決策都是人工做出的,需要很長的時(shí)間。這增加了安全風(fēng)險(xiǎn),也帶來了高昂的漏洞管理成本。在本文中,我們提出了一個(gè)基于機(jī)器學(xué)習(xí)的自動(dòng)化框架來自動(dòng)化電力公司的修復(fù)決策分析。我們將其應(yīng)用于一家電力公司,并對(duì)從該公司獲得的兩個(gè)真實(shí)運(yùn)行數(shù)據(jù)集進(jìn)行了大量實(shí)驗(yàn)。結(jié)果表明,該解決方案具有很高的有效性。
第一節(jié). 導(dǎo)言
軟件/固件中的漏洞對(duì)電網(wǎng)安全構(gòu)成了重要的威脅,因?yàn)檫@些漏洞可能會(huì)被對(duì)手利用,控制電力系統(tǒng)的計(jì)算機(jī)和設(shè)備,并發(fā)動(dòng)破壞性的攻擊。為此,安全漏洞和補(bǔ)丁管理(VPM)是目前電網(wǎng)安全不可或缺的重要組成部分之一[1]。每個(gè)電力公司(發(fā)電、輸電和/或配電的公司)都在其安全運(yùn)營中心部署了VPM機(jī)制。當(dāng)發(fā)現(xiàn)其資產(chǎn)存在安全漏洞時(shí),電力公司需要決定如何快速修復(fù)漏洞以降低安全風(fēng)險(xiǎn)。
對(duì)于電力公司來說,做出修復(fù)決策并不容易。首先,雖然打補(bǔ)丁可以修復(fù)漏洞,但由于打補(bǔ)丁通常需要重新啟動(dòng)資產(chǎn)并導(dǎo)致服務(wù)中斷,因此并不總是能夠或最好給易受攻擊的資產(chǎn)打補(bǔ)丁。因此,雖然緊急補(bǔ)丁的安裝速度很快,但電力公司通常會(huì)按照一定的維護(hù)計(jì)劃,如每季度對(duì)資產(chǎn)安裝其他補(bǔ)丁。對(duì)于一些需要及時(shí)關(guān)注,但打補(bǔ)丁可能會(huì)造成關(guān)鍵服務(wù)中斷的漏洞,可以先進(jìn)行緩解,然后再在下一個(gè)維護(hù)周期中進(jìn)行修補(bǔ)。其次,漏洞的安全風(fēng)險(xiǎn)遠(yuǎn)非同等。舉例來說,應(yīng)用于用戶瀏覽器持續(xù)活動(dòng)的監(jiān)督控制和數(shù)據(jù)采集(SCADA)操作員工作站的谷歌瀏覽器漏洞與應(yīng)用服務(wù)器上沒有互聯(lián)網(wǎng)訪問的互聯(lián)網(wǎng)瀏覽器漏洞的風(fēng)險(xiǎn)就大不相同。組織應(yīng)立即對(duì)前者作出反應(yīng),但可以安全地暫時(shí)擱置后者。補(bǔ)救決定應(yīng)該根據(jù)漏洞的風(fēng)險(xiǎn)反映出漏洞的優(yōu)先級(jí),以優(yōu)化有限安全資源的使用。第三,補(bǔ)救決策應(yīng)考慮漏洞和資產(chǎn)的諸多因素,如漏洞是否有可利用的代碼,漏洞資產(chǎn)是否可以從互聯(lián)網(wǎng)上到達(dá),漏洞的影響,以及修補(bǔ)是否會(huì)中斷電力傳輸服務(wù)等,因此是一個(gè)復(fù)雜的推理過程。第四,任何時(shí)候適用的安全漏洞數(shù)量往往超過組織的應(yīng)用風(fēng)險(xiǎn)分析能力。在過去的兩年里,美國國家標(biāo)準(zhǔn)與技術(shù)研究所(NIST)國家漏洞數(shù)據(jù)庫(NVD)顯示,發(fā)現(xiàn)和公開報(bào)道的軟件安全漏洞數(shù)量增加了一倍多[2]。對(duì)于一個(gè)電力企業(yè)來說,每月數(shù)百個(gè)甚至更多的資產(chǎn)存在數(shù)百甚至上千個(gè)漏洞并不罕見。
遺憾的是,目前電力公司的補(bǔ)救決策大多是人工做出的。這就導(dǎo)致了在決定漏洞修復(fù)行動(dòng)時(shí)的長時(shí)間延遲(通常是幾周的時(shí)間)。這種漫長的延遲延遲了補(bǔ)救行動(dòng)的應(yīng)用,并帶來了高安全風(fēng)險(xiǎn)。人工分析也消耗了大量的人力時(shí)間,這增加了VPM的成本。
為了解決這個(gè)問題,我們提出了一個(gè)基于機(jī)器學(xué)習(xí)的框架來自動(dòng)化電力公司的補(bǔ)救決策分析。我們的想法是在漏洞特征和資產(chǎn)特征上應(yīng)用一個(gè)預(yù)測性的機(jī)器學(xué)習(xí)模型來預(yù)測每個(gè)漏洞的修復(fù)決策。該模型可以建立在歷史的、人工的修復(fù)決策數(shù)據(jù)上,以捕捉和模仿人類操作者如何做出決策,但它可以比人工分析更快地做出決策。因此,它的修復(fù)決策的延遲時(shí)間要短得多,這可以降低安全風(fēng)險(xiǎn),同時(shí)由于減少了人工努力,降低了VPM的成本。值得注意的是,我們的機(jī)器學(xué)習(xí)方法只推薦補(bǔ)救決策,人類操作者擁有接受或不接受預(yù)測決策的最終權(quán)力。
基于機(jī)器學(xué)習(xí)的自動(dòng)化框架利用了兩個(gè)與電力行業(yè)相關(guān)的最新發(fā)展。首先,北美電力可靠性公司(NERC)關(guān)鍵基礎(chǔ)設(shè)施保護(hù)(CIP)第5版[3]的監(jiān)管要求,以維護(hù)基線配置,確保電力公司中形成良好的軟件資產(chǎn)信息的可用性。其次,在過去的幾年里,通過NIST NVD和第三方服務(wù)提供商提供的格式良好和機(jī)器可讀的漏洞信息的可用性有了顯著的改善[2]。
本文的貢獻(xiàn)總結(jié)如下:
據(jù)我們所知,這是第一項(xiàng)研究在VPM中實(shí)現(xiàn)修復(fù)決策分析自動(dòng)化的可行性的工作,目前在電力公司和許多其他組織中,修復(fù)決策分析是手工完成的。這種自動(dòng)化不僅可以通過更及時(shí)地修復(fù)漏洞來提高安全性,而且還可以通過減少VPM所需的人力時(shí)間來降低成本。這項(xiàng)工作也證明了在安全操作中應(yīng)用機(jī)器學(xué)習(xí)的價(jià)值。
我們提出了一個(gè)基于機(jī)器學(xué)習(xí)的框架,基于運(yùn)營環(huán)境中的漏洞特征和資產(chǎn)特征進(jìn)行自動(dòng)化修復(fù)動(dòng)作分析。我們選擇決策樹作為學(xué)習(xí)模型,因?yàn)樗愃朴谌祟惖耐评恚⑶铱梢陨赏评泶a,供操作人員在需要時(shí)驗(yàn)證預(yù)測。我們還設(shè)計(jì)了簡化推理代碼的方法,以方便驗(yàn)證,并提出了一種基于組的資產(chǎn)管理方法,以簡化資產(chǎn)特征維護(hù)。雖然這個(gè)框架是在電力公司的背景下提出的,但這個(gè)框架可以應(yīng)用于許多其他組織。
我們?yōu)橐患译娏緦?shí)例化了該框架,并基于從該電力公司獲得的兩個(gè)一年期數(shù)據(jù)集進(jìn)行了大量的實(shí)驗(yàn)評(píng)估。評(píng)估結(jié)果表明,該方法是非常有效的。
本文的其余部分組織如下。第二節(jié)回顧了相關(guān)工作。第三節(jié)介紹了當(dāng)前電力公司VPM的實(shí)踐,并介紹了一項(xiàng)調(diào)查的結(jié)果。第四節(jié)介紹了基于機(jī)器學(xué)習(xí)的自動(dòng)化框架。第五節(jié)介紹了該框架在某電力公司的實(shí)例。第六節(jié)介紹了評(píng)估結(jié)果。最后兩節(jié)提出討論并作為本文的結(jié)論。
第二節(jié). 相關(guān)工作
有許多供企業(yè)使用的 VPM 解決方案,如 GFI LanGuard [4]、ManageEngine 的 Patch Manager Plus [5]和 SolarWinds 的 Patch Manager [6]。然而,這些解決方案側(cè)重于漏洞發(fā)現(xiàn)和補(bǔ)丁部署,而不是優(yōu)化漏洞修復(fù)資源的必要決策。大多數(shù)為電力公司VPM設(shè)計(jì)的解決方案也屬于這一類,如Doble Engineering的PatchAssure[7]、Flexera[8]或FoxGuard Solutions[9]。它們無法針對(duì)運(yùn)行環(huán)境進(jìn)行漏洞分析,也無法做出如何解決漏洞的決策。
在解決漏洞時(shí),有一些公開的信息來源。NIST NVD[10]提供了一個(gè)結(jié)構(gòu)良好、可靠的漏洞數(shù)據(jù)源,以及它們所報(bào)告的相應(yīng)信息。Vulners[11]有一個(gè)可自由訪問的API,用于搜索漏洞信息和發(fā)現(xiàn)可用的漏洞;Exploit Database[12]也允許用戶搜索可用的漏洞。
學(xué)術(shù)界也有這方面的研究。[13] 和 [14]分析了大型漏洞數(shù)據(jù)集,并報(bào)告了漏洞屬性和披露日期的趨勢(shì)。[15]、[16]和[17]分析了補(bǔ)丁和補(bǔ)丁行為,比如從發(fā)布補(bǔ)丁到安裝補(bǔ)丁或有效保護(hù)漏洞的時(shí)間窗口。[18]、[19]、[20]和[21]描述了優(yōu)先打補(bǔ)丁的方法。[22]和[23]基于攻擊圖分析了網(wǎng)絡(luò)攻擊的風(fēng)險(xiǎn)。但是,這些作品并沒有將漏洞度量與組織的獨(dú)特環(huán)境相結(jié)合,分析漏洞修復(fù)決策。我們之前的工作[24]首次對(duì)電力企業(yè)的漏洞修復(fù)方式進(jìn)行了實(shí)證分析,但并沒有預(yù)測修復(fù)行動(dòng)。機(jī)器學(xué)習(xí)已經(jīng)被應(yīng)用于發(fā)現(xiàn)軟件和源代碼中的漏洞[25][26][27][28][29]-[30]和檢測攻擊[31]、[32],但我們的工作使用機(jī)器學(xué)習(xí)來確定如何補(bǔ)救漏洞。
基于機(jī)器學(xué)習(xí)的自動(dòng)漏洞修復(fù)分析方法
圖1.漏洞和補(bǔ)丁管理流程
第三節(jié).電力事業(yè)中的Vpm現(xiàn)行做法
本節(jié)介紹目前電力行業(yè)組織的做法。按照美國國土安全部(DHS)[33]對(duì)VPM的推薦做法,如圖1所示,當(dāng)發(fā)現(xiàn)漏洞時(shí),組織首先需要從漏洞和資產(chǎn)信息兩方面考慮,分析漏洞是否會(huì)對(duì)系統(tǒng)造成影響,并確定對(duì)漏洞的修復(fù)行動(dòng),如打補(bǔ)丁和緩解。
對(duì)于事業(yè)單位來說,在實(shí)踐中進(jìn)行VPM并不容易。幾乎每天都有新的漏洞被發(fā)現(xiàn),新的補(bǔ)丁被發(fā)布。公用事業(yè)單位必須花費(fèi)大量的時(shí)間和人力資源來分析漏洞并決定補(bǔ)救措施。NERC CIP標(biāo)準(zhǔn)要求嚴(yán)格的月度義務(wù),以確定和評(píng)估安全漏洞和補(bǔ)丁。通過NERC對(duì)標(biāo)準(zhǔn)的遵守情況進(jìn)行密切監(jiān)控,并定期實(shí)施貨幣處罰。同樣,電力行業(yè)也有懲罰性的動(dòng)機(jī)來嚴(yán)格遵守這些規(guī)定。
為了更深入地了解當(dāng)前的做法,我們?cè)陔娏π袠I(yè)進(jìn)行了一項(xiàng)調(diào)查。由于與遵守法規(guī)密切相關(guān)的信息共享受到限制,調(diào)查通過國家關(guān)鍵基礎(chǔ)設(shè)施保護(hù)組織向電力公司廣泛發(fā)放,并以匿名方式進(jìn)行。我們收到了16家電力公司的答復(fù)。100%的回復(fù)組織對(duì)漏洞和補(bǔ)丁進(jìn)行人工分析。其中約60%的企業(yè)每年需要處理超過3000個(gè)安全漏洞,一半的受訪企業(yè)每月在VPM上花費(fèi)超過400人小時(shí)。他們都會(huì)保存漏洞和補(bǔ)丁的歷史記錄。調(diào)查顯示,VPM對(duì)于公用事業(yè)單位來說確實(shí)是一項(xiàng)耗時(shí)耗力的工作。
第四節(jié) 基于機(jī)器學(xué)習(xí)的整治行動(dòng)分析框架
安全操作人員會(huì)考慮很多因素來決定對(duì)漏洞的補(bǔ)救行動(dòng)。這些因素包括漏洞信息,如該漏洞是否影響完整性、可用性或保密性,是否已經(jīng)有了對(duì)該漏洞的利用,通用漏洞評(píng)分系統(tǒng)(CVSS)評(píng)分是多少[34]等。此外,這些因素還包括資產(chǎn)信息,如易損設(shè)備是否是電網(wǎng)運(yùn)行的關(guān)鍵現(xiàn)場設(shè)備,易損設(shè)備對(duì)保密性/完整性/可用性攻擊是否敏感,軟件是什么等等。例如,如果一個(gè)漏洞在非關(guān)鍵設(shè)備,只是影響不大,而且還沒有可利用的漏洞,那么現(xiàn)在不需要處理,可以在下一個(gè)計(jì)劃周期內(nèi)進(jìn)行修補(bǔ)(表示為Patch-Later)。如果漏洞可以被利用,而且是在用戶工作站,則決定立即打補(bǔ)?。ㄓ肞atch-Now表示);如果是在關(guān)鍵服務(wù)器,因?yàn)榻o服務(wù)器打補(bǔ)丁可能會(huì)影響電網(wǎng)服務(wù),則決定先緩解,在下一個(gè)計(jì)劃周期中再打補(bǔ)?。ㄓ肕itigate-Now-Patch-Later表示)。
這個(gè)過程是繁瑣和重復(fù)的,我們提出要自動(dòng)進(jìn)行補(bǔ)救行動(dòng)分析。直觀上,我們可以考慮手動(dòng)制作一組規(guī)則(其中每條規(guī)則由所有因素的因子值組合和這個(gè)組合的決策組成),并利用它們來實(shí)現(xiàn)類似專家系統(tǒng)的自動(dòng)化補(bǔ)救行動(dòng)分析[35]。然而,基于規(guī)則的分析存在著實(shí)際的挑戰(zhàn):為了覆蓋所有可能的情況,規(guī)則的數(shù)量將成倍增長。例如,在我們的一個(gè)公用事業(yè)合作伙伴那里,大約考慮了16個(gè)因素,每個(gè)因素都有一些值。因子值的可能組合總數(shù)約為2400億。首先手動(dòng)生成這么多規(guī)則是不可行的,更不用說動(dòng)態(tài)維護(hù)和更新規(guī)則了。
基于機(jī)器學(xué)習(xí)的自動(dòng)漏洞修復(fù)分析方法
圖2:基于機(jī)器學(xué)習(xí)的框架
我們采用了一種利用機(jī)器學(xué)習(xí)來自動(dòng)分析的方法。我們提出了一個(gè)基于機(jī)器學(xué)習(xí)的補(bǔ)救決策分析框架(見圖2),根據(jù)漏洞和資產(chǎn)特征,自動(dòng)分析漏洞并預(yù)測補(bǔ)救決策,例如,是現(xiàn)在打補(bǔ)丁還是推遲到下一個(gè)定期維護(hù)周期打補(bǔ)丁。該框架的核心是機(jī)器學(xué)習(xí)模型,它不僅可以輸出補(bǔ)救行動(dòng),而且還可以輸出一個(gè)易于驗(yàn)證的原因代碼,以防操作人員想要非常一些預(yù)測。該模型可以從歷史操作數(shù)據(jù)中進(jìn)行訓(xùn)練,這些數(shù)據(jù)包含漏洞信息、資產(chǎn)信息以及針對(duì)一組漏洞的人工補(bǔ)救決策。我們?cè)诘谌?jié)中描述的行業(yè)調(diào)查表明,所有被調(diào)查的電力公司都保留了他們的歷史運(yùn)行數(shù)據(jù)。這在電力行業(yè)是意料之中的,因?yàn)閷?duì)VPM的監(jiān)管要求。我們的框架與第三節(jié)所述的國土安全部指南一致,但將基于機(jī)器學(xué)習(xí)的自動(dòng)化引入其中,并提供了更多細(xì)節(jié)。
這項(xiàng)工作的目標(biāo)是使機(jī)器學(xué)習(xí)的預(yù)測與人工決策一樣準(zhǔn)確。這可以通過更快地對(duì)漏洞做出補(bǔ)救決定,并更快地采取行動(dòng),幫助降低安全風(fēng)險(xiǎn)(分析見第六-H節(jié))。我們承認(rèn),人工決策可能不是最佳或正確的,并將研究如何做出比人類操作者更好的決策留待未來的工作。
基于機(jī)器學(xué)習(xí)的自動(dòng)漏洞修復(fù)分析方法
表一-:漏洞特征
A. 脆弱性特征和管理
NVD已經(jīng)很好地確立了漏洞特征。在NVD中,每個(gè)漏洞都帶有一套CVSS指標(biāo),從不同方面描述漏洞的特征。在我們的框架中,我們使用CVSS指標(biāo)作為漏洞特征,因?yàn)樗鼈兣c風(fēng)險(xiǎn)評(píng)估和修復(fù)決策分析相關(guān)。這些特征及其可能的值如表I所示。CVSS得分是由指標(biāo)確定的0到10之間的數(shù)字,一般來說,用來描述一個(gè)漏洞的整體嚴(yán)重程度。攻擊向量表示漏洞如何被利用,如通過網(wǎng)絡(luò)或本地訪問。Exploitability表示漏洞被利用的可能性。高為最高級(jí)別,表示漏洞代碼已經(jīng)廣泛存在,未被證實(shí)為最低級(jí)別,表示沒有漏洞代碼,中間還有兩個(gè)級(jí)別。用戶交互(權(quán)限,resp.)表示攻擊者利用該漏洞所需的用戶交互量(權(quán)限級(jí)別,resp.)。其他四個(gè)指標(biāo)描述了攻擊的復(fù)雜性以及攻擊在保密性、完整性和可用性方面的影響。這些指標(biāo)的詳細(xì)解釋可以在[34]中找到。
NVD每天都會(huì)公布各種軟件產(chǎn)品的漏洞。每個(gè)漏洞由一個(gè)獨(dú)特的通用漏洞和暴露(CVE)ID識(shí)別,如CVE-2016-8882。組織可以通過識(shí)別其資產(chǎn)的通用平臺(tái)枚舉(CPE)名稱[10]來檢索其資產(chǎn)的漏洞(包括CVE和漏洞特征),然后使用CPE向NVD查詢(NVD提供API進(jìn)行此類查詢)。CPE是一種表示軟件的命名標(biāo)準(zhǔn),其結(jié)構(gòu)方式使其能夠自動(dòng)搜索適用的漏洞[36]。一個(gè)組織可以手動(dòng)識(shí)別一次資產(chǎn)的CPE,并使用多年而不需要更新,因此維護(hù)成本很低。
值得注意的是,該學(xué)習(xí)框架是通用的,可以支持公司可能使用的其他漏洞功能(例如,第三方服務(wù)提供的其他功能)。另外,如果公司在補(bǔ)救決策分析中只使用部分CVSS指標(biāo),那么學(xué)習(xí)模型可以建立在這些指標(biāo)上。
B. 資產(chǎn)特點(diǎn)和管理
雖然脆弱性特征在維護(hù)公開披露的脆弱性信息方面有一個(gè)完善的CVE標(biāo)準(zhǔn),但脆弱性特征本身并不能提供足夠的信息來對(duì)個(gè)別網(wǎng)絡(luò)資產(chǎn)進(jìn)行有意義的補(bǔ)救分析。人們對(duì)待在互聯(lián)網(wǎng)上提供直接服務(wù)的脆弱系統(tǒng)(如網(wǎng)絡(luò)服務(wù)器)與對(duì)待應(yīng)用于高度控制的本地網(wǎng)絡(luò)中的孤立系統(tǒng)的同樣的脆弱性是截然不同的。同樣,瀏覽器的弱點(diǎn)對(duì)不同的網(wǎng)絡(luò)資產(chǎn)的適用性也非常不同。很明顯,一臺(tái)主要用于電子郵件和網(wǎng)頁瀏覽的辦公室電腦,比一臺(tái)幾乎沒有用戶交互的服務(wù)器,恰好安裝了相同的瀏覽器,其脆弱性要明顯高得多。NVD CVSS系統(tǒng)建議使用保密性要求、完整性要求和可用性要求三個(gè)資產(chǎn)特征來計(jì)算環(huán)境得分。但是,僅僅使用這三個(gè)特征是不夠的,安全運(yùn)營者還要考慮其他特征。例如,當(dāng)一個(gè)漏洞可以通過網(wǎng)絡(luò)發(fā)起時(shí),資產(chǎn)是否可以被外部訪問是一個(gè)關(guān)鍵因素。因此我們又確定了兩個(gè)資產(chǎn)特征來補(bǔ)充這三個(gè)特征。與環(huán)境CVSS系統(tǒng)的另一個(gè)不同之處在于,我們的方法使用機(jī)器學(xué)習(xí)將這些特征整合到一個(gè)決策模型中,而不是使用簡單的公式計(jì)算環(huán)境得分。這五個(gè)特征描述如下。
工作站用戶登錄。(是或否)—與漏洞的用戶交互特征相關(guān)聯(lián),它意味著網(wǎng)絡(luò)資產(chǎn)是否為人類操作者提供了交互式工作站。如果該資產(chǎn)不具備交互式使用功能,那么影響Web瀏覽器等應(yīng)用的漏洞影響將大大降低。
外部可訪問性。(High, Authenticated-Only or Limited) – 與漏洞的攻擊向量特征相關(guān)聯(lián),它指的是網(wǎng)絡(luò)資產(chǎn)在網(wǎng)絡(luò)系統(tǒng)之外的外部可訪問程度。例如,”高 “可能是指提供公共內(nèi)容的網(wǎng)絡(luò)服務(wù)器,而 “認(rèn)證-僅 “可能是一組遠(yuǎn)程訪問的應(yīng)用服務(wù)器,在使用前需要登錄。Limit指的是不能直接連接到外部網(wǎng)絡(luò)。
保密性要求。(高、中、低) – 與漏洞的保密性影響特征相關(guān)聯(lián),指資產(chǎn)的保密性要求是否很高。
完整性要求:(Integrity Requirement)。與保密性要求類似,但側(cè)重于完整性。
可用性要求。與保密性要求類似,但側(cè)重于可用性。
企業(yè)可以根據(jù)自己的實(shí)際情況,增加/刪除一些資產(chǎn)功能,以滿足自己的需求。
基于群體的資產(chǎn)特征管理 而軟件漏洞特征集有一個(gè)世界性的社區(qū)來維護(hù)一致的機(jī)器可讀特征(即通過NVD),網(wǎng)絡(luò)資產(chǎn)特征必須由組織來維護(hù)。根據(jù)我們的調(diào)查,一個(gè)組織可能有數(shù)千種資產(chǎn),而且資產(chǎn)可能會(huì)經(jīng)常變化(即一種資產(chǎn)可能會(huì)被刪除或增加)。由于資產(chǎn)數(shù)量龐大,且動(dòng)態(tài)變化,對(duì)每項(xiàng)資產(chǎn)的特征值進(jìn)行分析和維護(hù)非常繁瑣。為了降低維護(hù)成本,我們根據(jù)資產(chǎn)的作用或功能,將資產(chǎn)劃分為資產(chǎn)組。例如,特定廠商和功能的所有遠(yuǎn)程終端設(shè)備(RTU)都可以歸入一個(gè)組,因?yàn)樗鼈兙哂邢嗨频墓δ?。同樣,所有的防火墻也可以歸入一個(gè)組。同一組中的資產(chǎn)共享同一組資產(chǎn)特征值。那么人類操作員就可以確定和維護(hù)每組的特征值。在我們對(duì)電力公司的實(shí)驗(yàn)中,通過資產(chǎn)數(shù)量的大幅增加,分類組別基本保持一致。例如,控制中心的操作員工作站無論有5個(gè)還是100個(gè),其特征都是一樣的。雖然資產(chǎn)可能會(huì)來來去去,但我們發(fā)現(xiàn)出現(xiàn)一個(gè)全新的資產(chǎn)組的情況要少得多。由于組的數(shù)量遠(yuǎn)小于資產(chǎn)的數(shù)量,所以分組將大大減少維護(hù)特征值所需的工作量。
C. 機(jī)器學(xué)習(xí)算法選擇
今天有很多機(jī)器學(xué)習(xí)算法,我們需要確定一個(gè)最好的算法來解決我們的問題。在這個(gè)框架中,我們采用決策樹模型來實(shí)現(xiàn)整治行動(dòng)分析的自動(dòng)化,原因如下。(1)基于決策樹的決策類似于人類的推理。在樹的每個(gè)層次上,模型選擇最重要的因素,并根據(jù)因素的價(jià)值將問題空間分割成多個(gè)分支。與許多其他機(jī)器學(xué)習(xí)模型如神經(jīng)網(wǎng)絡(luò)和邏輯回歸等不太透明不同,決策樹模型可以讓我們看到模型每一步的工作,知道模型是如何做決策的。因此可以對(duì)決策樹的預(yù)測進(jìn)行解釋,并推導(dǎo)出一個(gè)原因代碼來解釋預(yù)測。人工操作者可以根據(jù)理由代碼來驗(yàn)證預(yù)測結(jié)果。(2)對(duì)于這個(gè)VPM自動(dòng)化問題,在我們的實(shí)驗(yàn)中,決策樹與其他幾種機(jī)器學(xué)習(xí)算法相比,被證明具有非常好的性能。
為了便于說明,圖3顯示了在修復(fù)行動(dòng)分析背景下,訓(xùn)練出來的決策樹模型樣本?;谠摌涞穆┒搭A(yù)測過程如下。當(dāng)一個(gè)新的漏洞數(shù)據(jù)記錄被輸入到模型中進(jìn)行預(yù)測時(shí),模型將首先查看根節(jié)點(diǎn)的可利用性特征。如果該漏洞性不是Unproven,則會(huì)去檢查資產(chǎn)特征 “工作站登錄”。如果工作站允許用戶登錄,說明它面臨的風(fēng)險(xiǎn)較大,必須立即打補(bǔ)丁。其他樹枝也可以通過其他記錄進(jìn)行類似的遍歷。
圖 3: 訓(xùn)練好的決策樹模型的一個(gè)例子
D. 原因代碼生成
對(duì)于一個(gè)預(yù)測性的機(jī)器學(xué)習(xí)工具來說,很難做到100%準(zhǔn)確。為了提高預(yù)測決策的透明度,我們的方法為人類操作者提供了預(yù)測置信度和模型選擇決策的原因的可讀性描述(稱為原因代碼)。決策樹的使用使得理由代碼的生成是可行的。訓(xùn)練好的決策樹模型是一個(gè)以樹形結(jié)構(gòu)組織起來的連接節(jié)點(diǎn)和分割規(guī)則的集合。那么通過遍歷樹的路徑,結(jié)合路徑中節(jié)點(diǎn)的拆分規(guī)則,就可以得出foreach葉子節(jié)點(diǎn)(決策節(jié)點(diǎn))的理由代碼。但是,對(duì)于一些長的路徑(例如,我們?cè)谝粋€(gè)公用事業(yè)的數(shù)據(jù)上建立的一棵樹有18個(gè)節(jié)點(diǎn)的路徑),如果簡單地組合拆分規(guī)則,理由代碼可能會(huì)變得非常長,冗余,而且難以閱讀。為了解決這個(gè)問題,我們使用兩種規(guī)則來簡化和縮短從決策路徑中得出的原始理由代碼。
交集:我們可以通過尋找范圍交集來減少冗余。例如,對(duì)于CVSS分?jǐn)?shù)這樣的連續(xù)數(shù)據(jù),如果理由碼中一個(gè)條件是 “CVSS分?jǐn)?shù)大于5.0”,另一個(gè)條件是 “CVSS分?jǐn)?shù)大于7.0”,那么我們就可以找到交集,理由碼就可以簡化為 “CVSS分?jǐn)?shù)大于7.0”。
補(bǔ)全:對(duì)于一些特征在一個(gè)路徑的幾個(gè)條件中出現(xiàn)的,我們可以用它的補(bǔ)全條件來代替這些條件。例如,對(duì)于完整性影響,可能的值集是完整、部分、無。如原因碼為 “完整性影響不為None,完整性影響不為Partial”,由于Partial、None的補(bǔ)足條件為Complete,所以原因碼可以簡化為 “完整性為Complete”。
第五節(jié).框架的實(shí)例。一個(gè)電力公司的案例研究
為了研究基于機(jī)器學(xué)習(xí)的框架在現(xiàn)實(shí)世界中的工作情況,我們根據(jù)某電力公司的VPM運(yùn)行實(shí)踐和數(shù)據(jù),對(duì)其應(yīng)用并實(shí)例化了該框架。由于VPM運(yùn)行信息的高度敏感性,該公司要求我們對(duì)其名稱進(jìn)行匿名化處理,因此我們?cè)诒疚闹蟹Q其為OrgA。
在本框架實(shí)例中,使用的漏洞特征是CVSS指標(biāo)中的9個(gè)屬性(見表一)。使用的資產(chǎn)特征是工作站用戶登錄、外部可訪問性、保密性要求、完整性要求和可用性要求。這些特征是人類操作員在做出修復(fù)決策時(shí)使用的。操作員使用的可能的修復(fù)行動(dòng)是 “現(xiàn)在修補(bǔ)”、”現(xiàn)在緩解”、”以后修補(bǔ) “和 “以后修補(bǔ)”。
為了獲得資產(chǎn)特征,首先從公司的基線配置管理工具中獲得一個(gè)資產(chǎn)列表。然后根據(jù)資產(chǎn)的功能將其分為43個(gè)組。對(duì)于每個(gè)資產(chǎn)組,確定每個(gè)資產(chǎn)特征的值。對(duì)于公司來說,這些資產(chǎn)特征和特征值是相當(dāng)穩(wěn)定的,不需要在幾年內(nèi)改變。為了得到漏洞和漏洞特征,根據(jù)軟件/固件的名稱和版本,為每個(gè)軟件/固件生成一個(gè)CPE,這些軟件/固件的名稱和版本在基線配置管理工具中也有。然后我們開發(fā)了一個(gè)Python程序,利用CPE作為參數(shù),通過NVD的API自動(dòng)查詢NVD,從NVD中檢索出適用的漏洞,包括其CVE和CVSS向量。漏洞檢索需要經(jīng)常進(jìn)行,但Python程序使其自動(dòng)化。需要注意的是,為實(shí)用程序匯總漏洞的第三方服務(wù)也提供了同樣的CVE和CVSS信息,可以在我們的框架中使用。
決策樹是基于庫Scikit-learn用Python實(shí)現(xiàn)的。公用事業(yè)單位維護(hù)著VPM的運(yùn)行數(shù)據(jù),包括歷史漏洞、其相關(guān)資產(chǎn),以及操作人員對(duì)其做出的人工修復(fù)決策。這樣就可以利用該實(shí)用程序的歷史數(shù)據(jù)來訓(xùn)練決策樹模型。除了CVSS評(píng)分之外,所有的特征都是分類的。我們將這些分類值用一個(gè)熱編碼轉(zhuǎn)換為二進(jìn)制數(shù)據(jù)。CVSS得分通過在0和1之間的縮放進(jìn)行歸一化,Gini被用作衡量樹的分裂的指標(biāo)。值得注意的是,應(yīng)根據(jù)數(shù)據(jù)集對(duì)一些決策樹參數(shù)進(jìn)行調(diào)整,以達(dá)到最佳性能(詳見第六節(jié)B)。模型訓(xùn)練完成后,當(dāng)獲得一個(gè)新的漏洞時(shí),其漏洞和資產(chǎn)特征將被輸入到模型中進(jìn)行分析。
模型會(huì)輸出三個(gè)信息:預(yù)測決策、置信度和原因代碼。信度值在0到1之間,表明模型對(duì)預(yù)測的信心程度。它可以指導(dǎo)操作者選擇預(yù)測進(jìn)行人工驗(yàn)證,例如,驗(yàn)證那些置信度低的預(yù)測。理由代碼可以幫助人工操作者理解和驗(yàn)證預(yù)測。表二顯示了三種不同漏洞的預(yù)測實(shí)例。第一個(gè)例子顯示,預(yù)測的操作是 “Patch Later”,置信度為100%。這個(gè)選擇的理由是,該漏洞不可利用,CVSS評(píng)分小于4.2,這表明資產(chǎn)影響較小,而且它的保密性影響中等。其他兩個(gè)預(yù)測也可以用類似的方式來解釋。
基于機(jī)器學(xué)習(xí)的自動(dòng)漏洞修復(fù)分析方法
表二:三個(gè)漏洞的樣本預(yù)測結(jié)果
第六節(jié). 評(píng)價(jià)
本節(jié)介紹第五節(jié)所述框架實(shí)例的實(shí)驗(yàn)結(jié)果。
A. 資料集
我們從OrgA收集了兩個(gè)數(shù)據(jù)集,每個(gè)數(shù)據(jù)集包含一年的數(shù)據(jù)。其中一個(gè)數(shù)據(jù)集是在2016年6月至2017年5月收集的,有3,476條脆弱性數(shù)據(jù)記錄。另一個(gè)數(shù)據(jù)集是從2018年1月到2018年12月收集的,有3,660條記錄。為方便起見,我們將這兩個(gè)數(shù)據(jù)集分別稱為2017A和2018A。每條漏洞數(shù)據(jù)記錄包括以下信息:其相關(guān)軟件、漏洞特征、其相關(guān)資產(chǎn)和資產(chǎn)特征。此外,每條記錄還包括人為操作者針對(duì)該漏洞做出的修復(fù)決定。
B. 決策樹的參數(shù)調(diào)整
為了防止樹的深度過大,避免過度擬合,應(yīng)適當(dāng)設(shè)置葉子節(jié)點(diǎn)的最小樣本數(shù)(如果節(jié)點(diǎn)中的樣本數(shù)不超過最小數(shù),該節(jié)點(diǎn)將停止分裂)和樹的最大深度。這兩個(gè)參數(shù)可以根據(jù)部署環(huán)境進(jìn)行調(diào)整。在我們的實(shí)施中,使用實(shí)用程序的2017A數(shù)據(jù)集來調(diào)整這兩個(gè)參數(shù)。具體來說,隨機(jī)抽取70%的數(shù)據(jù)集作為訓(xùn)練數(shù)據(jù),另外30%作為測試數(shù)據(jù),根據(jù)測試性能對(duì)這兩個(gè)參數(shù)進(jìn)行調(diào)優(yōu)。
我們對(duì)葉子節(jié)點(diǎn)中不同的最小樣本數(shù)進(jìn)行了實(shí)驗(yàn),結(jié)果如圖4所示。”min_samples_leaf “是一個(gè)葉子節(jié)點(diǎn)所需的最小樣本數(shù)。”min_samples_leaf “越小,樹的分裂程度越高,樹的深度越大。如圖4所示,當(dāng) “min_samples_leaf “為8時(shí),其預(yù)測精度最高,為97.22%。這里,預(yù)測精度是指預(yù)測的決策中與人類操作者人工決策相同的部分。當(dāng) “min_samples_leaf “降低時(shí),預(yù)測精度會(huì)降低,因?yàn)闃涮厥猓瑹o法對(duì)新樣本進(jìn)行泛化。如果 “min_samples_leaf “過大,在樹短的地方,預(yù)測精度也會(huì)降低,因?yàn)闃錄]有捕捉到訓(xùn)練數(shù)據(jù)足夠細(xì)的信息。因此,我們將其余實(shí)驗(yàn)中葉子節(jié)點(diǎn)的最小樣本數(shù)設(shè)置為8。
基于機(jī)器學(xué)習(xí)的自動(dòng)漏洞修復(fù)分析方法
圖4:在min_leaf_samples上的預(yù)測情況。
圖5:對(duì)樹的深度進(jìn)行預(yù)測
不同最大樹深下的預(yù)測精度如圖5所示。當(dāng)樹深超過25時(shí),預(yù)測精度不再變化。通常情況下,當(dāng)最大深度較大時(shí),允許樹更深,會(huì)出現(xiàn)過擬合問題。但是,在這種情況下,由于最小葉子數(shù)設(shè)置為8,當(dāng)葉子樣本等于或小于8時(shí),樹就會(huì)停止分裂,因此不能太深。我們將其余實(shí)驗(yàn)中的樹最大深度設(shè)置為50。
C. 預(yù)測精度
在這個(gè)實(shí)驗(yàn)中,我們分別在組織OrgA的兩個(gè)數(shù)據(jù)集上測試模型。每個(gè)數(shù)據(jù)集被隨機(jī)分成兩部分,70%用于訓(xùn)練,30%用于測試。我們使用預(yù)測精度和假陰性率來描述性能。誤判率定義為人工決策為Patch-Now或Mitigate-Now-Patch-Later,但預(yù)測結(jié)果為Patch Later的那部分預(yù)測。誤報(bào)率應(yīng)該被最小化,因?yàn)樗舆t了漏洞的修復(fù),而漏洞應(yīng)該更及時(shí)地被處理。結(jié)果如圖6所示。對(duì)于2017A數(shù)據(jù)集,預(yù)測準(zhǔn)確率為97.02%,假陰性率為1.24%。對(duì)于2018A數(shù)據(jù)集,預(yù)測準(zhǔn)確率為98.82%,假陰性為1.09%。準(zhǔn)確率相當(dāng)高,這意味著使用機(jī)器學(xué)習(xí)來預(yù)測補(bǔ)救行動(dòng)是可行的。
虛假預(yù)測的探索 雖然機(jī)器學(xué)習(xí)預(yù)測的準(zhǔn)確率已經(jīng)很高了,但我們還是想弄清楚是什么原因?qū)е铝颂摷兕A(yù)測。對(duì)于2017A數(shù)據(jù)集,在探究了2.98%的錯(cuò)誤預(yù)測后,我們發(fā)現(xiàn)這些錯(cuò)誤預(yù)測主要是由于歷史數(shù)據(jù)集中的人工補(bǔ)救決策不一致造成的,一些具有相同特征的漏洞被賦予了不同的人工決策,這會(huì)讓決策樹(其實(shí)也包括其他任何學(xué)習(xí)算法)感到困惑。同樣的問題也導(dǎo)致了2018A數(shù)據(jù)集上的預(yù)測錯(cuò)誤。
這種情況的發(fā)生有幾個(gè)原因。一家公用事業(yè)公司可能有多個(gè)安全操作員分析漏洞并做出補(bǔ)救決策。不同的操作員可能會(huì)對(duì)具有相同特征的漏洞,甚至對(duì)相同的漏洞做出不同的決定。即使只有一個(gè)操作員,對(duì)於兩個(gè)具有相同特徵的保安漏洞,他/她可能在不同時(shí)間(例如上月和本月)處理時(shí)作出不同的決定。尤其是對(duì)于風(fēng)險(xiǎn)等級(jí)不在明顯的高風(fēng)險(xiǎn)端(通常會(huì)進(jìn)入Patch-Now和Mitigate-Now-Patch-Later)或明顯的低風(fēng)險(xiǎn)端(通常會(huì)進(jìn)入Patch Later),而是在中間的漏洞,更是可能出現(xiàn)這種情況。這是一種人為的錯(cuò)誤,操作者無法完全避免。
對(duì)于每一組特征相同但人工決策不同的漏洞記錄,如果我們假設(shè)這組記錄中的多數(shù)決策是正確的決策,而將少數(shù)決策的記錄視為錯(cuò)誤并從數(shù)據(jù)集中刪除(2017A數(shù)據(jù)集約有3%的記錄被刪除),那么2017A數(shù)據(jù)集的預(yù)測準(zhǔn)確率達(dá)到99.8%,假陰性率達(dá)到0.20%,2018A數(shù)據(jù)集也有類似的提升。這個(gè)結(jié)果表明,如果訓(xùn)練數(shù)據(jù)集中的人工決策不一致的情況較少,那么預(yù)測性能可以得到顯著提升。
我們還發(fā)現(xiàn),對(duì)于特征相同但人工決策不同的記錄,其預(yù)測置信度會(huì)相對(duì)較低。例如,假設(shè)決策樹的一個(gè)葉子節(jié)點(diǎn)包含四條特征完全相同的記錄,其中三條被Patch-Now補(bǔ)救,一條被Mitigate-Now-Patch-Later補(bǔ)救。那么決策樹將輸出Patch-Now作為預(yù)測決策,置信度為0.75。如果操作者能夠以相對(duì)較低的置信度(即低于0.9)來驗(yàn)證/糾正預(yù)測,那么可以將2017A數(shù)據(jù)集的性能提高到99.42%的準(zhǔn)確率和0.38%的假陰性,2018A數(shù)據(jù)集的準(zhǔn)確率為99.45%,假陰性為0.09%。由于只有10%左右的預(yù)測置信度在0.9以下,所以人工驗(yàn)證的時(shí)間將比人工做出所有的補(bǔ)救決策要短得多。
D. 原因代碼驗(yàn)證
每一個(gè)預(yù)測都會(huì)附帶一個(gè)理由碼,以便用戶在需要的時(shí)候可以對(duì)預(yù)測進(jìn)行驗(yàn)證。在這里,我們首先研究一下理由碼的長度。我們用一個(gè)理由碼所具備的條件數(shù)來表示其長度。例如,理由碼 “未經(jīng)證實(shí)的可利用性,CVSS評(píng)分小于4.2,保密性影響中等 “的長度為3,因?yàn)樗?個(gè)條件。對(duì)于第六節(jié)-C所述的預(yù)測,原因代碼的平均長度為6.9個(gè)條件。應(yīng)用第四節(jié)-D中提出的長度減少規(guī)則后,平均長度減少到3.6個(gè)條件。例如,原因代碼 “未經(jīng)證實(shí)的可利用性,CVSS得分小于9.15,外部可訪問性不高,CVSS得分小于6.30,外部可訪問性未經(jīng)過認(rèn)證,可用性影響中等 “可以減少為 “未經(jīng)證實(shí)的可利用性,CVSS得分小于6.3,外部可訪問性有限,可用性影響中等”。長度縮減規(guī)則可以大大縮短理由碼的長度,使其更容易理解和驗(yàn)證。
然后,我們測試?yán)碛纱a是否足以驗(yàn)證預(yù)測決策,檢查驗(yàn)證理由代碼所需的時(shí)間,并與根據(jù)相應(yīng)漏洞的原始特征驗(yàn)證預(yù)測所需的時(shí)間進(jìn)行比較。為此,我們從測試數(shù)據(jù)中隨機(jī)選取了100個(gè)預(yù)測,并請(qǐng)組織OrgA的安全操作員根據(jù)理由代碼和基于原始特征驗(yàn)證這些預(yù)測。
結(jié)果顯示,100個(gè)理由代碼中,有98個(gè)足以驗(yàn)證預(yù)測決策。通過原因代碼驗(yàn)證,發(fā)現(xiàn)有一個(gè)預(yù)測是錯(cuò)誤的。另外一個(gè)原因碼不足以驗(yàn)證預(yù)測。
理由碼驗(yàn)證和基于原始特征的驗(yàn)證所花費(fèi)的時(shí)間如圖7所示。大部分原因碼可以在很短的時(shí)間內(nèi)完成驗(yàn)證。35%的理由碼可以在5秒內(nèi)完成驗(yàn)證,90%的理由碼可以在45秒內(nèi)完成驗(yàn)證。平均驗(yàn)證時(shí)間為28.8秒。從圖中可以看出,基于原始特征的驗(yàn)證比基于理由碼的驗(yàn)證需要更多的時(shí)間。只有35%的預(yù)測可以在60秒內(nèi)完成驗(yàn)證,約40%的預(yù)測需要4分鐘以上的驗(yàn)證時(shí)間?;谠继卣黩?yàn)證的平均時(shí)間為7分鐘。結(jié)果顯示了理由代碼的效率。這是合理的,因?yàn)槔碛纱a是從決策樹中推導(dǎo)出來的(并進(jìn)行了優(yōu)化),而決策樹在一定程度上根據(jù)決策過程中的判斷條件的重要性對(duì)其進(jìn)行了優(yōu)先級(jí)排序,并將不重要的因素隱藏起來不考慮。
圖7:基于理由代碼和基于特征的驗(yàn)證時(shí)間
圖8:每月預(yù)測精度
E. 用動(dòng)態(tài)訓(xùn)練進(jìn)行預(yù)測
在上述實(shí)驗(yàn)中,將十二個(gè)月的數(shù)據(jù)隨機(jī)分為訓(xùn)練數(shù)據(jù)和測試數(shù)據(jù)。在實(shí)際操作中,決策樹模型應(yīng)該動(dòng)態(tài)更新,并使用近期的歷史數(shù)據(jù)進(jìn)行訓(xùn)練,如第四節(jié)-E所討論的那樣。在本實(shí)驗(yàn)中,我們通過動(dòng)態(tài)訓(xùn)練來測試模型的預(yù)測精度。特別是,我們假設(shè)操作者隨機(jī)選取每個(gè)月10%的預(yù)測結(jié)果進(jìn)行檢查和驗(yàn)證。在每個(gè)月的時(shí)候,我們將最近6個(gè)月被操作者手動(dòng)檢查過的漏洞和決策作為訓(xùn)練數(shù)據(jù),訓(xùn)練出一個(gè)新的決策樹模型,并用它來預(yù)測下個(gè)月的情況。2018A數(shù)據(jù)集上的預(yù)測結(jié)果如圖8所示。x軸表示預(yù)測的是哪個(gè)月,y軸是預(yù)測精度。例如,當(dāng)x軸為7時(shí),它用前6個(gè)月數(shù)據(jù)的10%來訓(xùn)練模型,預(yù)測第7個(gè)月的決策,然后用第二個(gè)月到第7個(gè)月數(shù)據(jù)的10%來訓(xùn)練模型,預(yù)測第8個(gè)月的漏洞。可以看出,不同月份的預(yù)測準(zhǔn)確率不一樣,但總體上是很高的。2017A數(shù)據(jù)集在動(dòng)態(tài)訓(xùn)練下的預(yù)測性能也有類似趨勢(shì)。因此,動(dòng)態(tài)訓(xùn)練是可行的。
F. 不同特征集的預(yù)測
上述實(shí)驗(yàn)使用了16個(gè)特征,包括軟件名稱、漏洞特征、資產(chǎn)名稱和資產(chǎn)特征。在此,我們?cè)u(píng)估了不同特征對(duì)預(yù)測的有用性,并在圖9中顯示了2017A數(shù)據(jù)集上的結(jié)果。在沒有軟件名稱和資產(chǎn)名稱作為特征的情況下,預(yù)測精度只是略有下降。但是,如果沒有軟件名稱、資產(chǎn)名稱和資產(chǎn)特征(即只有漏洞特征),預(yù)測準(zhǔn)確率下降到83.78%;如果沒有軟件名稱、資產(chǎn)名稱和漏洞特征(即只有資產(chǎn)特征),預(yù)測準(zhǔn)確率下降到68.33%。結(jié)果表明,漏洞特征和資產(chǎn)特征都很重要。
基于機(jī)器學(xué)習(xí)的自動(dòng)漏洞修復(fù)分析方法
圖9:不同特征集的預(yù)測情況
G. 與其他模式的比較
我們將決策樹模型與其他流行的機(jī)器學(xué)習(xí)模型:邏輯回歸、支持向量機(jī)(SVM)、奈夫貝葉斯、k-最近鄰(KNN)和神經(jīng)網(wǎng)絡(luò)進(jìn)行比較。采用2017A數(shù)據(jù)集,隨機(jī)抽取其中70%作為訓(xùn)練數(shù)據(jù),其余30%作為測試數(shù)據(jù)。如圖10所示,決策樹模型的表現(xiàn)優(yōu)于其他模型。Logistic回歸和神經(jīng)網(wǎng)絡(luò)的表現(xiàn)與決策樹接近。然而,它們不像決策樹那樣容易解釋。
考慮到最近在神經(jīng)網(wǎng)絡(luò)合理化方面的工作,我們改編并實(shí)現(xiàn)了一個(gè)帶有理由生成器的神經(jīng)網(wǎng)絡(luò)模型[37],以便與決策樹進(jìn)行綜合比較。由于篇幅所限,本文省略了改編和實(shí)現(xiàn)的細(xì)節(jié),將在本文的擴(kuò)展版本中提供。如圖10所示,決策樹在預(yù)測方面也優(yōu)于帶理由生成器的神經(jīng)網(wǎng)絡(luò)。在理由碼方面,決策樹生成的理由碼平均長度約為4個(gè),而神經(jīng)網(wǎng)絡(luò)的理由碼平均長度約為8.5個(gè)。當(dāng)理由碼足以支持預(yù)測時(shí)(見第VI-D節(jié)),決策樹較短的理由碼更容易解釋/驗(yàn)證。
基于機(jī)器學(xué)習(xí)的自動(dòng)漏洞修復(fù)分析方法
圖10:與其他機(jī)器學(xué)習(xí)模型的比較
H. 補(bǔ)救分析延遲和成本
補(bǔ)救決策分析的延遲 這里,我們分析了通過自動(dòng)化決策分析為OrgA節(jié)省的時(shí)間。我們首先計(jì)算了基于機(jī)器學(xué)習(xí)的框架所需的時(shí)間。漏洞分析和決策預(yù)測的時(shí)間是以毫秒級(jí)為單位的,可以忽略不計(jì)。當(dāng)機(jī)器學(xué)習(xí)模型被動(dòng)態(tài)訓(xùn)練時(shí),它將需要操作者驗(yàn)證10%的漏洞預(yù)測,如第六節(jié)-E所討論的那樣。如第六節(jié)-D所示,預(yù)測驗(yàn)證的平均時(shí)間為28.8秒。對(duì)于2017A數(shù)據(jù)集所覆蓋的3476個(gè)漏洞,OrgA的平均驗(yàn)證時(shí)間為2.3個(gè)人小時(shí)/月(這是典型的決策周期)。假設(shè)只有一個(gè)運(yùn)營商??梢栽?.3小時(shí)內(nèi)完成,使得決策延遲為2.3小時(shí)。
根據(jù)第六節(jié)-D中的測試,手動(dòng)分析每個(gè)漏洞的平均時(shí)間為7分鐘。OrgA的人工分析總時(shí)間為每月33.8人小時(shí)。同樣,假設(shè)只有一個(gè)操作員。理論上,這個(gè)任務(wù)可以在33.8小時(shí)內(nèi)完成,使得決策延遲33.8小時(shí)。但在實(shí)際工作中,當(dāng)一項(xiàng)任務(wù)所需時(shí)間較長時(shí),完成任務(wù)的總時(shí)間跨度將不僅僅是人時(shí)那么簡單。人的操作者不可能像機(jī)器一樣24小時(shí)工作,可能會(huì)時(shí)不時(shí)地休息一下,還需要執(zhí)行很多其他的任務(wù),比如開會(huì)、匯報(bào)、培訓(xùn)等,也可能會(huì)因?yàn)槠渌虑槎中?,比如互相聊天。這些因素都會(huì)產(chǎn)生額外的補(bǔ)救決策的延遲。這可能會(huì)使分析過程跨越幾天甚至幾周的時(shí)間。我們?cè)诘谌?jié)中描述的調(diào)查也驗(yàn)證了這一點(diǎn),50%的參與者表示他們需要16天以上的時(shí)間來完成每個(gè)周期的補(bǔ)救行動(dòng)分析。
根據(jù)這個(gè)草圖分析,用機(jī)器學(xué)習(xí)完成補(bǔ)救決策分析的延遲可能是幾個(gè)小時(shí),但用人工決策的延遲可能是幾天甚至幾周。如果能更早地做出漏洞的修復(fù)決策,就能更早地發(fā)現(xiàn)那些高風(fēng)險(xiǎn)的漏洞(現(xiàn)在需要修補(bǔ)或緩解的漏洞),從而更早地進(jìn)行修復(fù),這將大大降低電力企業(yè)的安全風(fēng)險(xiǎn)。因此,使用我們的機(jī)器學(xué)習(xí)框架的公用事業(yè)公司面臨的風(fēng)險(xiǎn)將大大降低。
補(bǔ)救成本決策分析 由于安全運(yùn)營的VPM問題是一個(gè)人力資源配置的問題,我們分析機(jī)器學(xué)習(xí)帶來的人員成本節(jié)約。從上面的延遲分析可以看出,通過機(jī)器學(xué)習(xí),每個(gè)月可以為OrgA節(jié)省31.5人小時(shí)。這樣算下來,每年可以節(jié)省378人小時(shí)。對(duì)于規(guī)模較大、資產(chǎn)較多的公用事業(yè)單位,節(jié)省的費(fèi)用就更多了。例如,在我們的調(diào)查中,一家參與公司表示它每年有12000個(gè)漏洞。這樣一來,總共可以節(jié)省1305人小時(shí)。
第七部分:討論
盡管擬議的框架只在電力公司上進(jìn)行了測試,但與國土安全部的準(zhǔn)則是一致的,它具有普遍性,可適用于許多其他組織,特別是關(guān)鍵基礎(chǔ)設(shè)施,因?yàn)樗鼈兠媾R著類似的風(fēng)險(xiǎn)防范管理挑戰(zhàn)和制約因素。將該框架應(yīng)用于其他組織的方式與應(yīng)用于電力公司的方式類似,但所確定的資產(chǎn)特征和補(bǔ)救決定可能有所不同。
在某些情況下,操作環(huán)境可能會(huì)影響補(bǔ)救行動(dòng)。例如,當(dāng)一個(gè)漏洞爆發(fā)并成為頭條新聞時(shí)(如Meltdown漏洞),公司的管理員可能會(huì)因?yàn)楣娐曌u(yù)的壓力而希望盡快對(duì)其進(jìn)行修復(fù)。那么運(yùn)營者可能會(huì)選擇 “現(xiàn)在修補(bǔ) “或 “現(xiàn)在緩解”—“以后修補(bǔ)”,而不是 “以后修補(bǔ)”,即使基于漏洞/資產(chǎn)特征的決策樹預(yù)測是 “以后修補(bǔ)”。在這種情況下,操作者可以使用他們的決策來覆蓋決策樹的預(yù)測。
第八節(jié). 結(jié)論
本文解決了需要更有效的決策支持來解決VPM挑戰(zhàn)的問題,并提出了一個(gè)基于決策樹的框架來自動(dòng)分析漏洞的補(bǔ)救決策。我們對(duì)為一家電力公司定制的框架實(shí)例進(jìn)行了測試,測試了從該公司獲得的兩個(gè)數(shù)據(jù)集。結(jié)果顯示出較高的預(yù)測精度和時(shí)間節(jié)省。這些結(jié)果證明了應(yīng)用機(jī)器學(xué)習(xí)來自動(dòng)化VPM流程的價(jià)值。
本文是翻譯文章,文章原作者ieee,文章來源:ieeexplore.ieee.org
原文地址:https://ieeexplore.ieee.org/document/9162309