一、研究背景
网络安全是一个非常广泛的研究领域,对网络中恶意活动的检测是最常见的问题之一。入侵检测系统(Intrusion Detection System,IDS)作为一种安全防护技术,通过实时监控系统,一旦发生异常就发出警告,是目前最广泛使用的网络安全产品之一,但是包含以下缺陷:
(1) 报警信息量过大导致不同攻击者的攻击场景不易被识别和理解;
(2) 只能检测出攻击,不能预测攻击者下一步的攻击。
现在的网络攻击大多为复合攻击,因此从大量IDS报警数据中识别不同的复合攻击事件并预测接下来的复合攻击事件成为急待解决的问题。
IDS日志往往具有海量的报警日志,为了从中发现可疑的攻击事件并预测将要发生的攻击事件,往往需要大量安全分析人员的参与,这是一项复杂而又重复的劳动,却是目前的人工智能技术所擅长的领域。如果能够通过适当的建模方法将人工智能方面的研究成果成功迁移到安全日志分析领域,建立一个各个局域网通用的具有自学习能力的网络攻击预测模型,提高多步攻击预测的效率以及准确率,就可以为安全分析人员提供可靠的参考依据。
网络的高速发展导致网络安全要求提高,对网络安全设施检测到的网络安全事件日志分析和对网络攻击场景的重建技术仍然是当前学术界对网络攻击研究的重点和热点,而网络攻击预测技术又是重中之重。网络攻击是由多个攻击步骤组合而成的一个完整攻击场景,网络攻击的认知和预测是一个多层次的模型[1]。
二、总体流程
网络攻击预测模型的过程包括三个步骤如图1所示:IDS警报处理模块、攻击场景构建模块、攻击预测模块。
图1 网络攻击预测模型的过程
三、IDS警报处理模块
入侵检测系统是网络攻击预测模型的数据来源,假阳性和假阴性是入侵检测技术的关键技术指标。减少告警的假阳性和假阴性是入侵检测系统的重要目标。现代入侵检测系统(IDS)在收集和分析数据上所用的技术及其多样化,大多数都依赖于一个共同的架构:
(1) 检测模块收集可能包含入侵迹象的数据;
(2) 关联分析引擎处理收集到的数据以确定入侵活动;
(3) 响应组件负责记录并报告入侵行为。
几乎所有的现代入侵检测系统都是通过监视主机信息或者网络连接信息来捕获攻击相关的数据。入侵检测可以收集到的数据有:文件系统、网络事件、系统调用。
入侵检测数据被收集以后,IDS就会使用解析引擎对这些数据进行解析,识别入侵行为。现代系统主要使用两种技术对入侵检测数据进行解析,分别是误用检测和异常检测。误用检测的本质是基于专家系统预定义的知识库来识别入侵。因此对于出现在知识库中的入侵行为能够达到很高的准确率。由于误用检测系统无法检测到知识库里没有出现的入侵,这种系统的性能很大程度上取决于系统的正确和完整的构建,这是一个传统上需要人类专家的任务。异常检测主要涉及识别与正常系统行为不符的异常行为。异常检测系统首先需要建立一个代表正常系统行为的基准模型,根据这个模型识别异常事件。系统通过特定的阈值判断一个事件是否为异常行为。优点是它能够识别新的以及以前未发现的攻击。
当前IDS型号种类较多,有免费的Snort、TCPdump、Portsentry等,也有商业的Drangon、NFR、RealSecure等入侵检测系统,它们的报警格式和内容各不相同,不便于直接用于攻击场景构建。但是由于IDS设备的封闭性,不同IDS生成的警报信息格式存在较大差异,导致无法实现IDS警报信息的共享。
最近出现了许多新的功能,其中包括入侵检测格式(CIDF)和IETF标准化工作,来提供入侵检测系统中的互操作性。互联网工程任务组(IETF)内部的IDWG(Intrusion Detection Working Group )工作组提出了一种具有较强融合能力的入侵检测消息交换格式IDMEF。这样的框架使得不同的数据收集和分析技术可以被集成到一个系统中,从而提高系统的覆盖范围和冗余度。越来越多的入侵检测系统开始实现这个想法,如EMERALD。在标准的框架被广泛使用之前还需要一段时间,入侵检测系统的标准格式还有待进一步研究。
四、攻击场景构建模块
4.1 警报关联技术
警报关联技术是构建攻击场景的主要理论依据,而攻击场景重构是构建网络攻击预测模型的重要组成部分[2]。网络入侵检测系统(NIDS)的存在是任何现代安全体系结构的基石。典型的NIDS分析网络流量,并在检测到恶意网络数据包后立即生成安全警报。警报分析由安全专家手动执行,安全专家负责解析NIDS日志以识别相关警报以及它们之间可能的因果关系。
警报关联系统把不同的警报关联到一起。有时告警数量太多以至于手动分析是不可能的,关联引擎把大量信息减少到可以关联的程度。另外,警报关联系统可以从整体和抽象的角度来识别恶意活动,而不是单独分析每个警报。换句话说,警报关联系统是一个接收来自各种异构系统的事件,减少所需的评估信息,删除错误的警报,并检测高层次的攻击模式的系统。
警报关联算法根据其特征可以分为三类,分别为基于相似性、基于知识和基于统计的方式。其中基于相似性和基于统计的算法只需要较少的上下文信息,只能基于警报特征和之前学到的信息之间的相似性进行关联。基于知识的算法完基于警报含义进行。
4.2 构建复合攻击场景
IDS日志是一系列报警事件的集合,这些报警事件来自于多个攻击序列。依据IDS报警之间的内在联系,将IDS日志划分为多个IP相关报警序列。然后在每个IP相关报警序列中提取攻击事件。最后根据攻击事件发生时间进行排序构成攻击序列。
攻击场景重构部分接收入侵检测系统(IDS)传入的IDS日志。首先通过IP相关报警序列划分算法,把IDS日志划分到多个告警分组。然后在每个告警分组之内应用提取攻击事件算法,把多个告警分组转化为多个攻击分组。最后通过抽取构建序列算法,把每个攻击分组转化为一个或多个攻击序列。构建复合攻击场景的流程如图2所示。
图2 构建复合攻击场景的流程
IDS数据处理模块解决了各种IDS产生的日志格式不兼容的问题,但是不同的局域网由于配置不同,功能不同,即便是相同的地址(内网地址)所表达的含义也是不同的。为了解决数据内涵不一致的问题,需要设计攻击场景构建部分。该功能将不同局域网内的数据用同一的形式表示出来,供模型训练预测使用。
4.2.1 警报信息聚合
警报聚合模块导入IDS警报处理模块中传递的经过格式化的IDS报警数据,把报警数据划分到不同的警报组中,例如如果两个报警是相关可聚类的,那么其中一个警报的地址无论是源IP地址或者目的IP地址总会和另一个的源或目的IP地址相同。由同一攻击活动触发的因果报警事件,彼此在地址分布上总是具有关联性。
4.2.2 提取攻击事件
互相关联的报警组成的分组中,如果报警名称相同把它们合并作为一个攻击事件。每个攻击事件包括的属性有攻击名称、发生时间(即第一个报警的时间)、结束时间(即最后一个报警的时间)、源IP地址集合、目的IP地址集合以及该攻击事件的分数,攻击分数综合反映了攻击事件的威胁程度。
攻击事件的时间间隔是一次攻击事件最后一次报警的发生时间,与下一个攻击事件第一次报警的发生时间之间的时间间隔。一个攻击序列不会一直持续下去。如果两个攻击事件的攻击事件的时间间隔过长,在其他条件都满足的情况下,也会认为它们属于两个攻击序列。
4.2.3 攻击事件排序
理论上一个复合攻击的每个攻击步骤的威胁程度是依次递增的,攻击分数量化了每个攻击步骤的威胁程度,因此提取到每个的攻击序列中的每个攻击事件的分数也应该是依次递增的。通过对事件抽取中生成的由攻击事件组成的序列进行处理,生成一个由攻击序列组成的序列。一个攻击事件组成的序列中经过排序后可能包含多个攻击序列。
4.2.4 攻击事件编码
每个攻击事件中都包含攻击事件信息,这些信息中攻击事件名称是用字符串表示的,而源/目的IP集合是用字符串集合的形式表示的,攻击序列编码把它们用数字的形式表示出来。这样做的意义在于:
(1) 把攻击序列转化成计算机模型可以处理的形式;
(2) 规避掉局域网内的特有信息,例如IP地址的分配方式,局域网中主机个数等等。
五、攻击预测模块
5.1 深度学习
目前以深度学习为代表的人工智能相关技术,已经在自然语言处理、机器翻译、计算机视觉等领域取得了丰硕成果,而且正在向各领域逐渐普及。深度学习与其他的技术相比有如下优点:
(1) 能够在训练过程中进行特征提取,减少了繁杂的特征提取过程,减少了对领域内专家知识的依赖;
(2) 具有强大的拟合能力,可以拟合各种复杂的函数;
(3) 卷积神经网络、递归神经网络等网络结构的提出进一步改善了特定的问题上神经网络的性能。
虽然神经网络在拟合复杂变换方面具有强大的能力,但是训练需要大量标记数据来控制过度拟合的风险。贝叶斯方法可以用少量的训练样本建立非常精确的模型。将这两种方法结合起来提出了贝叶斯深度学习。它的优点是:可以从少量的数据进行学习,同时又有着强大的拟合能力。图3展示了采用预测模型预测攻击事件的整体流程[3]。
目前研究员正在把注意力逐渐转向无监督学习,这将是人工智能的长期目标。通常使用概率模型和贝叶斯方法对完全无监督学习或半监督学习中的无标注数据建模。最近,深度生成模型的受欢迎程度证明了组合深度神经网络和概率模型的潜在价值,这个组合已经在图像生成 [4]。
图3 攻击预测模型整体流程图
5.2 贝叶斯网络
基于Bayes模型实现的多步网络攻击预测模型的原理是利用一组条件概率来完成对一组条件独立性假设。首先采用贝叶斯网络建立知识基(即贝叶斯网络安全事件),在预测估计过程中按照一定规则将网络安全事件进行关联,逐次建立贝叶斯网络。并且贝叶斯博弈的网络攻击模型可以解决传统网络防御系统和入侵检测系统的一些弊端,能达到动态防御未知的网络攻击行为。使用 Bayes方法修改网络攻击者主机的概率值,该模型能很好的和网络攻击行为匹配,可以预测下一个网络攻击阶段。
贝叶斯网络推理算法大致可分为精确推理算法和近似推理算法两类。精确推理算法希望能计算出目标变量的边际分布或条件分布的精确值,然而此类算法的计算复杂度随着极大团规模的增长呈指数增长,因此仅适用于贝叶斯网络的规模较小时。当贝叶斯网络的规模较大时,多采用近似推理,近似推理算法可以在较低时间复杂度下获得原问题的近似解。
贝叶斯网络和攻击场景都是一种有向无环图,并且有向边表示一种因果关系,可将攻击场景以贝叶斯网络的形式进行描述,生成贝叶斯攻击场景图[5]。
基于多步攻击场景的攻击预测算法的基本流程如图4所示。
图4 贝叶斯网络的攻击预测模型整体流程
贝叶斯网络攻击预测方法主要包括两个处理流程:因果贝叶斯攻击场景图的构建和攻击预测推理。
(1) 因果贝叶斯攻击场景图的构建
因果贝叶斯攻击场景图构建的基础是结构构建和参数学习,其中因果贝叶斯攻击场景图结构构建的依据是攻击间的因果关系关联规则。
(2) 攻击预测推理
对加入攻击证据的因果贝叶斯攻击场景图进行参数概率推理,得到该攻击证据的直接节点与间接节点概率值,通过概率计算来预测下一步发生的攻击及其最终攻击意图。
五、总结
针对入侵检测系统很难识别攻击场景、不能预测下一步入侵的问题,本文对网络攻击预测进行了探究。根据当前网络中已经存在的网络状态进行深入分析,判断出在当前网络状态下下一阶段的网络状态,再结合特定的数学模型对未来的行为进行模拟与预判。建立网络攻击预测模型有很多种方法,本文对常用的神经网络和贝叶斯网络模型的整体流程进行了梳理。
参考文献
[1] 樊迪,刘静,庄俊玺,赖英旭.基于因果知识发现的攻击场景重构研究[J].网络与信息安全学报,2017,3(04):58-68.
[2] 黄强,鲁学仲,运凯,李浩升,赵梅,康婉晴.基于多源告警信息关联的网路安全技防技术[J].信息安全研究,2021,7(11):1041-1046.
[3] 于泳.基于深度学习的多步网络攻击预测模型的设计与实现.北京邮电大学.
[4] Rezende,D. J.; Eslami, S. A.; Mohamed, S.; Battaglia, P.; Jaderberg, M.; and Heess, N.2016. Unsupervised learning of 3d structure from images. In Advances In NeuralInformation Processing Systems, 4997–5005.
[5] 刘博文, 刘建毅, 张茹. 基于神经网络和贝叶斯网络攻击图的多步攻击场景挖掘研究[J]. 2019.