基于网络靶场的工业信息物理系统新型攻击策略提取

基于网络靶场的工业信息物理系统新型攻击策略提取

Extracting Novel Attack Strategies for Industrial Cyber-Physical Systems Based on Cyber Range

申明
版权归原文作者及出版单位所有,如有侵权请联系删除。

摘要

随着信息技术的迅速发展,越来越多的网络攻击不断涌现,对工业网络物理系统中的关键基础设施造成严重后果。随着网络攻击变得越来越复杂,变得可能由多个步骤组成,获取攻击策略可以帮助理解和更好地防御这些攻击。然而,每天都有许多未知的网络攻击,而攻击者通常不会透露攻击步骤和工具,因此获取攻击策略是一个持续且具有挑战性的问题。网络靶场是一个可以模拟联网系统的测试平台,支持进行攻击和防御活动,而不会对真实系统造成伤害。由于网络靶场可以记录活动中的过程数据,基于网络靶场提取网络攻击策略已成为一种有效的方法。在本文中,我们提出了一个攻击策略提取框架,用于从网络靶场生成的安全警报中获取攻击策略,该框架使用一种称为攻击策略识别器的模型,用于识别具有类似攻击模式的攻击序列,这些攻击模式类似于一些已知的攻击策略。通过我们的实验,攻击策略识别器能够以98.26%的准确度、98.70%的召回率和98.44%的F1分数来判断未知的攻击序列。我们在网络模拟范围中的两个网络攻击和防御活动上实施并测试了我们的框架,分别获得了45个和47个攻击策略。通过手动验证,我们的框架能够从安全警报中提取新的攻击策略。

关键词:警报关联,攻击场景,多步攻击检测,网络安全,递归神经网络。

Ⅰ.引言

攻击者的攻击形式随着信息技术的快速发展而迅速演变。网络攻击的一种不断演化的趋势是使用复杂的攻击方式,攻击者将多个攻击步骤结合在一起,以实现特定的目标,例如高级持续性攻击,这使得防御变得越来越困难 [1]。

工业网络物理系统(ICPS)是一个将计算、通信和控制技术融合在一起的物理系统。由于ICPS中涉及许多关键基础设施,对这些系统的攻击将导致严重后果,如机器异常停机、工厂停产等。近年来,针对ICPS的网络攻击数量不断增加,严重威胁到国家安全。例如,2015年12月,乌克兰多个地区的电力站控制系统被一组黑客劫持,导致约22.5万人断电多个小时 [2]。2022年6月,伊朗最大的钢铁制造组织遭受了一次大规模网络攻击,导致生产系统完全停工 [3]。

了解攻击者的攻击策略对于防御和应对这些网络攻击至关重要。为此,安全专家积极总结来自博客、论坛等的攻击知识。然而,随着越来越多的网络系统漏洞被揭示,攻击者不断改变攻击方法,一旦这些方法在实践中生效,他们就不会揭示自己的攻击方法和工具,因此一些新颖的攻击策略无法及时被专家总结。为了提高ICPS的安全性,提前获取这些新颖的攻击策略非常重要。

网络安全研究的一个重要基础设施是网络靶场,它可以模拟网络系统进行各种类型的攻击和防御活动,不会对真实系统造成伤害 [4]。通常,靶场可以提供强大的模拟和评估能力,以支持科学研究。在进行攻击和防御活动时,网络靶场可以记录过程数据,如网络流量和安全警报,以便更好地进行评估。根据在靶场中收集的数据,提取攻击策略已经成为一种有效的方法。

在本文中,我们研究了如何从网络靶场生成的安全警报中提取攻击策略。安全警报是在攻击发生时由安全设备发出的警告,可以表达关于攻击者攻击策略的信息。我们可以从安全警报中获取关于尚未被安全专家总结的复杂攻击的新知识,这些知识可以用于分析未知的攻击。然而,传统的安全设备专注于单步攻击,并独立发出警报,导致大量的警报,难以从中找到复杂攻击的有效知识。为了解决这个问题,先前的方法使用警报相关(告警关联)技术来发现攻击者的攻击策略。例如,在[5]中使用了基于相似性的相关方法来构建因果关联的攻击序列。然而,这种方法构建的攻击序列可能包含无效的攻击步骤,导致攻击策略不准确。在[6]中使用了基于知识的相关方法,根据入侵的前提条件和后果实时关联警报。然而,基于知识的相关方法需要手动构建大量的知识规则,无法检测新颖的攻击策略。在[7]中使用了基于统计的相关方法来自动生成因果模板。然而,基于过去的相关经验的方法无法捕捉攻击者攻击策略的快速变化。

近年来,深度学习在许多领域取得了巨大的进展,如文本、音频、视觉处理等。由于其强大的性能,深度学习也在警报处理方面引起了广泛关注。Liu等人在[5]中使用神经网络来过滤虚假警报。Cheng等人在[8]中提出使用图卷积网络来聚合属于相同攻击的安全警报。然而,它们的工作都侧重于消除虚假警报或重复警报。将多步攻击警报之间的关联问题转化为深度学习问题仍然是一个关键挑战。Alsaheel等人在[9]中使用了基于序列的模型来查找攻击实体,并将攻击调查重新定义为节点分类问题。受到他们的工作启发,我们提出了一个名为ATTack Strategies Extraction (ATTSE)的框架,通过训练一个模型来识别攻击策略,将警报相关问题表述为分类问题,我们将这个模型称为攻击策略识别器(ASI)。

我们的框架的基本思想是,具有类似功能的单步攻击可以在攻击策略中互相替代。例如,已知的攻击策略是密码暴力破解、上传Webshell和窃取数据,这意味着攻击者首先使用密码暴力破解攻击获取网站管理员的密码,然后利用网站后端不检测上传文件类型的漏洞登录网站并上传Webshell,从而攻破服务器并窃取数据。由于密码暴力破解攻击和身份验证绕过攻击都可以实现登录网站的目的,因此将密码暴力破解攻击替换为身份验证绕过攻击也可以实现窃取数据的目标,因此身份验证绕过、上传Webshell和窃取数据也是一种攻击策略。

为了评估ASI,我们从安全报告中手动提取了攻击策略。通过我们的实验,ASI能够以98.26%的准确度、98.70%的召回率和98.44%的F1分数识别攻击策略。为了证明ATTSE的提取能力,我们在网络靶场中进行了两次大规模网络攻击和防御活动,并记录了攻击期间的安全警报,从而获得了分别包含102,202和205,672个安全警报的数据。我们使用ASI来识别这些警报序列中的攻击策略,并提取了45和47种攻击策略,证明了我们框架的有效性。本文的主要贡献总结如下。

  1. 我们提出了ATTSE,一个用于提取攻击策略的框架,利用基于序列的模型来识别警报序列中的多步攻击。

  2. 我们提出了单步攻击表示方法,可以捕捉不同类型的单步攻击之间的关系,使模型能够很好地学习攻击策略的特征。

  3. 我们在靶场中进行了两次大规模网络攻击和防御活动,并记录了警报以进行验证。结果表明,ATTSE能够高精度地提取新颖的攻击策略。

文章的其余部分组织如下。第二部分讨论了相关工作。第三部分介绍了符号表示和模型。第四部分介绍了提取攻击策略的框架。第五部分展示了实验结果。最后,第六部分总结了本文。

Ⅱ .相关工作

传统的安全设备主要检测单一步骤的攻击,它们的检测方法可以分为两组:基于误用的攻击检测和基于异常的攻击检测[10]。基于误用的攻击检测将入侵签名与现有签名数据库中的签名进行匹配,当匹配成功时,将触发警报[11],[12]。基于异常的攻击检测检测系统的异常行为。当观察到的行为显著偏离正常行为时,将被视为异常,并将触发警报[13],[14]。然而,这些检测单一步骤攻击的安全设备每天会产生大量低质量的安全警报[15],安全分析人员几乎无法从这些独立的警报中找到攻击者的攻击策略。

为解决这个问题,大多数先前的研究采用了警报关联技术,从安全警报中获取攻击者的攻击策略并还原攻击场景[16]。他们的工作可以分为三类:基于相似性的关联、基于知识的关联和基于统计的关联。

A. 基于相似性的关联

基于相似性的关联假设来自相同攻击活动的警报之间存在一定的相似性。因此,这种方法的基本思想是计算两个警报在其属性上的相似性,如果它们的相似性大于特定阈值,则将它们关联起来。

基于相似性的关联方法的关键在于定义相似性计算函数。刘等人[5]和梅等人[25]使用时间、IP地址和端口作为特征计算警报之间的相似性,如果两个警报在时间窗口内报告并且它们的IP地址和端口遵循一些规则,它们将被关联。程等人[8]使用了八个分类属性和三个数值属性来计算警报的相似性,并基于它们的相似性构建了警报图,以关联属于同一攻击场景的安全警报。

然而,他们的方法只关联属于相同攻击活动的攻击。由于攻击者在攻击过程中可能发动无效攻击,或者发动干扰以避免攻击检测,这些方法生成的攻击策略并不足够准确。相比之下,我们的框架能够从攻击序列中自动识别组成复杂攻击的必要步骤,并且不包含无效的攻击步骤。

B. 基于知识的关联

基于知识的关联方法假设由相同攻击活动触发的警报之间存在因果关系。因此,在这种方法中,为每种类型的警报定义了前提和后果,并通过匹配原因来重建攻击场景。

这种方法首次在[17]中提出,使用模型描述了警报之间的因果关系。胡等人[18]和[19]根据多步攻击每个步骤之间的因果关系,在时间和空间维度上融合了警报信息。马达维等人[6]提出了一种用于存储实时警报关联的前提/后果的数据结构。

这些方法简单而高效。它们可以基于一些已知的攻击模板检测多步攻击。然而,它们所有的方法都需要为每种类型的警报定义大量规则,而且它们只能检测已知的攻击。与这些方法相比,我们的框架能够通过学习已知攻击策略的一般属性,自动识别新型攻击策略。

C.== 基于统计的关联==

基于统计的关联方法的基本思想是来自相同攻击活动的警报具有相似的统计特征。在这种方法中,使用过去警报的统计信息来分析不同警报事件之间的因果关系,并用它来关联新型安全事件。

例如,文献[20]和[21]中的作者检测了定期重复的警报,并基于先前警报的统计数据找到了它们的重复模式,并在未来检测到这些模式的不相似之处。在[7]中,通过在窗口长度内计算所有关联对的数量,计算了平均因果效应,并为警报关联构建了因果模板。

然而,基于过去关联经验的方法无法捕捉攻击者攻击策略的快速变化。换句话说,这种方法无法识别在过去很少关联或没有关联的两个警报之间的关联。相比之下,我们的方法能够基于它们的相似性发现这种关联。

Ⅲ.准备工作

在本节中,我们介绍了一些相关的定义,然后描述了我们试图解决的问题。为了便于理解,表I给出了重要的数学符号及其含义。
在这里插入图片描述

表1:符号

A. 定义

基本攻击(Basic Attack):基本攻击是由攻击者执行的单一步骤攻击,表示为X。它是攻击的基本单元,例如,SQL注入、跨站脚本攻击和密码破解攻击都是基本攻击。在我们的实验中,我们参考了Common Attack Pattern Enumeration and Classification [22],定义了524种基本攻击。类似于ATT&CK将攻击分类为战术、技术和程序[23],我们根据攻击阶段将这些基本攻击分为四类:侦察、初始访问、命令与控制以及信息渗透。在每个类别下,我们根据它们的技术路径进一步细分基本攻击。每个技术路径还可以分为不同的实现。换句话说,对于每个基本攻击,我们定义了它们在攻击阶段、技术路径和实施方面的分类。

复杂攻击(Complex Attack):复杂攻击是攻击策略,包含攻击者执行的多个攻击步骤,以实现特定目标,表示为 Y = ( X 1 , X 2 , . . . , X l ) Y = (X_1, X_2, . . ., X_l) Y=(X1,X2,...,Xl),其中 X i X_i Xi是基本攻击。为了确保获取的攻击策略的准确性,我们将复杂攻击定义为攻击者完成攻击目的所需的所有步骤,且不能包含无效的攻击步骤。

安全警报(Security Alerts):安全警报是在攻击者发动攻击时由安全设备报告的警告,表示为 S S S。根据’‘入侵检测消息交换格式’'定义的标准格式,安全警报可以表示为包含多个属性的元组,例如攻击的类别、源IP地址、目标IP地址和时间戳。我们将安全警报定义为 S = { S 1 , S 2 , . . . , S d } S = \{S_1, S_2, . . ., S_d\} S={S1,S2,...,Sd}
其中 S i = ( X j , i p _ s r c , i p _ d s t , p o r t _ s r c , p o r t _ d s t , t ) S_i = (X_j , ip\_src, ip\_dst, port\_src, port\_dst, t) Si=(Xj,ip_src,ip_dst,port_src,port_dst,t),其中 X j X_j Xj表示基本攻击的类型, i p _ s r c ip\_src ip_src i p _ d s t ip\_dst ip_dst分别是攻击的源和目标IP地址。 p o r t _ s r c port\_src port_src p o r t _ d s t port\_dst port_dst是源和目标端口。 t t t是发送警报的时间。

元警报(Meta-alert):由于使用自动化脚本会产生大量重复的警报,影响后续关联,因此需要聚合属于同一攻击的警报,聚合后的警报称为元警报
表示为 M M M M M M = ( X i , i p _ s r c , i p _ d s t , p o r t _ s r c , p o r t _ d s t , t _ s t a r t , t _ e n d ) (X_i, ip\_src, ip\_dst, port\_src, port\_dst, t\_start, t\_end) (Xi,ip_src,ip_dst,port_src,port_dst,t_start,t_end),其中 t _ s t a r t t\_start t_start t _ e n d t\_end t_end分别是安全警报的最早和最晚时间。

警报序列(Alert Sequence):按时间顺序对元警报进行排序将形成一个攻击序列,我们用 A S AS AS表示这个攻击序列,然后 A S = { M 1 , M 2 , . . . , M n } AS = \{M_1, M_2, . . ., M_n\} AS={M1,M2,...,Mn}
其中 M i . t _ s t a r t ≤ M j . t _ s t a r t ( 1 ≤ i ≤ j ≤ n ) M_i.t\_start ≤ M_j .t\_start(1 ≤ i ≤ j ≤ n) Mi.t_startMj.t_start(1ijn)

攻击活动序列集(The Set of Attack Activity Sequences)攻击活动序列集包含多个攻击序列,同一攻击序列中的每个警报属于同一攻击活动。我们用 S A A SAA SAA表示攻击活动序列集,然后 S A A = { A A 1 , A A 2 , . . . , A A m } SAA = \{AA_1, AA_2, . . ., AA_m\} SAA={AA1,AA2,...,AAm},其中 A A i AA_i AAi是第 i i i个攻击活动, A A i = ( M 1 , M 2 , . . . M k i ) AA_i = (M_1, M_2, . . .M_{k_i}) AAi=(M1,M2,...Mki)

候选序列:候选序列是一个有潜力成为攻击策略的序列需要进一步验证。我们用 C C C表示所有候选序列的集合。

B. 问题描述

网络靶场可以模拟在网络攻击和防御活动中可以监视的环境,因此当我们在靶场中进行网络攻击和防御活动时,我们可以记录包括安全警报在内的各种数据。在进行网络攻击和防御活动时,攻击者可能采用各种攻击策略来实现某一目的,其中可能包括一些未知的攻击策略。这些未知的攻击策略未包含在现有的复杂攻击知识库中。为了获取这些未知的攻击策略以补充复杂攻击知识库,并有助于更好地防御和应对网络攻击,我们试图从这些安全警报中提取未知的攻击策略。

为了阐述这个问题,我们将 S = { S 1 , S 2 , . . . , S d } S = \{S_1, S_2, . . ., S_d\} S={S1,S2,...,Sd}表示为该任务中的安全警报集,我们的目的是开发一个名为ATTSE的框架来提取攻击策略,即 Y = A T T S E ( S 1 , S 2 , . . . , S d ) = { Y i } Y = ATTSE(S_1, S_2, . . ., S_d) = \{Y_i\} Y=ATTSE(S1,S2,...,Sd)={Yi},每个攻击策略 Y i = ( X i 1 , X i 2 , . . . , X i l i ) Y_i = (X_{i1}, X_{i2}, . . ., X_{i_{l_i}}) Yi=(Xi1,Xi2,...,Xili),其中 X i j ∈ X X_{ij} ∈ X XijX X X X是基本攻击的集合, l i l_i li是第 i i i个攻击策略的长度。

IV. ATTSE框架

在本节中,我们首先介绍我们框架的概述,然后描述其具体细节。

A. 框架概述

ATTSE的高层次视图如图1所示。
在这里插入图片描述

图1:ATTSE概述

给定安全警报,我们首先将具有相同属性的重复警报聚合成元警报,然后通过它们发生的起始时间对这些元警报进行排序,以获得警报序列AS。然而,由于警报的数量非常庞大,从安全警报构建的警报序列非常长,使得从中找到攻击策略变得困难。为了解决这个问题,我们利用时间戳和IP地址计算警报之间的相似性,以关联属于同一攻击活动的警报并生成攻击活动序列集。

对于攻击活动序列集中的每个攻击序列,我们通过枚举所有可能的组合生成候选序列,这些候选序列可能包含我们想要提取的攻击策略。

为了从这些候选序列中找到攻击策略,我们训练了一个模型,并将其命名为 A S I ASI ASI,该模型能够判断候选序列是否是攻击策略。为了确保 A S I ASI ASI能够良好地判断攻击策略和非攻击策略,在构建数据集时,我们将已知攻击知识库中的复杂攻击策略作为复杂攻击序列,并通过对已知攻击策略执行三个随机操作构造与复杂攻击序列相似的非复杂攻击序列,以便攻击策略识别器能够很好地识别它们之间的边界。

在将复杂攻击序列和非复杂攻击序列输入到攻击策略识别器进行训练之前,我们需要将每个基本攻击转换为数值向量,即获取每个基本攻击的嵌入为了使嵌入捕捉基本攻击之间的关系,我们使用预训练方法获取每个基本攻击的嵌入。在预训练模型中,我们使用每个基本攻击来预测其分类,使得同一类别下的基本攻击具有相似的嵌入, A S I ASI ASI可以基于这些基本攻击之间的关系判断候选序列是否是攻击策略。

最后,我们训练 A S I ASI ASI并将候选序列输入训练过的 A S I ASI ASI进行判断。我们提取由攻击策略识别器( A S I ASI ASI)判断为攻击策略的序列,并在网络环境中构建验证环境以手动验证我们提取的正确性。对于经过手动验证的攻击序列,我们将它们添加到复杂攻击知识库进行补充。对于未能通过手动验证的攻击序列,我们将它们添加到数据集中作为非复杂攻击序列,以提高攻击序列识别器的准确性。

B. 警报聚合

为了减少由自动化脚本和扫描引起的重复警报的过多数量,ATTSE必须采取的第一步是执行警报聚合,将由相同基本攻击触发的警报聚合成单个警报[24]。如果两个警报在其属性上相同,它们很可能来自同一基本攻击。基于这个直觉,我们聚合满足以下规则的警报:

S i . X = S j . X S_i.X = S_j .X Si.X=Sj.X
S i . i p _ s r c = S j . i p _ s r c S_i.ip\_src = S_j .ip\_src Si.ip_src=Sj.ip_src
S i . i p _ d s t = S j . i p _ d s t S_i.ip\_dst = S_j .ip\_dst Si.ip_dst=Sj.ip_dst
S i . p o r t _ s r c = S j . p o r t _ s r c S_i.port\_src = S_j .port\_src Si.port_src=Sj.port_src
S i . p o r t _ d s t = S j . p o r t _ d s t S_i.port\_dst = S_j .port\_dst Si.port_dst=Sj.port_dst
∣ S i . t − S j . t ∣ < σ |S_i.t − S_j .t| < \sigma Si.tSj.t<σ                                                     ( 1 ) \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ (1)                                                    (1)

其中 s i s_i si s j s_j sj是两个警报, σ σ σ是一个时间阈值。聚合后,我们得到一系列元警报,通过它们的开始时间排序,可以获得一个攻击序列,表示为:

A S = { M 1 , M 2 , . . . , M n } AS = \{M_1, M_2, . . ., M_n\} AS={M1,M2,...,Mn}

警报聚合的过程如算法1所示。
在这里插入图片描述

C. 警报关联

在进行网络攻击和防御活动时,安全设备会生成大量警报,因此从安全警报生成的警报序列的长度非常大,从中找出攻击者的攻击策略是困难的。例如,如果我们将此警报序列中的警报合并以构建候选序列,总共可以构建 Σ i = 2 n C n i Σ^n_{i=2}C^i_n Σi=2nCni个候选序列,其中 n n n是警报序列的长度。我们注意到候选序列的数量可能是指数级的。因此,当n很大时,枚举所有可能的候选序列是不现实的。为了减少候选序列的数量,我们使用基于相似性的关联方法将属于同一攻击活动的攻击关联起来,从而将长的警报序列分割成攻击活动序列集[5],而攻击活动序列集中的每个攻击序列长度较短,如图2所示。
在这里插入图片描述

图2:警报关联

在这里,我们使用(3)和(4)来计算两个警报在它们的时间戳和IP地址上的相似性,分别表示为 S i m t Sim_t Simt S i m i p Sim_{ip} Simip

Sim t ( M i , M j ) = { 1 if  ∣ M i . t _start − M j . t _start ∣ ≤ δ 0 otherwise (3) \text{Sim}_t(M_i, M_j) = \begin{cases} 1 & \text{if } |M_i.t{\text{\_start}} - M_j.t{\text{\_start}}| \leq \delta \\ 0 & \text{otherwise} \end{cases} \tag{3} Simt(Mi,Mj)={10if Mi.t_startMj.t_startδotherwise(3)

Sim i p ( M i , M j ) = { 1 if  ( M i . ip_src = M j . ip_src  and  M i . ip_dst = M j . ip_dst )  or  M i . ip_dst = M j . ip_src 0 otherwise (4) \text{Sim}_{ip}(M_i, M_j) = \begin{cases} 1 & \text{if } (M_i.\text{ip}{\text{\_src}} = M_j.\text{ip}{\text{\_src}} \\ & \text{ and } M_i.\text{ip}{\text{\_dst}} = M_j.\text{ip}{\text{\_dst}}) \\ & \text{ or } M_i.\text{ip}{\text{\_dst}} = M_j.\text{ip}{\text{\_src}} \\ 0 & \text{otherwise} \end{cases} \tag{4} Simip(Mi,Mj)= 10if (Mi.ip_src=Mj.ip_src and Mi.ip_dst=Mj.ip_dst) or Mi.ip_dst=Mj.ip_srcotherwise(4)

其中 M i M_i Mi M j M_j Mj是两个元警报, 1 ≤ i ≤ j ≤ n 1 ≤ i ≤ j ≤ n 1ijn δ δ δ是一个时间阈值,我们将其设置为网络攻击和防御活动的最大时间。

A T T S E ATTSE ATTSE仅在两个警报 S i S_i Si S j S_j Sj在时间戳和IP地址上的相似性都为1时才关联它们,如算法2所示。
在这里插入图片描述

D. 生成候选序列

通过警报关联,我们将一个长的警报序列转换为一组攻击活动序列。攻击活动序列集中的每个攻击序列是属于同一攻击活动的警报,它们的长度比原始的警报序列短,从而更容易提取每个攻击序列的攻击策略。

假设攻击活动序列集中第 i i i个攻击序列为 X i 1 , X i 2 , X i 3 , . . . , X i ( k i − 1 ) , X i k i X_{i1}, \boldsymbol {X_{i2}}, \boldsymbol{X_{i3}}, ..., X_{i(k_i-1)}, \boldsymbol {X_{i{k_i}}} Xi1,Xi2,Xi3,...,Xi(ki1),Xiki,其中加粗的 X i j \boldsymbol {X_{ij}} Xij表示攻击者发起的有效攻击,而没有加粗的 X i j X_{ij} Xij表示无效攻击。显然,包含所有有效基本攻击 X i 2 , X i 3 , . . . , X i k i \boldsymbol {X_{i2}}, \boldsymbol {X_{i3}}, ..., \boldsymbol {X_{i{k_i}}} Xi2,Xi3,...,Xiki的序列就是我们想要提取的攻击策略。为了获得这个攻击策略,我们通过枚举该攻击序列中的所有可能组合生成候选序列,而这个攻击策略包含在这些候选序列中。

例如,长度为2的候选序列为 ( X i 1 , X i 2 ) , ( X i 1 , X i 3 ) , . . . , ( X i ( k i − 1 ) , X i k i ) (X_{i1}, X_{i2}), (X_{i1}, X_{i3}), ..., (X_{i{(k_{i-1})}}, X_{i{k_i}}) (Xi1,Xi2),(Xi1,Xi3),...,(Xi(ki1),Xiki)。我们按顺序生成长度为 2 2 2 m i n ( δ , k i ) min(\boldsymbol\delta, k_i) min(δ,ki)的候选序列,其中 δ \boldsymbol{\delta} δ是攻击策略的最大长度, k i k_i ki是第 i i i个攻击序列的长度。该过程可以由算法3描述。

在这里插入图片描述

E. 构建数据集

为了从所有候选序列中识别攻击策略,我们训练了一个称为 A S I ASI ASI的模型,并使用它来确定一个候选序列是否是攻击策略,这要求我们有包含复杂攻击序列和非复杂攻击序列的数据集。然而,复杂攻击知识库只包含复杂攻击序列,因此需要一种方法来构建非复杂攻击序列,使得 A S I ASI ASI能够很好地适应复杂攻击序列和非复杂攻击序列。

构建非复杂攻击序列的一种简单方法是随机选择若干基本攻击进行组合,但为了更好地区分复杂攻击序列和非复杂攻击序列之间的边界,我们不使用随机组合的方法。相反,我们通过在现有复杂攻击序列[26]上随机执行添加、删除和替换操作,使构建的非复杂攻击序列与复杂攻击序列相似。执行这三种操作背后的直觉是:对于一个复杂攻击序列,如果随机添加一个基本攻击,得到的新攻击序列包含无效攻击,因此它是一个非复杂攻击序列;对于一个复杂攻击序列,如果随机删除其中一个基本攻击,将使新攻击序列无法完成攻击者的攻击目的,因此它也是一个非复杂攻击序列;对于一个复杂攻击序列,如果随机替换其中一个基本攻击,获得的新攻击序列也将高概率地无法完成攻击者的攻击目的,因此它将被判断为非复杂攻击序列。数据集的构建如算法4所示,其中我们将复杂攻击序列标记为1,将非复杂攻击序列标记为0。
在这里插入图片描述

通过在复杂攻击序列上随机执行这三种操作,得到的新攻击序列可能包含虚假的负样本,即获得的序列可能碰巧是一个复杂攻击序列[27]。因此,在构建非复杂攻击序列时,我们将过滤掉已存在于复杂攻击知识库中的现有攻击策略。

F. 序列嵌入与模型学习

为了将复杂的攻击序列和非复杂攻击序列输入到用于训练的 A S I ASI ASI中,我们需要将序列中的每个基本攻击转换为数值向量。将基本攻击转换为数值向量的一种朴素方法是使用一位有效编码(one-hot encoding)[28]。然而,一位有效编码忽略了基本攻击之间的关系,因此 A S I ASI ASI无法通过它们的嵌入了解基本攻击的功能。为了使嵌入更好地捕捉基本攻击的信息,我们采用了预训练方法来获得每个基本攻击的嵌入。具体而言,我们使用神经网络来预测基本攻击的分类类别。如第III-A节所述,我们根据攻击阶段、技术路线和实现来对基本攻击进行分类。图3显示了我们使用基本攻击预测攻击阶段的神经网络的架构。
在这里插入图片描述

图3:使用基本攻击预测攻击阶段分类的预训练模型

对于技术路线和实现的类别预测,我们也使用类似的架构,但输出层的神经元数量不同。我们通过使用基本攻击同时预测攻击阶段、技术路线和实现的类别来获得每个基本攻击的嵌入。

这样,具有相同分类的基本攻击可以具有相似的嵌入[29]。因此,攻击策略标识符可以基于它们的嵌入来判断两个基本攻击在功能上的相似性,并识别与候选序列中已知攻击策略相似模式的攻击策略。例如,一个已知的攻击策略是密码破解、Webshell上传和数据窃取,由于密码破解攻击和身份验证绕过攻击都属于身份验证攻击的分类类别,它们具有相似的嵌入。因此,将候选序列中的密码破解攻击替换为身份验证绕过攻击的序列与已知攻击策略相似, A S I ASI ASI可以将其识别为攻击策略。

为了使 A S I ASI ASI更好地学习攻击策略的特征,我们设计了包含五个层次的网络结构:嵌入层、卷积层、池化层、长短时记忆网络(LSTM)层和密集层。嵌入层使用从预训练模型获得的嵌入将基本攻击转换为向量。卷积层用于学习空间特征,我们使用修正线性单元作为卷积层的激活函数[30]。池化层使用最大池化来降低输入维度,以减小训练时间并缓解训练过拟合问题[31]。LSTM层[32]是循环神经网络的一个子类型,能够很好地捕捉序列中的上下文信息。密集层将所有信息组合起来,预测输入序列的输出,并确定序列是否是攻击策略。

序列嵌入和模型学习的过程可以通过算法5描述。
在这里插入图片描述
G. ATTSE与手动验证

我们将所有候选序列输入 A S I ASI ASI进行预测, A S I ASI ASI识别为攻击策略的序列将被提取,如算法6所示。
在这里插入图片描述

为确保复杂攻击的提取知识的准确性,我们在网络靶场内建立网络环境,并重现提取的攻击序列的攻击场景。如果可以复现攻击序列以实现攻击目的,说明该攻击序列是一种攻击策略,否则它就不是攻击策略。对于通过验证的攻击序列,我们将其添加到复杂攻击知识库中进行补充。对于被验证为非复杂攻击的攻击序列,我们将其添加到数据集中作为非复杂攻击序列,以提高 A S I ASI ASI的准确性。

从安全警报中提取新的攻击策略,并将其添加到复杂攻击知识库作为已知攻击策略,然后基于新的复杂攻击知识库训练攻击策略识别器,再次从新的警报数据中提取攻击策略。通过重复上述过程,复杂攻击知识库中的攻击策略数量将逐渐增加, A S I ASI ASI的性能也将逐渐提高。

V. 实验结果

A. 实验设置

为了获取已知攻击策略作为初始数据,我们从安全报告中手动提取了560个攻击策略作为复杂攻击知识库,并根据第IV-E节介绍的方法构建了非复杂攻击序列。总共选择了100个复杂攻击序列和100个非复杂攻击序列作为测试集来评估ASI的性能,其余序列用作ASI的训练集。为了获取安全警报,我们在网络靶场内进行了两次网络攻击和防御活动,并在演练过程中记录了安全警报。由于安全警报是从网络靶场内获得的,它们具有较高的质量和较低的假阴性。我们使用PyTorch实现了我们的框架,并使用这两组安全警报提取攻击策略。

为了确保LSTM模型的效率,我们将序列的长度固定为 δ = 7 \boldsymbolδ = 7 δ=7,因为我们发现攻击者的攻击策略通常不超过7,将 δ \boldsymbolδ δ设置为较小的值可以减少候选序列的数量,从而减少提取攻击策略的时间成本。对于长度小于7的候选序列,我们使用额外的嵌入进行填充。此外,我们使用了dropout来缓解过拟合。我们将学习率设置为0.01,dropout率设置为0.2。所有参数均使用Adam优化器进行反向传播训练。

B. 评估ASI的性能

我们使用 A S I ASI ASI在测试集上的精度、召回率和F1分数来衡量其在判断未知攻击序列方面的性能。精度越高,获得的复杂攻击知识越准确,手动验证所需的成本越低。召回率越高,从警报中获得的复杂攻击序列知识越全面,手动验证所需的成本越高。一方面,我们希望从警报中获取尽可能多的可行复杂攻击知识,另一方面,我们希望保持手动验证的成本尽可能低。这需要在 A S I ASI ASI的精度和召回率之间进行权衡[33]。

训练集中负样本的数量对 A S I ASI ASI的精度和召回率有重要影响。当负样本数量较大时, A S I ASI ASI倾向于将序列预测为负样本,使得ASI具有较高的精度。相反,当负样本数量较小时,ASI倾向于将序列预测为正样本,使得ASI具有较高的召回率。图4显示了使用不同数量的负样本和固定数量的正样本训练的 A S I ASI ASI的准确性、召回率和F1分数。
在这里插入图片描述

图4:不同数量的负样本对ASI性能影响

我们可以看到,随着负样本数量的增加,ASI的精度增加,而召回率波动但总体呈下降趋势。此外,在实验中我们使用的正样本数量为460,当负样本数量为2440时,ASI可以同时具有高准确性和高召回率,分别为98.26%和98.70%,F1分数为98.44%。

为了比较ATTSE与基于统计相关性的方法,我们使用[7]中的方法提取了安全警报上的因果模板。我们将窗口长度设置为5。此外,为了尽可能多地提取因果模板,我们将平均因果效应的阈值设置为一个小值。最终,我们获得了1081个因果模板。由于因果模板仅指示两个基本攻击之间的因果关系,我们将已知攻击策略分成了128对具有因果关系的基本攻击。经验证,因果模板中只存在103对基本攻击,即召回率为80.4%,低于 A S I ASI ASI。我们认为这是因为基于过去经验的方法无法捕捉新的因果关系。

C. 评估ATTSE的能力

为了评估ATTSE从安全警报中提取攻击策略的能力,我们在网络攻击和防御活动期间生成的两组安全警报上实现了我们的框架,并且表2给出了这两组数据的详细信息和实验结果。
在这里插入图片描述

表2:两个网络攻击和防御活动期间生成的安全警报的实验结果

两个数据集中的安全警报数量都达到了数十万。我们使用第IV-C节介绍的相关性方法将属于同一攻击活动的攻击进行关联,并从中去除重复的警报,将Data 1分成了695个攻击序列,平均长度为3.84,而将Data 2分成了211个攻击序列,平均长度为5.42。对于平均长度为3.84和5.42的攻击序列,通过组合基本攻击构建候选序列相对容易。我们使用 A S I ASI ASI判断构建的候选序列,最终从Data 1和Data 2中分别获得了45和47个攻击策略。

值得注意的是,从安全警报中提取的攻击策略不包含在现有的复杂攻击知识库中,这证明了ATTSE能够根据现有的复杂攻击模式从警报中发现新的攻击策略。

ATTSE使用基于相似性的相关性方法构建攻击活动序列集,并通过 A S I ASI ASI从中识别攻击策略。与仅使用基于相似性的相关性的方法相比,ATTSE将要验证的序列数量从695和211减少到45和47。经过随机验证,删除的攻击序列中包含大量不是攻击策略的序列,例如只包含侦察的序列,包含无效攻击步骤的序列等。我们认为这是因为一些攻击者在攻击过程中未能实现其目标或发动了无效的攻击,但这些攻击也会生成安全警报并被系统记录。上述结果证明了ATTSE能够过滤掉更多的非攻击策略序列。

D. 提取的攻击策略的手动验证

为了验证提取的攻击策略的正确性,我们在网络靶场内选择了两个提取的攻击策略进行手动验证,这两个攻击策略在表III中给出。
在这里插入图片描述

表3:选择用于验证的攻击策略

我们在网络靶场内建立网络环境来验证攻击策略。验证第一个攻击策略(Webshell上传、密码破解和数据窃取)的网络拓扑如图5所示。
在这里插入图片描述

图5:用于攻击策略的网络拓扑

在这个网络拓扑中,攻击者位于外网环境,而机密数据位于内网环境的主机上。为了实现窃取数据的目标,攻击者必须首先攻陷能够连接内外网的Web服务器,然后使用Web服务器作为跳板攻击内网主机,最终实现窃取数据的目标。

在验证这个攻击策略的过程中,我们通过在网站上上传Webshell来攻陷Web服务器,然后利用Web服务器作为跳板对内网主机进行密码破解攻击。最后,我们将内网主机中的机密数据发送到攻击者的 I P IP IP地址,实现了攻击目的,证明了这个攻击序列是一个攻击策略。

我们使用相同的验证方法来验证第二个攻击策略。

Ⅵ.结论

网络安全研究中,网络攻击和防御活动通常在网络攻击与防御实验环境(cyber range)中进行。在这些活动中,攻击者可能采用未知的攻击策略来实现其攻击目的。为了获取这些未知的攻击策略,我们提出了一种称为 A T T S E ATTSE ATTSE的框架,该框架基于网络安全警报从网络攻击与防御实验环境中提取攻击策略。ATTSE能够通过识别与安全警报中相似攻击模式的攻击策略,从现有攻击策略中提取新颖的攻击策略。在网络攻击与防御实验环境中的安全警报上的评估结果显示, A T T S E ATTSE ATTSE具有提取新颖攻击策略的能力,并在攻击策略提取方面优于传统的警报关联方法。随着对工业控制系统的新型攻击不断增加,模拟这些攻击对于在网络攻击与防御实验环境中提取有效攻击策略至关重要。然而, A T T S E ATTSE ATTSE仅提取攻击策略的时间特征,而未考虑这些步骤在IP地址上的空间关系。这些空间关系对于多步攻击检测至关重要,我们计划在未来的工作中解决这个问题。

参考文献

[1] Z. Li, J. Zeng, Y. Chen, and Z. Liang, “AttacKG: Constructing technique
knowledge graph from cyber threat intelligence reports,” in Proc. 27th Eur.
Symp. Res. Comput. Sci., 2022, pp. 589–609.
[2] N. Kshetri and J. Voas, “Hacking power grids: A current problem,”
Computer, vol. 50, no. 12, pp. 91–95, Dec. 2017.
[3] A. Panda, A. Baird, S. Pinisetty, and P. Roop, “Incremental security enforcement for cyber-physical systems,” IEEE Access, vol. 11,
pp. 18475–18498, Feb. 2023.
[4] N. Chouliaras et al., “Cyber ranges and testbeds for education, training,
and research,” Appl. Sci., vol. 11, no. 4, p. 1809, Feb. 2021.
[5] J. Liu, B. Liu, and C. Wang, “Multi-step attack scenarios mining based on
neural network and Bayesian network attack graph,” in Proc. Artif. Intell.
Secur. 5th Int. Conf., 2019, pp. 62–74.
[6] E. Mahdavi, A. Fanian, and F. Amini, “A real-time alert correlation method
based on code-books for intrusion detection systems,” Comput. Secur.,
vol. 89, Feb. 2020, Art. no. 101661.
[7] J. Yang, Q. Zhang, X. Jiang, S. Chen, and F. Yang, “Poirot: Causal correlation aided semantic analysis for advanced persistent threat detection,”
IEEE Trans. Dependable Secure Comput., vol. 19, no. 5, pp. 2546–3563,
Sep./Oct. 2021.
[8] Q. Cheng, C. Wu, and S. Zhou, “Discovering attack scenarios via intrusion
alert correlation using graph convolutional networks,” IEEE Commun.
Lett., vol. 25, no. 5, pp. 1564–1567, May 2021.
[9] A. Alsaheel et al., “{ATLAS}: A sequence-based learning approach for
attack investigation,” in Proc. 30th USENIX Secur. Symp., 2021, pp. 30053022.
[10] J. Lansky et al., “Deep learning-based intrusion detection systems: A
systematic review,” IEEE Access, vol. 9, pp. 101574–101599, 2021.
[11] D. Moon, S. B. Pan, and I. Kim, “Host-based intrusion detection system
for secure human-centric computing,” J. Supercomput., vol. 72, no. 7,
pp. 2520–2536, Jul. 2016.
[12] M. Masdari and H. Khezri, “A survey and taxonomy of the fuzzy signaturebased intrusion detection systems,” Appl. Soft Comput., vol. 91, Jul. 2020,
Art. no. 106301.
[13] N. Pandeeswari and G. Kumar, “Anomaly detection system in cloud
environment using fuzzy clustering based ANN,” Mobile Netw. Appl.,
vol. 21, no. 3, pp. 494–505, Jun. 2016.
[14] M. Masdari and H. Khezri, “Towards fuzzy anomaly detection-based
security: A comprehensive review,” Fuzzy Optim. Dec. Mak., vol. 20, no. 1,
pp. 1–49, Mar. 2021.
[15] H. Albasheer et al., “Cyber-attack prediction based on network intrusion
detection systems for alert correlation techniques: A survey,” Sens., vol. 22,
no. 4, Feb. 2022, Art. no. 1494.
[16] Y. Zhang, S. Zhao, and J. Zhang, “RTMA: Real time mining algorithm for
multi-step attack scenarios reconstruction,” in Proc. IEEE 21st Int. Conf.
High Perform. Comput. Commun., IEEE 17th Int. Conf. Smart City IEEE
5th Int. Conf. Data Sci. Syst., 2019, pp. 2103–2110.
[17] S. J. Templeton and K. Levitt, “A requires/provides model for computer
attacks,” in Proc. Workshop New Secur. Paradigms, 2000, pp. 31–38.
[18] H. Hu, Y. Liu Y. Yang, H. Zhang, and Y. Zhang, “New insights into
approaches to evaluating intention and path for network multistep attacks,”
Math. Probl. Eng., vol. 2018, Jul. 2018, Art. no. 4278632.
[19] H. Hu, H. Zhang, Y. Liu and Y. Wang, “Quantitative method for network
security situation based on attack prediction,” Secur. Commun. Netw.,
vol. 2017, Jul. 2017, Art. no. 3407642.
[20] J. Viinikka, H. Debar, L. Mé, A. Lehikoinen, and M. Tarvainen, “Processing intrusion detection alert aggregates with time series modeling,” Inf.
Fusion, vol. 10, no. 4, pp. 312–324, Oct. 2009.
[21] R. V. Melo, D.D. de Macedo, D. Kreutz, A. De Benedictis, and M. M.
Fiorenza,, “ISM-AC: An immune security model based on alert correlation and software-defined networking,” Int. J. Inf. Secur., vol. 21, no. 2,
pp. 191–205, May 2021.
[22] MTIRE, “CAPEC - Common Attack Pattern Enumeration and Classification,” Jul. 2023. Accessed: Aug. 2023. [Online]. Available: https:
//capec.mitre.org/
[23] MTIRE, “MITRE ATT & CK,” Aug. 2023. Accessed: Aug. 2023. [Online].
Available: https://attack.mitre.org/
[24] S. Moskal, S. J. Yang, and M. E. Kuhl, “Extracting and evaluating similar
and unique cyber attack strategies from intrusion alerts,” in Proc. 16th
IEEE Int. Conf. Intell. Secur. Inform., 2018, pp. 49–54.
[25] H. Mei, J. Gong, and M. Zhang, “Research on discovering multi-step attack
patterns based on clustering IDS alert sequences,” J. China Inst. Commun.,
vol. 32, no. 5, pp. 63–69, May 2011.
[26] A. Bordes, N. Usunier, A. Garcia-Duran, J. Weston, and O. Yakhnenko,
“Translating embeddings for modeling multi-relational data,” in Proc. Adv.
Neural Inf. Process. Syst., 2013, pp. 2787–2795.
[27] Z. Wang, J. Zhang, J. Feng, and Z. Chen, “Knowledge graph embedding by
translating on hyperplanes,” in Proc. 28th AAAI Conf. Artif. Intell., 2014,
pp. 1112–1119.
[28] P. Rodríguez, M. A. Bautista, J. Gonzalez, and S. Escalera, “Beyond onehot encoding: Lower dimensional target embedding,” Image Vis. Comput.,
vol. 75, pp. 21–31, Jul. 2018.
[29] C. Guo and F. Berkhahn, “Entity embeddings of categorical variables,”
2016, arXiv:1604.06737.
[30] A. Yenter and A. Verma, “Deep CNN-LSTM with combined kernels from
multiple branches for IMDb review sentiment analysis,” in Proc. 8th Annu.
Ubiquitous Comput. Electron. Mobile Commun. Conf., 2017, pp. 540–546.
[31] W. Zha et al., “Forecasting monthly gas field production based on the
CNN-LSTM model,” Energy, vol. 260, Aug. 2022, Art. no. 124889.
[32] Y. Yu, X. Si, C. Hu, and J. Zhang, “A review of recurrent neural networks:
LSTM cells and network architectures,” Neural Comput., vol. 31, no. 7,
pp. 1235–1270, Jul. 2019.
[33] J. Davis and M. Goadrich, “The relationship between precision-recall and
ROC curves,” in Proc. 23rd Int. Conf. Mach. Learn., 2006, pp. 233–240.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
XXE攻击(XML External Entity Injection)是一种常见的网络安全攻击,它利用 XML 解析器的漏洞,将恶意的 XML 实体注入到应用程序中,从而实现对目标系统攻击。下面介绍如何在 pikachu 靶场上实施 XXE 攻击。 步骤1:选择目标 在 pikachu 靶场中,可以选择一个目标进行攻击。例如,选择其中一个常见的目标“WebGoat”,这是一个用于学习 Web 应用程序漏洞的靶场。在 pikachu 靶场中,可以通过访问“https://ip:8443/WebGoat/attack”进入 WebGoat 靶场。 步骤2:查找漏洞 在 WebGoat 靶场中,有许多不同类型的漏洞可供攻击者利用。在这里,我们将选择“XXE Injection”漏洞进行攻击。 步骤3:编写攻击脚本 编写攻击脚本,该脚本将恶意的 XML 实体注入到目标应用程序中。以下是一个简单的攻击脚本示例: ``` <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE foo [ <!ELEMENT foo ANY > <!ENTITY xxe SYSTEM "file:///etc/passwd" >]> <foo>&xxe;</foo> ``` 在此脚本中,我们注入了一个实体“xxe”,它将读取目标系统的“/etc/passwd”文件并将其返回。 步骤4:发送攻击攻击脚本发送到目标系统。在 WebGoat 靶场中,可以通过简单地将脚本复制并粘贴到相应的输入框中进行攻击。 步骤5:获取攻击结果 如果攻击成功,将返回目标系统的“/etc/passwd”文件内容。 需要注意的是,XXE 攻击可能会导致目标系统中的敏感信息泄露,因此请在合法授权和合规框架内进行测试。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值