- 无文件恶意软件在内存中运行,并滥用 PowerShell 或 WMI 等合法工具。
- 它可以窃取数据、加密文件或监视计算机,而不会在磁盘上留下明显的痕迹。
- 有效的检测需要监控行为和过程,而不仅仅是文件。
- 防御需要 EDR、网络分段、打补丁,以及减少脚本和宏的使用。
近年来 无文件恶意软件 无文件恶意软件已成为IT和安全团队最头疼的问题之一。我们说的不是那种通过附件下载、可以用杀毒软件清除的典型病毒,而是更加隐蔽、藏匿于系统自身进程中的恶意软件。
这种类型的威胁会利用…… 合法的操作系统工具尤其是在Windows系统下,它可以直接在内存中执行恶意代码。由于它几乎不会在磁盘上留下任何痕迹,因此可以绕过许多传统的杀毒软件,并保持足够长的时间以窃取信息、加密文件或建立后门而不被检测到。
什么是无文件恶意软件?
当我们谈到无文件恶意软件时,我们指的是 不依赖于磁盘上经典可执行文件的恶意代码 它并非像其他程序那样安装,而是依靠系统中已有的组件(脚本、服务、命令解释器等)直接在内存中加载和执行其指令。
从技术角度来看,这种恶意软件通常 注入到正在运行的进程中 或者,它们可以通过将所有内容加载到内存中的命令启动。这意味着,一旦计算机关闭或重启,许多变种程序就会消失,但在此期间,它们有足够的时间造成严重损害。
与基于文件的恶意软件相比,这些威胁是 更轻便、更隐蔽、更难追踪。你不会在磁盘上找到可疑的 .exe 文件,也不一定能找到恶意安装程序:问题在于看似可信的进程内部发生的事情。
这种方法的兴起大约在2017年左右呈爆炸式增长,当时竞选活动开始将无文件技术与 点击器木马、高级广告软件和远程访问工具 (RAT)如今,它们已被整合到各种行动中:从间谍活动和高级持续性威胁 (APT) 到勒索软件和加密货币挖矿。
无文件恶意软件的内部工作原理
为了理解它的工作原理,值得注意的是,大多数普通应用程序都是以……的形式分发的。 写入磁盘后再加载到内存中的文件 当用户运行它时。而无文件恶意软件则跳过了第一步,直接利用操作系统自身的机制在内存中生成。
许多竞选活动都依赖于“自给自足”的理念(生活在陆地之外攻击者 滥用合法行政权力 攻击者不会引入新的二进制文件。在 Windows 系统中,最典型的例子是 PowerShell,但 WMI、mshta、rundll32、VBScript 或 JScript 脚本以及其他受信任的二进制文件(LoLBins)也容易被利用。
一个典型的场景是:用户打开了一个包含恶意内容的 Office 文档或点击了一个钓鱼链接;然后…… 调用 PowerShell 的脚本 或者使用其他工具下载、解密或将下一阶段的代码注入内存。所有这些操作都可以在不于硬盘上创建永久文件的情况下完成。
另一种常见的途径是利用优势 远程代码执行漏洞例如浏览器、插件或服务器应用程序中的缓冲区溢出漏洞。攻击者利用这些漏洞可以直接在易受攻击的进程中执行 shellcode,并由此将其余组件加载到内存中。
有些变种甚至诉诸于 Windows 注册表或计划任务 攻击者会存储脚本或命令,以便在系统启动或用户登录时重新激活攻击。即使注册表中写入了某些内容,主要的恶意逻辑仍然会在内存中继续运行,这使得仅关注文件系统的工具难以检测到它。
感染途径和初始感染
前门通常都很经典: 网络钓鱼邮件、恶意链接和伪造文件 即使底层采用了无文件技术,它们仍然是初始访问领域的佼佼者。诀窍在于,在整个流程中,都竭尽全力最大限度地减少磁盘占用空间。
在许多事件中,它们都被使用。 带有宏的 Microsoft Office 文档 激活后,这些宏会调用 PowerShell 或 WMI 将攻击的下一阶段下载到内存中并执行。即使没有宏,攻击者也可以利用 Word、Excel 等软件中的漏洞。 PDF阅读器 或者脚本引擎本身来实现代码执行。
另一种方法是直接利用 看似无害的可执行文件 用户通过电子邮件接收或从网络下载的文件。该可执行文件可以提取恶意模块,并利用诸如 .NET 中的反射等技术将其加载到内存中,而无需将其作为单独的文件保存到磁盘。
还有一些攻击活动针对暴露在互联网上的网络服务器或应用程序,利用这些漏洞部署攻击。 带有无文件组件的 webshell最近的一个例子是使用 Godzilla 和类似工具,恶意代码通过 HTTP 请求传播,并直接注入到受感染服务器的内存中。
最后,攻击者经常诉诸于 被盗凭证如果他们获得了管理员或特权帐户的用户名和密码,他们可以通过 RDP 或其他渠道登录,并手动启动 PowerShell 脚本、WMI 命令或管理工具,将恶意软件加载到内存中,而不会在系统上留下任何新的可执行文件。
无文件恶意软件使用的特定技术
这些攻击的关键之一是重复使用 本机 Windows 工具 作为其脚本的载体。这导致恶意活动与正常的管理任务混杂在一起,使分析和应对变得更加复杂。
最常见的技术之一是使用…… PowerShell 作为嵌入式代码启动器 可以直接从命令行执行操作。例如,传递一个混淆脚本作为参数,禁用执行策略,隐藏窗口,并将有效载荷直接下载到内存中,所有这些操作都不会留下任何 .ps1 文件或任何可疑的可执行文件。
另一种非常流行的策略是将恶意脚本存储在…… Windows 管理规范 (WMI) 订阅WMI 会不时触发脚本,该脚本可以从内存中执行代码、连接到命令和控制服务器,或启动感染的新阶段。
同样,许多团体也使用 Windows注册表和任务计划程序 作为脚本和命令的避难所。他们不将可执行文件放在启动文件夹中,而是定义启动项或计划任务,运行包含嵌入式或动态代码的 PowerShell、mshta 或 rundll32 脚本。
技术也体现在 .NET 中的反射其中,轻量级可执行文件包含加密或压缩的程序集,这些程序集使用 Reflection.Load 直接加载到内存中,而无需以 .dll 文件的形式写入磁盘。这使得在看似正常的单个进程中部署非常复杂的木马程序成为可能。
无文件攻击能造成什么后果?
尽管名称如此,但无文件攻击的影响范围并不局限于文件。事实上,它可以执行…… 与传统恶意软件相同的功能信息窃取、数据加密、横向移动、间谍活动、加密货币挖矿或安装永久后门。
许多无文件活动的行为类似于 凭证窃贼这包括从敏感进程的内存中捕获密码、会话令牌或身份验证哈希值。这使得提升权限、入侵更多系统以及在无需使用其他二进制文件的情况下维持长时间访问变得更加容易。
其他人则专注于 无文件勒索软件其中部分加密和通信逻辑直接在内存中执行。虽然磁盘组件可能会在某些时候出现,用于操作大量文件,但攻击的初始加载和控制是通过无文件技术完成的,以避免早期被发现。
攻击者还可以安装 rootkit 或高级 RAT 这些工具一旦部署到位,便会利用无文件通道接收命令、在网络中传输数据并更新模块。由于它们已集成到系统进程或关键服务中,因此很难彻底清除。
在经济方面,其影响体现在以下方面: 数据丢失、服务中断、监管罚款和声誉损害由于这些入侵往往数月都未被发现,因此被窃取的信息量和泄露的范围可能非常巨大。
无文件恶意软件攻击的阶段
尽管技术层面有所不同,但无文件攻击的生命周期与任何高级入侵都非常相似。有哪些变化呢? 各阶段所采用的机制 以及它们伪装自己的方式。
在阶段 初始访问攻击者需要一个初始立足点:点击钓鱼链接、打开包含宏的文档、利用存在漏洞的服务器,或者重复使用被盗用的凭据。之后,他们的目标是在目标系统中执行恶意代码。
一旦完成这一步,下一阶段就开始了。 在内存中执行这时就需要用到 PowerShell、WMI、mshta、rundll32、VBScript、JScript 或其他解释器来加载和激活有效载荷,而无需在磁盘上生成永久性可执行文件。代码通常会经过混淆或加密处理,并且仅在 RAM 中进行解密。
然后,追捕开始了。 坚持虽然许多无文件有效载荷会在计算机重启时消失,但老练的攻击者会将 RAM 驻留脚本与注册表项、计划任务或 WMI 订阅结合起来,以便在每次满足特定条件(例如系统启动或用户登录)时重新启动代码。
最后, 最终目标 攻击者的行为包括:数据窃取和泄露、信息加密、部署更多恶意软件、持续间谍活动以及破坏关键系统。所有这些行为都力求保持最低限度的隐蔽性,以避免被及早发现和进行取证分析。
为什么这么难检测出来?
无文件恶意软件最大的问题在于: 它打破了基于文件和签名的传统防御模型。如果没有可疑的可执行文件需要分析,许多杀毒引擎就无法了解内存和合法进程中发生的事情。
磁盘上没有文件意味着 没有需要定期扫描的对象。 攻击者会寻找已知的攻击模式。此外,通过利用操作系统自身签名的二进制文件(例如 PowerShell.exe、wscript.exe 或 rundll32.exe),恶意活动会被伪装在管理员通常信任的名称背后。
此外,许多继承产品都有 对运行过程的可见性有限他们专注于文件系统和网络流量,但几乎不检查内部 API 调用、命令行参数、脚本行为或注册表事件,而这些都可能暴露无文件攻击。
攻击者意识到这些局限性,于是诉诸于…… 混淆、加密和代码碎片化技术例如,他们将恶意脚本分成几个片段,实时组装起来;或者他们将指令隐藏在图像、嵌入式资源或看似无害的字符串中。
在系统很少重启的环境中(例如关键服务器、生产终端等),内存驻留恶意软件可能会…… 持续数周或数月。 在不被察觉的情况下,尤其是在谨慎行事并尽量减少车流量或引人注目的举动时。
传统防御的局限性
许多供应商对这种威胁的最初反应是尝试 限制或直接阻止 PowerShell 或 Office 宏等工具。虽然它可以减少一些风险因素,但对于大多数组织而言,这并不是一个现实或完整的解决方案。
PowerShell 已成为 Windows 系统管理的关键组件任务自动化、软件部署和服务器管理。完全阻止它会导致IT工作流程瘫痪,并迫使大量内部流程重做。
此外,从攻击者的角度来看,有多种方法可以…… 绕过简单的阻止策略可以使用 rundll32 从库 (dll) 加载 PowerShell 引擎,使用 PS2EXE 等工具将脚本转换为可执行文件,使用修改后的 PowerShell.exe 副本,甚至可以将 PowerShell 脚本嵌入 PNG 图像中,并使用混淆的命令行运行它们。
Office宏也会出现类似的情况: 许多公司都依赖它们。 用于自动化报告、计算和业务流程。全局禁用这些功能可能会导致内部应用程序崩溃,而仅仅依赖 VBA 代码的静态分析通常会导致难以控制的误报率和漏报率。
此外,一些基于以下方法 基于云的检测即服务 它们需要持续连接,而且有时延迟过长,无法阻止恶意软件的初始执行。如果拦截决定在几秒钟或几分钟后才做出,损害可能已经造成。
关注点转移:从文件到行为
由于文件不再是主要元素,现代防御解决方案的重点在于 监控进程的行为 而不仅仅是检查文件内容。这样做的目的是,尽管恶意软件变种成千上万,但恶意活动的模式却相对单一。
这种方法依赖于引擎 行为分析和机器学习 持续监控每个进程的操作:它启动哪些命令,它访问哪些系统资源,它如何与外部世界通信,以及它试图向环境中引入哪些更改。
例如,如果出现以下情况,则 Office 流程可能会被标记为可疑: 执行混淆的 PowerShell 命令 通过参数禁用安全策略并从可疑域下载代码。或者,某个进程会在没有任何明显原因的情况下突然访问数百个敏感文件或修改关键注册表项。
最新一代的EDR系统和XDR平台收集信息 端点、服务器和网络的详细遥测数据并且能够重现事件的起源、涉及的流程以及受影响机器发生的变化等完整故事(有时称为故事线)。
一个优秀的行为引擎不仅能够检测威胁,而且还能 减轻或自动逆转恶意行为:终止相关进程,隔离计算机,恢复加密文件,撤销注册表更改,并切断与命令和控制域的通信。
Windows 中的关键事件技术和来源
要分析 Windows 中的无文件威胁,利用以下方法尤其有用: 原生操作系统遥测机制这些网站已经存在,并提供了许多关于幕后运作的信息。
一方面是 Windows 事件跟踪 (ETW)ETW 是一种框架,它允许记录与进程执行、API 调用、内存访问和其他内部系统方面相关的极其详细的事件。许多 EDR 解决方案都依赖 ETW 来实时检测异常行为。
另一个关键部分是 反恶意软件扫描接口(AMSI)AMSI 是微软设计的一种 API,它允许安全引擎在脚本和动态内容运行之前对其进行检查,即使这些内容经过混淆处理。AMSI 与 PowerShell、VBScript、JScript 和其他脚本语言配合使用尤其有用。
此外,现代发动机还会定期进行分析。 注册表、任务计划程序、WMI 订阅或脚本执行策略等敏感区域这些区域的可疑变化通常表明无文件攻击已经建立了持久性。
所有这些都辅以启发式方法,这些方法不仅考虑当前流程,还考虑…… 执行上下文:父进程来自哪里,之前和之后观察到了哪些网络活动,是否存在奇怪的故障、异常阻塞或其他信号,这些信号加在一起,会使人产生怀疑。
实用检测和预防策略
实际上,保护自己免受这些威胁需要结合使用 技术、流程和培训仅仅安装杀毒软件然后置之不理是不够的;需要采取分层策略,以适应无文件恶意软件的真实行为。
从技术层面来说,部署至关重要。 EDR 或 XDR 解决方案 这些工具必须具备行为分析能力和流程级可视性,能够实时记录和关联活动,阻止异常行为,并向安全团队提供清晰的取证信息。
也很方便 限制使用 PowerShell、WMI 和其他解释器 严格来说,应该采取必要的措施,例如应用访问控制列表、脚本签名(代码签名)和执行策略,以限制哪些代码可以运行以及拥有哪些权限。
对用户而言,培训仍然至关重要:必须加强…… 提高对网络钓鱼、可疑链接和意外文件的防范意识对于能够接触敏感信息或拥有高权限的人员来说,这一点尤为重要。减少误操作次数可以显著缩小攻击面。
最后,我们不能忽视…… 补丁和软件更新周期许多无文件攻击链都是从利用已知漏洞开始的,而这些漏洞通常已有补丁程序可以修复。保持浏览器、插件、企业应用程序和操作系统的更新,可以有效堵住攻击者可利用的漏洞。
托管服务和威胁搜寻
在中大型组织中,事件数量庞大,内部团队很难面面俱到。这就是它们越来越受欢迎的原因。 监控和管理响应服务 (MDR/EMDR)和外部安全运营中心(SOC)。
这些服务将先进技术与 分析团队全天候监控 他们会分析客户端环境,关联那些原本会被忽略的微弱信号。其目的是在造成损害之前检测到无文件恶意软件的典型行为。
许多安全运营中心 (SOC) 依赖于诸如以下框架: 斜接 对敌方的战术、技术和程序 (TTP) 进行分类,并制定针对内存执行、LoLBins 滥用、恶意 WMI 或隐蔽数据泄露模式的特定规则。
除了持续监测外,这些服务通常还包括 法证分析、事件响应和咨询 改进安全架构,弥补反复出现的漏洞,加强对终端和服务器的控制。
对于许多公司而言,将部分职能外包是应对此类复杂威胁的最可行方法,因为并非每个人都能负担得起专门负责搜寻高级恶意软件的内部团队。
事实上,无文件恶意软件已经彻底改变了我们对终端安全的理解: 文件不再是唯一的关键指标只有通过深入的洞察力、行为分析、良好的管理实践和广泛的网络安全文化,才能在日常工作中有效抵御网络攻击。

