网络安全态势感知
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

3.3 安全要素和安全特征的采集技术

本章3.2节从资产维度数据、漏洞维度数据、威胁维度数据方面介绍了网络安全态势感知过程中需要采集的安全要素与安全特征。本节将针对不同类别的安全要素和安全特征,介绍不同的数据采集方法及相关的采集工具。

3.3.1 资产维度数据采集

资产维度数据是网络安全态势感知过程中防御者要重点保护的元素和对象,对不同类型的资产维度数据进行有效采集是分析网络攻击影响与后果的重要步骤,有助于及时发现正在攻击过程中的网络攻击行为。本节将介绍如何对不同类型的资产维度数据进行采集。

(1)对资产基础数据的采集。对于与资产相关的硬件数据、操作系统数据、软件数据等静态资产数据,可以采用基础的采集工具进行采集。例如,通过计算机的设备管理器可以查看磁盘、内存、CPU等硬件设备的型号、版本号等,通过计算机自带的系统软件可查看操作系统信息,通过软件管理工具可查看安装的软件类别、版本号等基础数据。获取此类基础数据主要是为了分析资产可能潜在的安全漏洞,例如,CVE-2020-8315漏洞[2]主要存在于Windows7系统的部分Python库,CVE-2019-9635漏洞[3]主要存在于谷歌Tensorflow 1.12.2之前的版本。

(2)对CPU占用率、内存占用率、磁盘占用率、磁盘IO信息等硬件运行类系统资源数据,可通过WMI(Windows Management Instrumentation,Windows管理规范)进行采集。采集此类数据主要是为了判断是否存在异常的硬件资源被占用的情况。例如,当磁盘I/O信息突然增加时,通过查看是否存在用户正常的磁盘读/写操作,可以判定是否是由于有异常的攻击事件发生而导致了I/O信息的异常变化。

(3)注册表数据可以通过注册表变化插件或工具(如Process Monitor)进行采集。通过插件或工具可以对变化的注册表信息进行审计。当攻击者对注册表进行更改时,可通过查看是否是用户的正常操作,从而判断是否有攻击事件发生。

(4)系统函数调用数据可以通过Hook系统获得。这类数据可用于检测对敏感系统函数的频繁调用。例如,当发现exec、eval、system等敏感函数被频繁调用时,可进一步查看和检测是否存在webshell攻击。

(5)与进程相关的数据可以通过进程列表采集插件来采集。例如,可以通过psutil库获取进程列表;通过查看系统回调通知可以获得进程的创建、退出等信息;通过查看进程的数据可以判断是否有可疑的进程出现,是否有正常工作的进程被恶意关闭等。

(6)端口数据主要包括各开放端口(如TCP端口、UDP端口等)的数据,可通过psutil库获取端口数据,检测是否存在异常的端口数据。

(7)服务类数据,可通过WMI获取系统服务信息,当攻击者改变某些系统服务信息时,可以有效采集这种服务类数据。

(8)网络类数据包括网络状态、出入流量、丢包率、网络连接情况、网卡处理的数据等。通过WMI可以采集网卡信息和相关的网络类数据,以判断是否存在异常的网络连接、异常的出入流量等。

(9)对用户数据可以通过系统账号插件进行采集。利用系统内置函数可以获取用户的用户名、用户群组等数据。

(10)对权限数据可通过类似的插件进行采集,以获取不同用户的权限变化。当攻击者进行提权时,防御者可根据用户权限变化的情况判断提权操作是否为攻击者所为。

(11)对文件系统的数据可通过文件监控插件进行采集。通过跟踪文件被打开、修改、删除等操作,记录文件系统审计数据,为分析师进行下一步判断提供依据。

资产维度数据易于采集。由于分析师需要对目标网络系统进行保护,因此目标网络系统的各类数据可以通过防御方安装部署的各种工具进行采集。此类数据的采集属于配合型的数据采集,相对而言较为容易。静态资产类型的数据一般而言变化不大,例如硬件型号、版本号等,软件数据更新速度也不快,当用户安装新软件、卸载软件、更新软件等时将会对软件类数据进行更新。对于动态资源数据的采集,可以根据运行的业务对动态数据进行更新和采集。此外,网络拓扑是网络安全态势可视化的基础,不仅能显示网络的连接结构等,还可以作为一个平台显示网络态势的各种信息。通过给目标网络安装探测器,采集相关的信息,可形成整个目标网络系统的拓扑信息。当目标网络系统发生计算机崩溃、网络瘫痪等问题时,可以在网络拓扑中及时显示出异常状态,以反映异常情况发生的位置、可能扩散的区域等。

对于大规模网络系统,其所有的资产数据体量也将变得很大,如果采集所有的资产数据,就会影响系统的运行状况。因此,在采集大规模网络系统的资产数据时,需要根据资产目标设计靶向数据采集方式,即对关注的重要资产数据进行采集,而非采集所有的数据。下面将介绍常用的采集技术和采集工具。

WMI是一项核心的Windows管理技术[4],以CIMOM(Common Information Model Object Manager,公共信息模型对象管理器)为基础,可以被视为描述操作系统构成单元的对象数据库,为各种工具软件和脚本程序提供了访问操作系统构成单元的公共接口,主要用于管理本地和远程的资产数据。WMI可以用于访问、配置、管理和监视目标网络系统中的Windows资源。利用WMI可以主动获取网络和系统数据,极大地方便了用户、分析师、安全管理人员对计算机进行远程管理。基于WMI,各种工具软件和脚本程序不需要使用不同API(Application Programming Interface,应用程序接口)访问操作系统的不同部分和单元,WMI允许通过一个公共接口访问多种操作系统构成单元,不必分别对待各种底层接口。当用户拥有计算机设备的管理权限时,便可以在本地计算机或远程执行WMI操作。WMI是对资产维度数据进行采集的一种常用技术。

SNMP(Simple Network Management Protocol,简单网络管理协议)是一个用于检查和管理网络设备的常用协议[5,6],主要被用来采集网络管理信息及各类安全事件数据。SNMP协议是专门用于管理服务器、工作站、路由器、交换机等网络节点的一种标准协议。网络管理员利于SNMP协议能够管理网络中的各类设备,发现并解决网络中出现的问题,接收安全事件报告,以便为分析师提供支持,让分析师及时知晓网络管理系统出现了网络安全问题。采用SNMP协议管理的网络往往由中央管理系统、被管理设备、代理等组成,被管理设备按SNMP协议向中央管理系统发送报告。SNMP协议能够通过一个中央汇聚点轮询各个网络设备,也能把多个代理中的SNMP相关信息推送到中央汇聚点上。

中央管理系统可以通过GET(提取一项信息)、GETNEXT(提取下一项信息)和GETBULK(提取多项信息)等指令进行轮询,并取回被管理设备的信息;也可以让被管理设备的代理使用TRAP或INFORM指令主动传送相关信息;还可以通过SET指令传送配置更新、控制的请求,实现针对被管理设备的远程控制,达到主动管理系统的目的。这里介绍的GET、GETNEXT、GETBULK、TRAP、INFORM指令均是SNMP协议的重要基本命令。

端口扫描可以用于采集端口相关的动态数据。在一般情况下,端口扫描是一种用于攻击的行为,在未被允许的情况下进行端口扫描会被识别为安全事件。端口扫描可以作为一种主动采集数据的方法,向某一个终端的某一个端口提出建立一个连接的请求,通过对方的回应,判断目标终端是否已安装了相关服务。端口可以看作是一个通信信道。当向某一个端口提出建立连接的请求时,如果对方安装了相关服务就会有应答,反之则不会。利用这个原理,端口扫描可以对所有熟知的端口或选定某个范围内的端口分别建立连接,并记录目标终端相应的反馈情况,从而判断目标终端安装了哪些服务。通过扫描设备端口,可以发现终端设备开放了哪些端口、端口的分配及提供的服务,以及对应软件版本等。因此,端口扫描可以用作对动态资产数据的采集。当在防护的网络系统中获取了用户的授权以后,便可以通过端口扫描采集相应的数据。

3.3.2 漏洞维度数据采集

漏洞一般包括软件漏洞、配置漏洞、结构漏洞等。按照威胁程度来划分,漏洞可以分为不同危害级别的漏洞。由于不同类型的软件、系统存在各种不一样的漏洞,而且攻击者往往利用系统中存在的漏洞进行攻击,因此漏洞可以看作攻击者尝试攻击的入口。如何对漏洞数据进行采集是网络安全中一个十分重要的环节。然而,软件的数量巨大,软件和硬件结构、框架繁多,尽管很多公司在软件、系统上线之前都会进行大量的测试,还是无法对所有的漏洞都进行有效甄别。另外,很多漏洞存在于系统底层、软件和硬件适配环节、系统和软件更新迭代过程中等,有各种原因会导致新的漏洞出现,很难有一种统一的办法采集到所有的漏洞。下面将介绍业界最常用的方法,即通过开源的漏洞数据库获取漏洞数据、通过开放的漏洞数据库获取已发现的各种漏洞,并将漏洞数据表示为合适的形式。

目前常用的漏洞数据库包括CNNVD(China National Vulnearability Database of Information Security,国家信息安全漏洞库)[7]、CVE(Common Vulnerabilities and Exposures,通用漏洞披露)[8]、NVD(National Vulnearability Database,美国国家漏洞数据库)[9]等。其中,CNNVD介绍了详细的漏洞信息,如CNNVD-202004-1667漏洞[10]介绍了一款无线路由器D-Link DSL-2640B B2的EU_4.01B版本中的‘do_cgi()’函数存在缓冲区错误漏洞。该数据库同时对相关的补丁信息、漏洞报告、漏洞预警等进行了介绍。CVE开始建立于1999年,对漏洞采用了公共的命名标准,对漏洞进行描述,介绍漏洞披露时间、相关的操作系统、软件系统、存在漏洞的函数等信息。NVD包括数据库与安全相关的软件缺陷、错误配置、产品名称、影响范围等。

采集漏洞维度数据可以通过各种漏洞数据库对已知的漏洞信息进行采集,采集时,将信息保存为合适的格式,信息包括不同漏洞存在的硬件系统、软件系统等,如与CNNVD-202004-1667漏洞相关联的硬件设备为路由器D-Link DSL-2640B B2的EU_4.01B版本等。采集此类数据的目的是为了分析所防护的目标网络系统可能存在的漏洞,并及时采取相应的措施进行防御。例如,部分已公布的漏洞都有对应的补丁信息,如果所防护的目标网络系统存在某漏洞,便可通知用户安装对应的补丁,防止漏洞被攻击者利用。很显然,漏洞数据库中存在的这些漏洞信息都是通过对历史攻击事件分析得来的,而对于很多未知的攻击事件,其利用的漏洞信息并不一定会存在于漏洞库中。网络攻防是一个博弈的过程,防御者很难对所有的漏洞维度数据进行采集,只能根据已有的知识(如公布的漏洞数据库)和分析师自身的经验采集相关的漏洞数据。对于未知的漏洞,只能在发现和诊断出攻击行为以后,才能对漏洞数据进行更新和完善。

漏洞维度数据主要通过已有的漏洞数据库、补丁库、漏洞报告等进行采集,相对而言,采集方式比较容易,难点在于如何与目标网络系统存在的漏洞关联起来,一般而言,还可以通过漏洞扫描等方式进行采集。

通过漏洞扫描可以对指定的远程或本地终端系统进行安全性检测。基于已有的漏洞信息,扫描发现可利用的漏洞是一种用于检测渗透式攻击行为的方法。一般而言,扫描探测属于一种攻击行为。如果未经过目标网络系统的允许,那么这种行为属于一种非正常的行为,可能对目标网络系统造成破坏。但是,对于防御者而言,对需要防护的目标网络系统进行扫描可以主动获取系统存在的安全漏洞,是一种主动获取漏洞信息的方法,并且这类扫描行为可以在分析师、用户的监督之下完成。通过漏洞扫描,分析师能够了解所防护目标网络系统的安全设置和运行的应用服务状态,还能及时发现存在的安全漏洞。一般而言,根据对象不同,漏洞扫描可以采用针对网络的漏洞扫描、针对终端的漏洞扫描等。

3.3.3 威胁维度数据采集

资产维度数据和漏洞维度数据的采集方式相对而言属于配合型的采集方式。威胁维度数据的采集方式属于非配合型的采集方式,数据采集难度较大。一般而言,攻击者在尝试不同的攻击行为时,会在目标网络系统中留下各种痕迹,此类威胁维度数据可以被采集。而目标网络系统并不知道攻击者何时发动攻击,无法预料攻击者将采用什么攻击方法,也无法知晓攻击者从目标网络系统的哪个部分发起攻击,更无法判断攻击者的最终意图。因此,采集威胁维度数据只能通过终端数据和流量数据的变化情况,对可能存在的威胁行为进行判断。很显然,如果对所有的数据均进行采集,将给分析师带来数据过载的问题,因此在采集威胁维度数据时,应当根据不同类型的威胁行为设计相应的规则和特征,实现针对威胁行为的靶向数据采集。

本节首先介绍针对终端数据和流量数据采集的一般性方法,然后介绍如何根据威胁行为的规则和特征进行靶向数据采集。

3.3.3.1 终端数据采集

终端数据是指位于整个系统中与单个计算机、服务器等终端设备相关的数据,一般包括终端资产数据、终端日志数据、终端告警数据等。

对于终端资产数据,前文已介绍过,可以通过各种系统工具、插件对终端资产数据进行采集,包括对终端的CPU、内存、硬盘、端口、文件系统、网络等数据进行采集,以便评估终端软件和硬件资产数据的安全状态。

对于终端日志数据,可以通过各类型的日志采集插件进行采集,例如通过操作系统日志采集插件、解析系统安全审计、获取系统对文件的操作等;对于浏览器日志数据,可以通过浏览器的日志插件采集记录浏览器的访问记录等日志。通过Flume支持在日志系统中定制各类数据发送方的这种功能,可以采集日志数据。

Flume[11]是一个高可靠的分布式海量日志采集、聚合及传输系统。Flume是Apache下的一个孵化项目,最早是由Cloudera提供的日志收集系统,支持定制各类数据发送方,同时提供对数据进行一些简单处理的功能,可将数据传输到各种不同的数据接收方,如将数据保存为文本并存入分布式系统HDFS和HBase等。Flume可以从控制台、Syslog日志系统等不同的数据源中采集数据,再将其传输到指定的目的地。为了确保成功传输,Flume系统会先将数据缓存到管道(Channel),待数据真正传输到目的地后,再删除缓存数据。

Syslog也被称为系统日志或系统记录,是加州大学伯克利软件分布研究中心开发的系统日志协议,可以用于记录设备日志数据[12]。Syslog可记录终端系统发生的各类型事件,分析师通过查看终端系统记录可以掌握系统情况。目前很多终端设备都支持Syslog协议,包括路由器、交换机、应用服务器、防火墙等,通过分析这些终端设备的日志,可以追踪和掌握与设备和网络有关的情况,并及时发现威胁行为。

对于终端告警数据,一般可通过部署在终端设备上的防御设备进行获取。例如,在终端设备上部署终端检测与响应EDR系统[13],可对终端设备进行主动监控,当发现终端设备出现异常登录、远程控制、木马控制、后门控制、本地提权、webshell检测、文件篡改、暴力破解等数据时,将整合数据并形成告警信息,发送给分析师进行进一步分析。此类EDR系统种类较多。例如,绿盟公司研发的NSFOCUS Endpoint Detection and Response[14],采用主动防御和横向对比等方法,从多个维度对比分析,感知主机异常变化,发现初期入侵点,对非正常行为实时拦截和告警,并可对可疑文件进行删除、隔离等;奇安信终端安全响应系统[15]通过威胁情报、攻防对抗、机器学习等方式,从主机、网络、用户、文件等多个维度评估网络系统中存在的未知风险,以行为引擎为核心,利用威胁情报,缩短从发现威胁到处置的响应时间。

对于不同类型的安全防御设备、安全工具,可以通过代理的方式采集和发送数据。代理(Agent)可以看作运行在传感器中,且分布在多个主机上的用于采集数据的脚本,主要负责从各安全设备、安全工具的插件中采集服务日志和报警日志等相关信息,并将采集到的各类信息统一格式后发送给态势感知系统。通过代理采集数据可以理解为在终端放置各种辅助设备,辅助设备可以主动采集相关数据,并发送给态势感知系统进行态势提取。

3.3.3.2 流量数据采集

流量数据包括完整的内容数据、提取的内容数据、会话数据、统计数据、告警数据等不同类型的数据。本节将针对不同类型的流量数据,介绍其采集方法及相关工具。

完整的内容数据:未被过滤、完整的网络数据。可通过多种网络抓包软件、包捕获软件采集此类数据。例如,Wireshark是一款强大的开源包捕获软件[16],内含数百种内置协议可对捕获的数据包进行解析,可用于显示每个数据包的详细细节。一般而言,Wireshark可以显示捕获数据包列表、数据包结构、原始数据包等。其中数据包列表主要记录被捕获的每个数据包。Wireshark示例如图3-2所示。图中,最上面窗口中显示的每一行均表示一个数据包,其内容包括每个数据包的摘要,如数据包的捕获时间、源IP地址、目的IP地址、所使用的协议、协议数据中的部分内容等;中间窗口中显示数据包结构,包括被选中数据包的协议、包字段等详细结构;最下面窗口中显示原始数据包,包括捕获数据包的原始内容,通过十六进制和ASCII码表示。

img

图3-2 Wireshark示例

Sniffer也是一款著名的抓包软件[17],一般被译为嗅探器,可以用来监视网络状态和数据流动情况,可以捕获数据帧并进行分析,可以通过配置过滤器保留特定的数据帧,可以通过多种视图深度分析数据帧等,适用于无线网络和有线网络。图3-3展示了Sniffer捕获的主机信息示例。

img

图3-3 Sniffer捕获的主机信息示例

此外,用于捕获数据包的工具还有很多,如Tshark[18]、SpyNet[19]等,不同抓包工具的特点和功能不尽相同,本书不一一介绍。目前也有专门的库用于创建抓包软件。例如,Libpcap库[20]是当前最流行的用于网络抓包的库,允许应用程序和网络接口之间交互捕获数据包,提供了一个独立于平台的API,便捷性高,被用于多个抓包工具。Libpcap库是unix/linux平台下的网络数据包捕获函数库,提供数据包捕获(捕获经过网卡的原始数据包)、自定义数据包发送(构造任意格式的原始数据包,并发送到目标网络)、流量采集与统计(对采集到的流量信息按照新规则进行分类和统计,并输出到制定终端)、规则过滤(提供脚本,允许用户对采集的流量数据包进行过滤)等功能。Libpcap库是大多数网络监控软件实现的基础。

提取的内容数据:从包捕获数据导出来的易于存储的包字符串数据。包字符串数据是一种介于包捕获数据和会话数据之间的数据,主要包括从报文协议的报头中提取的明文字符串,数据粒度接近捕获的原始数据包,比原始数据包更容易管理,也可以被存储更长的时间。包字符串数据的数据格式多种多样,支持分析师按照自己的需求自定义。其常见的格式包括两种:一种是只提取协议的报头信息,例如从应用层协议的报头中生成特定格式的包字符串,去掉相关数据的填充字段等,可以看作数据包的快照;另一种是只提取有效载荷数据(payload data),即存放所携带数据的填充字段,例如保存应用层协议报头后面的数据,而非报头字节。采集此类数据的工具包括Justniffer[21]、EtherDeteck Packet Sniffer等。Justniffer是一款功能比较全面的网络协议分析工具,可以捕获网络传输的数据包,并按照分析师的定义生成相关的日志,如Apache web服务器的日志文件等,同时能够追踪响应时间,拦截HTTP协议传输的文件等,能够让分析师交互式地从实时的网络流或数据包文件中追踪特定的数据流。EtherDeteck Packet Sniffer也是一款类似的网络协议分析工具。EtherDeteck Packet Sniffer获取web服务器响应时间示例如图3-4所示。图中的方框显示出通过终端交互形式计算web服务器响应时间。

img

图3-4 EtherDeteck Packet Sniffer获取web服务器响应时间示例

会话数据:两个网络设备之间通信流数据的汇总,存储着用户之间通信会话的相关属性和配置信息等。会话数据不像数据包那样含有详细数据,容量小,便于保存很长时间,有利于在攻击事件发生时和发生后对攻击进行溯源和复盘。会话数据常见的格式为五元组,示例如图3-5所示,包含源IP地址(192.168.1.1.)、源端口(10000)、目的IP地址(121.15.68.1)、目的端口(80)、传输协议(TCP)等。会话数据的形成过程比较简单:当网络中出现新的五元组数据时,将创建一个新的会话,表示一组网络设备开启会话;当网络中匹配到已经出现过的五元组时,将在已有的会话信息中添加检测出的会话数据。

img

图3-5 会话数据常见格式示例

采集会话数据的工具包括Argus[22]等。Argus可以使用自定义格式对数据进行记录,支持pcap格式,argus-server抓包时可以先打开一个端口,然后通过这个端口连接,并读取所抓包内的信息。3.3.3.2开关介绍的Wireshark软件也具有类似的功能。图3-6展示了一个Wireshark生成会话数据的示例。

img

图3-6 Wireshark生成会话数据的示例

统计数据:对网络流量数据进行组织和分析形成的数据。采集这类数据常用的工具包括Wireshark、Netflow Analyzer[23]、Tstat[24]、Tcptrace[25]等。Wireshark能对流量进行统计,Wireshark统计数据流量示例如图3-7所示。Wireshark不仅能展示数据流量的分布,还能展示多种不同类型的统计数据。Wireshark展示的不同类型的流量统计数据示例如图3-8所示。此外,Wireshark统计的I/O吞吐量示例如图3-9所示,展示了Wireshark对I/O吞吐量的统计数据。

img

图3-7 Wireshark统计数据流量示例

img

图3-8 Wireshark展示的不同类型的流量统计数据示例

img

图3-9 Wireshark统计的I/O吞吐量示例

告警数据:不同类型防御设备、检测系统检测出异常数据时发出的告警信息。此类数据可以看作对基础网络数据进行了分析和整合,并融合了部分检测规则所生成的具有代表性意义的数据。入侵检测系统(IDS)能监视和解析网络流量,是防火墙之后的一个重要防御系统,也是产生告警数据的一个重要系统。入侵检测系统的种类很多。很多公司都开发了IDS系统进行防御。例如:天融信入侵检测系统TopSentry[26]通过旁路监听网络流量,能对网络中的漏洞攻击、DDoS攻击、病毒传播等风险隐患进行检测,及时发现客户风险网络访问、资源滥用行为等;启明星辰研发的天阗入侵检测与管理系统[27]可对多种病毒、蠕虫、木马、DDoS、扫描、SQL注入、XSS、缓冲区溢出、欺骗劫持等攻击行为以及网络资源滥用行为等威胁进行检测,同时对于网络流量的异常情况能及时告警;Snorby[28]是一个开源的入侵检测系统接口,可以对数据进行分析,并对异常数据进行告警。

对流量数据进行采集的方法和工具很多,可通过NetFlow、sFlow、IPFIX等协议采集流量数据。

NetFlow[29]可以收集进入及离开网络界面的数据包数量及内容,最早由思科公司研发,是思科设备NLOS软件中内嵌的一种功能,可以将网络流量记录到设备的高速缓存中,以便提供非常精准的流量监测,可应用在路由器及交换器等产品中。NetFlow提供网络流量的会话级视图。NetFlow系统一般而言包含探测器、采集器、报告系统等部分。其中,探测器主要用于对网络数据进行监听;采集器收集探测器发来的数据;报告系统通过采集器收集的数据生成易于分析师阅读的报告。NetFlow统计的流量数据包含与来源和目的相关的各类信息,包括使用的协议、端口等,能帮助分析师和管理人员了解网络流量情况。NetFlow常用于对异常流量的分析,通过NetFlow采集的数据可以对异常流量的种类、来源、目的、后果、数据包类型、端口、协议等多方面进行分析。

sFlow[30]是由InMon、HP和FoundryNetworks等公司联合开发的一种网络监测技术,通过数据流随机采样的方法,可提供较为完整的流量数据,适用于超大网络流量环境下的流量分析,有助于用户实时分析网络传输的性能、趋势及存在的问题。sFlow技术能够在整个网络中以连续实时的方式监视每一个端口,并且不需要镜像监视端口,可以保证对整个网络性能的影响很小。sFlow可以对高速千兆、万兆的端口进行准确监视,并可以扩展到管理数万个端口。与使用端口镜像、探针和旁路监测技术的传统网络监控解决方案相比,sFlow具有更低的成本和优势。

IPFIX[31]全称为IPFlow Information Export,即IP数据流信息输出,是一个用于网络数据流信息测量的标准协议。IPFIX统一了流量监控的标准,通过使用统一的模型,简化了数据流输出架构。在IPFIX出现之前,网络管理员和分析人员需要为支持不同的流报告应用而花费额外的精力和时间。IPFIX制定的一系列RFC形式的标准,提供了专业的网络流量检测参考标准。IPFIX描述了数据流信息输出的众多规则,包括时间戳、流终止、数据包分段等规则。IPFIX将流定义为在一个时间间隔内经过某观察点的一系列IP数据包。属于同一个流的IP数据包具有相同的传输层头字段、应用层头字段等。根据捕获数据包的属性可以对数据包进行重组,还原原始的流信息,进而对网络流量进行监测。

3.3.3.3 针对威胁行为的靶向数据采集

针对不同类型的威胁行为,态势感知系统需要设计不同的规则和特征,并对满足安全特征的数据进行采集,从而判断威胁行为的产生。防火墙、终端检测与响应系统EDR、入侵检测系统IDS、入侵防御系统IPS等都会设计相关的规则和特征,实现对已知部分攻击行为的检测和发现,并及时告警。一般而言,威胁行为可以分为单步攻击行为和多步攻击行为。其中,单步攻击行为是描述攻击行为的最小单元;多步攻击行为是由多个单步攻击行为组成的并能实现一定目的的行为。

针对威胁维度数据的靶向采集,主要是对单步攻击行为的特征进行总结,并设计相应的规则和安全特征。对单步攻击行为可以从攻击意图、技术路线、实现方法、实现具体细节这四个层次进行分析,每个层次都有很多种具体的攻击行为。一种攻击行为可能在不同的层次上被进一步细分,例如攻击意图层次包括扫描探测、渗透突破、远程控制、窃取利用等攻击行为。扫描探测攻击行为在技术路线层次上又可以细分为网络层扫描、传输层扫描、应用层扫描和情报搜集等。网络层扫描在实现方法层次上又可以细分为ARP Request扫描、ARP Replay扫描、ICMP扫描等。对于具体的网络层扫描攻击行为,为了判断是否有此类攻击行为要进行靶向数据采集,针对流量数据进行检测,设计关于端口信息、主机信息等的扫描探测特征,当从流量数据中分析出符合此类安全特征的数据时,便可以及时告警该威胁数据。对于多步攻击行为,只能通过检测的多个单步行为的数据进行关联分析。本书第4章将介绍一些针对单步攻击和多步攻击行为的检测方法。

蜜罐和蜜网技术也是采集威胁维度数据的一种方式。蜜罐技术[32]本质上是一种对攻击者进行欺骗的技术,通过在系统中布置一些作为诱饵的主机、网络服务或信息等,诱使攻击者对它们实施攻击,从而可以对其攻击行为进行捕获和分析,了解攻击者所使用的工具与方法,推测其攻击意图和动机。这种技术可以看作是专门为吸引并诱骗攻击者而设计的。通过对攻击者采用的攻击行为、方法的采集,分析师能够清晰地知道目标网络系统面临的安全威胁,能够了解攻击者可能使用的一些最新的攻击方法及利用的漏洞等。通过蜜罐技术采集的威胁维度数据具有很高的价值,因此,实现蜜罐技术的蜜罐系统应该具备对攻击行为的发现、产生告警、记录具体的攻击路径等功能。

蜜罐一般分为实系统蜜罐和伪系统蜜罐。其中,实系统蜜罐可以理解为真实的蜜罐,即运行着真实的系统,并且带着真实可入侵的漏洞。这类蜜罐系统虽然有很危险的漏洞,但是能记录很多最为真实的威胁行为数据。伪系统蜜罐是建立在真实系统基础上的,其平台与漏洞存在非对称性,有助于防止蜜罐系统被攻击者破坏,并能模拟出一些不存在的漏洞。

蜜网的功能和蜜罐类似,是由多台终端设备组成的网络。蜜罐是单一的计算机设备。蜜网一般是隐藏在防火墙后面的,所有进出的数据都会被监控和采集,通过捕获的威胁维度数据,有助于分析攻击者使用的工具、攻击方法、攻击动机等。