文章目录
3.1 网络安全数据采集的问题背景
网络安全数据的采集需要具有针对性,即进行靶向数据采集。
需要采集的数据可以分为三个维度的数据:
(1)资产维度数据:目标系统包含的各类软件和硬件、运行任务相关的资产数据;
(2)漏洞维度数据:与目前系统中可能存在的与各种漏洞相关的信息;
(3)威胁维度数据:攻击者对系统进行攻击时留下的与威胁行为相关的数据。
通过采集资产维度数据,分析师可以对目标系统的资产状况、工作任务运行状况有清晰的了解;
通过采集漏洞维度数据,分析师可以发现目标系统可能存在的漏洞,并使用相应补丁进行修复;
通过采集威胁维度数据,分析师可以获知正在发生或已经发生的攻击事件,进一步判断攻击事件可能造成的后果,及时制定相应的防范措施。
3.1.1 网络安全数据的特点及数据采集难点
1.特点
网络安全数据是典型的大数据,具有5V特点:
(1)Volumn:网络流量、系统产生的日志等数据体量庞大。因此需要提取关键和敏感的数据。
(2)Variety:网络安全相关数据种类多、来源广。因此在形成网络空间安全态势感知的过程中需要对不同来源的数据进行融合。
(3)Velocity:数据增长速度快,时效性要求高。
(4)Value:数据价值密度低。需要准确筛选出相关有价值的数据,并通过大量的数据分析,找出真正的攻击事件。
(5)Veracity:数据质量不高。因此,需要从大量的数据中甄别数据的真实性和有效性,减少无用数据。
2.难点
(1)由于采集方法多样、工具繁多,分析师在采集网络数据时需要掌握的专业技能更多,要求更高。
(2)数据采集方式的多样化,使得能用于网络安全态势提取的数据过多,需要解决数据过载问题,以便从大量数据中采集到与态势感知密切相关的数据。
3.1.2 面向不同岗位角色、不同分析师的靶向数据采集
1.不同岗位角色:
对于首席安全官和安全顾问/专家,首席安全官负责制定安全策略或安全框架,安全顾问/专家负责从顶层指定相关策略或提出建议,更关注整体系统的安全情况和安全策略。
对于安全分析师,负责分析和评估网络基础设施中存在的漏洞及相关的应对措施,更关注漏洞维度数据及与目标系统软件和硬件资产等相关的漏洞,可以通过分析资产维度和漏洞维度的关联情况来采集相关数据。
对于安全工程师,负责执行安全监控、安全分析、数据分析、日志分析及取证分析等,能检测发现安全事件,并对安全事件进行响应。更关注威胁维度数据,需要从安全防御设备中采集各类告警数据,从数据中发现异常,从流量数据中采集与攻击行为相关的异常流量数据。
对于安全管理员,负责安装和管理安全系统,是执行安全信息采集、安全管理措施、安全响应方案实施等的实际工作人员,根据安全分析师、安全工程师的实际需求采集相关数据。
2.不同分析师:
对于分析师,Splunk公司介绍了三个层次分析师的职责:
安全行动中心(SOC)在检测到安全事件以后,会采取相应流程。
首先,当安全告警信息发出以后,第一级分析师会试图消除误报信息,并对真实的网络攻击尝试实施缓解措施,由于第一级分析师技能掌握程度较低,因此当他们无法补救时,会将该事件递交给第二级分析师处理。在这个过程中,第一级分析师主要采集的数据是来自防御设备最直接的告警信息及资产被攻击的事件信息,如IDS告警、文件或系统出现安全事件等。
第二级分析师会使用更高级的攻击来研究安全事件,比如他们会采用数据包捕获分析流量中的异常,并综合多个防御设备的告警数据、流量数据等安全事件的威胁程度,尝试各种缓解和补救措施,降低安全事件的影响程度。
第三级分析师使用更多数据,综合判断安全事件造成的危害,包括对文件系统、软件和硬件造成的危险,结合防御设备的信息、流量异常信息,对攻击事件进行分析和溯源,制定相应措施。
计算机安全事件响应团队(CSIRT)的第二级和第三级分析师往往位于安全行动中心内部,处理发生的网络安全事件。
3.1.3 网络安全数据采集示例
以webshell攻击为例,攻击者在入侵企业网站时,通过各种方式获取webshell,进而获得对企业网站的控制权。
常见的攻击方式有:利用后台数据库备份及恢复的功能来获取webshell、SQL注入、直接上传获取webshell、使用跨站脚本攻击(XSS)。
eg:攻击者寻找web漏洞,通过高危漏洞实现对webshell的获取,在服务器上留下脚本文件。接下来介绍如何检测并发现此类攻击,需要采集什么样的数据才能检测出此类攻击。
(1)
从资产维度数据采集而言,应该采集服务器运行状态、服务器权限数据、服务器数据库异常数据等;
从漏洞维度数据采集而言,应该采集服务器漏洞,比如与SQL注入相关的漏洞等,根据已公开的漏洞数据库进行关联分析,分析目标系统中存在此类攻击的服务器;
从威胁维度数据采集而言,应该采集与webshell攻击行为相关的数据。
(2)
可以通过基于webshell特征、基于流量、基于webshell行为特征等方法进行检测。
①当使用基于webshell特征进行检测时,需要了解webshell常用函数,比如系统调用命令执行函数(eval/system/cmd_shell)、文件操作函数(fopen/fwrite等)、数据库操作函数。也可以通过grep命令搜索常见webshell木马中可能使用的危险函数。
②基于流量的检测,通过匹配数据流的特征进行检测,可以通过wireshark、WeBaCoo等工具进行抓包测试,采集流量数据并对其中的流量特征进行分析。
③基于webshell行为特征的检测首先考虑攻击者意图,攻击者上传webshell会进行什么操作,然后检测系统中关键资产的变化及敏感操作。此外,可以通过日志信息追溯攻击路径。
3.2 面向网络安全态势感知的安全要素和安全特征
3.2.1 资产维度数据
面向网络安全态势感知的资产维度数据是指各类硬件、软件等数据。对于防御者而言,资产维度数据是指需要保护的网络系统中各类资产及不同资产之间的关联情况。
(1)各类资产在硬件层面包括计算机、服务器、路由器、交换机、打印机、扫描仪等;
(2)在软件层面包括运行在系统中的各种应用软件;
(3)在数据层面包括各类关键数据,如用户密码、配置文件、个人文件等;
(4)不同资产之间的关联情况包括网络拓扑、硬件和软件之间的适配关系。
与各类资产相关的可以采集的数据包括但不限于下述数据:
(1)硬件数据:包括磁盘、内存、CPU等硬件设备的型号、版本号等基础信息;
(2)操作系统数据:包括操作系统的型号、版本号等基础信息;
(3)软件数据:包括不同软件的类别、型号、版本号等基础信息;
(4)CPU占用率:用于评估计算机、服务器等硬件的CPU运行情况,以便评估硬件资产的状态;
(5)内存占用率:用于评估计算机、服务器等硬件的内存运行情况,以便评估硬件资产的状态;
(6)磁盘占用率:用于评估计算机、服务器等硬件的运行情况,以便评估硬件资产的状态;
(7)磁盘IO信息:用于评估计算机、服务器等硬件的磁盘工作状态;
(8)注册表:用于评估计算机、服务器上的重要软件和硬件的运行状态;
(9)系统调用:通过系统函数被调用的频次评估软件和硬件、驱动程序和驱动器的运行状态;
(10)进程:用于观察和评估是否存在异常运行的软件和进程;
(11)端口:通过端口状态评估是否存在异常运行的软件、服务;
(12)服务:用于评估计算机、服务器等的相关服务运行状态;
(13)网络状态:查看网络连接、网络服务、丢包率等网络相关的运行状态;
(14)出入流量:用于评估计算机、服务器出入的流量,通过出入流量评估是否存在异常软件、服务的运行;
(15)用户数据:通过用户名、用户群组等评估用户相关的数据;
(16)权限数据:查看不同用户的权限数据,用于评估是否存在异常用户、异常权限更换等情况;
(17)文件系统:评估计算机、服务器上文件系统的变化情况,用于评估是否存在异常的文件修改、文件删除等操作。
本书将资产维度数据划分为两类:静态资产信息和动态资产信息。
静态资产信息包括需要保护的各类计算机硬件、软件数据,即型号、版本等各类基础信息;
动态资产信息反映资产状态、业务运行状态,包括运行的程序信息、配置信息、身份信息、资源状态信息等。
此外,与业务运行相关的信息也被划分为资产维度数据。
3.2.2 漏洞维度数据
漏洞维度数据是指网络空间存在的各类漏洞、弱点、缺陷等数据。
1.常见的网络安全漏洞数据:
(1)软件漏洞:指计算机、服务器上运行软件存在的脆弱性。软件漏洞一方面可能是由于操作系统本身的设计缺陷所带来的,可以被设计在操作系统的软件中继承;另一方面,可能是软件程序自身的安全漏洞,比如在软件程序自身设计过程中的漏洞、编写程序时未充分考虑边界条件、软件和硬件及框架的不适配导致的漏洞。
(2)配置漏洞:指在进行安全配置、系统配置、软件配置时,由于配置不合理,在网络、软件和硬件环境发生变化后,未及时调整安全配置,导致资产安全未得到保障而造成的漏洞。
(3)结构漏洞:指由于网络系统没有采取有效的安全措施导致网络系统处于不设防的状态。另外,在一些重要的网络系统中,由于交换机等网络设备设置不当,还可能造成网络流量被攻击者盗取等漏洞。
2.网络安全漏洞数据还包括由管理人员造成的漏洞,主要包括软件、协议、配置等方面的漏洞。从漏洞的威胁程度,可以分为低危漏洞、中危漏洞和高危漏洞:
(1)低危漏洞:能够导致轻微信息泄露的安全漏洞,包括反射性XSS(包括反射性DOM-XSS)、CSRF(跨站请求伪造)、路径信息泄露、SVN信息泄露、phpinfo等。
(2)中危漏洞:能被用来直接盗取用户身份信息或能够导致普通级别用户信息泄露的漏洞。包括存储性XSS漏洞、客户端明文密码存储等。
(3)高危漏洞:可被攻击者远程利用并能直接获取系统权限或导致严重级别信息泄露的漏洞。包括远程命令执行、SQL注入、缓冲区溢出、绕过认证直接访问管理后台、核心业务非授权访问等。
3.从漏洞被利用的方式而言,漏洞维度数据可分为本地漏洞数据和远程漏洞数据:
(1)本地漏洞数据:指攻击者需要登录到本地系统时才能利用的漏洞数据,如权限提升;
(2)远程漏洞数据:指攻击者可以通过远程访问目标网络进行攻击和利用的漏洞数据。
4.从威胁类型而言,可以分为获取控制、获取数据、拒绝服务类型的数据:
(1)获取控制类型的数据:指可用于执行攻击者制定的指令或命令的漏洞数据;
(2)获取数据类型的数据:指可导致劫持程序访问预期外的资源并泄露给攻击者的漏洞数据;
(3)拒绝服务类型的数据:指可以导致目标系统、任务等暂时或永远性失去响应正常服务能力的漏洞数据。
5.从技术类型而言,可以分为内存破坏类漏洞数据、逻辑错误类漏洞数据、输入验证类漏洞数据、设计错误类漏洞数据、配置错误类漏洞数据。
3.2.3 威胁维度数据
威胁维度数据指攻击者在对网络空间的软件和硬件等资产进行攻击时遗留或暴露出来的相关数据。
威胁维度数据一般与攻击行为相关,因此需要设定与攻击行为相关的安全特征,并对具有此类特征的数据进行靶向数据采集。
威胁维度数据一般分为终端数据和流量数据。对于终端数据,防御者需要关注要保护的系统终端的各类数据,从而能从终端数据中发现并采集异常数据;对于流量数据,由于攻击者可能利用远程漏洞数据进行攻击,防御者需要关注网络流量数据,通过网络流量数据采集威胁维度数据,以便于进行态势提取。
1.终端数据
定义:指由防御者保护的单个计算机、服务器等终端设备的有关数据。
按照数据种类可以分为终端资产数据、终端日志数据、终端告警数据:
(1)终端资产数据:如设备CPU、内存、硬盘、端口、文件系统、网络等终端设备上与资产相关的数据。用于评估终端的安全状态,当终端资产数据发生异常时,就可以此埃及相关的威胁维度数据。
(2)终端日志数据:计算机系统运行过程、用户执行各类操作等的过程性事件记录数据。主要用于了解具体哪个用户、在什么事件、对哪台设备、哪个软件、做了具体什么操作。终端日志数据包括但不限于:
①操作系统日志:在操作系统中执行各类操作时所产生的过程性记录;
②浏览器日志:在浏览器中执行各类操作时所产生的过程性记录;
③文件日志:在不同文件执行各类操作时所产生的过程性记录;
④应用程序日志:在各类应用程序上执行各类操作时所产生的过程性记录;
⑤网络日志:对网络状态、信息产生变化的过程性记录;
⑥数据库日志:对各类数据库执行各类操作时所产生的过程性记录。
(3)终端告警数据:通过在终端部署终端检测与响应系统(EDR),可主动监测终端,及时发现与记录终端各种安全事件检测告警数据。终端告警数据包括但不限于:
①异常登录告警:用于异常登录的告警信息;
②远程控制告警:针对终端远程控制的告警信息;
③木马控制告警;
④后门控制告警;
⑤本地提权告警;
⑥webshell检测告警;
⑦文件完整性检测告警;
⑧暴力破解告警。
2.流量数据
定义:指对网络协议实时解码、提取元数据、对网络中的流量进行采集等操作时所形成的数据。
流量数据包括完整内容数据、提取内容数据、会话数据、统计数据和告警数据。
(1)完整内容数据:包捕获数据,即在网络中传输过的没有被过滤、筛选过的原始数据,具有完整的内容描述。
(2)提取内容数据:包字符串数据,即从包捕获数据导出来的数据。
(3)会话数据:流数据,即两个网络设备之间通信行为的汇总,通常为五元组,包含源IP地址、源端口、目的IP地址、目的端口、传输协议等五组信息。
(4)统计数据:对网络流量数据进行组织、分析形成的统计性数据,描述来源于各个活动的各个方面的流量。
(5)告警数据:当各类型检测系统检测出某些量超过了所规定的界限,或者数据出现异常时,系统自动产生的告警信息。
3.3 安全要素和安全特征的采集技术
本节针对不同类别的安全要素和安全特征,介绍不同的数据采集方法及相关的采集工具。
3.3.1 资产维度数据采集
1.对不同类型的资产维度数据进行采集:
(1)对资产基础数据的采集。 对于与资产相关的硬件数据、操作系统数据、软件数据等静态资产数据,可以采用基础的采集工具。
例如,通过计算机的设备管理器可以查看磁盘、内存、CPU等硬件设备的型号、版本号等,通过计算机自带的系统软件可以查看操作系统信息,通过软件管理工具可以查看安装的软件类别、版本号等基础数据。
采集目的:分析资产可能潜在的安全漏洞。
(2)对于CPU占用率、内存占用率、磁盘占用率、磁盘IO信息等硬件运行类系统资源数据,可通过WMI(Windows管理规范) 进行采集。
采集目的:判断是否存在异常的硬件资源被占用的情况。
(3)注册表数据可以通过注册表变化插件或工具(如Process Monitor)进行采集。通过插件或工具对变化的注册表信息进行审计。
采集目的:通过审计注册表的变化,查看是否是用户的正常操作,从而判断是否有攻击事件的发生。
(4)系统函数调用数据可以通过Hook系统获得。
采集目的:检测对敏感系统函数的频繁调用。
(5)与进程相关的数据可以通过进程列表采集插件来采集。
采集目的:判断是否有可疑进程的出现,是否有正常工作的进程被恶意关闭。
(6)端口数据(主要包括各开放端口的数据)可通过psutil库来获取。
采集目的:检测是否存在异常的端口数据。
(7)服务类数据可通过WMI获取系统服务信息。
采集目的:判断系统服务信息是否被改变。
(8)网络类数据,包括网络状态、出入流量、丢包率、网络连接情况、网卡处理的数据等,可以通过WMI采集。
采集目的:判断是否存在异常的网络连接、异常的出入流量等。
(9)用户数据可以通过系统账号插件进行采集。利用系统内置函数可以获取用户的用户名、用户群组等数据。
(10)权限数据可以通过类似插件采集。
采集目的:获取不同用户的权限变化情况,判断提权操作是否为攻击者所为。
(11)文件系统数据可以通过文件监控插件采集。
采集目的:通过跟踪文件操作,记录文件系统审计数据,为分析师下一步判断提供依据。
资产维度数据属于配合性的数据采集,较为容易。
网络拓扑是网络安全态势可视化的基础,不仅能显示网络的连接结构,还可以作为一个平台显示网络态势的各种信息。通过给目标网络安装探测器,采集相关信息,形成整个目标网络系统的拓扑信息。
2.常用的采集技术和采集工具
(1)WMI
WMI是一项核心的Windows管理技术,以CIMOM(公共信息模型对象管理器)为基础,可以被视为描述操作系统构成单元的对象数据库,为各种工具软件和脚本程序提供了访问操作系统构成单元的公共结构,主要用于管理本地和远程的资产数据。
利用WMI可以主动获取网络和系统数据,WMI允许通过一个公共接口访问多种操作系统构成单元,不必分别对待各种底层接口。
当用户拥有计算机设备的管理权限时,便可以在本地计算机或远程执行WMI操作。
(2)SNMP(简单网络管理协议)
SNMP是一个用于检查和管理网络设备的常用协议,主要被用来采集网络管理信息及各类安全事件数据。
SNMP协议管理的网络由中央管理系统、被管理设备、代理等组成。
被管理设备按SNMP协议向中央管理系统发送报告。
中央管理系统可以通过GET(提取一项信息)、GETNEXT(提取下一项信息)、GETBULK(提取多项信息)等指令进行轮询,取回被管理设备的信息;也可以让被管理设备的代理使用TRAP或INFORM指令主动传送相关信息;还可以通过SET指令传送配置更新、控制的请求,实现针对被管理设备的远程控制,主动管理系统。
(3)端口扫描
端口扫描用于采集端口相关的动态数据。
端口扫描可以向某一个终端的某一个端口提出建立一个连接的请求,通过对方的回应来判断目标终端是否已经安装了相关服务。
通过端口扫描,可以发现终端设备开放了哪些端口、端口的分配及提供的服务,以及对应软件版本等。因此,当在防护的网络系统中获取了用户授权后,可以使用端口扫描采集动态资产数据。
3.3.2 漏洞维度数据采集
采集漏洞数据最常用的方法:通过开源的漏洞数据库获取漏洞数据、通过开放的漏洞数据库获取已发现的各种漏洞,并将漏洞数据表示为合适的形式。
1.常用的漏洞数据库
(1)CNNVD(国家信息安全漏洞库):介绍了详细的漏洞信息,包括相关的补丁信息、漏洞报告、漏洞预警。
(2)CVE(通用漏洞披露):介绍了漏洞披露时间、相关的操作系统、软件系统、存在漏铜的函数等信息。
(3)NVD(美国国家漏洞数据库):包括了数据库与安全相关的软件缺陷、错误配置、产品名称、影响范围。
2.采集漏洞维度数据可以通过各种漏洞数据库对已知的漏洞信息进行采集,采集时,将信息保存为合适的格式,信息包括不同漏洞存在的硬件系统、软件系统等。
采集此类信息的目的:分析所防护的目标网络系统可能存在的漏洞,并及时采取相应措施进行防御。
然而,漏洞数据库的漏洞信息都是通过对历史攻击事件分析得来的,所以对于未知的漏洞,只能在发现和诊断出攻击行为以后,才能对漏洞数据进行更新和完善。
漏洞维度数据的采集比较容易,难点在于如何与目标网络系统存在的漏洞关联。
3.漏洞扫描
漏洞扫描也可以采集此类数据。通过漏洞扫描可以对指定的远程或本地终端系统进行安全性检测。基于已有的漏洞信息,扫描发现可利用的漏洞是一种用于检测渗透式攻击行为的方法。
一般而言,扫描探测属于攻击行为。但是对于防御者而言,对于需要防护的目标网络系统进行扫描可以主动获取系统存在的漏洞,使得分析师可以了解防护目标网络系统的安全设置和运行的应用服务状态,还能及时发现存在的安全漏洞。
3.3.3 威胁维度数据采集
威胁维度数据属于非配合性的采集方式,难度较大。
采集威胁维度数据只能通过终端数据和流量数据的变化情况,对可能存在的威胁行为进行判断。为了避免数据过载,在采集时,应当根据不同的威胁行为设计相应的规则和特征,实现针对威胁行为的靶向数据采集。
本节先介绍针对终端数据和流量数据采集的一般方法,然后介绍如何根据威胁行为的规则和特征进行靶向数据采集。
1.终端数据采集
(1)定义:终端数据指位于整个系统中与单个计算机、服务器等终端设备相关的数据,一般包括终端资产数据、终端日志数据、终端告警数据等。
(2)数据采集方法
①终端资产数据:通过各种系统工具、插件进行采集,包括对终端的CPU、内存、硬盘、端口、文件系统、网络等数据进行采集,以便评估终端软件和硬件资产数据的安全状态。
②终端日志数据:通过各类型的日志采集插件进行采集。通过Flume支持在日志系统中定制各类数据发送方的功能,可以采集日志数据。
Flume:高可靠的分布式海量日志采集、聚合及传输系统,支持定制各类数据的发送方,同时提供对数据进行一些简单处理的功能可将数据传输到不同的数据接收方。
Flume可以从控制台、Syslog日志系统等不同的数据源中采集数据,再将其传输到指定目的地。为了确保传输,Flume系统会先将数据缓存到管道,待数据真正传输到目的地后,再删除缓存数据。
Syslog:又称系统日志或系统记录,可以用于记录设备日志数据。Syslog可记录终端系统发生的各类型事件,分析师通过查看终端系统记录可以掌握系统情况。目前很多终端设备都支持Syslog协议,包括路由器、交换机、应用服务器、防火墙等。
③终端告警数据:一般通过部署在终端设备上的防御设备进行获取。例如,终端检测与响应EDR系统;绿盟公司研发的NSFOCUS Endpoint Detection and Response;奇安信终端安全响应系统。
对于不同类型的安全防御设备、安全工具,可以通过代理的方式采集和发送数据。
代理可以看作运行在传感器中,且分布在多个主机上的用于采集数据的脚本,主要负责从各安全设备、安全工具的插件中采集服务日志和报警日志等相关信息,并将采集到的各类信息统一格式后发送给态势感知系统。
通过代理采集数据可以理解为在终端放置各种辅助设备,主动采集相关数据,并发给态势感知系统进行态势提取。
2.流量数据采集
(1)定义:流量数据包括完整的内容数据、提取的内容数据、会话数据、统计数据、告警数据等不同类型的数据。
(2)数据采集
①完整的内容数据:未被过滤、完整的网络数据。可以通过多种网络抓包软件、包捕获软件采集此类数据,例如Wireshark、Sniffer。
Wireshark,包含数百种内置协议可以解析捕获的数据包,显示每个数据包的详细细节。
Wireshark可以显示捕获数据包列表、数据包结构、原始数据包等。其中数据包列表主要记录被捕获的每个数据包。
Sniffer,嗅探器,用于监视网络状态和数据流动情况,可以捕获数据帧并进行分析,通过配置过滤器保留特定的数据帧,通过多种视图深度分析数据帧等,适用于无线网络和有线网络。
Libpcap库 ,当前最流量的用于网络抓包的库,允许应用程序和网络接口之间交互捕获数据包,提供了一个独立于平台的API,便捷性高,被用于多个抓包工具。
Libpcap库是unix/linux平台下的网络数据包捕获函数库,提供数据包捕获(捕获经过网卡的原始数据包)、自定义数据包发送(构造任意格式的原始数据包,并发送到目标网络)、流量采集与统计(对采集到的流量信息按照新规则进行分类和统计,并输出到指定终端)、规则过滤(提供脚本,允许用户对采集的流量数据包进行过滤)等功能。
②提取的内容数据:从包捕获数据导出来的易于存储的包字符串数据。
包字符串数据是一种介于包捕获数据和会话数据之间的数据,主要包括从报文协议的报头中提取的明文字符串,数据粒度接近捕获的原始数据包。
包字符串数据的常见格式有两种:一种是只提取协议的报头信息,去除相关数据的填充字段等,可以看作数据包的快照;另一种是只提取有效载荷数据(payload data),即存放所携带数据的填充字段。例如,保存应用层协议报头后面的数据,而非报头字节。
采集此类数据的工具包括Justniffer、EtherDetect Packet Sniffer。
Justniffer是一款功能比较全面的网络协议分析工具,可以捕获网络传输的数据包,并按照分析师的定义生成相关日志,同时能够追踪响应时间,拦截HTTP协议传输的文件,能够让分析师交互式地从实时的网络流或数据包文件中追踪特定的数据流。
③会话数据:两个网络设备之间通信流数据的汇总,存储着用户之间通信会话的相关属性和配置信息等。
会话数据不像数据包包含详细数据,因此容量小、可以长时间保存,有利于在攻击事件发生时和发生后对攻击进行溯源和复盘。
会话数据的形成过程比较简单:当网络中出现新的五元组数据时,将创建一个新的会话,表示一组网络设备开启会话;当网络中匹配到已经出现的五元组时,将在已有的会话信息中添加检测出的会话数据。
采集会话数据的工具包括Argus等。
Argus可以使用自定义格式对数据进行记录,支持pcap格式,argus-server抓包时可以先打开一个端口,然后通过这个端口连接,并读取所抓包内的信息。
④统计数据:对网络流量数据进行组织和分析形成的数据。
采集这类数据常用工具有:Wireshark、Netflow Analyzer、Tstat、Tcptrace。
⑤告警数据:不同类型防御设备、检测系统检测出异常数据时发出的告警信息。
入侵检测系统(IDS)能监视和解析网络流量,是防火墙之后的一个重要防御系统,也是产生告警数据的一个重要系统。
采集此类数据的方法和工具有:NetFlow、sFlow、IPFIX。
NetFlow可以收集进入及离开网络界面的数据包数量及内容,将网络流量记录到设备的高速缓存中,提供精准的流量监测,应用在路由器及交换器等产品中。
NetFlow提供网络流量的会话级视图,一般包含探测器、采集器、报告系统等部分。
探测器用于监听网络数据,采集器收集探测器发来的数据,报告系统通过采集器收集的数据生成易于分析师阅读的报告。
NetFlow统计的浏览数据包含与来源和目的相关的各类信息,包括使用的协议、端口。
sFlow 是一种网络监测技术,通过数据流随机采样,提供较为完整的流量数据,适用于超大网络流量环境下的流量分析。
sFlow技术能够在整个网络中以连续实时的方式监测每一个端口,并且不需要镜像监视端口。
IPFIX,即IP数据流信息输出,是一个用于网络数据流信息测量的标准协议。
IPFIX同意了流量监控标准,通过使用统一的模型,简化了数据流输出架构。
IPFIX描述了数据流信息输出的规则,包括时间戳、流终止、数据包分段等。
IPFIX将流定义为在一个时间间隔内经过某观察点的一系列IP数据包。属于同一个流的IP数据包具有相同的传输层头字段、应用层头字段等。根据捕获数据包的属性可以对数据包进行重组,还原原始的流信息,进而监测网络流量。
3.针对威胁行为的靶向数据采集
针对不同类型的威胁行为,态势感知系统需要设计不同的规则和特征,并对满足安全特征的数据进行采集,从而判断威胁行为的产生。
威胁行为可以分为单步攻击行为和多步攻击行为。其中,单步攻击行为是描述攻击行为的最小单元;多步攻击行为是由多个单步攻击行为组成的并能实现一定目的的行为。
针对威胁维度数据的靶向采集,主要是总结单步攻击行为的特征,并设计相应的规则和安全特征。
①单步攻击行为:可以从攻击意图、技术路线、实现方法、实现具体细节四个层次进行分析,每个层次都有多种具体的功能攻击行为。
为了判断是否有此类攻击行为要进行靶向数据采集,针对流量数据进行检测,设计关于端口信息、主机信息等的扫描探测特征,当从流量数据中分析出符合此类安全特征的数据时,便可以及时告警该威胁数据。
②多步攻击行为:只能通过检测的多个单步攻击行为的数据进行关联分析。
蜜罐和蜜网技术也是采集威胁维度数据的一种方式。
蜜罐技术本质上是一种对攻击者进行欺骗的技术,通过在系统中布置一些作为诱饵的主机、网络服务或信息等,诱使攻击者实施攻击,从而对攻击行为进行捕获和分析。此方法能够使得分析师清晰地知道目标网络系统面临的安全威胁,了解攻击者可能使用的一些最新攻击方法及利用的漏洞。
蜜罐一般分为实系统蜜罐和伪系统蜜罐。
①实系统蜜罐:运行着真实的系统,带着真实可入侵的漏洞。它虽然有很危险的漏洞,但是能记录最真实的猥亵行为数据。
②伪系统蜜罐:建立在真实系统的基础上,平台与漏洞存在非对称性,有助于防止蜜罐系统被攻击者破坏,并能模拟出一些不存在的漏洞。
蜜网和蜜罐功能类似,是由多台终端设备组成的网络。一般隐藏在防火墙后面,所有进出的数据都会被监控和采集,通过捕获的威胁维度数据,有助于分析攻击者使用的工具、攻击方法和攻击动机。
3.4 网络安全数据融合
3.4.1 数据清洗
数据清洗是指去除数据集中的噪声数据、不一致的数据、对遗漏数据进行填补等。
1.噪声数据
(1)定义:噪声数据是指数据集中存在错误或异常数据,一般是指偏离期望数值较大的数据。
(2)噪声数据一般源于设备出现故障、在数据传输过程中出现错误等特殊情况,对其处理的方法一般是使用“光滑”的数据替代。
常用替代方法如下:
①均值替代:对于偏离数据整体分布的噪声数据,采用周围数据的平均值替代。
②回归替代:对于单个偏离幅度较大的噪声数据,根据该数据周围的多个数据设计函数做数据拟合,再用拟合的数据替代。
均值替代方法属于较简单的回归替代方法。
常用的回归替代方法包括线性回归、逻辑回归、多元回归等。
对于维度较低的数据可以采用线性回归的方法,将数据拟合成一条直线;
对于高维度的数据则可以使用多元线性回归的方法,将数据拟合到多维曲面。
③分箱法:将待处理的数据按照一定规则放入不同箱子中,对每一个箱子中的数据采取特定的方法进行处理。分箱法一般分为:等深分箱法、等宽分箱法、自定义区间法。
等深分箱法:将数据平均分配到每一个箱子中,即每一个箱子中的数据个数保持一致;
等宽分箱法:根据数据区间进行划分,每一个箱子中的数据区间范围固定,将符合区间范围的数据分入对应的箱子中;
自定义区间法:用户可以自定义每一个箱子中的数据区间范围,再将数据放入到对应区间中。
分箱完成以后,对于每一个箱子中的数据处理方法包括均值平滑法、中位数平滑法、边界平滑法等。
均值平滑法:对同一箱子中的所有数据求平均值,箱子中的数据用平均值替代;
中位数平滑法:计算箱子中的中位数,箱子中的数据用中位数替代;
边界平滑法:将箱子中数据的最大值和最小值作为边界,再把箱子中的每一个数据替换为最大值或最小值。
④聚类:将数据划分为不同类别,以便判断不同数据的相似程度。
对于噪声数据,可以通过聚类将正常数据归类,并设置合理参数用于检测噪声数据,再将其去除,或者替换为类别与其最接近的边界数据。
2.不一致的数据
产生不一致数据的原因有很多,比如数据集中存在少量不符合规范的数据,需要将不一致的数据提取出来。
此外,数据内涵前后不一致可能导致数据冲突,数据更新不及时也可能导致前后数据矛盾。
如果数据采集时间清晰,可以选择最新的数据进行替换;而对于大多数情况下发生的数据冲突、格式冲突等情况,在3.4.2节数据集成方式会进行处理。
3.遗漏数据
遗漏数据是指由于采集工具、方法不完备导致部分数据未被采集。
比如,采集资产数据时忽略了部分数据,此时应该在设计数据格式的时候进行充分考虑,对重要的资产数据设计合理格式,并采用相应方法采集;
又如,某些数据不存在记录,属性值为空白,此时应填补空白值。
常用方法如下:
①设置全局常量:用一个全局常量对控制的属性值进行填补。
②人工填充:根据人工经验,对一些简单、易于填写的属性进行填充,保证数据的准确性。
③平均值填充:根据空白数据周围数据的平均值进行填充,保证数据整体的光滑性。
④相似样本填充:借鉴推荐系统的做法,分析该数据与其他数据的相似性,找到最相似的几个数据,利用相似数据在该空白属性上的平均值进行填充。
⑤拟合填充:使用拟合算法计算最有可能的数据,并使用拟合以后的数据进行填充。
3.4.2 数据集成
由于采集的网络安全数据存在多源异构特性,因此数据中会存在不一致和数据冗余的情况。数据集成可对不一致的数据进行处理,将分散在多个数据源中的数据集成为具有统一表达形式的数据,为数据提供统一格式。
常用的数据集成方法包括数据格式集成、多视图集成、模式集成、多粒度数据集成。
本书对具体的数据集成方法不做详细介绍,仅从实体、数据格式、数据自身的集成方面进行介绍:
1.实体:要统一实体命名,对不同纬度采集的实体名字进行统一。
常用的方法有:同义词字典、基于知识图谱的实体对齐等方法。
同义词字典:将具有相同含义、不同标识符的实体列举出来,通过设计正则表达式对不同实体进行统一;
基于知识图谱实体对齐的方法:对采集的实体进行向量化,计算出不同实体的关联关系,将含义相近、连接关系相近的实体对齐。
2.数据格式:将数据格式按照统一以后的属性进行合并,整合为统一格式。
3.数据自身
对于不同数据源采集的相同数据,消除冗余数据,保留一份即可;
对于不同数据源采集的数据,如果数据冲突,通常可以使用平均法、投票法、权重法处理。
平均法:对有冲突的数据计算平均值,以平均值作为集成以后的数据;
投票法:根据不同数据的投票情况,将票数多的数据作为集成以后的数据;
权重法:根据数据源的可信度,设计不同数据源的权重,并根据权重计算集成以后的数据。
3.4.3 数据规约
数据规约通过对数据精简,大幅度减少需要处理的数据,突出更为重要的数据。
常用的数据规约方法有:样本规约、特征规约和维度规约。
1.样本规约:指从完整数据集中选取具有代表性的样本子集,从而降低数据集规模。
2.特征规约:指剔除原始数据集中无关紧要的数据特征。
特征规约从数据特征中选择与态势感知任务最相关的特征,找出最小特征集,使得与态势感知相关的数据分布和原始数据分布尽可能接近。
3.维度规约:指减少分析过程中随机变量或属性的个数。
常用的维度规约方法包括小波变换、主成分分析方法PCA。
主成分分析:在p维正交向量(p维数据属性)中找出最能代表数据的k个子空间,并通过投影方法将原始数据投影到k个维度的属性空间中。
核心思想:利用正交变换把由线性相关变量表示的观测数据转换为少数几个由线性无关变量表示的数据,这些线性无关的变量被称为主成分。
版权归原作者 Schanappi 所有, 如有侵权,请联系我们删除。