告警筛选笔记
安全运营的一项工作就是要进行告警监控,随着安全行业的发展,各种安全产品层出不穷,产生的海量数据对于人力的要求越来越高。但大家都知道,攻防对抗本质上是成本的对抗,这种海量的告警虽然有助于我们掌握安全态势,但不利于我们实际研判。这也是一个博弈的关系,那最好的一个情况,就是用最低数量的告警去精准地覆盖最全的安全事件。So,为了这个目的,我们进入以下的学习。
告警筛选
传统方法
- 风险筛选法:关注高风险等级的告警
- 规则筛选法:关注特定防护规则产生的告警
- 目标筛选法:关注关键资产相关的告警
- 失陷筛选法:关注攻击源为内网主机的告警
[1]
前沿技术
- 攻击链筛选法:设法将告警对应到标准攻击步骤,关注构成攻击链的告警
- 威胁情报筛选法:利用云端共享信息,关注恶意IP相关的告警
- 异常检测筛选法:关注罕见类型、罕见端口等在统计分布中孤立/离群的告警
[1]
关于异常检测筛选法,本质上是一种对安全能力依赖很小的方法,只要从正常中找到异常就可以,不管是什么数据。但理想很丰满,现实很骨感。由于业务、网络本身有着很多复杂的、独特的情况,加上真正有价值的高危险告警本身很稀有,导致精准识别高风险非常困难。
从成本上考虑,使用机器学习、数据分析算法去进行异常检测,我们的目的是提高检测效率,但通常来说,有监督的学习方式对于海量的数据来说,也来了大量的特征工程工作量
实战相关
猜想一: 人类专家在分析防护告警时,是在关注某种与攻击相关的、抽象层次很高的概念。告警中的各项具体指标,甚至是攻击方法、攻击对象这样的浅层抽象,其实都只是参考信息。人类专家所关心的可能是攻击行为背后的潜在利益、攻击者的内在目的、攻击者的信心和决心、或者其它更高层次的抽象。
猜想二: 最能够反映这个抽象概念的信息,位于告警载荷或原始网络流量中。某种意义上,这表明现有的防护系统是存在缺陷的——防护系统根据原始流量产生告警的过程中,可能损失了某种关键信息,而这种信息恰恰能够反映告警的实际重要程度。
[1]
方案的完善
1、需要引入数据分析方法:
a)信息处理过程存在高度抽象,难以直接定义处理逻辑,需要通过机器学习来找出其中的关联;
b)考虑告警筛选问题的原始需求,模型输入应为原始告警,输出应为重要性分值/分类。
2、需要将告警载荷或原始流量内容纳入模型输入:
a)但告警载荷通常是二进制流数据,没有统一结构,且目前尚不明确告警载荷中的具体哪些成分能够真正反映告警重要程度;
b)需要一种广泛的特征提取方法,将二进制流数据转换为模型可用的特征输入。
3、需要人类专家的参与:
a)真实环境中的信息安全事件可遇而不可求,真阳性样本非常稀缺;
b)不同漏洞在不同场景下的利用方法千变万化,靶场模拟效果很难保证;
c)需要设计一种方式,让模型能够从人类专家那里得到一些标注、反馈、或者其它类型的关键知识。
[1]
自己的一些思考
一些机遇
在[1]文章中有说到,现阶段的,国内的威胁情报发展还是在一个起步的阶段,从这里面也看到了一些机遇。
- 威胁情报的共享 —— 尚不用说不同公司间,就算是公司的不同部门间也是各自为战,数据割裂的情况很严重
- 不同行业间
- 不同公司间
- 公司的不同部门间
- 部门的不同小组间
- ...
- 威胁情报的生产 —— 自动化一定是未来的方向,但自动化生产对算法的要求,被场景的限制都是很高的
- 私有化生产
- 共享化交换
- 威胁情报的运营 —— 光有数据,没有人消费,那是无源之水
需要做的
安全运营专家的成长史,往往都是从实战起步,对真实的攻击比较了解,甚至是精通,在这个之上去观察、思考防御的缺陷,人力、设备、组织架构等各个方面的难题。
对于一个安全运营专家来说,技术为根,管理为骨,设计为首,落地为脚。对于想成为安全运营专家的同学,包括我这个刚起步的小菜鸟来说,对技术持续的学习,对流程管理的理解与体会,对产品和架构的深入理解,对项目实战的积极参与,是非常重要的。
加油!
References
[1] 【攻击意图评估:序】误报太多?谈海量告警筛选,绿盟科技研究通讯, https://mp.weixin.qq.com/s/izwotbdfcxybZ02gIw-nFg