无论公司企业还是个人消费者,都对零日攻击担心不已,怕保护不好自己的数据。如果都不知道威胁长什么样子,谈何御威胁于家门之外?
一段时间以来,以防御未知威胁为目的的安全工具不断涌现,但零日攻击利用新漏洞或新技术的本质,让此类攻击难以被传统安全软件检测。
以杀毒软件和反恶意软件工具为例,用户不得不持续安装更新的原因,就是新品系或新版本的恶意软件特征码要不断加入到这些防护软件的字典中。没有特定恶意软件的定义,这些软件就对该特定恶意软件视而不见,任其长驱直入。
检测恶意软件的传统方法依赖发现入侵指标(IOC)。这一方法的问题在于,通过IOC检测恶意软件需要之前“看到”过这些IOC。
这基本上就是基于特征码和基于规则的方法,要求软件必须“知道”入侵的“定义”才可以识别入侵。可想而知,既然零日恶意软件是全新品种的恶意软件,其特定IOC自然就不为人所知,这种必须先见过才能检测的方法又怎么能检测得出零日攻击呢?
这些传统应用程序在防御已知威胁上表现良好。但我们又是否能训练机器来发现之前从未观测过的恶意软件呢?换句话说,机器能检测零日攻击吗?
当然可以。
行为分析,也就是我们所谓的“新”方法,就是特别适合检测零日攻击的,与以上传统方法完全不同的另一条路。其中秘诀在于,几乎所有恶意软件,包括零日恶意软件,都会展现出昭示攻击进行时的一些行为。
行为分析的核心是用异常检测来查找这些异于常规软件的行为。所有恶意软件在行为上或多或少都有些异常,因而也就能被分析检测。
依赖行为而非特征码的另一个巨大优势在于,所谓的“无文件恶意软件”也能被检测出来。如其名称所显示的,无文件恶意软件并不将自身保存成主机上的文件,而是寄生内存之中,基于文件特征码的传统扫描和白名单技术几乎不可能检测到。但即便是无文件恶意软件,也要表现出一些能被检测的行为。
我们不妨考虑一下最坏的场景:零日无文件攻击。这种最坏情况下,行为分析检测过程是怎样的呢?
首先,网络钓鱼邮件将一份恶意Word文档投放到你电脑上。然后,恶意软件尝试在被感染主机上获取立足点;微软Word启动PowerShell,注册表键被篡改。接下来,PowerShell与命令与控制(C&C)中心通联,准备好攻击载荷。最后,载荷被下载执行。攻击任务完成。
零日恶意软件的情况下,因为之前没“见过”该恶意软件,你的杀毒软件不能在恶意软件进入到主机时识别出来。加之这还是个无法被扫描的无文件攻击,不会在主机上安装任何新的可执行代码,还只利用主机已有程序作恶。杀软就更加无法发现了。但是,上述入侵过程中它所进行的很多活动都是可以被行为分析工具打上“不正常行为”标签的。
Word启动PowerShell就是个不正常的父-子进程。C&C域名查询会触发异常DNS频率和时刻报警。协议隧道的建立则会表现出该协议的不正常网络负载。诸如此类。这种情况下,即便零日威胁本身是完全未知的,但其导致的行为变化是无法隐藏的。
行为分析真正超酷的地方在于,完全无需事先备好威胁特征信息,即便是全新品种的恶意软件,也能在造成不可挽回的伤害之前就看出其行为所昭示的警示信息。
【本文是51CTO专栏作者“”李少鹏“”的原创文章,转载请通过安全牛(微信公众号id:gooann-sectv)获取授权】