文章目录
- 1. 引言
- 2. 网络安全态势评估基础
- 2.1 基本术语
- 2.2 网络安全态势评估流程
- 3. 实时攻击阶段识别
- 3.1 攻击场景聚类
- 3.2 实时攻击阶段识别算法
- 3.3 攻击阶段识别算法的改进
- 4 网络安全态势量化分析
- 4.1 攻击安全概率
- 4.2 攻击阶段实现概率
- 4.3 网络安全态势值
- 5 实验结果及分析
- 5.1 LLDOS数据集
- 5.2 CTF数据集
- 5.3 算法效能分析
1. 引言
-
过去研究
方法:从攻击威胁、网络脆弱性等方面
存在的问题:要素单一,无法满足管理人员对掌握网络
整体安全状态的需求。背景:以前的态势感知方法都只能以攻击事件作为评估基础,没有挖掘安全事件之间的因果关系,而现在APT攻击盛行,有大规模、协同、多阶段的特点,绝大部分危害巨大的攻击是多部攻击;
-
现有态势感知方法存在的问题:
1)缺乏对多步攻击的阶段识别,无法全面评估各攻击轨迹对网络资产所造成的影响;
2)缺乏对攻击者的识别,无法准确评估各攻击者对网络造成的影响;
3)尚未给出一个合理有效的安全态势量化标准。
-
本文角度:从攻击者身份出发
1)对攻击行为进行攻击场景聚类,识别攻击轨迹
2)建立攻击模式库,对攻击行为因果分析,识别所处阶段
3)根据2)结论作为态势评估要素,结合CVSS量化标准,进行态势要素和节点态势融合
2. 网络安全态势评估基础
2.1 基本术语
- 主机信息(HostIP,Service,Vuls,Weight),
HostIP 表示主机的 IP 地址,Services 表示主机所运行的服务信息
(如 SSHD、SQL、HTTP、Ms-office),Vuls 表示主机上的脆弱性与漏洞列表,Weight 表示该主机在网络中的重要程度。
- 脆弱性集V(id,type,IP,impact,info)
id 表示该脆弱性的唯一标识;type 表示该脆弱性的类型,包括配置错误类型的非安全策略、防火墙配置错误、设备接入权限设置错误,以及漏洞类型;IP 表示该漏洞出现的主机地址;impact 表示该漏洞对资产造成的危害性;info 表示该脆弱性的详细描述信息。
- 拓扑结构
主机间的物理连接结构,无向图G(N,E),N表示网络中物理主机节点集合,E表示连接节点间的边
- 网络连通性
主机间的通信关系,(hosti,hostj,protocol/port),两个host表示相连主机,protocol/port表示双方可以通信的协议与端口
- 原子攻击事件
(id,time,Sip,Dip,Sport,Dport,AttackType,p(a)),id 是该事件的唯一标识符;time 是该事件的发生时间;Sip 是攻击者的源地址;Dip 是攻击的目标地址;Sport 是攻击者的源端口;Dport 是攻击的目的端口;AttackType 是本次安全事件使用的攻击类型; p(a)是经过融合后该攻击事件的发生概率。
- 攻击状态转移图
2.2 网络安全态势评估流程
- 要素收集
- 攻击方信息:来源于IDS、防火墙、系统日志等传感器的报警信息
- 环境信息:主机信息(对运维系统/软件的统计和对主机的漏扫)、拓扑结构(对网络结构的统计)、网络连通性(防火墙过滤规则)。
- 攻击阶段识别
对攻击行为进行因果关联分析。首先攻击行为进行场景聚类,将信息融合为安全事件,进行场景划分然后与攻击模式库进行关联分析。
- 网络安全态势量化
基于CVSS完成评估
3. 实时攻击阶段识别
3.1 攻击场景聚类
定义7:攻击关联度cor(a,b)
确定攻击a,b两个攻击属于同一攻击场景的可能性。抽取属性:源IP,目的IP,源端口,目的端口,时间,攻击类型
Feature (a, b)和αk 分别表示第 k 个特征属性之间的关联度和相应的权重.
存在新的安全事件时,将其与已保存的攻击场景进行匹配,计算关联度,若超过阈值,则为同类,否则为新攻击
3.2 实时攻击阶段识别算法
定义8:实时攻击场景(ATree),保存攻击者实时入侵轨迹,(S,F,Q)
S表示已经发生的攻击状态节点集合,F表示状态节点间转移有向边集合,Q表示状态间依赖关系
定义9:状态发生函数bool(s)
定义10:转移等待窗口
算法1:实时攻击阶段识别算法
输入:融合的安全事件(Alert)
输出:实时攻击场景(Atree)
3.3 攻击阶段识别算法的改进
存在的问题:漏报、0Day和报警乱序,回对攻击场景的生成造成影响
**解决办法:**将状态发生函数bool(s)进行拓展,,bool(s) ∈{true,false,middle},增加中间状态保存可能发生的状态转移,通过后续报警进行状态更正。
算法:
Step1 设置中间状态
Step2 状态更正
4 网络安全态势量化分析
4.1 攻击安全概率
p(ac),对于特定网络,某种成功入侵的可能性
p(a)为该攻击发生概率,vlusj 表示该攻击成功实施所依赖漏洞,Vlus 表示被入侵主机中存在的漏洞库,vlus∈ Vlus 表示被入侵主机存在该攻击所依赖漏洞
4.2 攻击阶段实现概率
p(s),攻击者已经成功入侵到某个阶段的可能性。攻击阶段依赖多个单个攻击的成功,仅当所需的都成功了才会成功。
pi( ac) 、pj(ac ) 分别为攻击行为Alteri 、Alter j的成功入侵概率;d=0 表示状态节点 s 为或节点; d=1 表示状态节点 s 为与节点
4.3 网络安全态势值
根据CVSS来衡量漏洞对网络的影响,威胁得分为
CIA分别是机密性、完整性、可用性三个指标的威胁影响得分。
每条攻击场景需要利用多个系统漏洞,将攻击阶段实现概率p(s)、攻击阶段利用的单个漏洞威胁得分Impact(v)以及攻击阶段发生的节点权重值Weight进行综合量化,可以得到每一条攻击场景对网络安全态势的影响sa(path),即多漏洞对系统安全态势的影响值
m 为攻击场景 pathi 已经实现的攻击阶段。pj(s)≤ 1, Impact (v )≤10 , ∑Weight =1 ,因此sa( path) i≤10 。依据 CVSS 中对得分的威胁程度定义,设当sa(pathi) ∈ [0, 4.0] 时,该攻击者对网络造成的危害为低风险;当 sa( pathi) ∈(4.0, 7.0] 时,该攻击者对网络造成的危害为中度风险 ; 当sa(pathi)∈ (7.0,10] 时,该攻击者对网络造成的危害为高风险。
最后总体安全态势为,n为检测到的所有攻击场景的总和
5 实验结果及分析
数据集:
- DARPA2000
- Defcon23 CTF
流程:
- 用TCPReplay将数据集重放,利用入侵检测系统Snort对流量进行检测
- 利用融合结果实施网络攻击阶段识别
- 利用工具Graphviz将状态转移图可视化
- 对网络安全态势进行量化评估
5.1 LLDOS数据集
属于DAPRA2000的两个子集,包含完整的实施DDOS过程的场景,1.0的攻击者较为初级,2.0的攻击和更加隐蔽和高级。
- LLDOS1.0攻击流程
- 对网段进行IP扫描,查询有效主机
- 对有效主机执行Sadmind Ping,查询运行Sadmind服务的主机
- 利用有效主机操作系统的Sadmind漏洞执行Daemon Installed攻击
- 利用Exploit获得三台主机的Root权限
- 利用三台主机对最终目标实施DDoS攻击
- LLDOS2.0攻击流程
放弃了PING,而是使用DNS_Query,查询到DNS服务器地址,然后根据漏洞获取root权限,最后控制其他主机,最后执行DDoS
表1通过攻击事件及运行的服务信息分析得到
表2通过CVSS
网络分为DMZ和INSIDE,由于DMZ有1个网段,INSIDE为6个,ui那次分配权重时会不太一样。
对各节点进行数据融合、攻击阶段识别、网络安全态势评估,得到实时的网络安全态势值。根据此方法得到二主要受攻击主机的相关信息如下表所示:
绘制成图片如下,态势值越大表示此刻网络中收到的攻击危害程度越大
结论:
可以看到本文的方法能体现出多步攻击的攻击阶段,考虑到了攻击间的因果关联,因此是具有参考价值的
5.2 CTF数据集
选用蓝莲花小组作为防护对象,对第一天采集的数据集的安全态势进行评估,也能较好反映攻击实情。
5.3 算法效能分析
目的:通过对攻击阶段与攻击者进行识别给出一个更加合理有效地安全态势量化评估值。针对重复、乱序、误报、漏报这四个问题进行改进。
- 重复:1. 利用报警属性对其进行聚类,使重复报警聚合成一条信息 。2. 利用状态转移,对重复状态进行丢弃
- 乱序:设置中间状态,保存先到的后续状态,当其前提状态到达,便将后续状态更新为发生状态,能更加准确识别攻击阶段
- 误报:1.对多源报警信息进行融合 。 2. 对报警信息进行场景重构
- 漏报: 设置中间状态,状态的更新依赖于后续状态的发生
- 0DAY:中间状态,对尚未成功的攻击进行保存,若后续攻击的前提状态为该中间状态,则能推测出0day。但是还停留在理论
- 算法执行判断而非循环语句,时间复杂度O(1)