一种基于无监督学习的多阶段攻击动态检测系统
文献发布时间:2024-04-18 19:58:21
技术领域
本发明涉及网络安全领域,尤其涉及一种基于无监督学习的多阶段攻击动态检测系统。
背景技术
当前网络中的恶意行为大多是复杂的多阶段攻击。虽然大多数网络层或主机层防护产品具有检测单阶段攻击的能力,但它们往往缺乏准确地检测多阶段攻击的能力。与单阶段攻击不同,多阶段攻击比单阶段攻击持续的时间更长,攻击手段也更加复杂。例如,为了规避传统的安全配置,多阶段攻击的持续周期从几分钟到几个月不等。因此,为了正确地检测和反击多阶段攻击,网络安全管理员需要跟踪和关联来自不同机器和不同攻击场景的单阶段攻击的警报。近年来,以APT(Advanced persistentthreat,高级持续性威胁)攻击团队为代表的高级攻击者在最大限度地提高攻击成功率的同时,不断提高攻击场景的复杂性,尽可能地实施低速率攻击并隐藏攻击证据,从而达到躲避检测的目的。
在多阶段攻击中,通常可以从网络流量中识别出以下四种单阶段攻击类型:
侦察:攻击目标选择过程,收集具有潜在可利用漏洞的网络可达系统的信息。这个过程使攻击者有选择性地锁定攻击目标,从而节约攻击成本。
投送:将源代码、程序或有效负载发送给目标系统。
指挥和控制(C2):建立指挥和控制僵尸主机或目标系统的网络通道。
行动:实现最终目标,如摧毁目标系统、获取机密信息、感染其它系统等。
由于网络环境或攻击场景的不同,上述四种单阶段攻击不一定同时发生,并且它们的发生顺序也经常变化。因此可以存在不同的单阶段攻击的组合。由于多阶段攻击场景的复杂性,如果没有预先识别出多阶段攻击的清晰模式,就很难正确识别多阶段攻击。
目前,典型的多阶段攻击检测方法大致分为三种:基于知识模型、基于攻击语义和基于统计模型的检测方法。然而,由于这些方法往往依赖于基于签名的入侵检测系统生成的警报的相关性,它们需要预先学习单阶段攻击活动的细节。因此,当存在不同的单阶段攻击组合时,它们的检测性能非常有限。为了克服这种局限性,最近的安全解决方案,例如安全信息和事件管理系统,使用从不同的日志、蜜罐和软件定义网络中获得的特定领域知识作为额外的输入属性。但是,由于攻击关联过程仍然依赖于明确的预定义规则和对攻击模式全面的理解。因此,在没有预先获得单阶段攻击细节的情况下,当检测多阶段攻击的变体时,它们的性能也会受限。
总的来说,当前多阶段攻击检测的研究存在以下三个主要的局限性:
(1)大多数多阶段攻击检测方法都依赖于预先观察到的单阶段攻击的攻击细节,这些细节从单阶段攻击的签名中提供。因此,这些方法的局限性在于不能检测新的多阶段攻击;
(2)除了不能检测零日攻击外,多阶段攻击规则生成方案由于没有考虑单阶段攻击的顺序,误报率较高;
(3)个别方法可以通过检测零日单阶段攻击来识别新颖的多阶段攻击。但是,这些方法往往依赖于蜜罐技术,当攻击者有意识地避开蜜罐时,这些方法会失效。
发明内容
鉴于上述问题,提出了本发明以便提供克服上述问题或者至少部分地解决上述问题的一种基于无监督学习的多阶段攻击动态检测系统。
根据本发明的一个方面,提供了一种基于无监督学习的多阶段攻击动态检测系统,所述检测系统包括:用于单阶段攻击检测的入侵检测系统、数据包匹配模块、网络流生成和特征提取模块、聚类模块、攻击类型分类模块、攻击规则动态生成模块和多阶段攻击动态检测模块。
可选的,所述用于单阶段攻击检测的入侵检测系统包括:基于签名的入侵检测系统和基于异常的入侵检测系统,采用包括深度包检测、统计分析、机器学习在内的技术来实现;
所述用于单阶段攻击检测的入侵检测系统产生的告警信息输入到所述数据包匹配模块中。
可选的,所述数据包匹配模块,用于过滤与所述用于单阶段攻击检测的入侵检测系统产生的告警信息相匹配的网络数据包,没有匹配上的数据包视为正常数据包并被丢弃,匹配上的数据包被标记为可疑数据包;
所述数据包匹配模块同时使用基于签名的入侵检测系统或基于异常的入侵检测系统产生的告警信息。
可选的,所述网络流生成和特征提取模块包括:
网络流生成子模块和特征提取子模块,所述网络流生成子模块使用四元组信息对数据包进行聚合,所述四元组信息是指源IP地址、目的IP地址、源端口和目的端口;
具体地,TCP流是由SYN报文到FIN报文的一系列具有相同四元组的数据包报文序列组成,如果没有FIN数据包,相邻数据包到达时间间隔超过5分钟,则认为该流结束;
UDP流也是由一系列四元组信息相同的数据包报文组成。但不包含标志信息,UDP流的数据包间隔的超时时间设置为1分钟;
所述特征提取子模块从每个网络流中提取多个属性特征,所述网络流生成和特征提取模块得到的网络流被标记为可疑网络流。
可选的,所述属性特征包括:平均数据包包长、网络流持续时间、平均数据包到达时间间隔、负载内容。
可选的,所述聚类模块在攻击规则生成阶段对所述网络流生成和特征提取模块得到的所述可疑网络流进行聚类分组;
聚类前使用包括主成分分析方法在内的算法对所述可疑网络流的特征进行降维;
所述聚类模块采用基于密度的应用空间聚类方法消除聚类中的异常点并自动生成多个聚类簇,为每一个聚类簇设定一个标记,所有聚类簇被称为标记簇。
可选的,所述攻击类型分类模块根据所述聚类模块得到的标记簇的类型和个数,在攻击检测阶段把所述网络流生成和特征生成模块得到的可疑网络流划分为不同的攻击类型;
所述攻击类型分类模块使用K-最近邻算法进行分类;
把所述攻击类型分类模块判定为攻击的网络流称为标记的可疑网络流。
可选的,所述多阶段攻击动态检测模块在攻击检测阶段按照时间发生顺序把所述标记的可疑网络流中有关联关系的网络流生成关系树,所述关联关系是指两个网络流的源IP地址相同、或者是目的IP地址相同,又或者是目的端口相同,把所述关系树和所述攻击规则动态生成模块生成的多阶段攻击规则进行匹配,把匹配上的网络关系树标记为多阶段攻击。
本发明提供的一种基于无监督学习的多阶段攻击动态检测系统,所述检测系统包括:用于单阶段攻击检测的入侵检测系统、数据包匹配模块、网络流生成和特征提取模块、聚类模块、攻击类型分类模块、攻击规则动态生成模块和多阶段攻击动态检测模块。在攻击检测阶段,通过将待检测的流量与生成的多阶段攻击规则进行比较,在不依赖于单阶段攻击细节和攻击顺序的前提下,实现对多种多阶段攻击模式的识别。本发明可以通过可疑网络流的聚类动态地学习不同类型的多阶段网络攻击,满足多阶段网络攻击检测对高效性及无监督性的需求。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1为本发明实施例提供的一种基于无监督学习的多阶段攻击动态检测系统的组成框图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
本发明的说明书实施例和权利要求书及附图中的术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元。
下面结合附图和实施例,对本发明的技术方案做进一步的详细描述。
本发明提出一种基于无监督学习的多阶段攻击动态检测系统,把多阶段攻击检测划分为攻击规则生成阶段和攻击检测阶段。在攻击规则生成阶段,通过数据包匹配、网络流生成和特征提取,对可疑流量进行聚类并生成多阶段攻击规则。在攻击检测阶段,通过将待检测的流量与生成的多阶段攻击规则进行比较,在不依赖于单阶段攻击细节和攻击顺序的前提下,实现对多种多阶段攻击模式的识别。本发明可以通过可疑网络流的聚类动态地学习不同类型的多阶段网络攻击,满足多阶段网络攻击检测对高效性及无监督性的需求。
如图1所示,一种基于无监督学习的多阶段攻击动态检测系统,包括:用于单阶段攻击检测的入侵检测系统、数据包匹配模块、网络流生成和特征提取模块、聚类模块、攻击类型分类模块、攻击规则动态生成模块和多阶段攻击动态检测模块。与以往的研究工作不同,本发明设计的多阶段攻击规则是在不了解单阶段攻击活动的预定义细节的情况下动态生成的。本发明不依赖于预先定义的攻击模式,可以提供针对不同单阶段攻击组合的新型多阶段攻击的防御对策,能够以很高的准确率识别不同类型的多阶段攻击。
用于单阶段攻击检测的入侵检测系统,包括基于签名的入侵检测系统和基于异常的入侵检测系统,采用包括深度包检测、统计分析、机器学习在内的技术来实现。本发明不对所述用于单阶段攻击检测的入侵检测系统的类型和实现方法进行限定,所述用于单阶段攻击检测的入侵检测系统产生的告警信息输入到所述数据包匹配模块中。
数据包匹配模块负责过滤与所述用于单阶段攻击检测的入侵检测系统产生的告警信息相匹配的网络数据包,没有匹配上的数据包视为正常数据包并被丢弃,匹配上的数据包被标记为可疑数据包。所述数据包匹配模块同时使用基于签名的入侵检测系统或基于异常入侵检测系统产生的告警信息。
网络流生成和特征提取模块使用包括但不限于Bro在内的开源的流量分析工具提取流量特征。Bro为网络流量分析提供了一个综合平台,特别侧重于基于语义的安全监控。Bro能够将网络中的各设备整理为可视化图形、深入网络流量当中并检查网络数据包,它提供了一套更具通用性的流量分析平台。Bro支持自定义脚本,允许用户从网络流中提取特定的特征信息。所述网络流生成和特征提取模块包括网络流生成子模块和特征提取子模块,所述网络流生成子模块使用四元组信息对数据包进行聚合,即源IP(Internet Protocol)地址、目的IP地址、源端口和目的端口。
具体地,TCP(Transmission Control Protocol)流是由SYN报文到FIN报文的一系列具有相同四元组的数据包报文序列组成,如果没有FIN报文,相邻数据包到达时间间隔超过5分钟,则认为该流结束。UDP流也是由一系列四元组信息相同的数据包报文组成。但不包含标志信息,UDP流的数据包间隔的超时时间设置为1分钟。所述特征提取子模块从每个网络流中提取多个属性特征,所述属性特征包含但不限于平均数据包包长、网络流持续时间、平均数据包到达时间间隔、负载内容信息。所述网络流生成和特征提取模块得到的网络流被标记为可疑网络流。
聚类模块在攻击规则生成阶段对所述网络流生成和特征提取模块得到的所述可疑网络流进行聚类分组。为避免高维数据导致聚类结果不佳,聚类前使用包括但不限于主成分分析方法在内的算法对所述可疑网络流的特征进行降维。由于入侵检测系统的假阳性报警信息会降低聚类结果的质量,所述聚类模块采用基于密度的应用空间聚类(Density-Based Spatial Clustering of Applications with Noise,DBSCAN)方法消除聚类中的异常点并自动生成多个聚类簇,为每一个聚类簇设定一个标记,所述聚类簇被称为标记簇。
攻击规则动态生成模块在攻击规则生成阶段把所述聚类模块生成的标记簇作为输入,通过分析所述标记簇中包含的可疑网络流来生成多阶段攻击规则。所述攻击规则动态生成模块包括网络流关系树生成和频繁模式挖掘两部分:首先按照时间发生顺序把所述标记簇中有关联关系的网络流生成关系树,所述关联关系是指两个网络流的源IP地址相同、或者是目的IP地址相同,又或者是目的端口相同;在此基础上,使用Apriori关联规则挖掘算法去发现网络流关系树中的频繁项,所述Apriori关联规则挖掘算法输出的频繁项即为所述攻击规则动态生成模块生成的多阶段攻击规则。
攻击类型分类模块根据所述聚类模块得到的标记簇的类型和个数,在攻击检测阶段把所述网络流生成和特征生成模块得到的可疑网络流划分为不同的攻击类型。所述攻击类型分类模块使用K-最近邻算法进行分类。把所述攻击类型分类模块判定为攻击的网络流称为标记的可疑网络流。
多阶段攻击动态检测模块在攻击检测阶段按照时间发生顺序把所述标记的可疑网络流中有关联关系的网络流生成关系树,所述关联关系是指两个网络流的源IP地址相同、或者是目的IP地址相同,又或者是目的端口相同,在此基础上把所述关系树和所述攻击规则动态生成模块生成的多阶段攻击规则进行匹配,把匹配上的网络关系树标记为多阶段攻击。
有益效果:本发明提供了一种基于无监督学习的多阶段攻击动态检测系统,打破传统检测方法依赖于基于签名的入侵检测系统生成的报警信息的相关性的弊端,解决传统检测方法难以实现无监督多阶段攻击检测的缺陷,解决传统多阶段攻击检测过度依赖单阶段攻击检测结果的问题。
本发明提供了多阶段攻击规则是在不了解单阶段攻击活动的预定义细节的情况下动态生成的。本发明不依赖于预先定义的攻击模式,可以提供针对不同单阶段攻击组合的新型多阶段攻击的防御对策,能够以很高的准确率识别不同类型的多阶段攻击。
本发明克服了传统多阶段攻击检测方法存在的检测周期长、单阶段攻击假阴性率和假阳率高的缺陷,提高了多阶段攻击检测方法的实用性。
经原型系统使用实践证明,本发明能有效检测多阶段网络攻击,特别是能够检测出存在于局域网内部的东西向横向移动攻击,本发明实现在现有网络中容易布置、操作简单、安全可靠,具有显著的经济社会效益和广阔的市场推广应用前景。
以上的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
- 一种基于动态分析的控制流劫持攻击检测方法与系统
- 一种基于动态分析的控制流劫持攻击检测技术与系统