工程化实战思路
本篇整理了在安全数据分析方向的工程化实战思路。
思路一:云环境自动化入侵溯源实战
整理自阿里云安全工程师 徐越师傅的KCon分享[1]。
如何评估
响应速度是企业安全能力的核心体现
简单来看,安全数据分析的落地,时常遇到理想很丰满,现实很骨感的情况。从企业安全角度出发,能提升响应速度是关键。
现状分析
企业安全的中心,SoC的安全运营过程中遇到的问题有:
- 数据缺失
- 该有的没有,不该有的一大堆
- 系统孤立
- 告警、流量、情报、主机各个系统都有自己独立的一套,并且输出的数据都不相同
- 人工检索
- 还是依靠人工来排查上述那些系统的数据
需求
- 多途径数据收集 —— 从多个系统和设备中获取数据
- 异构数据整合 —— 不一样格式的数据能放一块
- 自动化的知识表达 —— 人看得懂,人看得了,人能偷懒点
Demo
从Demo中可以看出来,这个系统还是属于初级阶段,节点属性不是很丰富,主要是做了哈希摘要和类型识别。从左侧可以看出,其整合了多个系统数据源,并在这个云环境下,实现了一个挖矿程序的路径溯源。
在数据层面如何实现?猜测可能还是从挖矿程序的算法特征结合源IP进行的关联、匹配得出。
计算流程
从图中可以看出,数据源来自:情报、主机日志、云服务、漏洞检测、蜜罐。
流计算引擎采用了Blink(阿里魔改的Flink)。
然后进行了大数据处理常用的构成、便利、裁剪等过程,比较模糊。图算法的关联?
最后是输出一个可交互的溯源后攻击路径。
核心概念
行为过程
在这个思路里,以黑客行为为基准,然后使用实体表述,以描述入侵的完整过程。
被动分析
主要指基于攻击后的日志信息,进行攻击路径上每个环节下数据的关联。简单讲,就是每个攻击环节下留下来的数据,找到之间的关系,能关联起来。这个阶段主要是基于规则进行的自动化处理。
主动推理
主动关系推理,需要专家经验加入,对攻击路径进行的一系列关系探索。
- 相似字符串匹配
- 全局统计基线
- 巨雷重合检验
断链修复
有经验的同学看到上面的路径方案,就会想到,依靠算法和部分专家经验,这种攻击路径的准确率比较感人。而且容易存在断链的情况。一下是徐越师傅这边给出的关联规则挖掘方案。
案例
以下是一个watchbog 蠕虫回溯案例
辅助
宏观入侵原因统计
从宏观角度统计全网(按月)的各种入侵原因,从各个威胁类型角度。e.g. 挖矿程序植入方式、WEBSHELL植入方式。
自动化0day捕获
需要依赖强大的数据源支撑以及...运气。
思路二:基于事件调查的分析能力提升
在实际的情况下,各种安全设备、系统会产生海量的数据。对于企业来说,很重要的一件事情,就是要从这些疑似的安全告警中,根据一些模型和算法提取有价值的安全事件。
众所周知,传统的安全设备,往往都是以特征检查为主,模型检查的能力受限(短时间窗口),也比较弱。那么,在这个基础之上,我们需要做的一件事,就可以是写好确定的分析模型,这个分析模型需要结合安全方面的专家经验,也需要结合数据分析、机器学习学习技术(比如异常检测)。
模型可以帮助我们以一个效率更高的方式对告警数据做一个初步的判断,把人工经验转化为了机器脚本去执行。但模型偏向于的单个能力的检查。比如模型能检查钓鱼邮件行为,但却不能梳理出一个APT事件。因为对于模型,我们的定义是让其做好特征检查做不到的事情,但没有要求它能到一个完整事件的梳理。
此时我们就可以引入分析能力这个概念。分析能力所涵盖的事情,是基于事件而设计的,而不是单个能力的检查。在基于数据驱动的应急响应过程中,分析师所需要做的,简单来说就是从数据(告警、流量等)中找到一个真实的入侵事件,而事件包含的内容则可以参考3W1H(Who When What How)。而这个找3W1H的过程,我们在经过特征、模型这两个阶段后,已经能对单方面攻击行为有一个初步的筛选了,比如某某IP在某某时间,对某某资产进行了XXX攻击。也就是,经过了特征和模型两个阶段,我们对3W初步进行了解决。但还剩下1H,攻击者是如何做到这个攻击的,并且要对3W做更精准的研判。
此时,我们的分析平台就可以来亮相了。分析平台单从技术上来说,它应该具备上面我们所受的分析能力,并且这是它的核心。同时,作为一个与用户直接接触的平台,它还承担着业务能力、管理能力等其他产品方向的功能。
那么,分析平台的分析能力如何体现呢?
我们先来看一个人类分析师需要做哪些事情。首先,他需要对入侵事件进行调查,这是首要的。入侵调查后,我们可以得出一个围绕3W1H的报告。然后,他需要 基于这个事件做一个风险点识别(从更大的角度,哪里出的问题体现了系统的哪个方面有问题),做一个风险处置(如何让这个风险点不再造成危害)。
回到我们刚刚到问题,分析平台的分析能力,应该如何区别于特征和模型呢?对应上面对人类分析师所做之事的简单概括,我们可以知道,分析能力这项核心能力的体现,是要在一个更大的层面,即不再局限于某个事件,而是把多个事件整合起来,产出Knowledge。这个Knowledge可以由很多形式展现,以下列举几个我个人认为的:
- 同源分析
- 事件归并
- 攻击评估
- 攻击者画像
- 攻击者能力
- 攻击者行为
- TTPs(技战术组合)提炼
- 威胁趋势、预测
- 威胁狩猎
所以,我们基于事件调查所进行的分析能力提升,总体来说是这三个阶段:特征——模型——分析。目前,特征阶段已经比较成熟,但覆盖率和精准率还有待提升。模型阶段,目前比较好的方案是结合安全方面专家能力和机器学习算法,在某个攻击行为上,检测的覆盖率和精准率已经挺不错了,但因为攻击、漏洞的千变万化,以及各种组合和绕过,网络环境和生产环境的错综复杂,使得复杂情况下的检测情况不是很完美。而分析阶段,目前不管是商业化的还是开源的,还是学术届的研究,只能说是一个对分析师的辅助,大多是工具性质,只能进行半自动化的利用。
未来就在眼前,把握机会。
References
[1] 云环境自动化入侵溯源实战》,KCon 2019, [slides]