无文件威胁

什么是无文件威胁? 术语“无文件”表明威胁不会出现在文件中,例如仅存在于计算机内存中的后门。 但是,对于无文件恶意软件,没有一个定义。 该术语被广泛使用,有时还用于描述依赖文件操作的恶意软件系列。

攻击涉及执行、持久性或信息窃取等功能的 多个阶段 。 攻击链的某些部分可能是无文件的,而另一些部分可能以某种形式涉及文件系统。

为清楚起见,无文件威胁分为不同的类别。

无文件恶意软件的综合图示。
图 1. 无文件恶意软件的综合图示

无文件威胁可以按入口点进行分类,这指示无文件恶意软件在计算机上的到达方式。 它们可以通过攻击、被入侵的硬件或定期执行应用程序和脚本来到达。

接下来,列出入口点的格式。 例如,攻击可以基于文件或网络数据,PCI 外围设备是一种硬件向量,脚本和可执行文件是执行矢量的子类别。

最后,对感染宿主进行分类。 例如,Flash 应用程序可能包含各种威胁,例如攻击、简单的可执行文件和来自硬件设备的恶意固件。

分类有助于对各种无文件威胁进行分类和分类。 有些更危险,但也更难实施,而另一些则更常用,尽管 (或正是因为) 不是很先进。

从此分类中,可以收集三种main类型的无文件威胁,具体取决于它们可能在受感染的计算机上留下多少指纹。

类型 I:未执行文件活动

完全无文件的恶意软件可以视为永远不需要在磁盘上写入文件的恶意软件。 这种恶意软件首先会如何感染计算机? 例如,目标计算机接收利用 EternalBlue 漏洞的恶意网络数据包。 该漏洞允许安装 DoublePulsar 后门,该后门最终仅驻留在内核内存中。 在这种情况下,没有文件或文件上写入的任何数据。

受攻击的设备还可能隐藏在设备固件 ((例如 BIOS) 、USB 外围设备 ((如 BadUSB 攻击) )或网络卡的固件中。 所有这些示例都不需要磁盘上的文件即可运行,理论上只能存在于内存中。 恶意代码会在重新启动、磁盘重新格式化和重新安装 OS 后幸存下来。

此类感染可能特别难以检测,因为大多数防病毒产品无法检查固件。 如果产品确实能够检查和检测恶意固件,则在此级别修复威胁方面仍存在重大挑战。 这种类型的无文件恶意软件需要高度复杂,并且通常依赖于特定的硬件或软件配置。 它不是可以轻松可靠地利用的攻击途径。 虽然此类威胁很危险,但这种威胁并不常见,并且对于大多数攻击来说并不实用。

类型 II:间接文件活动

恶意软件还可以通过其他方法在计算机上实现无文件状态,而无需大量的工程工作。 这种类型的无文件恶意软件不会直接在文件系统上写入文件,但它们最终可能会间接使用文件。 例如,使用 Poshspy 后门, 攻击者在 WMI 存储库中安装了恶意 PowerShell 命令,并配置了 WMI 筛选器以定期运行命令。

可以通过命令行执行此类安装,而无需文件上已有后门。 恶意软件可以安装并理论上运行,而无需接触文件系统。 但是,WMI 存储库存储在由 CIM 对象管理器管理的中央存储区域中的物理文件上,并且通常包含合法数据。 尽管感染链在技术上确实使用物理文件,但它也被视为无文件攻击,因为 WMI 存储库是一个无法检测和删除的多用途数据容器。

类型 III:操作所需的文件

某些恶意软件可以具有某种无文件持久性,但如果不使用文件进行操作,则不能。 此方案的一个示例是 Kovter,它为随机文件扩展名在注册表中创建 shell open 谓词处理程序。 打开具有此类扩展名的文件将导致通过合法工具 mshta.exe 执行脚本。

Kovter 的注册表项的图像。
图 2. Kovter 的注册表项

调用打开谓词时,将启动注册表中的关联命令,从而执行小型脚本。 此脚本从其他注册表项读取数据并执行数据,进而导致加载最终有效负载。 但是,若要首先触发打开的谓词,Kovter 必须删除扩展名与上述示例中的谓词 (相同的扩展名的文件,扩展名为 .bbf5590fd) 。 它还必须设置配置为在计算机启动时打开此类文件的自动运行密钥。

Kovter 被视为无文件威胁,因为文件系统没有实际用途。 具有随机扩展名的文件包含的垃圾数据在验证是否存在威胁时不可用。 存储注册表的文件是存在恶意内容时无法检测和删除的容器。

按感染主机对无文件威胁进行分类

在描述了广泛的类别后,我们现在可以深入了解详细信息,并提供感染宿主的细分。 此综合分类涵盖通常称为无文件恶意软件的全景。 它推动我们努力研究和开发新的保护功能,这些功能可以消除各类攻击,并确保恶意软件不会在军备竞赛中占上一分。

利用

基于文件的 (类型 III:可执行文件、Flash、Java、文档) :初始文件可能会利用操作系统、浏览器、Java 引擎、Flash 引擎等来执行 shellcode 并在内存中提供有效负载。 当有效负载是无文件时,初始入口向量是一个文件。

基于网络 (类型 I) :利用目标计算机中的漏洞的网络通信可以在应用程序或内核的上下文中实现代码执行。 例如,WannaCry 利用 SMB 协议中以前修复的漏洞在内核内存中提供后门。

硬件

基于设备的 (类型 I:网络卡、硬盘) :硬盘和网卡等设备需要芯片集和专用软件才能正常运行。 驻留并运行在设备芯片集中的软件称为固件。 虽然任务复杂,但固件可能受到恶意软件的感染。

基于 CPU 的 (类型 I) :新式 CPU 很复杂,可能包含运行固件以进行管理的子系统。 此类固件可能容易受到劫持,并允许执行从 CPU 内部运行的恶意代码。 2017 年 12 月,两位研究人员报告了一个漏洞,该漏洞可能允许攻击者在 Intel 的任何现代 CPU 中 (ME) 管理引擎 内执行代码。 同时,据观察,攻击者组织 PLATINUM 能够使用 Intel 的 主动管理技术 (AMT) 来执行 不可见的网络通信,绕过已安装的操作系统。 ME 和 AMT 本质上是自治的微型计算机,它们位于 CPU 内部,并且以非常低的级别运行。 由于这些技术旨在提供远程可管理性,因此它们可以直接访问硬件,独立于操作系统,并且即使计算机已关闭,也可以运行。

除了在固件级别易受攻击外,还可以使用直接插入硬件电路中的后门来制造 CPU。 这种攻击已经过研究,并证明过去是可能的。 据报道,某些 x86 处理器型号包含类似于 RISC 的辅助嵌入式 CPU 核心,该内核可以 有效地提供后门, 常规应用程序可以通过该后门获得特权执行。

基于 USB 的 (类型 I) :各种 USB 设备都可以使用能够以恶意方式与操作系统交互的恶意固件重新编程。 例如,BadUSB 技术允许重新编程的 U 盘充当键盘,通过击键将命令发送到计算机,或充当可以随时重定向流量的网络卡。

基于 BIOS 的 (类型 I) :BIOS 是在芯片集内运行的固件。 它在计算机开机时执行,初始化硬件,然后将控制权转移到启动扇区。 BIOS 是一个重要的组件,它在低级别运行,并在启动扇区之前执行。 可以使用恶意代码重新编程 BIOS 固件,就像过去 使用 Mebromi rootkit 一样。

基于虚拟机监控程序 (类型 I) :新式 CPU 提供硬件虚拟机监控程序支持,使操作系统能够创建可靠的虚拟机。 虚拟机在受限的模拟环境中运行,理论上并不知道模拟。 接管计算机的恶意软件可能会实现一个小型虚拟机监控程序,以将自身隐藏在正在运行的操作系统领域之外。 这种类型的恶意软件在过去已被理论化,并最终 观察到真正的虚拟机监控程序 rootkit,尽管目前已知很少。

执行和注入

基于文件 (类型 III:可执行文件、DLL、LNK 文件、计划任务) :这是标准执行向量。 简单的可执行文件可以作为第一阶段恶意软件启动,以在内存中运行额外的有效负载,或注入到其他合法的运行进程中。

基于宏 的 (类型 III:Office 文档) : VBA 语言 是一种灵活而强大的工具,旨在自动执行编辑任务并向文档添加动态功能。 因此,攻击者可能会滥用它来执行恶意操作,例如解码、运行或注入可执行有效负载,甚至实现整个勒索软件,例如 qkG 的情况。 宏在 Office 进程的上下文中执行, (例如,Winword.exe) 以脚本语言实现。 防病毒无法检查任何二进制可执行文件。 虽然 Office 应用需要用户的明确同意才能从文档中执行宏,但攻击者使用社交工程技术来诱使用户允许宏执行。

基于脚本 (类型 II:文件、服务、注册表、WMI 存储库、shell) :默认情况下,Windows 平台上提供 JavaScript、VBScript 和 PowerShell 脚本语言。 脚本与宏具有相同的优点,它们是文本文件, (不是) 的二进制可执行文件,在解释器 (的上下文中运行,如 wscript.exe、powershell.exe) ,这是一个干净而合法的组件。 脚本用途广泛,可通过双击) 文件 (运行脚本,或者直接在解释器的命令行上执行脚本。 在命令行上运行允许恶意软件将恶意脚本编码为 自动运行注册表项内的自动 启动服务,作为 WMI 存储库中的 WMI 事件订阅 。 此外,已获得受感染计算机的访问权的攻击者可能会在命令提示符上输入脚本。

基于磁盘 (类型 II:启动记录) :启动记录是磁盘或卷的第一个扇区,包含启动操作系统启动过程所需的可执行代码。 Petya 等威胁可以通过恶意代码覆盖启动记录来感染启动记录。 启动计算机后,恶意软件会立即获得控制。 启动记录位于文件系统外部,但可由操作系统访问。 新式防病毒产品能够扫描和还原它。

击败无文件恶意软件

在 Microsoft,我们积极监视安全环境,以确定新的威胁趋势,并开发解决方案来缓解各种威胁。 我们检测可有效应对各种威胁的持久保护。 通过反恶意软件扫描接口 (AMSI) 、行为监视、内存扫描和启动扇区保护,Microsoft Defender for Endpoint可以检查无文件威胁,即使进行大量模糊处理。 借助云中的机器学习技术,我们可以扩展这些保护,以防范新出现的威胁。

若要了解详细信息,请阅读: 看不见但看不见:使用行为监视、AMSI 和下一代 AV 击败无文件恶意软件

其他资源和信息

了解如何跨Microsoft 365 E5部署威胁防护功能