作者:阿里安全钱盾反诈实验室 刘翔宇、染青
阿里安全钱盾反诈实验室高级算法工程师刘翔宇在北京举行的2018 HITB安全峰会演讲
随着机器学习取得了一个又一个的技术突破,越来越多的公司开始将机器学习应用于实际的安全解决方案中,比如异常检测、入侵行为检测、风险管理等。
但是,这些工作主要侧重在提出新的算法或发现新的应用场景方面,忽略了机器学习的输出结果和安全运营成本之间的分歧。例如,将 1 亿个测试用例输入误报率仅为 0.1% 的模型中,仍然会产生多达 100,000 个误报。但对于安全运营人员而言,他们每天可能至多能够处理 100 个告警。除此之外,考虑到安全面临的攻击手段众多,若针对每种攻击手段单独建模,那么告警数目将进一步大幅提升,远远超过安全运营人员的承受范围。
因此,我们将这种不匹配关系定义为机器学习和安全运营之间的最后一公里问题。
最后一公里问题应该如何解决?很多人可能会说,那就进一步提高模型的准确率,雇佣大量人力来对这些告警进行打标。这个方法已经在黄图识别上取得了良好的效果,何不移花接木一把?
但事实上,黄图识别有几个先天条件,是入侵检测难以满足的。
• 打标容易。人们可以轻易识别出黄图,但对入侵检测而言,就算安全专家也需要通过一系列的查证和搜索,才能确认一个告警是否是入侵案例。
• 打标费用低。因为大多数人可以轻易识别出黄图,因此市面上黄图打标价格相对很低,由此产生的人力成本在可控范围内。但对于告警而言,我们需要有专业的安全运营人员来进行判断。每一个专家,都是公司的宝贵财富。
• 大量数据样本。要想能够对样本进行打标,除了有充足的人手以外,样本也要足够多才行。但对于入侵检测,每年真实发生的案例是非常少的,因此不满足这个条件。
基于这几点,传统的方式已经无法解决机器学习和安全运营之间的分歧,因此我们结合自身的场景,提出了多种解决方案,如行为分析、特征 排序 、风险累积和知识图谱等,并在集团的入侵检测系统中进行了实践。
阿里安全钱盾反诈实验室数据挖掘工程师染青在北京举行的 2018 HITB 安全峰会演讲
第一种方案为结合行为分析。在实际中,许多网络安全问题都可以视为由多个子问题构成,因此不适合直接用机器学习进行「打包」处理。但是针对某些子问题,我们可以使用机器学习进行端到端的学习,然后再对预测结果的行为进行聚类、规则过滤等操作,进而得到最终结果。
例如我们知道 DGA(Domain generating algorithm) 算法实际上是为恶意软件提供新域名的程序,所以人们往往会直接将 DGA 域名和正常域名输入到神经网络中进行训练,并利用得到的分类模型进行预测。这样训练出来的模型在交叉验证的时候往往能达到 99% 甚至更高的准确率。
但事实上,由于 DGA 的本质是生成随机域名,因此如果只聚焦在域名本身这个维度上,那么模型所找出的所谓 DGA 域名,实际上便是一大堆随机域名。
而除了恶意程序以外,还有非常多的场景也会出现利用随机域名的情况,如 IOT 设备。那对于这种情况我们应该怎么办呢?我们对数据进行了进一步分析,发现虽然两者生成的都是随机域名,但 IOT 设备使用的随机域名和黑客使用的 DGA 随机域名在行为上大不相同。因此,我们可以在除了域名本身这一特征外,再进一步的通过这些域名的行为特征,比如与 IP 的映射关系、子域名个数和解析次数等将其区分开来。
第二个解决方案,是基于特征的排序。如前所述,由于告警数众多,因此对于每一个告警,我们都会将其和其他告警进行比较,从而给出一个它的告警分数。如果这个告警在所有特征指标上都表现很异常,那么它的告警分数就会非常高。通过这种方法,我们能够让更异常的告警浮到前面来,更早的被安全运营专家注意到。
在做完特征排序之后,告警数已经有了一定程度的下降了。但就像我们最初说的那样,入侵检测所面临的攻击种类繁多且具有很强的持续性和移动性,因此在对多种方案进行评估后,我们采用知识图谱来构建了我们的告警池,在基于单个告警分数的基础上,针对具有一定关联性的告警进行归并打分,让攻击事件能够更好的浮现出来。
在告警池搭建好之后,后面我们再想要基于它去做一些分析和建模,就方便了很多。比如说,针对每一个安全运营人员确定的攻击事件,我们能够自动将其相关的日志和告警抽取出来,对其中的特征进行分析和学习,并从历史告警池中将相似的关联告警回捞出来,同时将学习到的特征和规则自动并入我们的策略知识库中。今后,一旦发生类似手段的入侵检测行为,就会被我们自动捕捉到。通过这样的方案,我们就做到了不浪费一个事件的每一分价值。
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Effective STL中文版
[美] Scott Meyers / 潘爱民、陈铭、邹开红 / 电子工业出版社 / 2013-5 / 59.00元
《Effective STL中文版:50条有效使用STL的经验》是EffectiveC++的第3卷,被评为“值得所有C++程序员阅读的C++书籍之一”。《Effective STL中文版:50条有效使用STL的经验》详细讲述了使用STL的50条指导原则,并提供了透彻的分析和深刻的实例,实用性极强,是C++程序员必备的基础书籍。C++的标准模板库(STL)是革命性的,要用好STL并不容易。《Effe......一起来看看 《Effective STL中文版》 这本书的介绍吧!