我们一直都知道的恶意软件攻击是以一种形式写入磁盘的文件, 需要执行以执行其恶意范围. 另一方面, 无文件恶意软件仅用于驻留内存, 理想情况下在执行后不留痕迹. 恶意有效载荷动态地存在于 RAM 中, 这意味着没有任何东西直接写入 HD.
恶意软件攻击是以一种形式写入磁盘的文件
攻击者的目的是使感染后的取证变得困难. 此外, 这种形式的攻击使得防病毒几乎不可能触发检测, 在特定情况下, 甚至检索要分析的样本的唯一方法是捕获实时发生的攻击. 这是处理无文件恶意软件时面临的最大挑战之一.
现在, 无文件攻击已经不是新事件了, 早在 15 年前的 Lehigh 病毒, 它在其堆栈空间中 " 填充主机文件代码中未使用的部分, 导致主机大小没有增加. 如果病毒在内存中插入 DOS 磁盘, 可以感染另一个 COMMAND.COM 文件. 然而随着时间的推移, 用于实施这些攻击的技术和工具变得越来越先进, 也使得无文件恶意软件近年来受到安全专家的广泛关注.
现阶段, 无文件恶意软件诸如 Poweliks 之类的恶意软件在注册表中使用 "NULL"Runkey(使内容不可见), 运行 JavaScript 并使用 PowerShell 运行隐藏在注册表中其他位置的编码脚本. 本质上, 有效负载存储在注册表中, 仅在运行时检索, 解码和执行; 现代漏洞利用工具包, 例如 Magnitude EK, 可以流式传输有效负载, 并在不首先将其丢弃在磁盘上的情况下执行; DNSMessenger 等恶意软件 从 C2 服务器检索恶意 PowerShell 脚本; SamSam 将加密的恶意软件负载写入磁盘, 并且只有在攻击者手动运行脚本并提供解密密码时才会解密等仍然在运行.
在网络中记录基于文件的恶意软件可为 SOC 团队提供明确的审核起点, 这些文件允许工程师跟踪恶意软件的来源, 并且通常可以清楚地了解网络是如何被破坏的. 无论是通过电子邮件链接到恶意下载还是网站泄露, 拥有文件历史记录都能提供干净的时间表, 最终使网络工作变得更加轻松.
将无文件恶意软件与黑客可能执行的手动攻击进行比较, 如果他获得了对远程计算机的直接访问权限. 在许多方面, 无文件恶意软件与手动黑客方法完全相同, 但无需在远程受害者周围爬行, 无法自动执行无文件恶意软件. 在许多情况下, 手动黑客使用的完全相同的工具被无文件恶意软件使用. 例如, 使用 PowerShell 脚本执行的攻击使用内置 Windows 工具来执行恶意活动. 由于像 PowerShell 这样的工具通常被列入白名单(因为它们每天用于非恶意活动), 因此手动攻击者和无文件恶意软件都可以使用免费工具来执行攻击. 这使得针对 SOC 团队的恶意活动更加难以追踪. 没有文件可以追踪历史记录. 安全工程师现在必须查看其他工件和记录的事件以尝试并形成结论. 无论是无文件攻击还是手动攻击, 都会给安全工程师带来同样的问题.
如何降低风险
在无文件 / 浏览器内部利用的示例中, 首先尝试在攻击开始之前阻止攻击是很重要的. 这就是为什么 Malwarebytes 在其软件程序中开发了类似漏洞利用缓解的技术. 监视内存并检查执行链是能够一般性地阻止这些攻击发生的重要的第一步. 历史证明, 我们的漏洞利用缓解技术可有效抵御此类攻击, 但是, 即使代码能够感染系统, 一个好的端点保护解决方案也可以识别异常活动, 跟踪隐藏代码并将其从系统中删除, 可以破坏恶意软件的重启能力.
正如上文所述, 修补, 启用日志记录和访问控制是必要的预防措施; 保护系统可以作为第一道防线和最后一道防线, 这也有助于在恶意软件入侵导致, 文件妥协时加快系统的反应时间.
来源: http://netsecurity.51cto.com/art/201809/582700.htm