多步攻击场景构建和攻击链提取方法

MIF: A multi-step attack scenario reconstruction and attack chains extraction method based on multi-information fusion


一、摘要

传统方法在面对多步攻击时很难溯源,面临的困难如下:
1.snort需要依赖人工定义好规则,重放对应流量包,来获得警报数据,但是也会得到一些虚假的警报信息,这会影响到多步攻击的攻击场景构建、
2.高风险攻击很重要,一般不会漏掉,但是低风险攻击往往会被忽视掉,然而低风险攻击往往时为多步攻击奠定基础,也很重要。如NMAP网络扫描
3.攻击者往往会设计多条攻击路径,确保至少有一条路径可以利用网络中的漏洞,但是我们很难捕获所有的攻击
本文提出了一种基于CTnet(卷积和决策代理树),这是一个卷积神经网络,评估IDS检测到的攻击,并通过攻击风险评估发出警报。然后,通过在捕获的攻击的风险评估和时间信息上应用基于图的融合模块(GM)来重建加权攻击方案。最后,我们通过时间和重量(TW-DFS)算法提取高风险攻击链。

二、相关内容介绍

(一)多步攻击流程

一个多步攻击流程为:先扫描网络主机,接着发送恶意漏洞数据包,利用漏洞渗透进入主机,和目标建立联系,发起DDOS攻击
在这里插入图片描述

(二)通信异常的网络拓扑结构

流量通信异常反映到拓扑结构大致对应着四类情况,如下图所示:
在这里插入图片描述
其中(a)往往对应着DDOS攻击,(b)往往对应probe探针进行探测的过程,(c)一般对应内网渗透过程,(d)往往可以表示设备间的通信恶意流量包

三、实验相关内容

多步攻击方案重建系统可以分为四个模块,输出处理,攻击评估,信息融合,输出模块。
在这里插入图片描述
数据处理模块:
减少虚假警报信息的干扰,提取这些警报对应的异常流,送入分析模块评估,如果从规则入手,手动对规则进行设置,这可能会导致异常流量的学习,导致计算出来的精度降低。这里使用了卷积来提取特征进一步分析攻击特征。需要注意的是卷积层只能接受固定大小的输入,很难就收不规则的原始流量,所以需要先预处理。提取数据将之转换为data Tensors 。
根据数据的传输模式,可以设计数据包的五个核心信息:源IP地址,源端口,目的IP地址,目的端口,传输协议。对照下表,在流量传输过程中,源主机和目的主机可能会开放一个端口,用于进行短期通信。而攻击就可能隐含在这样的过程中,如主机扫描或者FTP。另外,在数据处理模块中,Abnormal flow就表示检测到异常流量的时候会把它分解成小的flow。另外CNN模型不能处理16进制数据,需要先转换成10进制。
在这里插入图片描述
在从数据流中1提取数据的过程中,首先取出每个数据流中的前n个数据包,再从每个数据包中取出m字节。如果不够,就填0占位。再对nm的数据重塑为hh的一个矩阵。这一部分我的理解是比如n取10,m取160,那么h就取40。如果不能整除,视情况补0
在这里插入图片描述
得到向量后,使用聚类算法把这些警报向量分类,然后计算每一类的聚类中心。后续的数据可以计算和每一个聚类中心的距离来判断应该属于哪一类,并打好标签。对于一条警报数据,如果它的攻击类型是扫描攻击,那它可能是多步攻击的开始,可以认为是低风险的,如果攻击类型是远程控制,攻击方式是远程控制,但是攻击方式是猜密码,这种攻击带来的风险也是很低的。但如果是远程利用漏洞,那么将会导致高风险。概括来说就是可以利用攻击类别和攻击模式来评估风险。
为此定义了两个权重系数,w_level和w_mode,w_level对应着前面提到的五个阶段,w_mode表示对应每个阶段的风险,这是需要管理员根据实际情况赋值的。另外还定义了一个匹配度DOM,DOM需要判断这种攻击模式是否在攻击目录中,如果在,DOM取1,否则DOM取0。风险系数RAI=w_modew_levelDOM。(可以发现当DOM取0的时候RAI取0,也就是说我可以通过定义攻击类型的一个字典,字典里面存放一些可能的攻击模式,最终可以起到流量过滤的效果)

四、实验数据

(一)实验数据介绍

实验使用Darpa2000的1.0场景和2.0场景来检验效果。下面先简单介绍一下这个数据集。

上图为1.0场景攻击简图,横轴表示时间,纵轴表示TCP/UDP。可以看到也是存在着五个阶段,先IP扫描,扫描网络中的主机;然后利用sadmind的ping选项尝试和主机建立连接;利用sadmind守护程序的漏洞获得主机权限;在主机上安装DDoS后门程序;通过telnet会话发起DDoS攻击。(之前一直以为telnet数据包应该归类到第二个阶段,但是看这张图,似乎把这种类型的数据包归类到4或5阶段比较合理)
2.0场景和1.0场景大致类似,二者的攻击启动主机和目标主机是一致的,都对应着五个阶段。区别是2.0是通过DNSHinfo而非扫描ip或者RPC端口探测主机。另外在攻击过程上也有些不同,1.0是直接攻击三台主机,再利用这三台主机发起DDoS。2.0则是先攻占了一台主机,利用这台主机作为跳板机,攻占了其他主机,再发起DDoS。(详细攻击过程的区别会在后续图中会表示出来)

(二)相关指标

流量数据可以分为正常流量和异常流量。因为对流量还有一个分类操作,所以最终可以得到四个量,分别是:分类到正常流量的正常流量记为TP,分类到异常流量的正常流量记为FP,分类到异常流量的异常流量记为TN,分类到正常流量的异常流量记为TN。对此可以计算几个指标值,分别是Accuracy、Precision、Recall、F1-measure。
在这里插入图片描述
不难看出,Accuarcy表示分类正确的流量占比,Precision表示分类正常流量中分类正确的占比,Recall表示分类到正常流量中的正常流量占比。F1-measure求了一个调和平均数(可以想想为啥人家用调和,而我只能想到几何…,这两类平均数计算方法适用的场景)

在这里插入图片描述
结果表示1999和2017这俩数据集用CTnet得到的结果还是很好的。

最后补充一下darpa2000的1.0和2.0拓扑结构
在这里插入图片描述
上图对于1.0场景,(a)(b)对应着1-4阶段,(c)对应着第5阶段 (d)是前三张图的合并结果

在这里插入图片描述
上图对于2.0场景,(a)(b)对应着1-4阶段,(c)对应着第5阶段 (d)是前三张图的合并结果

结合前面两张图来看,攻击启动主机都是202.77.162.213,1.0场景攻占了172.16.112.10、172.16.112.50、172.16.115.20。再利用这三台主机和一些虚拟ip建立“连接”,再发起DDoS。2.0场景则是先攻占172.16.115.20,再利用172.16.115.20作为跳板攻占了172.16.112.50。之后进行类似的操作发起DDoS。

在这里插入图片描述
--------------------------------| 1.0的三条攻击链ⅠⅡⅢ |---------------------------------------

在这里插入图片描述
--------------------------------| 2.0的三条攻击链ⅠⅡ |---------------------------------------

五、不足

对照1.0和2.0得到的攻击链可以发现存在虚拟ip,然而这个系统在面对虚拟ip的时候仍然需要轻度手动处理。

另外我也对Darpa2000的1.0和2.0数据处理计算过,总感觉结果不是很让人满意,如果想交流这一部分,欢迎在评论区留言讨论

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值