基于标记数据学习降低误报率的算法优化
无论是基于规则匹配的策略,还是基于复杂的安全分析模型,安全设备产生的告警都存在大量误报,这是一个相当普遍的问题。其中一个重要的原因是每个客户的应用场景和数据都多多少少有不同的差异,基于固定判断规则对有统计涨落的数据进行僵化的判断,很容易出现误判。
在没有持续人工干预和手动优化的情况下,策略和模型的误报率不会随着数据的积累而有所改进。也就是说安全分析人员通过对告警打标签的方式,可以将专业经验传授给智能算法,自动得反馈到策略和模型当中,使之对安全事件做出更精准的判断。本文介绍利用专家经验持续优化机器学习的方法,对告警数据进行二次分析和学习,从而显著地降低安全威胁告警的误报率。
为了降低误报率,当前大体上有两种技术途径:
根据不同客户的各种特定情况修正策略和模型,提高策略或者模型的适应能力;
定期(如每月一次)对告警进入二次人工分析,根据分析结果来调整策略和模型的参数配置。
这两种方法对降低误报率都有一定的作用。但是第一种没有自适应能力,是否有效果要看实际情况。第二种效果会好一些,但是非常耗时耗力,而且由于是人工现场干预和调整策略和模型,出错的概率也非常高。
MIT的研究人员[1] 介绍了一种将安全分析人员标记后的告警日志作为训练数据集,令机器学习算法学习专家经验,使分析算法持续得到优化,实现自动识别误报告警,降低误报率的方法(以下简称“标签传递经验方法”)。这种把安全分析人员的专业智能转化成算法分析能力的过程,会让分析算法随着数据的积累而更加精确。继而逐渐摆脱人工干预,提高运维效率。如下图所示:
下面我们通过基于“频繁访问安全威胁告警”模拟的场景数据来介绍一下实现机制。
什么是频繁访问模型?逻辑比较简单:一段时间内(比如1分钟),一个攻击者对系统的访问次数显著高于普通访问者的次数。此告警规则可以用简单的基于阈值,或者是利用统计分布的离异概率。基于此,我们先模拟一些已经被安全分析人员打过标签的告警数据。根据实际应用经验,我们尽量模拟非常接近实际场景的数据。如下图:
关于模拟数据的介绍:
总共模拟了20天的告警数据,从2017-01-01到2017-01-20。前10天的数据用来训练模型,后10天的数据用来衡量模型的表现;
每个告警带有是否误报的标签。红色代表误报,蓝色代表准确告警。
关于模拟数据的假设:
误报聚集在某个时间段,模拟数据假设的范围是18:00-19:00。在安全运维实践中,的确存在某个特定的时间段,由于业务逻辑或者系统原因导致误报增多的现象。所以上述假设是合理的,告警时间可以作为有效的特征值。但并不是所有的误报都聚集在这个时间段,同时并不是这个时间段的所有告警都是误报;
误报大多来自于一批不同的IP。所以访问来源IP也是有用的特征值;
任何数据都不是完美的,所以在模拟数据中加入了~9%的噪音。也就是说再完美的智能模型,误报率也不会低于9%。
这些假设在实际的应用场景中也是相对合理的。如果误报是完全随机产生的,那么再智能的模型也不能够捕捉到误报的提出信号。所以这些合理的假设帮助我们模拟真实的数据,并且验证我们的机器学习模型。
简要模拟数据的代码实现:
下图显示利用PCA降维分析的可视化结果,可以看到明显的分类情况:
红色代表误报,蓝色代表正确告警。基于设定特征值的降维分析可以得到两个聚集,即误报和非误报有明显的区分的,也就是说误报的是有一定规律,不是完全随机的,因此是可以被机器学习捕捉到的。
简要代码实现:
基于模拟数据,我们想要达到的目的是通过持续的强化机器学习能够降低误报率。所以我们采取的策略是:
训练一天的数据2017-01-01,测试10天的数据2017-01-11到2017-01-20;
训练两天的数据2017-01-01到2017-01-02,测试10天的数据2017-01-11到2017-01-20;
以此类推,来看通过学习越来越多的数据,在测试数据中的误报率是否能够得到不断的改进。
简要代码如下:
此安全威胁场景相对简单,我们不需要太多的特征值和海量的数据,所以机器学习模型选择了随机森林(RandomForest),我们也尝试了其他复杂模型,得出的效果区别不大。测试结果如下:
达到我们所预期的效果,当训练数据越来越多的时候,测试数据当中的误报率从20%多降低到了10%。通过对告警数据和标签的不断自学习,可以剔除很多告警误报。前面提到,数据当中引入了9%的噪音,所以误报率不会再持续的降低。
srcIP,访问源IP
timeofday,告警产生的时间
visits,访问次数
destIP,被访问IP
下图显示了特征值在模型中的重要性:
和我们的预期也是一致的,访问源IP(srcIP)和告警发生的时间(timeofday)是区分出误报告警效果最好的特征值。
另外,由于随机森林模型以及大部分机器学习模型都不支持分类变量(categoricalvariable)的学习,所以我们把srcIP和destIP这两个特征值做了二值化处理。简要代码如下:
总结
本文通过一组模拟实验数据和随机森林算法,从理论上验证了“标签传递经验方法”的有效性。即通过安全分析专家对告警日志进行有效或误报的标记,把专家的知识技能转化成机器学习模型的分析能力。和其他方法相比,此方法在完成自动化学习之后就不再需要人工干预,而且会随着数据的积累对误报的剔除会更加精确。
数据分析咨询请扫描二维码
CDA持证人Louis CDA持证人基本情况 我大学是在一个二线城市的一所普通二本院校读的,专业是旅游管理,非计算机非统计学。毕业之 ...
2024-12-18最近,知乎上有个很火的话题:“一个人为何会陷入社会底层”? 有人说,这个世界上只有一个分水岭,就是“羊水”;还有人说,一 ...
2024-12-18在这个数据驱动的时代,数据分析师的技能需求快速增长。掌握适当的编程语言不仅能增强分析能力,还能帮助分析师从海量数据中提取 ...
2024-12-17在当今信息爆炸的时代,数据分析已经成为许多行业中不可或缺的一部分。想要在这个领域脱颖而出,除了热情和毅力外,你还需要掌握 ...
2024-12-17数据分析,是一项通过科学方法处理数据以获取洞察并支持决策的艺术。无论是在商业环境中提升业绩,还是在科研领域推动创新,数据 ...
2024-12-17在数据分析领域,图表是我们表达数据故事的重要工具。它们不仅让数据变得更加直观,也帮助我们更好地理解数据中的趋势和模式。相 ...
2024-12-16在当今社会,我们身处着一个飞速发展、变化迅猛的时代。不同行业在科技进步、市场需求和政策支持的推动下蓬勃发展,呈现出令人瞩 ...
2024-12-16在现代商业世界中,数据分析师扮演着至关重要的角色。他们通过解析海量数据,为企业战略决策提供有力支持。要有效完成这项任务, ...
2024-12-16在当今数据爆炸的时代,数据分析师是组织中不可或缺的导航者。他们通过从大量数据中提取可操作的洞察力,帮助企业在竞争激烈的市 ...
2024-12-16在现代企业中,数据分析师扮演着至关重要的角色。他们不仅负责处理和分析大量的数据,还需要将这些分析结果转化为切实可行的商业 ...
2024-12-16在当今的大数据时代,数据分析已经成为推动企业战略的重要组成部分。无论是金融、医疗、零售,还是制造业,各个行业对数据分析的 ...
2024-12-16在当今这个以数据为驱动力的时代,数据分析领域正在迅速扩展与发展。随着大数据、人工智能和机器学习技术的不断进步,数据分析已 ...
2024-12-16在信息爆炸和数据驱动的时代,数据分析专业是否值得一选成为许多人思考的议题。无论是刚刚迈入大学校门的新生,还是考虑职业转型 ...
2024-12-16适合数据分析专业学生的实习岗位有很多,以下是一些推荐: 阿里巴巴数据分析岗位实习:适合经济、统计学、数学及计算机专业的 ...
2024-12-16在数据科学领域,探索实习机会是一个理想的学习和成长方式。实习不仅可以提供宝贵的实践经验,还能帮助学生发展关键的数据分析技 ...
2024-12-16在当今信息驱动的时代,数据分析不仅成为了企业决策的重要一环,还催生了各种职业机会。从技术到业务,数据分析专业的就业岗位种 ...
2024-12-16在现代企业中,数据分析师被誉为“数据探险家”,他们通过揭示隐藏在数据背后的故事,帮助公司优化业务策略和做出明智的决策。然 ...
2024-12-16在大数据崛起的时代,数据分析师被誉为企业的“幕后英雄”。他们通过解读数据,揭示隐藏的真相,为企业战略提供重要的指导。这份 ...
2024-12-16在这个信息大爆炸的时代,数据分析师成为了企业中的“福尔摩斯”,他们能够从庞杂的数据中提取关键洞察,为业务发展提供坚实支持 ...
2024-12-16在这个数据为王的现代社会,数据分析师如同企业的导航员,洞悉数据背后所隐藏的商业机会和战略优势。然而,成为一名优秀的数据分 ...
2024-12-16