2023 年初,Aqua Nautilus 研究人员发现了HeadCrab,这是一种利用最先进的定制恶意软件入侵 1,200 台 Redis 服务器的高级威胁行为者。众所周知,在不断发展的网络安全世界中,威胁行为者不断调整和改进他们的技术。最近,我们的研究人员检测到了针对我们蜜罐的新版 HeadCrab 恶意软件。这篇博文深入探讨了 HeadCrab 2.0 的复杂细节,揭示了其先进的机制、我们为对抗这种复杂威胁所做的持续努力,并表明一年后,该活动使受感染的 Redis 服务器数量几乎翻了一番。
攻击者的迷你博客:近距离观察
在恶意软件内部,HeadCrab 背后的攻击者正在管理一个“迷你博客”,这是一篇讨论恶意软件发展、活动策略和相关事件具体参考的小文章。这个博客已经成为一个可靠的信息来源,直接从攻击者的角度为我们提供见解。在 HeadCrab 的第一个版本中,我们注意到这个迷你博客中提到了 Aqua,引用了我们之前发布的一篇博客文章。在这个新版本的恶意软件中,威胁行为者再次提到了我们,引用了我们对他的恶作剧的发现和分析,声称他可以绕过我们的eBPF解决方案。
剧透警告——他未能做到这一点。
下面您可以看到他对我们研究的引用以及其他有趣的信息:
迷你博客的要点
-
对我们研究的认可:攻击者明确引用了我们之前关于 HeadCrab 第一版的博客文章。此认可表明我们的研究已引起广泛关注,甚至影响了那些我们试图阻止的人。 -
参考外部报道:该迷你博客还引用了安全研究员 Daniel Lowrie 的 YouTube 视频,其中介绍了我们对 HeadCrab 的发现。这表明攻击者意识到了更广泛的网络安全社区对他们活动的反应。 -
适应策略:博客文章重点介绍了攻击者改进恶意软件的努力,特别是为了逃避我们的开源检测工具Tracee。这清楚地表明了恶意软件的适应性以及攻击者致力于保持领先于安全措施的承诺。 -
增强的防御规避技术:这篇迷你博客详细介绍了恶意软件操作的具体变化,特别是其通信方式和控制受感染系统的方式。这些变化是为了增强恶意软件的防御规避能力,并确保活动保持隐蔽。
攻击者参与的影响
这次交战不仅仅是攻击者的一种沟通;这是一个具有多重含义的战略举措:
-
提高意识:攻击者对我们工作的认可,体现了高级攻击者的学习曲线,他们像下棋一样,根据对手(安全行业)的动向,优化自己的战术、技术和程序。 -
改进的防御规避:本博客描述的另一个方面是威胁行为者如何尝试改进防御规避技术以更好地隐藏活动。 -
有价值的情报:攻击者分享的信息虽然可能具有误导性,但却是威胁情报的金矿。它让我们有机会了解对手的心态和策略,并可利用这些信息来增强我们的防御措施。 -
不断演变的威胁形势:攻击者愿意直接与安全研究人员接触,这表明威胁形势正在不断变化。这反映了网络安全领域攻击者和防御者之间正在进行的猫捉老鼠游戏。
HeadCrab 攻击者的这次攻击既是挑战也是机遇。它强调了 Aqua Security 工作的重要性,并强调了我们在防御策略中不断保持警惕和创新的必要性。当我们剖析 HeadCrab 2.0 的技术复杂性时,这次攻击将作为背景,提醒我们网络威胁始终存在且不断演变。
HeadCrab 2.0 技术分析:揭秘高级恶意软件
为了不断了解和缓解网络威胁,我们对 HeadCrab 2.0 进行了深入的技术分析。新版本比其前身有所改进,表明攻击者在恶意软件开发方面日益成熟。
HeadCrab 2.0 中的增强规避技术:无文件加载器机制
HeadCrab 2.0 的复杂性的一个重要方面在于其先进的逃避技术。与其前身(称为 HeadCrab 1.0)相比,新版本采用了无文件加载机制,表明攻击者致力于隐秘和持久。
HeadCrab 1.0 – 无文件加载器
在之前的版本中,攻击者利用SLAVEOF
命令下载并保存 HeadCrab 恶意软件.so (共享对象)文件到磁盘。这种方法虽然有效,但却会在文件系统上留下明显痕迹,使其容易受到磁盘扫描解决方案的攻击,更容易被网络安全防御系统检测和缓解。
HeadCrab 2.0 – 无文件加载器
新的攻击媒介涉及使用加载程序.so文件。此加载程序不会直接将 HeadCrab 恶意软件保存在磁盘上,而是通过 Redis 通信通道接收恶意软件的内容并将其存储在无文件位置。通过选择无文件存储方法,HeadCrab 2.0 显著减少了其在受感染主机上的数字足迹。此方法有效地规避了传统的基于磁盘的扫描解决方案,使恶意软件更难检测到。无文件技术可确保恶意软件在受感染的系统上留下最少的痕迹。这种微妙之处不仅有助于逃避,而且还使取证分析和威胁搜寻工作变得复杂,因为通常的基于文件的入侵指标不存在。
指挥与控制 (C2) 通道演变
HeadCrab 2.0 的一个关键方面是其改进的指挥和控制 (C2) 通信策略,这与早期版本的方法有所不同。
HeadCrab 1.0 的策略 – 自定义命令
原始 HeadCrab 恶意软件使用自定义 Redis 命令 ( rds* ) 进行 C2 交互。这种方法虽然有效,但由于这些不寻常的命令的存在,恶意软件更容易被检测到。
HeadCrab 2.0 的策略 – 默认命令
新版本巧妙地使用了 Redis 中的默认MGET命令。通过挂载到这个标准命令,恶意软件获得了在攻击者发起的特定请求期间控制它的能力。这些请求是通过将特殊字符串作为参数发送到MGET命令来实现的。当检测到这个特定字符串时,恶意软件会将该命令识别为来自攻击者,从而触发恶意 C2 通信。对于普通用户来说,MGET命令按预期运行,从而保持了恶意软件的隐蔽性。
检测挑战和策略
随着HeadCrab 2.0的发展,我们之前的检测方法需要进行重大改革。
头蟹 1.0
最初,通过执行COMMAND命令并查找自定义 rds* 命令来识别受感染的服务器。新版本采用更隐秘的方法,这种方法变得无效。
头蟹 2.0
我们在 HeadCrab 2.0 中的CONFIG命令的钩子函数中发现了一个缺陷。恶意软件会用+OK来响应 CONFIG SETREWRITE DIRDBFILENAME之类的命令,这可能会导致未受感染的系统中出现不同的响应。
对受感染服务器进行全局扫描
我们进行了一次全局扫描,执行了旨在将DIR键更改为不存在路径的命令。正常服务器响应错误,而受到 HeadCrab 2.0 影响的受感染服务器则返回+OK响应。这种方法被证明可以有效识别另外 1,100 台受感染的服务器。
突出 HeadCrab 的高级挂钩方法
在 HeadCrab 2.0 中,我们观察到redisCommand结构中的redisCommandProc指针。此指针重定向到攻击者控制的函数。这种方法比较隐蔽,也更难检测,因为它涉及 Redis 中数据结构的低级操作,并利用 Redis 框架内部工作方式为威胁行为者谋利。
总而言之,HeadCrab 2.0 代表着 Redis 恶意软件的复杂性不断升级。它能够隐藏在普通的视线中,用标准命令伪装其恶意活动,这给网络安全专家带来了新的挑战。在 Aqua Security,我们将继续调整我们的方法和工具来检测和应对此类高级威胁,确保全球系统的安全性和完整性。
结论:应对 HeadCrab 2.0 不断演变的威胁
HeadCrab 2.0 的出现代表着不断变化的网络安全威胁格局中的一个重要里程碑。我们的分析不仅突出了这一新版本的技术复杂性,还强调了网络威胁的动态性质以及安全策略不断适应的必要性。在 Aqua Security,我们致力于领先于这些威胁,开发尖端解决方案来防御这些复杂而难以捉摸的恶意软件。关键见解和影响
-
适应性强且隐蔽性强的恶意软件:HeadCrab 2.0 展示了高级适应性和隐蔽性。它能够利用标准 Redis 命令伪装恶意活动,这对网络安全专业人员来说是一个挑战。这一演变凸显了持续研究和开发安全工具和实践的必要性。 -
警惕监控的重要性:攻击者的参与和恶意软件的后续演变凸显了警惕监控和情报收集的迫切需要。及时了解威胁行为者的策略和技术对于及时有效地做出响应至关重要。 -
协作防御:攻击者对我们工作的认可以及广大社区对我们研究结果的兴趣凸显了网络安全领域协作的重要性。跨组织和专家共享知识和策略是建立强大防御体系以抵御此类复杂威胁的关键。 -
不断发展的检测方法:我们在检测和分析 HeadCrab 2.0 的过程中证明了不断发展的检测方法的必要性。Aqua 的 CNDR 处于行为检测的前沿,其基础是像我们研究的 HeadCrab 这样的高级威胁,Aqua Nautilus。
原文始发于微信公众号(红云谈安全):Redis 恶意软件领域不断演变的威胁
- 左青龙
- 微信扫一扫
- 右白虎
- 微信扫一扫
评论