中國電子科技集團第三十研究所 林琦力 尚旭 金鑫 王瑞 張家琦
網絡靶場是針對網絡攻防演練、支撐網絡空間技術驗證和網絡風險評估的重要基礎設施,對網絡安全人才的培養、網絡空間對抗的學習和研究有著極為重要的價值。本文首先介紹了數據采集在靶場中的關鍵作用,闡述了主流的數據采集技術及其存在的問題。然后提出了全維數據采集方案,闡述了全維數據采集方案的總體架構和具體的采集技術,實現了低侵入、實時、準確、全面的采集靶場數據。
近年來,互聯網安全事件頻發,網絡對抗形勢愈演愈烈,網絡攻擊從以個人為目標轉向以特定關鍵基礎設施為目標,網絡攻擊技術趨向于手段更高超、更隱蔽、持續時間長等方向發展,因此發展網絡靶場已迫在眉睫。網絡靶場是針對網絡攻防演練、支撐網絡空間技術驗證和網絡風險評估的重要基礎設施,對網絡安全人才的培養、網絡空間對抗的學習和研究有著極為重要的價值。靶場數據采集是網絡靶場四大核心基礎能力之一,是實現靶場業務數據分析和智能決策的基礎,目前面臨的挑戰為如何低侵入、實時、準確、全面的實現數據采集。
靶場業務數據分析和智能決策,主要是基于攻防時采集到的數據,根據一定的評估標準和模型,對被測的攻防技術進行定量與定性相結合的效果評估,以及網絡攻防對抗態勢評估分析與可視化,并盡可能保證評估的可操作性和客觀性[1]。數據采集方式可分為帶內數據采集和帶外數據采集。帶內采集主要基于入侵檢測系統(IDS/EDR)為主,由中心采集程序和植入虛擬機的代理程序組成。帶外采集基于虛擬自省技術(VMI),主要采集虛擬靶標數據。入侵檢測系統IDS/EDR 可采集包括系統、網絡及用戶活動的狀態和行為的數據,但其代理程序采集功能有限,且可擴展性差。而虛擬自省技術需要虛擬化監視器(VMM)支持,監視虛擬機內發生的中斷、異常事件、指令等底層二進制數據,需要將底層二進制重構成高層語義,實現較為困難[2],付出性能代價較大。
針對以上問題,為了實現低侵入、實時、準確、全面的采集靶場數據,提出全維數據采集,包括數據采集代理、標準協議采集器、流量數據采集器以及數據采集網關,實現了動態行為數據、靜態主機信息、實裝數據的采集以及流量的鏡像、引流和隨機采樣監測,另外通過一系列擴展化設計,大大增強了采集系統的擴展能力。
網絡靶場的數據采集系統由數據采集層、數據預處理與存儲層、數據統一訪問層。網絡靶場數據采集系統的總體架構如圖1所示。

圖1 數據采集系統總體架構設計Fig.1 Overall architecture design of data collection system
2.1.1 數據采集層
提供了數據采集代理、標準協議采集器、流量數據采集器,實現了采集靶場網絡內靶標行為數據、攻防數據、實裝數據,以及靶標網絡流量的鏡像、引流和隨機采樣,覆蓋了虛擬靶標、實裝靶標和靶場流量等多種靶標,提供了數據采集網關,實現了采集配置、采集控制以及數據的封裝和轉發。
2.1.2 數據預處理和存儲層
提供了數據預處理網關,實現了采集數據的預處理,比如簡單的數據清洗、治理和分級分類,內置多種后端存儲系統驅動(TiDB/ES/Redis/Kafka),并支持存儲系統的擴展,按業務的需求將采集數據存儲到對應的存儲平臺。
2.1.3 數據統一訪問層
提供采集數據的存儲和數據統一訪問功能,對外提供標準的數據訪問接口和權限控制模塊,支持基于業務系統的管理訪問控制,提供可控的數據訪問權限控制。
數據采集代理采集數據的對象包括虛擬終端以及一部分可安裝代理的實裝設備。數據采集代理內置一系列基本的數據采集能力,包括動態行為數據、靜態主機信息,具備強大的擴展采集能力,包括支持定向采集腳本、持續采集插件、第三方數據接入,實現了極簡安裝運行,兼容適配主流的Windows/Linux 操作系統。
2.2.1 動態行為數據采集
采集動態行為數據,包括文件變化、進程啟停、網絡鏈接變化、用戶登錄行為、注冊表變化等事件。
(1)文件變化。采用文件系統實時監控框架,對系統內文件或目錄進行實時監控和事件采集。具體技術采用Inotify 子系統,Inotify 實際是一種事件驅動機制,它為應用程序監控文件系統事件提供了實時響應事件的機制,而無須通過輪詢機制來獲取事件,極大的節約了系統資源,它可以高效的監控文件系統的變化,如文件修改、新增、刪除等,并將相應的事件實時發送到采集程序。采集程序根據數據采集網關下發的采集項指令,解析出當前需要監控的文件系統目錄列表,作為Inotify 的監控對象,同時實時解析Inotify 的事件輸出。
(2)進程啟停、網絡鏈接變化、用戶登入登出行為、注冊表變化。對于Linux 系統,可通過Audit 子系統采集數據。Audit 子系統是用于搜集記錄系統、內核、用戶進程發生的行為事件的一種安全審計系統,可以可靠地搜集有關于任何與安全相關(或與安全無關)的事件的信息。采集程序通過Netlink 套接字與Audit 子系統的內核審計模塊Kauditd 建立全雙工通信,通過下發設置Audit 規則,采集關注的系統調用和用戶事件,同時可讀取Kauditd 的各種事件日志,例如進程啟停系統調用Execve/Execveat、網絡連接系統調用Bind/Connect、用戶登入登出事件等。
對于Windows 系統,可通過Windows 系統自帶的WMI 服務組件采集數據。作為一項Windows 管理技術,WMI 可以訪問、配置、管理和監視幾乎所有的Windows資源,是一種主動獲取網絡和系統數據的技術,通過調用Windows 系統WMI 服務組件提供的API 接口,注冊鉤子函數,實現實時監控關注的事件的功能。
2.2.2 靜態主機信息采集
采集靜態主機信息,包括進程列表、文件列表、操作系統版本、硬件平臺架構、內核版本、加載的內核模塊等靜態主機信息數據,集成Osqueryos,自定義擴展采集項。
2.2.3 定向采集腳本
選擇需要采集的對象并上傳自定義采集腳本至采集對象系統內,向代理發送執行腳本指令、腳本路徑及參數,實現定向采集關注的事件、進程、用戶、文件等數據。
2.2.4 持續采集插件
實現插件式的架構設計,在插件框架層定義標準接口和標準格式數據,可以開發自定義插件,插件只需實現標準接口和轉換數據格式,即可持續采集關注的系統數據、應用數據、日志數據。
2.2.5 第三方數據接入
實現第三方采集程序(如EDR/IDS)的數據接入,第三方采集程序通過實現數據采集代理定義的數據推送接口,即可接入第三方采集數據,使采集代理具備集成擴展能力。
2.2.6 極簡安裝與運行
最大化簡化用戶安裝,兼容適配Windows、Windows Server、Linux 主流版本。
支持在線安裝與離線自動安裝,當靶標系統運行時,上傳代理安裝程序至靶標系統,執行安裝腳本程序即可;當靶標系統關閉后,在宿主機上自動化工具通過Guestfish工具掛載虛擬靶標磁盤,將采集程序離線注入到虛擬磁盤中。
標準協議采集器通過一系列標準協議采集各種類型的實裝設備的實裝數據,包括采集軟硬件配置、設備性能、資源利用率、負載情況、運行狀況、日志信息、告警事件等數據。目前實現了常見的幾種協議采集,涵蓋了絕大多數的實裝設備,同時支持自定義開發采集插件,支持通過更多的標準協議或設備專用接口的采集。
2.3.1 通過SNMP 協議采集
SNMP 是一個應用層協議、模型和一組資源對象,是用作傳播和匯聚網絡管理信息以及安全事件數據的重要手段。
2.3.2 通過NetConf 協議采集
NetConf 提供了一套管理網絡設備的機制,通過此協議,用戶可增加、修改、刪除網絡設備的配置,獲取網絡設備的配置和狀態信息。
2.3.3 通過Syslog 協議采集
Syslog 常被稱為系統日志或系統記錄,是在一個IP網絡中轉發系統日志信息的標準。系統日志通過Syslog記錄系統的有關事件,也可以記錄應用程序運作事件。通過適當配置,可以實現運行Syslog 協議的機器之間的通信。
2.3.4 自定義擴展插件
實現了插件式的架構設計,在插件框架層定義標準接口和標準格式數據,可以開發自定義插件,擴展支持更多的標準網絡協議。
針對不支持標準協議而提供了專有接口或協議(RestAPI 接口或WebService)的設備,可以通過定制開發插件進行擴展。根據設備廠商提供的產品文檔說明以及采集需求,調用相應的專用接口,對設備狀態信息、配置信息、告警事件等數據進行采集。
靶標網絡流量數據采集,一種采用全量復制或引流,另一種采用隨機抽樣檢測,兩種方式相結合,最終將流量引導至流量分析系統。
SDN(軟件定義網絡)是一種軟件集中控制、網絡開放的三層體系架構[3]。靶場使用SDN 技術靈活構建網絡,通過SDN 流量鏡像復制、服務鏈引流,實現了流量的全量采集;對于一些關鍵實體設備流量進行全量采集時,可使用流量探針實時高效采集;對于不關心流量內容的場景,可通過sFlow/NetFlow 協議對數據進行隨機抽樣監測。
2.4.1 SDN 流量鏡像
流量鏡像又稱端口鏡像,是一種將端口或網絡流量,旁路復制并轉發至虛擬或物理設備進行分析的技術。SDN 控制器通過將端口鏡像的邏輯對應關系,轉換成OpenFlow流表,通過OpenFlow 協議下將OpenFlow 流表發到本地的虛擬交換機的虛擬交換機守護進程,實現了靶場網絡內接入到SDN 交換機上的虛擬靶標和實裝設備的流量鏡像功能,流量經過GRE/Vxlan 隧道技術,轉發至流量分析系統。
2.4.2 SDN 服務鏈引流
網絡業務流量需要按照業務邏輯要求的既定次序穿過各種安全服務節點[4],完成對應業務功能處理,這種打破了常規網絡轉發邏輯的方式,稱為服務鏈,而透明接入的設備,稱為服務節點。
在靶場網絡環境中,防火墻(FW)、負載均衡(LB)、入侵檢測(IPS)、VPN 等設備透明接入到SDN 網絡中,SDN 控制器通過動態建立服務鏈使仿真靶場網絡中不同靶標的流量可以按照不同順序導向不同的服務功能模塊(防火墻、IDS、IPS 等),其概念類似于策略路由,即服務鏈使網絡報文流量走特定的路徑,而不是通過IP 目的地址來查看路由表得最終目的地。
2.4.3 靶標的流量探針
流量探針是一種用來獲取網絡流量的硬件設備,使用時將它串接在需要捕捉流量的鏈路上,通過分流鏈路上的數據信號而獲取流量信息[5]。流量探針比較適合在匯聚層或接入層的某些重要節點實施,可以實時將流量信息完全記錄下來,對于安全、性能分析非常有效,適用于靶場網絡內關鍵靶標和設備的流量監控。
2.4.4 NetFlow/sFlow 流量監測
NetFlow 技術在進行數據交換的同時對數據流信息進行統計,并將統計信息以特定的格式輸出[6];sFlow 是基于采樣的技術,用于監控和統計數據網絡上交換機或路由器流量轉發狀況。兩種技術相結合,可實現靶場網絡流量的監測。
數據采集網關,提供了采集控制模塊、帶外傳輸模塊以及數據轉發模塊,通過配置采集源及認證方式、采集技術、業務類型、采集項、采集頻率等,配合下發管理端控制命令,最后將采集的數據轉發至數據預處理網關和存儲模塊。
2.5.1 帶外傳輸通道
帶外傳輸通道是一種虛擬靶標和宿主機之間的帶外傳輸的通訊鏈路,主要用于虛擬靶標系統的代理和數據采集網關之間的數據傳輸。其采用Virtio 技術,優化了傳統I/O 內核態與用戶態頻繁切換,減少了虛擬機和宿主機陷入陷出的性能開銷。Virtio 是一種標準的半虛擬化I/O 設備模型,相對于普通的虛擬化I/O 模型,I/O性能有數倍的提升,為數據采集提供了一條完美的帶外傳輸通道。
2.5.2 采集控制模塊
采集控制模塊提供了配置采集源及認證方式、采集技術、業務類型、采集項、采集頻率,同時實現了管理端控制命令的下發,指導數據采集代理、標準協議采集器進行數據采集,實現了靶標數據的細粒度多維度數據采集控制。通過配置流量采集的源與目的對象,指導流量數據采集器對之間的鏈路流量數據進行采集。
2.5.3 數據轉發模塊
在轉發采集數據到預處理網關之前,使用任務ID 和靶標ID 封裝采集數據,標識采集數據的源頭,與攻防場景任務相關聯,為后續數據分析提供支撐。
在控制能力上,可實現轉發速率、轉發模式、斷點續傳、啟動/停止、暫停/恢復等靈活控制。
針對如何實現低侵入、實時、準確、全面的采集靶場數據,本文設計了一套多維數據采集框架方案,多種采集方式相結合,實現了對靶場內虛擬靶標、實體靶標、靶標流量的全面覆蓋采集,具有高擴展性、高靈活性、低侵入性、抗干擾性強等特點,實現了預定的功能,達到了預期的效果,有力支撐了靶場業務數據分析和智能決策,從而為靶場網絡安全決策提供重要依據。