李鳳華,李子孚,李凌,張銘,耿魁,郭云川
(1. 中國科學院信息工程研究所,北京 100093;2. 中國科學院大學網絡空間安全學院,北京 100049;3. 通信網信息傳輸與分發技術重點實驗室,河北 石家莊 050081;4. 西安電子科技大學網絡與信息安全學院,陜西 西安 710071)
以專用網絡、天地一體化網絡和物聯網為代表的復雜網絡[1]面臨嚴峻的安全威脅。中國互聯網絡信息中心于2018年7月發布的《第42次中國互聯網絡發展狀況統計報告》顯示,2018年上半年我國境內被植入后門網站數量累計16 210個,收集整理的信息系統安全漏洞累計7 748個,接到網絡安全事件報告累計54 190件。為應對上述威脅,威脅監測越來越受到人們的重視,在Crowd Research發布的2017年威脅的監測、檢測和響應報告中,67%被調查的信息安全專業人員認為威脅監測是該領域的首要任務,超過威脅分析的44%。威脅監測通過在網絡設備中部署采集策略,實現對數據的有效采集,為威脅分析提供數據基礎。
然而,由于復雜網絡環境的如下特點,使通過人工方式制定采集策略難以為繼:1)節點數量多,依據Gartner發布的數據,2020年全球聯網設備數量將達260億臺,各類設備的大規模互聯,使網絡中的節點數量呈爆發式增長趨勢;2)節點處理能力差異,網絡節點部署于不同位置,且功能需求不同,導致節點處理能力差異大,由于上述2個特點使人工管理網絡成本高,因此需要自動化、統一管理;3)安全需求變化大,天地一體化網絡、移動互聯網等網絡由于節點隨遇接入導致其拓撲結構高變,使安全威脅蔓延,安全需求動態變化,所以需要對采集策略進行動態調整。
因此,自動化設置采集策略的方案被提出,但依然存在如下問題:1)在采集內容方面,大多使用查找表的方式確定采集內容,缺乏動態調整的特性;2)在采集頻率方面,大多采用等時間間隔、周期性的采集方式,沒有考慮重復采集數據的相似度,部分采集方案[2-4]考慮采集數據冗余的問題,提出了一些動態改變采集頻率的方法,但是其應用場景和采集數據的類型較為單一;3)在采集資源消耗方面,未充分考慮采集設備當前的資源水平,不適用于復雜網絡環境中設備的計算和存儲資源受限的場景。
為了解決現有工作的不足,本文將安全策略分為高層監測需求(TDR, top detection requirement)、中層采集策略(ICP, intermediate collection policy)和低層設備指令(LDC, low device command)這3層結構,形成采集策略層次模型(CPHM, collection policy hierarchy model)。基于該模型,提出了基于采集成本和收益平衡的策略精化方法,將以威脅監測為目標的高層監測需求,綜合考慮采集貢獻度和資源消耗,細化為低層設備指令,在降低采集數據量的同時保證采集數據的精確度,做到極小量按需精準采集。本文的主要貢獻如下。
1) 提出了面向威脅監測的采集策略精化系統模型,設計網絡環境和策略的3層結構,以及策略精化規則和策略模板。
2) 針對高層監測需求的威脅類型到中層采集策略的采集項和采集頻率的精化問題,通過對采集貢獻度和采集資源消耗的量化,設計目標函數,通過遺傳算法求解,得到與待采集設備資源水平對應的采集項和采集頻率。
3) 對所提方法進行了實驗驗證,實驗結果表明,本文方法可針對不同威脅類型生成個性化的采集策略,并在待采集設備的資源水平降低時,自適應地減少采集項,降低采集頻率。
現有的策略精化[5]大多集中在訪問控制、網絡服務質量管理、能源優化等方面。在訪問控制方面,主要對訪問主體、客體和操作權限進行細化;在網絡服務質量管理方面,通過將服務質量細分為一系列服務級別目標(SLO, service level objective),通過實現每個SLO以實現整體的服務質量;在能源優化方面,采用調節鏈路速率、關閉或睡眠負荷低的設備的方式以減少能源消耗。
根據策略精化使用的技術,可以將其分為基于規則的策略精化、基于歷史數據的策略精化和基于邏輯的策略精化等。
基于規則的策略精化的核心思想是使用表來關聯用戶、應用和服務,通過查找表的方法建立精化關系,適用于服務質量(QoS, quality of service)管理等。
文獻[6]提出的策略精化引擎(POWER, policy wizard engine for refinement)是首次采用基于策略模板的精化技術,其將抽象策略中的主體、客體和權限根據上下文信息等系統模型中定義的組織實體映射為實現層的主體、客體和操作權限。文獻[7-8]將系統進行分層,通過規則對各層間的策略進行精化。其中,文獻[7]利用上述系統分層思想開發了MoBaSeC(model based service configuration)工具,該工具支持交互式圖形建模、自動模型分析和策略精化生成配置文件,文獻[8]在文獻[7]的基礎上,定義了一系列公理,以獲取策略規則中隱含的假設,驗證了策略精化的一致性和完備性,同時形式化表示模型到現實世界的映射。
文獻[9-10]使用ECA(event condition action)范式定義策略。其中,文獻[9]提出了一個在領域、語言、抽象級別等方面通用的 ECA策略自動化精化的方法,并應用在通信系統中來管理系統的行為,采用領域建模以定義高層中的領域術語,包括領域、關系、屬性等;策略建模包括策略中的事件、條件和行為;領域和策略的連接建模給出領域術語與策略之間的關系,然后定義高層策略和低層策略之間的精化規則,最后基于規則實現自動化的策略精化。文獻[10]使用 ECA范式制定規則,在系統運行時,滿足策略執行條件后,將策略元素進行實例化。
文獻[11-13]針對策略元素和規則進行研究。其中,文獻[11]提出了提取安全策略規則的方法,使用需求工程中的技術來獲取資產、威脅和對策,該方法用于在運行時實例化特定域的安全需求。文獻[12]根據規則從自然語言中提取訪問控制相關要素,并在歐盟數據保護條例中得到應用。文獻[13]提出了安全策略詞匯模型,描述高層安全策略和底層可執行策略,并制作了支持多平臺、多策略語言和規則范式的工具。
基于規則的策略精化的優點是自動化程度高、精化速度快,缺點是精化的正確性取決于表內容的正確性、元素固定、不支持動態擴展和缺乏動態調整特性。
基于歷史數據的策略精化的核心思想是學習系統的歷史行為,并預測將來的行為來達到策略精化的目的。
文獻[14-15]針對精化目標與歷史數據的相似性進行策略精化。其中,文獻[14]提出了基于案例推理(CBR, case-based reasoning)的策略精化方法,該方法建立高層策略和低層參數配置的映射關系,當需要為新的高層策略查找配置參數時,查找歷史數據庫中最相似的案例,或者在一組案例的配置參數間插入新的系統參數,以確定合適的配置參數。此外,文獻[14]還提出了對策略聚類以減少查找的數據量,使用主成分分析進行降維以減少存儲空間。文獻[15]提出了一種基于文本挖掘的相似性度量方法,從策略庫中選擇類似的策略以設置本次的策略。
文獻[16-17]基于歷史數據,使用決策樹等機器學習的方法進行策略精化。其中,文獻[16]基于決策樹的分類方法,利用系統狀態等指標的歷史信息,找到影響高層策略相應的系統狀態指標,并確定閾值。其主要過程分為4個階段:1)測試和開發階段,通過設定高層次的目標,并運行系統,收集低層次系統狀態指標;2)分類階段,利用收集到的低層次系統狀態指標構造決策樹;3)策略細化階段,通過決策樹中葉子節點為真的路徑找到關鍵的低層次策略元素(系統狀態指標);4)確定限制范圍階段,確定低層次策略參數的限制范圍,該方法適用于服務等級協議(SLA, service-level agreement)等低層次策略的參數是數值型并且容易量化的場景。為減少數據中心的能源消耗,文獻[17]通過計算能耗和性能要求之間的效用函數,使用決策樹的方法對應用場景進行分類,將業務策略精化為網絡級策略。
文獻[18]通過建立非功能需求框架,將安全需求劃分為由多個軟目標實現,并將每個軟目標細化為多個具體的操作化指令,構建策略精化的樹狀結構,對樹中所有葉子節點計算評分,用于量化意圖的符合情況,結合網絡基本配置和服務依賴情況,實現了基于意圖的策略精化。
基于歷史數據的策略精化的優點是精化的準確性會隨歷史數據集規模的增大而增加,缺點是難于構建歷史數據庫,并且數據集中的錯誤數據會影響策略精化的準確性。
基于邏輯的策略精化的核心思想是采用事件演算、反繹推理、模型檢驗等方式[19-22]進行策略細化。
文獻[23]使用事件演算(event calculus)形式化地定義策略,首先,利用需求工程領域的目標分解(KAOS, knowledge acquisition in automated specification)方法,將抽象目標分解為可操作的目標;其次,將可操作目標映射到相應模塊,使用統一建模語言(UML, unified modeling language)對環境中各種系統實體及其關系進行建模;最后,利用反繹推理推導出使可操作性目標為真的事實,完成策略精化。文獻[24]使用事件演算描述系統狀態和策略應用的條件,將策略精化通過分解和操作這2個階段完成,其中,分解階段將分解規則作為輸入,并將操作化策略與對象類進行匹配;操作階段使用特定領域的描述信息和高層策略推導出可執行的動作。文獻[25]提出了專家預先定義細化目標,再使用線性時序邏輯定義不同目標間的關系,通過模型檢驗進行策略精化,該方式更具自動性。
基于邏輯的策略精化的優點是具有一定程度的策略沖突消解能力,缺點是計算復雜度高。
策略精化的其他方法包括基于本體的方法、不同策略描述語言之間的翻譯等。基于本體的方法利用本體建模,保證語義一致性;不同策略描述語言之間的翻譯包括基于角色的訪問控制(RBAC,role-based access control)策略翻譯為基于屬性的訪問控制(ABAC, attribute-based access control)策略等,為策略統一管理和精化提供了支撐。文獻[26]為了解決單域內訪問控制策略向多個域翻譯、轉換的問題,將訪問控制策略轉換成統一的二進制位串,然后生成較少規則數的訪問控制標識語言(XACML, extensible access control markup language)描述的策略,通過動態驗證和靜態驗證的方法,驗證了轉換前后策略語義的一致性,最后為關系型數據庫轉化為可擴展標識語言(XML, extensible markup language)格式的文檔提供了安全發布函數。
通過對上述策略精化方法的分析可以看出,現有對策略精化的研究較少關注于威脅監測和信息采集領域,且策略精化方法需要在適用領域和自動化程度間進行權衡,如圖1所示。由圖1可知,越特定的方法,策略精化的自動化程度越高,需要人員參與的程度越低;反之,越通用的方法,策略精化的自動化程度越低,需要人員參與的程度越高。

圖1 策略精化技術的自動化級別
網絡信息系統通常包括用戶層、服務層和拓撲層等層次結構,針對威脅監測,各層對應的安全策略分別是高層監測需求、中層采集策略和低層設備指令,形成采集策略層次模型,如圖2所示。
采集策略層次模型規范了復雜網絡環境下所有威脅監測相關的系統、服務、實體間的內部結構和相互間的關系。用戶層表達了整個網絡的安全監測目標和需求,即系統和管理活動應該完成何種監測任務和安全功能,例如,在指定的網絡或者指定的主機上監測某類安全威脅,這一層是編寫安全監測策略的基礎和依據。服務層將安全需求實例化為安全服務,是從系統需求到網絡配置映射的中間過程。拓撲層表達了網絡設備、安全設備和終端等網絡節點及其連接關系,以及在各網絡節點上提供了何種監測機制以滿足上層的安全監測需求,實現了安全目標的細化。

圖2 采集策略層次模型
下面分別定義高層監測需求、中層采集策略、低層設備指令及策略精化規則和策略模板,為策略精化引擎計算威脅類型到采集項的精化提供基礎。
定義 1 高層監測需求為在指定范圍內監測指定威脅的需求及執行監測的約束條件。
高層監測需求可用三元組(SCOPE,THREAT_TYPE, CONDITION)表示,即 TDR=(SCOPE, THREAT_TYPE, CONDITION)。其中,SCOPE表示采集范圍的集合,可以是邏輯范圍(如子網、子網類型、服務、服務類型、安全域、管理域等),也可以是物理范圍(如地理區域、行政區域等);THREAT_TYPE表示需要監測的威脅類型,如THREAT_TYPE={DDoS, Unauthorized Access,Traffic Anomaly, FTP Trojan, … , SQL Injection},其中,DDoS、Unauthorized Access、Traffic Anomaly、FTP Trojan、SQL Injection分別表示分布式拒絕服務攻擊、非法訪問、流量異常、FTP木馬、SQL注入攻擊;CONDITION表示執行威脅監測的約束集,如執行威脅監測所需消耗資源的上限,包括計算、存儲、傳輸和電量等資源限制,可用于限制在數據采集和威脅分析階段的資源消耗。
定義 2 中層采集策略為在何種條件下和何種機器上,以何種頻率采集何種內容。
中層采集策略可用四元組(DEVICE, COLLECT_ITEM, FREQ, CONDITION)表示,即ICP=(DEVICE, COLLECT_ITEM, FREQ, CONDITION)。其中,DEVICE表示待采集設備的集合,待采集設備可以是IP地址、管理員指定的ID等,待采集設備根據采集范圍和威脅類型精化得出;COLLECT_ITEM 表示采集項的集合,可以是系統狀態(如CPU利用率、內存利用率、進程信息等),也可以是流量信息(如原始流量信息、流量統計信息等),還可以是日志信息(如操作系統日志、應用程序日志等),采集項根據威脅類型精化得出,具體計算過程在第4節介紹;FREQ表示采集項集合中各采集項的采集頻率,對于系統狀態,采集頻率以實際采集頻率與固有采集頻率的比值表示,例如,CPU利用率的固有采集頻率為 10次/min,實際采集頻率為20次/min,則CPU利用率的采集頻率為 2,采集頻率在根據威脅類型計算采集項的過程中一起計算得出,具體計算過程在第4節介紹;CONDITION表示執行數據采集的約束集,包括計算、存儲、傳輸和電量等資源限制,由高層監測需求中的CONDITION精化得出。
定義 3 低層設備指令為在策略執行點上執行的具體采集指令及采集頻率。
低層設備指令可用三元組(AGENT, CMD,FREQ)表示,即LDC=(AGENT, CMD, FREQ)。其中,AGENT表示在待采集設備上執行采集策略的策略執行點,可以是通用采集軟件(如SNMP的代理、Snort、漏洞掃描工具等),也可以是自研的采集程序(如采集系統狀態信息、流量采集器、威脅感知器等);CMD表示AGENT可執行的具體的采集指令;FREQ表示實際采集頻率。
定義4 采集策略精化(CPR, collection policy refinement)為從高層監測需求到低層采集代理可執行的采集指令的翻譯過程。該翻譯過程分為 2個階段,第一階段由高層監測需求翻譯為中層采集策略,該過程是一個語義變換的過程,是威脅分析函數的逆函數,也是本文研究的重點,具體求解過程在第4節介紹;第二階段由中層采集策略翻譯為低層設備指令,該過程是一個語法變換的過程,可采用基于規則和查找表的方式計算,可參考文獻[13,27]。
定義 6 策略精化規則集(PRRS, policy refinement rule set)為高層監測需求到中層采集策略、中層采集策略到低層設備指令之間的精化規則,包括如下類型的規則。
規則 1 采集范圍、威脅類型、待采集設備精化規則,表示采集范圍、威脅類型到待采集設備的映射。

規則 2 威脅類型、采集項精化規則,表示威脅類型到采集項的映射。

規則 3 待采集設備、策略執行點精化規則,表示待采集設備到策略執行點的映射。

規則 4 采集項、采集配置指令精化規則,表示采集項到采集配置指令映射。

定義 7 策略模板是存儲結構化策略元素的通用策略,提供有關策略精化引擎輸入和輸出的必要信息。
采集策略模板示例如下。

上述策略模板實例化后如下。
detect threat: DDoS; condition: CPU utility < 10%,network bandwidth <10; collect content: OS Log-1,CPU Utility-2, Memory Utility-2, ProcessInfo-1。
該模板表示監測DDoS攻擊,約束條件為每臺待采集設備的CPU利用率占用小于10%,網絡帶寬占用小于10 KB,采集項為操作系統日志、CPU利用率、內存利用率、進程信息,采集頻率依次為各項固有采集頻率的1、2、2、1倍。
策略精化規則集中規則的實例化組成了一系列采集策略,其中,RSTDEV、RDEVAGT、RITEMCMD規則采用預定義信息模型方式獲得,RTC規則采用優化計算方式獲得,在本文第4節著重介紹。
基于采集策略層次模型的策略精化,從高層監測需求精化為中層采集策略,最終翻譯為低層設備指令,如圖 3所示,其中①~⑨表示策略精化詳細流程。

圖3 策略精化框架
由高層監測需求到低層設備指令的精化算法如算法1所示。
算法1 采集策略精化算法CPR(s,t,c)
輸入 高層監測需求TDR(s,t,c),目標網絡中的設備集合D(d1, …,dn)

采集策略精化算法具體步驟介紹如下。
步驟 1 監測需求提取與待采集設備確定(算法1的2)~7))。提取高層監測需求中的采集范圍、威脅類型、執行威脅監測的約束集,使用RSTDEV規則,查找到待采集設備集合。
步驟2 策略庫查找(算法1的9))。根據威脅類型和執行威脅監測的約束集,查找對應的策略實例,如果查找成功,則跳轉到步驟 4,如果查找失敗,則跳轉到步驟3。
步驟 3 策略精化引擎生成新采集策略并存入采集庫(算法1的11)~14))。將威脅類型、執行威脅監測的約束集和待采集設備的當前運行狀態信息作為策略精化引擎的輸入,結合采集代理的采集能力、威脅特征等信息,策略精化引擎計算采集收益和采集成本,生成適用于待采集設備當前運行狀況的最優的采集項集合和各采集項對應的采集頻率,其具體計算過程在第4節介紹。最后,將威脅類型、待采集設備的當前運行狀態信息、采集項及對應的采集頻率集合作為一條實例化采集策略,存儲到策略庫中,對策略庫進行動態擴充。
步驟4 中層策略到低層策略翻譯(算法1的16)~17))。對于每個待采集設備,根據 RDEVAGT規則,獲取策略執行點信息,然后根據策略庫中的采集項及對應的采集頻率,使用RITEMCMD規則,將采集項翻譯為采集配置指令,最后,在各策略執行點上,下發采集配置指令。
本節提出了一種基于優化算法的威脅類型到采集項的精化方法,研究在不同資源水平下,執行采集策略的收益和因采集引起的資源消耗損失之間的平衡。通過優化求解,使策略精化引擎依據各待采集設備的資源水平生成相應的采集策略,提高采集收益,減少資源消耗。
從威脅類型到采集項的精化主要考慮采集收益和采集成本這2個方面的因素,其中,采集收益用于衡量采集信息對威脅監測的貢獻度,采集有效數據越多,收益越大。一般情況,采集收益隨采集項的采集頻率單調遞增,而邊際收益隨采集頻率單調遞減,即采集收益函數應滿足以下限制條件。
1) 采集收益的一階導數大于或等于0。
2) 采集收益的二階導數小于或等于0。
本文的采集收益定義為

其中,λ表示模型的系數,λ>0;ci表示采集項i的采集貢獻度,ci> 0 ;xi表示采集項i的采集頻率,xi≥ 0 ,采集頻率分為連續和離散2種類型,當采集項為系統狀態類或日志類時,采集頻率為連續值;當采集項為流量時,采集頻率取離散值0或1,xi= 0 時,表示不對采集項i進行采集。根據式(2)和式(3)可知,式(1)滿足限制條件1)和2)。

采集成本衡量因采集引起的待采集設備的資源消耗,包括待采集設備在計算資源、存儲資源和傳輸資源等方面的消耗,一般認為采集消耗的資源越少越好,尤其是在資源受限環境,例如,天地一體化網絡環境中衛星的計算資源和存儲資源十分有限,用于管理的信令大小僅有數百字節,不能因采集影響管理網絡的正常運行。采集成本定義為

下面,分別從采集收益和采集成本這2個方面進行介紹。
由于同一采集項對監測多種威脅均有相關性,因此需要對采集項對威脅監測的貢獻程度進行整體考慮,參考軟件工程中的非功能性需求(NFR, non-functional requirement)框架[28],將威脅監測作為最高層的安全目標,將待監測的威脅類型作為軟目標(softgoal),將采集項作為操作(operationalization),參考軟件目標依賴圖(SIG,softgoal interdependency graph)設計威脅依賴圖(TIG, threat interdependency graph),如圖4所示。
TIG定義為

其中,V∈{TMG, TTG, CT}是頂點集合,TMG代表威脅監測目標的集合,是圖4中的根節點,TTG代表威脅類型的集合,是圖 4中的中間層節點,CT代表采集項集合,是圖4中的葉子節點;E是邊e的集合,e=(v1,v2)表示v1和v2間具有連接關系,其中,v1,v2∈V。
本文參考文獻[29]中的威脅分類方式和檢測方法,添加了威脅類型對于安全目標的影響程度。為計算采集項對威脅監測的影響,參考Affleck等[30]對 NFR框架中操作化得分的定量計算,利用遞推法求底層采集項對監測威脅的貢獻程度。
首先,威脅類型定義為

其中,T T Gweight為該威脅類型對于安全目標的影響權重,如圖4中根節點到中間層節點的數值,其數值越大,代表對網絡安全的影響程度越高。

圖4 威脅依賴圖示例
采集項的貢獻度定義為

利用圖4所示的TIG,計算采集項CPU利用率的貢獻度,CPU利用率與拒絕服務攻擊和流量異常均有相關性,CTstore=(0.80×0.60)+(0.50×0.30)=0.63,代表CPU利用率對于威脅監測的貢獻度是0.63。
對于系統狀態類和流量類采集項與威脅的關聯度,可以根據KDD99數據集[31]中連接的41個特征劃分,并用其異常程度定量描述采集項與威脅的相關度。
對于日志類采集項與威脅的關聯度,可定義為

其中,validFieldNumi為采集項i的威脅分析有效字段數,fieldNumi為采集項i記錄的總日志字段數,validRatei為日志有效率,即可被威脅分析使用的有效記錄數與總采集記錄數的比值。
因采集引起的待采集對象的成本主要從計算資源、存儲資源和傳輸資源這3個方面進行考慮。
1) 計算資源
利用Perf等性能分析工具,對不同采集項單獨進行采集時捕獲其CPU利用率(task-clock-msecs),預估各采集項的計算資源消耗。各采集項的計算成本定義為

其中,ai為采集項i的計算成本,xi為采集項i的采集頻率。
2) 存儲資源
在進行本地緩存時,各采集項的存儲成本定義為

其中,ni為采集項i的字節數。
3) 傳輸資源
與采集信息傳輸相關的時延有處理時延、排隊時延、傳輸時延、傳播時延等,當前網絡帶寬為BW,則各采集項的傳輸成本定義為

總采集成本如式(4)所示,其中,xi是決策屬性,代表采集頻率。當采集項i為系統狀態和日志時,xi∈ [ 0,+ ∞) ;當采集項i為流量時,xi∈ { 0,1},“0”代表不采集,“1”代表采集。采集頻率乘以預設固有采集頻率等于實際采集頻率。
wc、ws和wn是3個權重,分別代表計算資源、存儲資源和傳輸資源對于成本計算的重要程度,由于計算資源、存儲資源和傳輸資源的變化是可逆的,因此可以采用自適應加權。當上述三者中的某一項剩余資源減少得快時,會導致其對采集成本的影響較大。wc、ws、wn分別定義為


其中,C、S和N分別是采集代理的當前剩余的計算資源百分比、剩余的存儲資源百分比和剩余的傳輸資源百分比。當某一項資源剩余情況較好時,會導致采集方案對該項采集成本的影響不明顯,并且可以限制在不同資源水平下的采集成本,例如,在其他條件相同的情況下,電量充沛時的采集成本較低,電量剩余量少時的采集成本增加。C、S分別定義為

目標函數定義為

其中,X表示系統狀態類和日志類的采集頻率集合,是連續變量,取“0”代表不采集,其他值代表采集頻率;Y表示流量類的采集頻率,取“0”代表不采集,取“1”代表采集。約束條件表示計算資源消耗小于或等于存儲資源消耗小于或等于傳輸資源消耗小于或等于
RTC的精化是一個離散型和連續型混合的非線性優化問題,求解該問題的方法有數學方法、演化計算方法等,其中,數學方法包括罰函數法、可行方向法、逐步二次規劃法等,演化計算方法包括遺傳算法、粒子群算法、文化算法等。演化計算用概率的變遷規則來控制搜索的方向,在概率意義上朝最優解方向靠近,在有限時間內可得到近似最優解,本文采用遺傳算法對威脅類型到采集項進行精化,主要分為如下3個部分。
1) 編碼
編碼是根據問題的解空間確定染色體中個體表現型的長度,本文采用二進制編碼作為基因型編碼,若采集頻率取值范圍為[a,b],精度為小數點后l位,則二進制編碼長度k需滿足

對式(17)進行解析,得到k的取值范圍為

本文方案中,對于系統狀態類和日志類采集項的采集頻率為連續型,其取值范圍為[0,10],設定精度為小數點后 4位,按照式(18),二進制編碼串長度為17;對于流量類采集項的采集頻率為離散型,取值為0和1,二進制編碼串長度為1。
2) 適應度函數
適應度函數是對算法所產生的染色體進行評價,并基于適應度值選擇染色體的函數,本文采用式(16)中的目標函數作為適應度函數,采用式(16)中的約束函數判斷染色體中的個體是否是可行解,若不滿足約束函數,則標記為非可行解,在對當代種群的最優個體做記錄等操作時不考慮非可行解。
3) 遺傳算子
遺傳算子分為交叉算子、變異算子和選擇算子。交叉操作在種群中隨機選取2個個體作為父個體,并把2個父個體的部分碼值進行交換操作。目前主流的交叉算子包括單點交叉、雙點交叉、均勻交叉、算術交叉等,本文采用經典的單點交叉,以最大限度地保存父個體的優勢。對于變異算子,本文采用以變異概率對染色體中的個體進行補運算,以完成二進制編碼中新搜索領域的開辟。除上述交叉算子和變異算子外,還需確定合適的交叉概率Pc和變異概率Pm,綜合考慮收斂速度、產生新個體的能力,達到防止算法陷入局部最優的目的。目前 2個概率值主要依靠經驗的方法得到,一般情況下Pc取值范圍為[0.40, 0.99],Pm取值范圍為[0.000 1,0.100 0][32]。選擇算子依據個體適應度值選擇在下一代中被保留還是淘汰,目前主流的選擇算子有輪盤賭選擇、排序選擇、期待值選擇等,本文選擇輪盤賭方法,使適應度值大的染色體被選中的概率大。
本文針對高層監測需求中的威脅類型到中層采集策略的采集項和采集頻率的精化進行模擬實驗。實驗平臺為:Intel(R) Core(TM) i7-7500U 2.70 GHz,8 GB 內存,1 TB 存儲,Windows 10操作系統,Python 3.6.5軟件。通過設置不同的高層監測需求,驗證監測不同威脅類型和待采集設備處于不同資源水平情況下,精化后的采集項和頻率的合理性。
表 1為實驗中各采集項的采集貢獻度。對于DDoS攻擊,在受到該類攻擊后,系統的計算和存儲資源水平受到影響,所以 CPU占用率和內存利用率這 2項采集項的貢獻度較大,而端到端的 IP流量也有利于分析該類攻擊,所以其貢獻度也較大;對于非法訪問,在受到該類攻擊時,總體流量不會有明顯變化,所以端到端的 IP流量貢獻度較小,但是針對非法訪問的服務流量需要著重采集,所以特定服務的業務流量采集項的貢獻度較大;對于FTP木馬,采集FTP服務日志及特定服務的業務流量有利于分析該類威脅,所以這2項的貢獻度較高。

表1 采集項采集貢獻度驗證實驗參數
表2為各采集項每次采集的計算、存儲、傳輸的成本。日志類采集項以讀取文件方式進行采集,占用非常少的計算資源,在存儲和傳輸成本方面,每次增量采集的日志量一般不大,所以分別估算為0.192和0.128;流量類的端到端的IP流量采集方式占用計算資源較日志類高,同時過濾某一特定服務的業務流量也較端到端的 IP流量采集方式計算成本大,所以這2項的計算成本分別估算為0.200和0.600,在存儲和傳輸成本方面,端到端的 IP流量采集方式最高,估算為 0.300,特定服務的業務流量采集較全采集的存儲和傳輸成本低,估算為0.128;系統狀態類采集項以系統調用或讀文件方式進行采集,計算成本適中,估算為 0.300,在存儲和傳輸成本方面,由于存儲狀態類信息占用的空間少,因此較其他類低很多,估算為0.040。

表2 采集項采集成本驗證實驗參數
實驗分為如下3個部分。
1) 面對不同威脅類型時,生成適用于監測該類威脅的個性化的采集項及對應的采集頻率。具體而言,在待采集設備處于相同資源水平時,例如,當前剩余資源非常豐富,即剩余的計算資源百分比、存儲資源百分比和傳輸資源百分比均為 1,分別監測DDoS、非法訪問、流量異常、FTP木馬攻擊,或者一些組合攻擊,觀察和分析策略精化引擎生成的采集項及對應的采集頻率情況。
2) 在監測同一種威脅時,待采集設備處于不同資源水平,采集策略精化引擎生成的采集項及對應采集頻率情況。
3) 在監測同一種威脅時,采用遺傳算法、粒子群算法、窮舉法和隨機法在不同規模的采集項情況下進行精化,比較精化生成采集項及采集頻率的時間和目標函數的值。
在待采集設備上,使用表1和表2所示的實驗參數針對4類攻擊進行策略精化,系統參數λ=2,得到每個采集項的采集頻率如圖5所示。對于4類攻擊均以不同頻率采集CPU占用率和內存利用率;對于非法訪問和FTP木馬等攻擊,分別以不同頻率采集FTP服務日志和FTP的業務流量;對于流量異常攻擊,采集端到端的IP流量;對于DDoS、非法訪問和流量異常這3類攻擊,均以不同頻率采集系統日志。
圖6為待采集設備處于不同計算資源水平時針對DDoS的監測,即在不同約束條件下進行采集策略精化,得到每個采集項的采集頻率。在計算資源水平較低時,計算資源在成本計算的權重較高,為達到最大的采集收益,選擇較少占用計算資源的系統日志和端到端的 IP流量等采集項,且其采集頻率較高;當計算資源水平升高后,計算資源在成本計算的權重降低,選擇較多占用計算資源的系統狀態類采集項,且其采集頻率隨計算資源水平升高而逐漸升高。

圖5 監測不同威脅類型精化生成的采集項及頻率

圖6 不同計算資源水平精化生成的采集項及頻率
圖7為待采集設備處于不同傳輸資源水平時針對流量異常的監測,即在不同約束條件下進行采集策略精化,得到系統狀態日志采集頻率變化情況,隨著傳輸資源水平的升高,系統日志采集項的采集頻率逐漸升高。
在對比實驗中,采集項頻率范圍設置為[0, 10]。使用隨機生成采集項和采集頻率模擬未使用本文方案進行精化的方法。窮舉法是對各采集項取1~10間的整數組合進行窮舉。粒子群算法采用本文提出的目標函數作為其適應度函數,進行100個粒子的200輪迭代,個體經驗系數和群體經驗的加速系數均設置為 1,慣性參數也設置為 1,采用 Sigmoid函數,根據速度分量決定離散型決策變量在迭代中取1或0的概率[32]。遺傳算法采用第4節所述的100個個體的200輪迭代,交叉概率Pc=0.8,變異概率Pm=0.000 1。

圖7 不同傳輸資源水平精化生成的系統日志采集項的采集頻率
圖8和圖9為不同算法的采集策略精化的計算時間和效果比較。圖8和圖9的橫坐標均為候選采集項數量,既有連續型決策變量,也有離散型決策變量;圖8縱坐標為計算時間,以秒為單位,圖9縱坐標為目標函數值,度量采集效果。

圖8 不同算法的采集策略精化計算時間比較
由圖8和圖9可知,隨機法生成采集項的計算時間接近為0 s,但是會使目標函數值小于0,即采集收益小于采集成本,且隨著采集項數的增加,目標函數值不斷減少,即采集收益增加甚微,但是采集成本增大快。窮舉法的計算時間將呈指數級增長趨勢,在采集項超過 6項時遠高于其他算法,不符合精化的實時性需求。粒子群算法在計算時間方面與遺傳算法相仿,但是采集效果劣于遺傳算法。

圖9 不同算法的采集策略精化效果比較
綜上,遺傳算法在計算時間上與粒子群算法持平,高于隨機法,遠低于窮舉法。但是在目標函數求解效果方面,遺傳算法在4種算法中最優,并且隨著采集項數的增加,其采集效果呈上升趨勢,即可供選擇的采集項數增加,采集收益較采集成本增加快,不會使采集造成的資源消耗過量增加。
本文針對復雜網絡環境下設備數量繁多且各設備資源不均衡的問題,提出了一種面向威脅監測的采集策略精化方法,該方法引入了策略模板,考慮了待采集設備的當前計算資源水平、存儲資源水平和傳輸資源水平等因素,通過設置采集貢獻度和采集成本,以混合優化計算指定威脅類型的采集項及各采集項對應的采集頻率。模擬實驗結果表明,該采集策略精化方法可以有效地生成采集方案,并且在資源水平較低時,還可自適應地減少采集項,降低采集頻率。
雖然基于策略模板和混合優化計算的方式是一種有效的策略精化方法,但本文缺乏對計算、存儲和傳輸等成本的高精度量化。因此,進一步的研究工作將重點分析各采集項的采集成本,并增加對能耗成本的量化計算。