网络靶场数据采集方法探索与设计

2022-12-05 11:36中国电子科技集团第三十研究所林琦力尚旭金鑫王瑞张家琦
数字技术与应用 2022年11期
关键词:靶场采集器靶标

中国电子科技集团第三十研究所 林琦力 尚旭 金鑫 王瑞 张家琦

网络靶场是针对网络攻防演练、支撑网络空间技术验证和网络风险评估的重要基础设施,对网络安全人才的培养、网络空间对抗的学习和研究有着极为重要的价值。本文首先介绍了数据采集在靶场中的关键作用,阐述了主流的数据采集技术及其存在的问题。然后提出了全维数据采集方案,阐述了全维数据采集方案的总体架构和具体的采集技术,实现了低侵入、实时、准确、全面的采集靶场数据。

近年来,互联网安全事件频发,网络对抗形势愈演愈烈,网络攻击从以个人为目标转向以特定关键基础设施为目标,网络攻击技术趋向于手段更高超、更隐蔽、持续时间长等方向发展,因此发展网络靶场已迫在眉睫。网络靶场是针对网络攻防演练、支撑网络空间技术验证和网络风险评估的重要基础设施,对网络安全人才的培养、网络空间对抗的学习和研究有着极为重要的价值。靶场数据采集是网络靶场四大核心基础能力之一,是实现靶场业务数据分析和智能决策的基础,目前面临的挑战为如何低侵入、实时、准确、全面的实现数据采集。

1 研究背景

靶场业务数据分析和智能决策,主要是基于攻防时采集到的数据,根据一定的评估标准和模型,对被测的攻防技术进行定量与定性相结合的效果评估,以及网络攻防对抗态势评估分析与可视化,并尽可能保证评估的可操作性和客观性[1]。数据采集方式可分为带内数据采集和带外数据采集。带内采集主要基于入侵检测系统(IDS/EDR)为主,由中心采集程序和植入虚拟机的代理程序组成。带外采集基于虚拟自省技术(VMI),主要采集虚拟靶标数据。入侵检测系统IDS/EDR 可采集包括系统、网络及用户活动的状态和行为的数据,但其代理程序采集功能有限,且可扩展性差。而虚拟自省技术需要虚拟化监视器(VMM)支持,监视虚拟机内发生的中断、异常事件、指令等底层二进制数据,需要将底层二进制重构成高层语义,实现较为困难[2],付出性能代价较大。

2 方案设计

针对以上问题,为了实现低侵入、实时、准确、全面的采集靶场数据,提出全维数据采集,包括数据采集代理、标准协议采集器、流量数据采集器以及数据采集网关,实现了动态行为数据、静态主机信息、实装数据的采集以及流量的镜像、引流和随机采样监测,另外通过一系列扩展化设计,大大增强了采集系统的扩展能力。

2.1 总体架构设计

网络靶场的数据采集系统由数据采集层、数据预处理与存储层、数据统一访问层。网络靶场数据采集系统的总体架构如图1所示。

图1 数据采集系统总体架构设计Fig.1 Overall architecture design of data collection system

2.1.1 数据采集层

提供了数据采集代理、标准协议采集器、流量数据采集器,实现了采集靶场网络内靶标行为数据、攻防数据、实装数据,以及靶标网络流量的镜像、引流和随机采样,覆盖了虚拟靶标、实装靶标和靶场流量等多种靶标,提供了数据采集网关,实现了采集配置、采集控制以及数据的封装和转发。

2.1.2 数据预处理和存储层

提供了数据预处理网关,实现了采集数据的预处理,比如简单的数据清洗、治理和分级分类,内置多种后端存储系统驱动(TiDB/ES/Redis/Kafka),并支持存储系统的扩展,按业务的需求将采集数据存储到对应的存储平台。

2.1.3 数据统一访问层

提供采集数据的存储和数据统一访问功能,对外提供标准的数据访问接口和权限控制模块,支持基于业务系统的管理访问控制,提供可控的数据访问权限控制。

2.2 数据采集代理设计

数据采集代理采集数据的对象包括虚拟终端以及一部分可安装代理的实装设备。数据采集代理内置一系列基本的数据采集能力,包括动态行为数据、静态主机信息,具备强大的扩展采集能力,包括支持定向采集脚本、持续采集插件、第三方数据接入,实现了极简安装运行,兼容适配主流的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 标准协议采集器设计

标准协议采集器通过一系列标准协议采集各种类型的实装设备的实装数据,包括采集软硬件配置、设备性能、资源利用率、负载情况、运行状况、日志信息、告警事件等数据。目前实现了常见的几种协议采集,涵盖了绝大多数的实装设备,同时支持自定义开发采集插件,支持通过更多的标准协议或设备专用接口的采集。

2.3.1 通过SNMP 协议采集

SNMP 是一个应用层协议、模型和一组资源对象,是用作传播和汇聚网络管理信息以及安全事件数据的重要手段。

2.3.2 通过NetConf 协议采集

NetConf 提供了一套管理网络设备的机制,通过此协议,用户可增加、修改、删除网络设备的配置,获取网络设备的配置和状态信息。

2.3.3 通过Syslog 协议采集

Syslog 常被称为系统日志或系统记录,是在一个IP网络中转发系统日志信息的标准。系统日志通过Syslog记录系统的有关事件,也可以记录应用程序运作事件。通过适当配置,可以实现运行Syslog 协议的机器之间的通信。

2.3.4 自定义扩展插件

实现了插件式的架构设计,在插件框架层定义标准接口和标准格式数据,可以开发自定义插件,扩展支持更多的标准网络协议。

针对不支持标准协议而提供了专有接口或协议(RestAPI 接口或WebService)的设备,可以通过定制开发插件进行扩展。根据设备厂商提供的产品文档说明以及采集需求,调用相应的专用接口,对设备状态信息、配置信息、告警事件等数据进行采集。

2.4 流量数据采集器设计

靶标网络流量数据采集,一种采用全量复制或引流,另一种采用随机抽样检测,两种方式相结合,最终将流量引导至流量分析系统。

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 数据采集网关设计

数据采集网关,提供了采集控制模块、带外传输模块以及数据转发模块,通过配置采集源及认证方式、采集技术、业务类型、采集项、采集频率等,配合下发管理端控制命令,最后将采集的数据转发至数据预处理网关和存储模块。

2.5.1 带外传输通道

带外传输通道是一种虚拟靶标和宿主机之间的带外传输的通讯链路,主要用于虚拟靶标系统的代理和数据采集网关之间的数据传输。其采用Virtio 技术,优化了传统I/O 内核态与用户态频繁切换,减少了虚拟机和宿主机陷入陷出的性能开销。Virtio 是一种标准的半虚拟化I/O 设备模型,相对于普通的虚拟化I/O 模型,I/O性能有数倍的提升,为数据采集提供了一条完美的带外传输通道。

2.5.2 采集控制模块

采集控制模块提供了配置采集源及认证方式、采集技术、业务类型、采集项、采集频率,同时实现了管理端控制命令的下发,指导数据采集代理、标准协议采集器进行数据采集,实现了靶标数据的细粒度多维度数据采集控制。通过配置流量采集的源与目的对象,指导流量数据采集器对之间的链路流量数据进行采集。

2.5.3 数据转发模块

在转发采集数据到预处理网关之前,使用任务ID 和靶标ID 封装采集数据,标识采集数据的源头,与攻防场景任务相关联,为后续数据分析提供支撑。

在控制能力上,可实现转发速率、转发模式、断点续传、启动/停止、暂停/恢复等灵活控制。

3 结语

针对如何实现低侵入、实时、准确、全面的采集靶场数据,本文设计了一套多维数据采集框架方案,多种采集方式相结合,实现了对靶场内虚拟靶标、实体靶标、靶标流量的全面覆盖采集,具有高扩展性、高灵活性、低侵入性、抗干扰性强等特点,实现了预定的功能,达到了预期的效果,有力支撑了靶场业务数据分析和智能决策,从而为靶场网络安全决策提供重要依据。

猜你喜欢
靶场采集器靶标
精细化理念推动靶场总装管理体系的构建与实施
2021年6月18日,一架F-16战隼在联合太平洋阿拉斯加靶场上空
“百灵”一号超音速大机动靶标
纳米除草剂和靶标生物的相互作用
靶场光电经纬仪最优布站方法研究
基于ZigBee的大型公共建筑能耗采集器设计
基于LabVIEW的多数据采集器自动监控软件设计与开发
复杂场景中航天器靶标的快速识别
前列腺特异性膜抗原为靶标的放射免疫治疗进展
多接口温湿度数据采集器的设计