韓 燁,周利均
(1.中電科網(wǎng)絡(luò)空間安全研究院有限公司,河北 保定 071800;2.中國電子科技網(wǎng)絡(luò)信息安全有限公司,四川 成都 610041)
21 世紀(jì)以來,網(wǎng)絡(luò)空間作為“第五空間”引領(lǐng)了人類生產(chǎn)、生活方式的重大變革。但是,網(wǎng)絡(luò)與信息技術(shù)的廣泛應(yīng)用在極大促進(jìn)了經(jīng)濟、社會繁榮進(jìn)步的同時,也帶來了新的安全風(fēng)險與挑戰(zhàn)。在網(wǎng)絡(luò)空間安全的博弈中,于攻防雙方而言,漏洞不是萬能的。漏洞是決定網(wǎng)絡(luò)空間對抗勝負(fù)的戰(zhàn)略資源。在“網(wǎng)絡(luò)戰(zhàn)”硝煙四起、國家級網(wǎng)絡(luò)攻擊頻繁打響的背景下,石油、電力、能源等關(guān)鍵基礎(chǔ)設(shè)施軟件程序和網(wǎng)絡(luò)系統(tǒng)中的漏洞發(fā)現(xiàn)成為攻擊者與防御者爭奪的關(guān)鍵領(lǐng)域[1]。
漏洞不同于病毒、木馬、惡意軟件等人為制造的系統(tǒng)脆弱點,存在于網(wǎng)絡(luò)信息系統(tǒng)硬件、軟件、協(xié)議和策略等多個維度,是可能對系統(tǒng)結(jié)構(gòu)、功能和數(shù)據(jù)造成損害的固有缺陷[2],在現(xiàn)有的技術(shù)條件下無法實現(xiàn)徹底根除。任何一個信息系統(tǒng)都存在漏洞,漏洞的發(fā)現(xiàn)與利用往往只存在很小的時間間隔。對于攻擊者而言,先發(fā)現(xiàn)漏洞就能立即設(shè)計漏洞利用機制,開展針對網(wǎng)絡(luò)信息系統(tǒng)的破壞攻擊;對防御者而言,先發(fā)現(xiàn)漏洞就可立即著手修補工作,建立免疫機制,有效減少來自網(wǎng)絡(luò)的威脅,降低潛在的損失。在一定歷史時期的軟件架構(gòu)、服務(wù)模式或開發(fā)風(fēng)格限制下,漏洞的產(chǎn)生速率趨于穩(wěn)定,攻擊者與防御者關(guān)于漏洞的識別和發(fā)現(xiàn)能力直接影響對抗的成敗[3]。
當(dāng)前,如何有效分析與發(fā)現(xiàn)漏洞已經(jīng)成為世界各國網(wǎng)絡(luò)安全領(lǐng)域的研究重點。提升對漏洞資源的掌控能力,已成為維護國家安全和公眾權(quán)益的重要保障和迫切需求。目前,漏洞挖掘方法主要包括開源代碼分析和逆向分析[3]等,以手工實施為主,在時效性、準(zhǔn)確度和專業(yè)化上都遠(yuǎn)遠(yuǎn)難以滿足進(jìn)行有效實時防御的需求。為了應(yīng)對持續(xù)嚴(yán)峻的網(wǎng)絡(luò)空間安全挑戰(zhàn),業(yè)界開始嘗試多種技術(shù)組合的方式來提高挖掘分析能力??突仿〈髮W(xué)的Avgerinos 等人提出一種面向控制流的漏洞利用方案AGE[4],首次實現(xiàn)了漏洞的自動挖掘。后續(xù)提出的Mayhem 系統(tǒng),融合了符號執(zhí)行與模糊測試兩種漏洞挖掘方法,在美國國防部高級研究計劃局(Defense Advanced Research Projects Agency,DARPA)2016年舉辦的“網(wǎng)絡(luò)超級挑戰(zhàn)賽”(Cyber Grand Challenge,CGC)中獲得第一名[5]。360 冰刃實驗室提出的Digtool 系統(tǒng)根據(jù)不同漏洞的特點,將漏洞細(xì)分為OOB 越界訪問漏洞、UAF 釋放后使用漏洞、Time-Of-Check-To-Time-Of-Use 漏洞、參數(shù)未檢查漏洞、信息泄露漏洞和競爭條件型漏洞6 種,并利用硬件虛擬化和Intel PT 等技術(shù)提升系統(tǒng)調(diào)用接口和內(nèi)核活動的能力,收集虛擬機內(nèi)核的運行情況,達(dá)到自動發(fā)掘與利用漏洞的目的[6]。Wang 等人針對物聯(lián)網(wǎng)漏洞提出了一種基于AutoDES 調(diào)度策略的漏洞自動發(fā)現(xiàn)與利用框架,提高了漏洞發(fā)現(xiàn)和利用的效率和有效性[7]。
從當(dāng)前的研究來看,“分布式并行計算平臺+虛擬機堆疊”的方式存在平臺通用性差、虛擬機單點資源受限、協(xié)同方式單一等缺陷。如何通過人類專家的漏洞挖掘方法經(jīng)驗與異構(gòu)多引擎計算資源的融合,構(gòu)建合理分工、高效協(xié)作、成本均衡和自主進(jìn)化的新型漏洞挖掘作業(yè)平臺,是提高實時化、規(guī)?;┒赐诰蚰芰Φ暮诵膯栴}。本文余下部分對基于群體智能技術(shù)的漏洞挖掘?qū)崿F(xiàn)機理進(jìn)行了詳細(xì)探討。其中,第1 部分簡要介紹群體智能的特征及其在網(wǎng)絡(luò)空間安全中的重點應(yīng)用;第2 部分闡述利用群體智能進(jìn)行漏洞挖掘的原理;第3 部分構(gòu)建基于群體智能的漏洞挖掘模型;最后總結(jié)全文。
“群體智能”一詞最早在1989 年由Gerardo Beni 和Jing Wang 提出[8],用于描述具有分布控制、去中心化特點的自組織智能行為,即魚群、鳥群、蜂群等低等智能體通過群體間的交互協(xié)作涌現(xiàn)出來的明顯超越個體智能水平的集體智慧。群體智能突出表現(xiàn)為兩類模式,即自上而下有組織的群智行為和自下而上自組織的群智涌現(xiàn)。在這兩類不同的模式中,雖然構(gòu)成群體的每一個體都不具有智能或只具有有限的智能,但整個群體卻表現(xiàn)出遠(yuǎn)超過任意個體能力的智能行為,形成了一種“集體腦”思考的效果,從而為很多極具挑戰(zhàn)性的復(fù)雜性問題提供了嶄新的解決方案和思路[9]。
群體智能的核心理念包括多元化、分布式、強協(xié)同和自適應(yīng)等,突出特點為天然的高并發(fā)能力、快速高效的搜索求解能力、極強的環(huán)境適應(yīng)性、高魯棒性及自恢復(fù)能力。群體通過遵循簡單的行為規(guī)則,涌現(xiàn)出宏觀上復(fù)雜的智能行為,應(yīng)用競爭和合作等多種自主協(xié)同方式共同應(yīng)對挑戰(zhàn)性任務(wù),特別是開放環(huán)境下的復(fù)雜系統(tǒng)決策任務(wù)。這種獨特而泛在的智能模式已被應(yīng)用于體制優(yōu)化、組織管理、商業(yè)創(chuàng)新以及社會模擬等領(lǐng)域[10-12],也是我國新一代人工智能重點發(fā)展的五大智能形態(tài)之一,在推動我國新一代人工智能技術(shù)發(fā)展中占據(jù)重要地位。
網(wǎng)絡(luò)空間安全是攻防博弈的對抗,網(wǎng)絡(luò)安全的“木桶效應(yīng)”說明系統(tǒng)的整體防御能力并不取決于其長板,而是取決于其短板。防御者的最高目標(biāo)在于發(fā)現(xiàn)和抵消攻擊者所能造成的所有破壞,而這一目標(biāo)的實現(xiàn)需要所有安全主體、客體共同參與御敵。可見,網(wǎng)絡(luò)空間安全中這類攻防態(tài)勢的非對稱性,為群體智能的引入和推廣提供了理論前提和組織基礎(chǔ)。通過不同類型、不同等級、不同側(cè)重點的安全參與者的連接和協(xié)同,來完成全局安全目標(biāo)下的復(fù)雜防御任務(wù),能夠為解決復(fù)雜網(wǎng)絡(luò)空間安全問題提供新方法和新思路。
群體智能在網(wǎng)絡(luò)空間安全中的重點應(yīng)用包括入侵檢測、網(wǎng)絡(luò)測繪、態(tài)勢感知和密鑰管理等方面。尤其值得注意的是漏洞挖掘領(lǐng)域,群體智能具有巨大的應(yīng)用潛力[13-14]。群體智能的多元性使漏洞發(fā)現(xiàn)評估驗證主體能夠廣泛參與,達(dá)到更高的挖掘效率;群體智能的并發(fā)性使挖掘工作齊頭并進(jìn),規(guī)模效果顯著拓展,達(dá)到更快的挖掘速度;群體智能的協(xié)同性使不同水平級別主體間實現(xiàn)能力互補,達(dá)到更低的挖掘成本;群體智能的適應(yīng)性使系統(tǒng)從經(jīng)驗定式中學(xué)習(xí)改進(jìn)挖掘能力,達(dá)到更優(yōu)的挖掘迭代。整體上,可以預(yù)期漏洞挖掘領(lǐng)域的群體智能能夠有效利用多方參與者的知識、經(jīng)驗和能力,高效完成大規(guī)模、短時限漏洞挖掘任務(wù),為扭轉(zhuǎn)攻防非對稱的局面提供有效解決途徑,驅(qū)動漏洞挖掘進(jìn)入“全民時代”[15]。
理論是技術(shù)突破和應(yīng)用創(chuàng)新的基礎(chǔ)。漏洞挖掘作為一類以網(wǎng)絡(luò)或計算機軟硬件系統(tǒng)為對象,以靜態(tài)或動態(tài)方式開展的,以識別目標(biāo)在設(shè)計、實現(xiàn)或部署等方面存在的脆弱性為目標(biāo)的活動,可以將其實施的過程形式化為支持語義計算的流程模型。在高度隨機復(fù)雜的網(wǎng)絡(luò)空間環(huán)境下,面向漏洞挖掘的群體智能工程與4 大因素相關(guān),即參與漏洞挖掘的主體(人或機)、挖掘使用的工具、挖掘需達(dá)成的目標(biāo)任務(wù)和挖掘所處的物理網(wǎng)絡(luò)環(huán)境。漏洞挖掘即是在這4 類因素構(gòu)成的一定的時空條件下,在主觀或客觀的知識、經(jīng)驗或規(guī)則引導(dǎo)下完成的,宏觀上具備主體動態(tài)性、工具多樣性、目標(biāo)非線性和環(huán)境時變性等特點。
漏洞挖掘的主體A(Attendees)、工具T(Tools)、目標(biāo)G(Goal)和環(huán)境E(Environment)緊密關(guān)聯(lián)。通過對4 類要素分別選擇合適的模型建模,使群智漏洞挖掘過程的自動規(guī)劃運行成為可能。
關(guān)于漏洞挖掘的主體A,它的取值既包括不同能力水平的人員,也包括不同功能性能的計算平臺。基于知識圖譜對主體進(jìn)行基于屬性的多角度刻畫,形成關(guān)于主體的準(zhǔn)確畫像,促進(jìn)人機協(xié)同、機群協(xié)同、工具選取和任務(wù)規(guī)劃的自動化。
關(guān)于漏洞挖掘的工具T,它的范圍既包括傳統(tǒng)的掃描工具、探測工具和模糊測試工具,也包括符號執(zhí)行輔助、機器學(xué)習(xí)/深度學(xué)習(xí)驅(qū)動的漏洞挖掘工具。將這些工具歸納形成有序的工具譜系,按照“挖掘工具-功能組件-原子能力”三級結(jié)構(gòu)建立開放標(biāo)簽系統(tǒng),使其能夠以便捷、靈活的方式嵌入群智漏洞挖掘過程的自動化組織、重構(gòu)和編排中。
關(guān)于漏洞挖掘的目標(biāo)G,可以將其建模為自動機模型的狀態(tài)子集。如果將對象系統(tǒng)所有組件的狀態(tài)作為系統(tǒng)整體的狀態(tài)刻畫,則對象系統(tǒng)的狀態(tài)空間可看作組件狀態(tài)空間的笛卡爾積。在漏洞挖掘過程中,在用戶與工具的作用下,系統(tǒng)將發(fā)生狀態(tài)轉(zhuǎn)移。如果進(jìn)入了設(shè)計者未曾預(yù)期的、可導(dǎo)致被利用的狀態(tài),則在網(wǎng)絡(luò)空間中可認(rèn)為找到了一條漏洞的發(fā)現(xiàn)路徑。
關(guān)于漏洞挖掘的環(huán)境E,它既包括群體智能漏洞挖掘過程所依賴的環(huán)境,也包括該所過程所改變的環(huán)境。能夠?qū)β┒赐诰虍a(chǎn)生影響的環(huán)境要素包括政策、法規(guī)、條令、制度以及激勵等。微觀環(huán)境包括已知漏洞、軟件結(jié)構(gòu)、網(wǎng)絡(luò)狀態(tài)和平臺屬性等。不同要素對群智挖掘過程的影響各不相同,總體表現(xiàn)為條件或限制性的作用。
在定義了相關(guān)的要素后,可以將漏洞挖掘歸約為兩個遞進(jìn)問題——“如何在一定的環(huán)境約束E 下,通過選擇參與主體A 的子集a、挖掘工具T 的子集t,構(gòu)建對象系統(tǒng)狀態(tài)轉(zhuǎn)移路徑path,使系統(tǒng)進(jìn)入目標(biāo)集合G 中的可接受狀態(tài)集合g?”“如果存在多條這樣的路徑,如何選出其中效費比最優(yōu)的一條?”可以看出,最優(yōu)化路徑極值的求解是群智漏洞挖掘規(guī)劃的核心,需綜合考慮時間和空間上分散的漏洞挖掘主體和可獲取的工具集,將群體中的個體能力有效編排和聚合,在可接受的計算時間和空間復(fù)雜度內(nèi)完成挖掘工作。
群體智能系統(tǒng)的運行原理與傳統(tǒng)計算的“盡力而為”機制不同。它的能力與作用的發(fā)揮程度與適當(dāng)?shù)娜蝿?wù)策略和激勵機制直接相關(guān)。漏洞挖掘的主體具有多元性、工具具有多樣性、環(huán)境具有時變性、漏洞挖掘產(chǎn)出具有偶然性,如何在有限的資源條件下實現(xiàn)漏洞挖掘要素的最佳配置,發(fā)揮各個主體的優(yōu)勢形成合力,恰當(dāng)?shù)募钜龑?dǎo)機制非常關(guān)鍵。
激勵是通過理性化的制度來反映激勵主體與激勵客體相互作用的科學(xué)概念。從組織行為學(xué)看,激勵機制是指通過特定的方法與管理體系,滿足工作參與者的內(nèi)在需求和外在需求,調(diào)動工作參與者的積極性、主動性和能動性,將工作參與者對組織的貢獻(xiàn)度最大化,進(jìn)而實現(xiàn)組織目標(biāo)的過程。群體智能漏洞挖掘理念符合激勵科學(xué)中的目標(biāo)設(shè)定理論,主要研究者是埃德·洛克(Ed.Locke)和加里萊瑟姆(Gary P.Latham)[16]。激勵體系如圖1 所示。

圖1 基于群體智能的漏洞挖掘激勵體系
在激勵體系中,首先將系統(tǒng)的輸入轉(zhuǎn)化為與漏洞挖掘相關(guān)的安全需求,再將安全需求明確為需要執(zhí)行的漏洞挖掘任務(wù)。此過程中,將環(huán)境E 和系統(tǒng)目標(biāo)G 聯(lián)系起來,建立有效和有意義的任務(wù)內(nèi)容。其次,將系統(tǒng)目標(biāo)G 與主體A 通過利益驅(qū)動聯(lián)系起來,為主體參與任務(wù)執(zhí)行提供充分和持續(xù)的動機。再次,將主體A 與工具T 通過行為聯(lián)系起來,使主體能夠運用適當(dāng)?shù)墓ぞ哌_(dá)到任務(wù)推進(jìn)的目標(biāo)。最后,根據(jù)任務(wù)執(zhí)行結(jié)果,判斷挖掘目標(biāo)是否達(dá)成,并將任務(wù)執(zhí)行的過程進(jìn)行復(fù)盤,在輸出結(jié)果的同時,對相關(guān)主體進(jìn)行獎勵或懲罰。
基于目標(biāo)設(shè)定理論的漏洞挖掘群體智能涌現(xiàn)機制,本質(zhì)上是通過建立有效的和有意義的績效目標(biāo),激勵參與者按照任務(wù)牽引目標(biāo)實現(xiàn)的過程。目標(biāo)的設(shè)定要隨著任務(wù)的進(jìn)展、環(huán)境的變化、個體能力的增長、可用工具的情況適時變化,盡可能提高群智漏洞挖掘的效果。可用的優(yōu)化原則包括長期激勵與短期激勵相結(jié)合、個體目標(biāo)與整體目標(biāo)相結(jié)合、公平性與差異性相結(jié)合、時效性與明確性相結(jié)合等。
為實現(xiàn)漏洞挖掘過程的人機協(xié)同,引入群體智能。需要分解漏洞挖掘任務(wù),將復(fù)雜的任務(wù)系統(tǒng)拆解為相對獨立的子任務(wù),將子任務(wù)分配給各漏洞挖掘參與者(包括漏洞挖掘主體與工具)。根據(jù)任務(wù)的定義,將重復(fù)性較強、計算能力要求較高的子任務(wù)分配給計算平臺,將需要分析與理解的子任務(wù)分配給人類型主體(如網(wǎng)絡(luò)安全專家)[17]。
3.2.1 參與者能力刻畫
漏洞挖掘主體與漏洞挖掘工具是漏洞挖掘任務(wù)中的兩個主要參與者。對于挖掘主體來說,不同漏洞挖掘主體的挖掘能力與挖掘成本不同。例如,網(wǎng)絡(luò)安全人員有初學(xué)者與專家之分,計算平臺有算力與運行成本的區(qū)分。此外,不同網(wǎng)絡(luò)安全人員對不同種類的漏洞熟悉程度可能不同,不同漏洞挖掘工具也可能適用于不同的漏洞挖掘任務(wù)。因此,為發(fā)揮群體智能的功用,實現(xiàn)漏洞挖掘主體之間的優(yōu)勢互補和資源與工具的優(yōu)化配置,需要評估每個漏洞挖掘參與者在不同漏洞挖掘子任務(wù)上的能力,并利用數(shù)學(xué)語言量化描述評估結(jié)果,據(jù)此在不同漏洞挖掘子任務(wù)與其最佳適配的漏洞挖掘主體或工具之間完成雙向映射,啟動挖掘流程。
為實現(xiàn)不同漏洞挖掘參與者在不同漏洞挖掘子任務(wù)上能力的有效評估,需要對參與漏洞挖掘活動的各主體與工具進(jìn)行基于知識工程的本體屬性詳細(xì)畫像[18]。本文通過構(gòu)建可擴展、可查詢、可推理的漏洞挖掘知識圖譜,實現(xiàn)對人類型主體的基本屬性、社會屬性、偏好屬性、行為屬性和專業(yè)屬性,以及計算平臺類主體的基本屬性、硬件屬性、軟件屬性、配置屬性等必要信息進(jìn)行有序組織和管理,利用知識推理促進(jìn)人機協(xié)同、機群協(xié)同、工具選取等過程的自動化,引導(dǎo)產(chǎn)生合適的激勵效果。
知識圖譜的構(gòu)建過程如圖2 所示,主要分為以下步驟。
(1)采集不同來源的數(shù)據(jù),包括用戶手動錄入的信息、已知漏洞信息(可從NVD、CNNVD、CNVD 等現(xiàn)有安全漏洞數(shù)據(jù)庫中獲取)、挖掘工具以及軟件信息(可從Github,Maven 等代碼托管平臺獲?。┑?,主要分為結(jié)構(gòu)化數(shù)據(jù)、半結(jié)構(gòu)化數(shù)據(jù)以及非結(jié)構(gòu)化文本等。
(2)圍繞漏洞挖掘的目標(biāo)與需求,收集整理上述信息,根據(jù)相關(guān)專家的意見,對相關(guān)領(lǐng)域知識進(jìn)行概念化與形式化,形成規(guī)范的本體結(jié)構(gòu),并定義本體之間的相互關(guān)系[19-20]。本文將漏洞挖掘中的主要參與者包括網(wǎng)絡(luò)安全專家、計算平臺、漏洞挖掘工具等,以及4.1 節(jié)中定義的漏洞挖掘子任務(wù)、漏洞挖掘?qū)ο螅ㄈ畿浖畔⒌龋?,作為知識圖譜中的本體。定義“漏洞提交”(安全專家與漏洞之間)、“共同庫依賴”(不同軟件之間)、“攻擊類型相同”(不同漏洞之間)等關(guān)系,充分描繪漏洞挖掘過程。
(3)根據(jù)本體構(gòu)建結(jié)果,利用自然語言處理等技術(shù),從半結(jié)構(gòu)與非結(jié)構(gòu)化數(shù)據(jù)中抽取漏洞挖掘?qū)嶓w及其相關(guān)屬性。將實體屬性存入該實體在知識圖譜中對應(yīng)的節(jié)點,根據(jù)關(guān)系抽取結(jié)果確定節(jié)點之間的連接。
(4)利用實體鏈接技術(shù),對知識圖譜中的冗余節(jié)點進(jìn)行實體消歧,將不同數(shù)據(jù)源中獲取的實體對象鏈接到同一個節(jié)點[21]。
(5)利用Neo4j 等圖數(shù)據(jù)庫存儲知識圖譜,供后續(xù)使用。

圖2 知識圖譜構(gòu)建流程
在完成知識圖譜的構(gòu)建后,定義漏洞挖掘主體節(jié)點、工具節(jié)點以及漏洞挖掘任務(wù)節(jié)點之間的距離計算規(guī)則,通過距離計算確定挖掘主體與挖掘任務(wù)之間的匹配程度。利用基于符號的推理技術(shù)和基于統(tǒng)計的推理技術(shù)[22],估算漏洞挖掘主體節(jié)點、漏洞挖掘工具節(jié)點以及與漏洞挖掘任務(wù)節(jié)點之間的距離關(guān)系。前者基于經(jīng)典邏輯(一階謂詞邏輯或者命題邏輯)或經(jīng)典邏輯的變異(如說缺省邏輯)對知識進(jìn)行推理,后者通過機器學(xué)習(xí)方法利用統(tǒng)計規(guī)律實現(xiàn)節(jié)點間關(guān)系的推斷。
3.2.2 目標(biāo)函數(shù)與收益函數(shù)
定義漏洞挖掘的目標(biāo)函數(shù)如下:

其中,N1為3.1 節(jié)中定義的所有分配給漏洞挖掘主體(包括人類型主體和計算平臺)的挖掘任務(wù)的數(shù)量,N2為3.1 節(jié)中定義的所有分配給漏洞挖掘工具的挖掘任務(wù)的數(shù)量。Pi表示所有漏洞挖掘主體對第i個子任務(wù)的貢獻(xiàn)總和。Qi′表示所有漏洞挖掘工具對第i′個子任務(wù)的貢獻(xiàn)總和。γ為權(quán)重系數(shù)。
定義:

其中pk,i表示挖掘主體k對第i個漏洞挖掘子任務(wù)的貢獻(xiàn),ql,i′表示挖掘工具l對第j個漏洞挖掘子任務(wù)的貢獻(xiàn)。K與L分別表示漏洞挖掘主體與挖掘工具的總數(shù)。
定義:

式中Ai,k表示漏洞挖掘主體k在任務(wù)i上的能力度量,可利用3.2.1 節(jié)中構(gòu)建的知識圖譜通過知識推理確定。Ti,k表示挖掘主體k在任務(wù)i上的工作時長,φ(Ti,k)為時間-效用映射函數(shù),將工作時長映射為漏洞挖掘的績效因子。顯然,能力越強的主體,工作時間越長,對任務(wù)的貢獻(xiàn)也越大。e-λni為衰減項,ni為當(dāng)前致力于完成挖掘任務(wù)i的挖掘主體數(shù)量,λ為懲罰因子。當(dāng)致力于完成任務(wù)i的挖掘主體數(shù)量較多時,每個挖掘主體的貢獻(xiàn)會相應(yīng)減小,對整體目標(biāo)函數(shù)的優(yōu)化作用也會相對減弱。此時,系統(tǒng)會傾向于使挖掘主體向尚未涉及的任務(wù)分散。
對于挖掘工具,定義:

式中ηl,i′為漏洞挖掘工具l與漏洞挖掘任務(wù)i′的匹配程度,可以通過先驗知識與知識圖譜獲得。nl,i′為運行工具l的計算單元數(shù),通常在任務(wù)啟動時根據(jù)計算需求進(jìn)行分配。Tj表示計算單元j的工作時間。
為充分發(fā)揮人類型挖掘主體(如網(wǎng)絡(luò)安全工程師)的主觀能動性,需要設(shè)定合理的激勵機制使其通過參與漏洞挖掘工作而獲得回報。
設(shè)人類型漏洞挖掘主體k獲得的收益為Uk,定義:

式中,pk,i為參與者k對任務(wù)i的貢獻(xiàn),φ(pk,i)為貢獻(xiàn)-激勵映射函數(shù)。C為漏洞的類別數(shù)。Pi,l為參與者在完成任務(wù)i時發(fā)現(xiàn)類型為l的漏洞的概率,可根據(jù)參與者以前的任務(wù)經(jīng)歷進(jìn)行評估。Bl為發(fā)現(xiàn)類別為l的漏洞后挖掘者獲得的額外獎勵。由此可見,人類型漏洞挖掘主體的收益由其對漏洞挖掘任務(wù)的貢獻(xiàn)與提交漏洞后獲得的獎勵兩部分組成。
為實現(xiàn)計算資源的優(yōu)化配置,定義ζk′為計算平臺類主體k′的凈運行成本:

式中Ck′,i為計算平臺k′參與任務(wù)i′時花費的運行成本,與運行時間呈現(xiàn)正相關(guān)。計算平臺類主體的凈運行成本等于其實際運行成本與貢獻(xiàn)的差值。
同理,可計算漏洞挖掘工具的凈運行成本σl:

3.2.3 工作分配機制
漏洞挖掘任務(wù)的分配過程可以視為一個多目標(biāo)優(yōu)化的過程。通過為參與者分配適合的漏洞挖掘任務(wù),使總體目標(biāo)函數(shù)、參與漏洞挖掘的人類型主體的收益函數(shù)以及計算平臺與工具的凈運行成本的相反數(shù)均獲得最大值。由于各個目標(biāo)之間存在相互制約,多目標(biāo)優(yōu)化問題通常不存在使所有目標(biāo)性能都達(dá)到最優(yōu)的解。因此,工程實際中,通常以迭代方式求解問題的Pareto 解集作為最優(yōu)解。
借鑒文獻(xiàn)[23]中的方法,將優(yōu)化目標(biāo)表示為:

其 中T=(T1,T2,…,TN)T,N=(N1+N2)(K1+K2+L)。向量T中每個元素表示某個漏洞挖掘主體(或工具)在某個漏洞挖掘子任務(wù)上的工作時間,滿足0 ≤Ti≤τ,i=1,…,N,其中τ為工作時間上限,由環(huán)境約束E 確定。Ti=0 表示當(dāng)前實體(或工具)沒有參加對應(yīng)的漏洞挖掘任務(wù)。
為計算方便,將約束條件0 ≤Ti≤T變形為-(Ti)2+τTi≥0,則多目標(biāo)優(yōu)化問題可以表示為:

為求解該問題,需要將約束問題轉(zhuǎn)換為非約束問題。
定義懲罰項:

θ為懲罰因子。
為描述方便,將G(T)重新表述為G(T)=(G1(T),G2(T),…,Gm(T))T,m=K1+K2+L+1,則對于第j(j=1,2,…,m)個優(yōu)化目標(biāo),構(gòu)建包含懲罰項的目標(biāo)函數(shù)如下:

對gj(T+d)進(jìn)行泰勒展開,有:

對于Tk來說,迭代方向d滿足d=T-Tk,故目標(biāo)函數(shù)gj(T)可以表示為:

定義目標(biāo)評價函數(shù)η(T)為所有目標(biāo)函數(shù)的加權(quán)和:

計算η(T)對d的求導(dǎo)結(jié)果,得到評價函數(shù)在Tk處的迭代方向dk,表達(dá)式為:

與牛頓法中的牛頓方向的定義相同。
當(dāng)η(T)不滿足連續(xù)二階可導(dǎo)時,不能保證牛頓方向始終為其下降方向。為使優(yōu)化過程中所有迭代方向均為下降方向,提高優(yōu)化效率,在此處增加一個判別環(huán)節(jié),即當(dāng)某處牛頓方向為上升時,將評價函數(shù)η的負(fù)梯度方向作為迭代方向。
定義ak為牛頓方向與負(fù)梯度方向的內(nèi)積,則:

求解Pareto 解的具體步驟如下。
步驟1:每個優(yōu)化目標(biāo)構(gòu)建包含懲罰項的目標(biāo)函數(shù)gj(T)和目標(biāo)評價函數(shù)η(T)。
步驟2:給定起始點T0,確定停止條件ε與μ、迭代步長α以及懲罰因子θ。
步驟3:依次計算目標(biāo)函數(shù)gj(T)的梯度,如果,則停止迭代,直接跳轉(zhuǎn)至步驟7。
步驟4:根據(jù)式(17)計算迭代方向dk。
步驟6:更新變量T的值,令Tk+1=Tk+αdk,k=k+1,返回步驟3。
步驟7:計算懲罰項h(T),如果|h(T)|≤μ,則停止迭代,并輸出Tk;否則,令θ=10θ并返回步驟2,目的是確保求得的解滿足所有約束條件。
漏洞挖掘參與者的能力存在差異,在實際應(yīng)用過程中通常會通過冗余分發(fā)的形式,將同一個漏洞挖掘子任務(wù)分發(fā)給不同的人。因此,需要由網(wǎng)絡(luò)安全專家對不同漏洞挖掘者提交的漏洞報告進(jìn)行匯總分析,探討漏洞的形成機理,酌情給漏洞提交者發(fā)放額外獎勵,進(jìn)而形成初步的漏洞檢測報告發(fā)布在漏洞挖掘平臺上,指導(dǎo)其他漏洞挖掘參與者進(jìn)一步發(fā)現(xiàn)新的漏洞,提高漏洞挖掘的準(zhǔn)確率和效率。
漏洞挖掘是網(wǎng)絡(luò)安全領(lǐng)域的重要課題,軟硬件系統(tǒng)漏洞使得攻擊者可以借此入侵系統(tǒng)、竊取信息或者控制、破壞目標(biāo),從而引發(fā)各種網(wǎng)絡(luò)安全問題。網(wǎng)絡(luò)是一個整體,任何一個部件存在漏洞都會成為黑客攻擊的跳板,成為整個系統(tǒng)的薄弱環(huán)節(jié)。作為近幾年的新興熱點,群體智能為實現(xiàn)人機協(xié)同的軟件與系統(tǒng)脆弱性研究提供了先進(jìn)的技術(shù)手段。本文創(chuàng)造性地將群體智能技術(shù)集成到網(wǎng)絡(luò)安全的應(yīng)用場景中,可以有效降低漏洞挖掘的人力與資源成本,提高挖掘效率。未來將在本文研究成果的基礎(chǔ)上搭建基于群體智能的漏洞挖掘平臺,利用群體智能技術(shù)更具科學(xué)性的漏洞挖掘策略與知識匯總策略,進(jìn)一步實現(xiàn)漏洞挖掘任務(wù)的群體化與智能化。