新闻动态

News information

六方云基于挖掘算法的内网告警关联方法

<<返回

2024年02月21日 16:00

01.
安全运营需求


随着网络规模的扩大,安全设备的增多,网络安全威胁的方式层出不穷,病毒、蠕虫、后门、木马等网络攻击方式越来越多,逐渐受到人们的广泛关注。为了保证网络系统的安全运行,在网络中广泛使用了防火墙、入侵检测系统、漏洞扫描系统、安全审计系统等安全设备,使得告警事件数量剧增。


但由于这些设备存在功能单一、各自为政、不能协同工作的特点,产生的告警事件中含有大量的重复信息,而且各类告警事件之间分散独立,缺乏联系,这些缺乏联系的安全事件无法给安全管理员提供攻击时序和地域上真正有意义的指导。针对该问题,部分安全运营中心已经有了相应的一套“置信度规则”,对海量的数据进行过滤,减少了部分告警。


但以上方法仍旧无法解决“多步攻击”,多步攻击是目前攻击手段中最常见的一种,通常出于商业或政治动机,由某些人员精心策划,然后针对特定组织或国家进行攻击,该攻击的主要特征是能够持续监控靶机,并从靶机获取数据。由于这种攻击方式一般较为隐匿,且部分攻击持续时间以年为单位,导致普通检测手段难以发现。目前识别多步攻击的方法主要偏向于规则匹配形式,但是这种方式依赖人工经验,且维护成本较高,无法做到自动学习多步攻击模式。


本发明通过对海量的安全告警事件进行分析,能够挖掘到该事件背后能引发的与之相关的事件,带来的业务价值包括:能够进一步找出类似的告警减少冗余告警节约判断时间将相关联的事件放在一起方便安全管理员进行因果分析大大提高了问题解决的效率为用户提供更完整、更可信、可读性更好、更有价值的信息。


02.
解决方案核心组成


本发明包含以下两个部分,告警连通图和关联分析。


告警连通图

在关联算法进行数据挖掘之前,我们首先对告警事件生成连通图,通过使用图算法发现告警事件之间的连通关系,我们可以对更复杂的攻击步骤进行关联分析挖掘。


在图论中,连通图是基于连通的概念,在一个无向图G中,若从顶点i到顶点j有路径相连,则称i和j是连通的。如果图中任意两点都是连通的,那么图被称为连通图。在本任务场景下,IP是顶点,源IP与目的IP构成了有向边,即路径。所有的日志数据构成了连通图的点和边,一个连通图会有多个连通子图。


图片


告警图模型模块每小时定时运行,通过接口(1)从ES数据库中读取最近24小时的主要告警事件(包括IPS告警事件、AI威胁告警事件以及威胁情报告警事件)。


告警图模型模块通过算法分析中读取的告警事件中的告警连通图,去重后构成告警事务和告警项。接下来,从事务中读取事务数目、1-项集和2-项集,通过接口(2)使用Holt-Winters一次指数平滑记入Redis,α取0.99。


关联分析

图片


关联分析模块通过接口(1)从Redis中读取近一个月的事务集合,每小时读取一次,经过算法生成一批规则。即每次使用近一个月的事务进行关联规则的挖掘。

该部分主要包含下三大步骤:


步骤1:挖掘频繁项集
(1)扫描数据集,确定每项的支持度,得到所有频繁1项集;
(2)使用上一次迭代发现的频繁k-1项集,产生新的候选k项集;
(3)对候选项的支持度进行计数;
(4)删去支持度计数小于最小支持度的候选项集;
(5)当没有新的频繁项集产生,结束。


挖掘频繁项集过程图如下:


图片

注:本算法只选取了一二项集。


步骤2:生成关联规则

图片

图片

步骤3:输出规则

将得到的规则以哈希形式输入到Redis中,供后期读取使用。


总体发明流程图:


图片


03.
实施案例


为验证本发明效果,我们在现网环境下复现了以下事件:
1、钓鱼邮件附带恶意程序,诱导用户点击运行3601.exe;
2、恶意程序运行后,会释放两个恶意程序:
weyoag.exe、explorer.exe;
3、weyoag.exe会释放恶意文件hra33.dll;
4、weyoag.exe访问了5个域名和IP,分别为:
www.520520520.org
www.520123.xyz
sbcq.f3322.org
amazom.on.buzz
156.254.43.31
5、3601.exe启动了一个具有隐藏界面的进程,并将自身拷贝到其他目录下,修改网络代理设置


该劫持病毒攻击场景包含8个事件,分别为:1个电子邮件钓鱼、3个恶意软件传播、4个浏览器劫持事件。

图片

由于篇幅原因,这里只具体列出了一个场景,该场景发生的事件名称记录到下表,实际实验中我们使用了六个场景。


图片


结果

使用precision(查准率)和recall(查全率)这两个经典指标来评估告警关联算法的准确程度:

1、计算单个攻击场景的precision和recall指标

2、取所有攻击场景precision和recall指标的平均值


举例来说,测试数据集中对于某个攻击场景(e),我们事先知道其包含(A,B,C,F)这四个告警事件。而关联算法获得的结果是(A,B,C,D,e)。其中,算法结果中正确的是A、B、C,错误的是D、e,缺失的是F。因此,对于攻击场景e来说:

图片

计算precision(查准率)和recall(查全率)如下:

 

图片


对于3601钓鱼邮件这条日志来说(如下图),这一条日志与其余7条日志均能关联,其置信度为1,对于其他7个日志亦是如此。


图片


所有场景数据的计算结果如下表:


图片


为了使实验更接近现实,我们尝试对每个场景的事件进行随机丢弃,得到的结果为:


图片


04.
客户价值


采用本发明,可以找出关联的事件,对相互关联的事件,采用启发式的动态风险评估,并根据风险的值,来判定安全事件是否是成为一个安全事故。用户可根据分析后呈现出来的相关状态信息做出响应。


本发明主要包含两大方面,一是安全事件的收集、预处理、并构建连通图;二是深入研究和分析数据库中的数据,将数据挖掘中的关联分析等技术运用其中,发现海量数据背后隐藏的知识,协助安全管理员做出当前网络安全状态的正确判断。本发明研究成果的应用目标是针对拥有多台网络安全设备和中大型计算机网络的部门提供以下几方面服务:


1、通过数据挖掘和关联技术能力,解决海量的安全事件信息难以人为管理、缺乏对来自不同数据源的离散数据集中分析的问题;


2、提供一个全集成的事故响应系统,包含集成在内的、可不断更新的、供与安全事件信息匹配的规则库。实现一个较为全面和完善的安全事件分析处理机制;


3、辅助用户进行基于当前网络状况实时分析结果的“动态”安全风险评估。


专利公开号:CN114006727A

部分名词定义:
(1)事务(transaction):同一个连通子图上发生的事件的集合成为一个事务;
(2)项(item):事务中的每一个事件(id);
(3)项集(itemset):包含零个或多个项的集合叫做项集,例如{id1,id2,id5},含有k个项就称为k项集;
(4)支持度计数(support_count):一个项集出现在几个事务当中,它的支持度计数就是几;
(5)支持度(support):支持度计数除于总的事务数,关联规则A->B的支持度support=P(AB),指的是事件A和事件B同时发生的概率;
(6)频繁项集:支持度大于或等于某个阈值的项集就叫做频繁项集;
(7)置信度(confidence):指的是发生事件A的基础上发生事件B的概率
(8)KULC:对双向置信度做平均处理;
(9)强关联规则:大于或等于最小支持度阈值和最小置信度阈值的规则叫做强关联规则。关联分析的最终目标就是要找出强关联规则。