微软开发分析引擎Freta,扫描内存快照揪出VM恶意程序

微软研究院开发了一个云计算安全分析引擎Freta,可扫描Linux系统的内存快照,找出传感器和操作系统遭破坏的证据,自动对云计算Linux虚拟机进行指纹识别并审核内存快照,以发现新形态的Rootkit和高端的恶意程序。现在Freta分析引擎以门户网站的形式,公开雏形给大众使用。

Freta具备处理大规模虚拟机的能力,能以低成本的方式,同时对超过1万台Azure虚拟机,进行自动内存鉴识审核,微软提到,Freta使数字鉴识从原属高价的顾问咨询服务,转变为内置在云计算平台的自动化服务。

以快照为基础的内存鉴识领域已经发展超过十年,但微软提到,目前尚无可用于商业云计算,在无侵入式捕捉机制以及事先鉴识准备的情况下,对数千台虚拟机进行全内存审核的功能,而Freta项目的目标则是要让虚拟机鉴识自动化与普及化。

虚拟机鉴识普及化可以将云计算恶意软件的开发成本,提高至理论的最高值,微软表示,由于在信息安全的领域,是以证据来驱动防御方法,但这造成了幸存者偏误现象,当攻击者摸透安全侦测器模型,并且设计出避开触发侦测器的方法时,系统便不会发出攻击警报,而人们也会因为没有攻击报告,误以为系统是安全的。另外,当攻击者直接针对安全侦测器、安全代理和特权操作系统组件发动攻击,就可能关闭攻击警报系统,因此也不会留下任何攻击的痕迹。

Freta项目设计的概念是以幸存者偏误为核心,极大程度提高攻击者逃避侦测器的成本,并且在技术上,尽可能让攻击者无法逃避侦测。微软提到,事实上的确有办法让攻击者无法触碰安全侦测器,就像是零售商店将监视录像机设置在抢匪触碰不到的地方一样,但是之所以没有在云计算中应用,为的是要能够向后兼容,无法像是移动设备经过重新设计,分离计算平面和安全平面。

在云计算,计算平面和安全平面分离的情况,主要出现在虚拟机管理程序上,租户工作负载能以虚拟机管理程序屏障,和供应者工作负载分离,但微软提到,现有研究证明,系统管理程序屏障可能不够强健,攻击者仍可穿透屏障并且规避安全侦测器,他们认为,要结束与恶意程序的军备竞赛,以渐进式的方法改变端点技术是不够的,因为只要攻击者和防御者共享一个微基础架构,无论防御者以什么方式防御,攻击者总是可以破解。

微软提到,要对所有用户提供即时鉴识服务是一件困难的事,挑战包括生成攻击者无法取用的鉴识成像(Forensic Imaging),由于不少现存的鉴识方法都需要执行像是复制KASLR密钥等明确的指令,而这就足以让恶意软件捕捉到相关的事件,使恶意程序能抹除自己的足迹。

而Freta支持4,000多种Linux核心版本,可在没有密钥或是上下文的情况,对经安全机制扰乱的内存进行解码。由于支持Linux核心较为困难,因此微软先实例了Linux版本,Windows将会在后续更新支持。

Freta还必需要能以云计算规模执行,微软设置分析引擎的能力,要能在短时间且低成本的情况下,最少可对10万台机器进行程序化审核,也就是说,Freta的基础架构设计采用批处理的概念,而且Freta还需要能支持具有100 GB以上内存的高性能虚拟机。

而考虑到Freta可能本身成为攻击目标,为了避免攻击者利用内存漏洞来攻击Freta,微软以内存安全程序语言Rust,在不使用任何现有软件的情况下,从头打造整个项目,微软提到,Freta是一个高性能的分析引擎,可以存储任何大小的内存成像,并且内置内存安全性。

目前这个版本的Freta分析引擎,以整个Linux系统的挥发性内存快照作为输入,并且能够截取系统对象枚举,Freta能够自动识别部分核心挂钩(Kernel Hooking),可检测新形态的Rootkit,而且Freta支持各类型的快照,包括使用Hyper-V检查点生成的VMRS文件,或是转换VMWare快照产生CORE文件等。当快照经过Freta分析之后,用户可以使用REST和Python API取用报告资料。

Freta的第二个重要组件是Azure侦测器,可让用户在不中断执行的同时,即时搬迁挥发性内存资料到脱机分析环境,微软提到,这个传感器与Freta分析引擎结合,可以对上万虚拟机进行低成本的内存鉴识审核。