无文件攻击(fileless attack)的有效性有目共睹,甚至大有成为网络安全工作短板之势。

著名UTM和防火墙厂商WatchGuard的近期发布了2020年Q4恶意软件和网络攻击研究,数据显示,2020年无文件恶意软件所占比重相比2019年增长了近9倍(888%)。报告认为,因为无文件恶意软件可以绕过传统的端点保护,不需要目标与攻击者有过多交互,并在攻击脚本被移除后还能维持恶意代码的运行,而受到攻击者青睐,并在网络攻击中广泛使用。

虽然有一定的营销考量,CrowdStrike在2020年年末发布的无文件攻击白皮书,《谁需要恶意软件?对手如何使用无文件攻击来规避你的安全措施》,同样值得一提。据CrowdStrike统计,每10次成功攻击中就有8次使用了无文件攻击技术。基于特征码的反病毒、机器学习、白名单(滥用)、失陷指标(IoC)、沙箱这五个安全技术会对无文件攻击表现不佳。

从攻击者角度,这说明了无文件攻击的好用、有效;从安全工作角度,这说明在当前在全球部署的安全工具和采用的技术存在短板,安全工作存在盲区。

未知攻,焉知防。所以此篇文章,我们首先要明确无文件攻击常见的攻击方式,再介绍对应的防护思路,最后介绍奇安信虚拟化安全管理系统的防护实践。

内存中的隐形攻击

不夸张的说,无文件攻击可以躲避当前大多数安全工具的检测,并给事后的取证工作带来很大困难。运行在内存中的无文件攻击,永远不会触及硬盘,这无疑给基于恶意文件样本分析、训练的安全技术,带来巨大挑战。

作为低可观察特征的攻击,PowerShell是较常见被滥用的合法工具。由命令行 shell 和相关脚本语言组成的PowerShell,为攻击者提供了对 Windows 中几乎所有内容的访问权限。虽然攻击无需将文件下载到本地并执行,但攻击者仍需访问环境。

常见的攻击方式包括:

  • 漏洞利用(Office、SMB协议、Web漏洞等)
  • 系统工具(如PowerShell/Shell、cscript、mshta等)
  • 注册表开机启动/计划任务(恶意代码维持)

在实际攻击中,这三种主要攻击方式往往会以“组合拳”的形式出现。如Poweliks就采用了注册表、PowerShell、进程注入等多种技术手段来保证对主机隐蔽攻击的成功。

对于无文件恶意软件的分类,微软提出可以以无文件攻击的进入点和失陷主体两个维度来进行。按照进入点的通路和形式,可以分为“无文件活动、间接文件活动以及需要文件来操作”三类。按照失陷主体,可以分为漏洞利用(文件、网络)、硬件(设备、CPU、BIOS、USB、Hypervisor)、执行与注入(文件、宏、脚本、磁盘-boot)三类。详情见下图:

无文件恶意软件分类示意图

基于人工智能的行为分析并不是万能的

AI-based在近几年成为安全产品的热门标签。但面对无文件攻击,人工智能显得有些吃力。没有基于文件的特征,运行在内容中,经常滥用受信任进程来掩盖恶意行为,都是其难以做有效检测发现的重要原因。这也是其带给攻击方的天然优势所在。更不要说许多号称基于人工智能行为分析的安全产品,同时还需要大量专家的人工支撑。这无疑会延长攻击发现和定位的时间窗。

无文件攻击的发现和防护不能依赖单一手段,我们可以根据不同攻击方式,在最佳攻击阶段匹配相应防护策略和能力:

  • 漏洞利用:做好漏洞和补丁管理,以及入侵防护的策略配置,做到事前预防。
  • 注册表/计划任务:Windows上自启动的注册表,Tasks目录下的计划任务,Linux上crontab的定时任务目录,都是已知无文件攻击的重灾区,需要对上述路径进行针对性的实时防护和定期扫描。
  • 系统工具:合法工具的滥用同样是重灾区。可以在系统工具的启动和执行阶段,进行针对性防护。如不允许未知软件远程注入系统工具;系统工具启动时,需要对命令行参数、加载的DLL等进行扫描。此外,还可以结合系统工具的行为,如是否访问了挖矿地址,是否有由winword.exe启动等有恶意倾向的行为。即使考虑对业务连续性影响,至少需要及时告警,明确有无文件攻击风险。

奇安信虚拟化安全的无文件攻击防护实践

奇安信虚拟化安全管理系统(以下简称:虚拟化安全)是面向云计算或虚拟化环境的一站式安全产品,提供Hypervisor防护、云主机系统加固、恶意软件防护、应用程序管控等功能。无文件攻击作为当下恶意攻击的“网红”,自然是虚拟化安全的重点关注对象。

针对不同攻击方式的无文件攻击防护,虚拟化安全提供一系列有机组合的安全能力:

漏洞利用的无文件攻击防护:

  • 通过漏扫、防暴力破解、入侵防护、基线配置等安全能力模块减少远程利用漏洞进行无文件攻击的可能。

注册表/计划任务的无文件攻击防护:

  • 实时防护与定时(内存)扫描相结合。
  • 基于自研针对无文件恶意软件及其行为的特征库,直接对内存进行扫描,在内核层实现阻断并告警。
  • 对文件内核以及注册表过滤,实现对定时任务和开机启动项创建的有效拦截。

滥用系统工具的无文件攻击防护:

  • 通过内核驱动获取系统工具进程的路径、命令行参数、加载的dll与so文件等信息,辅助决策,判断是否为合法工具的滥用。
  • 针对性保护系统关键应用,如自动删除应用打开时包含的PROCESS_VM_WRITE权限,实现对恶意注入的阻断。
  • 集成奇安信威胁情报,针对挖矿和外联C2在网络层实现阻断。

未来,奇安信虚拟化安全会继续关注无文件攻击的发展趋势,提供更有效的防护手段。

声明:本文来自安全内参,版权归作者所有。文章内容仅代表作者独立观点,不代表安全内参立场,转载目的在于传递更多信息。如有侵权,请联系 anquanneican@163.com。