【攻击意图评估:二】AI不好用?融入专家知识的告警筛选实战

admin 2020年12月1日17:46:34评论48 views字数 3202阅读10分40秒阅读模式
一、 前情提要

前一篇文章中初步探讨了通过评估攻击意图确定告警实际危害程度的可行性,并明确了特征提取方法(输入)和标签结构(输出),已经具备了应用数据分析方法的基础。
那么接下来的问题,就是建模和验证了。
*阅前提示:本文中的大部分结论均为实验观察归纳得出,普遍缺少理论支撑,如果您有什么疑问或见解,不妨在评论区留言交流*
二、为何是监督学习方法

我们在长达数月的实验中尝试了各种各样的分析方法,试图在告警载荷特征向量与攻击意图向量之间找到映射关系。这些方法涵盖了多种全监督、半监督、无监督方法。

2.1无监督方法尝试 

在攻防领域的真实攻击事件可遇而不可求,专家人工标注的成本也很高昂。而无监督方法不需要标注样本,自然成为首选。

由于原始问题是要找出大量样本中的少数特殊样本,我们在多个维度上运行了多种异常检测方法,并将TopN最异常的告警交由人类专家进行研判确认,从而评估模型的准确率。

从结果来看,异常检测方法确实具有一定效果,尤其以行为集合关联图结构信息的异常检测效果良好。但尽管如此,在实战测试中,绝大多数异常检测方法的准确率都很难稳定超过50%~60%。
究其原因,我们很难找到一个特征维度,使得关键攻击导致的告警从中孤立,而业务波动导致的告警却不会孤立
实践看来,很多恶意行为,诸如扫描、蠕虫活动等,其告警数量相当大,已经远远超过了很多合法业务导致的告警量。想要通过纯无监督方法将其区分出来,从原理上是非常困难的。

2.2半监督方法尝试 

至此,无监督方法的准确率陷入了瓶颈。但由于此前人类专家的研判步骤,我们取得了少量标注样本,于是转而尝试通过半监督方法对告警进行评估。
在实验中,我们首先尝试使用各种降维/聚类方法,对输入的原始告警载荷特征向量进行变换,从而提取其中隐含的分布规律。随后,将变换后的特征向量作为输入,利用标注样本的标签值作为输出,训练各种回归模型并进行人工验证。
得益于专家标注,上述半监督方法的准确率相比于纯无监督方法有显著提高(部分实验中接近80%)。尽管如此,模型表现仍然很不稳定。
由于训练样本太少,大多数模型都在过拟合与欠拟合之间反复摇摆,常规正则化方法几乎无效。此外,在专家研判结果的过程中,仍然发现了很多“明显的低级错误”,这表明模型多半未能深入理解告警载荷与攻击意图之间的关联。
我们在这个阶段尝试了许多参数优化方法,但最终也未能达到令人满意的实战效果。

2.3有监督方法尝试 

幸运的是,大量的实验尝试还是得到了回报:
【攻击意图评估:二】AI不好用?融入专家知识的告警筛选实战
上图为某次实验中降维-回归组合方法的交叉验证损失。此次实验中,我们意外地发现:
  • 降维步骤似乎并不总是有益的。除少数模型外,降维步骤甚至可能是有害的。
  • 对于原始告警载荷特征向量直接使用SVR(支持向量回归)的效果压倒性地好于其它组合方法。
对于这样的实验结果,我们推测,由于原始告警中绝大多数告警信息都是低价值的,降维/聚类方法更多地学习了这些低价值数据的分布,却未能有效地区分出真实攻击导致的异常告警和业务波动导致的异常告警。因此,数据经过降维步骤后反而损失了关键信息,导致回归效果不佳。此外,我们也不得不对支持向量机模型在小样本学习问题中的优异性能表示惊叹。
由于SVR模型训练速度极快,且超参数很少(需要调整的基本只有惩罚系数C,以及RBF核参数γ),参数优化过程可以直接运行网格搜索,模型的最终研判准确率很快便稳定达到了80%以上。
三、如何取得标注样本

实际上,上述有监督方法的效果也只能算是差强人意。但进一步实验表明,模型的准确率瓶颈已经从模型本身转移到了特征提取和标注数据量上。
特征提取规则主要来自于专家编写,需要持续优化,并非一朝一夕之功成。而为了取得更多、更准确、更有代表性的标注样本,我们主要采用了以下数据来源:

3.1已知攻击 

原始告警中通常会包含很多已知攻击,主要以各类常见扫描器、各类常见蠕虫活动为主。相关告警只要编写简单的特征即可轻松匹配出来。
由于是已知攻击,这些告警可以直接确定其攻击意图。例如,非进攻性漏洞扫描器应属于高试探性、低利用性;而蠕虫活动通常应属于高试探性、高利用性等。
但由于此类告警数量非常多,直接加入训练集会造成样本失衡,需要进行一些去重和下采样后方可使用。

3.2聚类采样+人工标注 

取得高质量标注样本,最直接的方法莫过于让人类专家提供标注。但如果从所有告警中随机采样,大概率会反复抽取到相同或相似的样本,标注价值很低。
因此,可以尝试进行一些聚类采样,从而获得一些比较有代表性的样本,再进行人工标注。
下图为使用LDA(潜在狄利克雷分配)方法对特征向量进行聚类后的攻击意图向量分布(横轴为试探性,纵轴为利用性),与特征向量的整体分布相比要均匀很多:
【攻击意图评估:二】AI不好用?融入专家知识的告警筛选实战

3.3异常检测采样+人工标注 

在聚类采样中,我们发现绝大多数采样结果都不是真实攻击告警,导致最终标注样本集中正负样本严重不均衡。为了解决这个问题,我们重新翻出了前面提到的纯无监督异常检测方法,将异常检测结果交由人类专家进行标注。
实践表明,虽然异常检测方法本身难以直接用于告警评估,但在生成训练样本集的过程中仍然能够发挥作用。通过对异常检测结果的人工标注,可以大大提高模型区分真实攻击异常和业务波动异常的能力。

3.4上线后持续反馈 

在实战测试中,我们还注意到模型的迁移能力比较低下。这是有监督学习中的常见问题,预训练模型很难满足各种不同网络环境中的需要。
为此,模型需要在上线后持续接受用户反馈,将用户反馈结果不断加入到训练样本集中,从而最终实现一个实际可用的告警评估模型。
我们最终设计并实现了一个威胁推荐系统,并将其融入到企业AISecOps流程中。但本文在此不详细探讨,如有兴趣还请继续关注公众号“绿盟科技研究通讯”。
四、结果验证

我们在一个真实的网络环境中采集了一周,约2300万条告警,并从这些告警的原始载荷中提取特征,随后导入到预先训练完毕的SVR模型中。最终使用的训练数据集共有460条告警,其中有62条属于低试探性、高利用性的关键告警。

之后找出了Top10输出值最接近左上角(攻击意图向量为低试探性、高利用性)的告警,交予人类专家进行研判,结果如下(点击放大):

【攻击意图评估:二】AI不好用?融入专家知识的告警筛选实战

可见其中至少有8条告警可以确认为关键告警。

五、 后记

本系列文章【攻击意图评估】至此基本告一段落。虽然直到最后也未能完全消除低价值告警,但相比于目前的大多数告警筛选方法,其实战效果已有很大提高。
在本系列的下一篇,也是最后一篇文章中,我们会整理总结整个模型构建过程中的关键步骤和一些注意事项,以供想要动手实践的朋友们参考。
如果您发现文中描述有不当之处,还请留言指出。在此致以真诚的感谢~
关于天枢实验室

天枢实验室聚焦安全数据、AI攻防等方面研究,以期在“数据智能”领域获得突破。

内容编辑:天枢实验室 吴复迪  责任编辑: 王星凯
本公众号原创文章仅代表作者观点,不代表绿盟科技立场。所有原创内容版权均属绿盟科技研究通讯。未经授权,严禁任何媒体以及微信公众号复制、转载、摘编或以其他方式使用,转载须注明来自绿盟科技研究通讯并附上本文链接。
关于我们

绿盟科技研究通讯由绿盟科技创新中心负责运营,绿盟科技创新中心是绿盟科技的前沿技术研究部门。包括云安全实验室、安全大数据分析实验室和物联网安全实验室。团队成员由来自清华、北大、哈工大、中科院、北邮等多所重点院校的博士和硕士组成。
绿盟科技创新中心作为“中关村科技园区海淀园博士后工作站分站”的重要培养单位之一,与清华大学进行博士后联合培养,科研成果已涵盖各类国家课题项目、国家专利、国家标准、高水平学术论文、出版专业书籍等。
我们持续探索信息安全领域的前沿学术方向,从实践出发,结合公司资源和先进技术,实现概念级的原型系统,进而交付产品线孵化产品并创造巨大的经济价值。
【攻击意图评估:二】AI不好用?融入专家知识的告警筛选实战
长按上方二维码,即可关注我们

本文始发于微信公众号(绿盟科技研究通讯):【攻击意图评估:二】AI不好用?融入专家知识的告警筛选实战

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2020年12月1日17:46:34
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   【攻击意图评估:二】AI不好用?融入专家知识的告警筛选实战https://cn-sec.com/archives/194254.html

发表评论

匿名网友 填写信息