华为云是华为公有云品牌,致力于提供专业的公有云服务,提供弹性云服务器、对象存储服务、软件开发云等云计算服务,以“可信、开放、全球服务”三大核心优势服务全球用户。
我们最近注意到另一种 Linux 威胁演变,它针对相对较新的云服务提供商 (CSP) 进行加密货币挖掘恶意软件和加密劫持攻击。在本文中,我们讨论了一种新的 Linux 恶意软件趋势,其中恶意行为者会部署代码来删除主要存在于华为云中的应用程序和服务。具体来说,恶意代码会禁用 hostguard 服务,这是一个“检测安全问题、保护系统并监控代理”的华为云 Linux 代理进程。恶意代码还包括 cloudResetPwdUpdateAgent,一个开源插件代理,允许华为云用户重置密码到弹性云服务(ECS)实例, 默认安装在公共镜像上. 由于攻击者在其 shell 脚本中存在这两项服务,我们可以假设他们专门针对华为云内的易受攻击的 ECS 实例。
图 1. 使用包含的 cloudResetPwdUpdateAgent 插件代理禁用主机保护并重置 ECS 实例密码的恶意代码竞选演变
在研究此活动时,我们偶然发现了之前在 2020 年腾讯博客中讨论过的活动中涉及的旧样本 。该活动的样本针对容器环境。有两个特定的例程支持这一发现:第一个是这次攻击的一个有效载荷丢弃了一个网络扫描器,以将其他主机映射到通常用作容器 API 的端口。第二个是创建防火墙规则以确保这些容器 API 端口将打开的功能。在我们发现的较新样本中,防火墙规则创建仍然作为遗留代码存在。但是,它已被评论,因此没有创建规则。我们观察到较新的样本仅针对云环境。
我们以前从未见过的另一个有趣的功能是,在这次活动中,恶意行为者一直在寻找特定的公钥,这将使他们能够从受感染的系统中杀死竞争对手并更新自己的密钥。与我们迄今为止看到的任何其他样本和活动相比,该活动对操作系统进行了全面的清理。它会寻找以前感染的迹象和可以阻止其恶意程序的安全工具。不仅如此,它还使用简单而有效的命令在执行感染程序后进行清理。
图 2. 显示 SSH 密钥清理的代码大多数来源的示例都遵循相同的例程,即以无特定顺序声明多个函数。在调用函数的文件末尾,它遵循特定顺序:它执行初始连接检查,确保允许传出连接,并检查 DNS 服务器是否是公共的(8.8.8.8 和 1.1.1.1)。通常执行这样的例程以确保在请求恶意 URL 时不会检测到它们,并且实现了域名系统 (DNS) 安全拒绝的域转换。
在第一次连接检查之后,然后调用下一组函数来准备系统。它首先删除竞争对手制造的任何感染痕迹,以避免共享计算资源。这种行为以前曾被发现并记录在案,但这次特定的活动不仅仅涉及在受感染系统中维护访问权限。
图 3. 活动例程为避免检测而遵循的特定功能顺序在进一步分析此活动后,我们发现了一个有趣的观察结果:威胁行为者非常了解他们的竞争对手。他们知道竞争对手用来维持访问的用户。这就是为什么他们确保在创建自己的用户之前先检查并删除竞争对手的用户。
图 4. 恶意行为者在系统中检查并删除其竞争对手的用户从系统中删除不必要的用户后,下一步是创建几个自己的用户。这是我们在其他针对云环境的示例中部分看到的另一种行为。然而,该活动的不同之处在于,它使用更通用、不显眼的名称(例如“系统”和“记录器”)创造了更多用户。使用诸如此类的用户名可能会使缺乏经验的 Linux 分析师误以为这些用户是合法用户。
另一个独特的行为是,在创建用户期间,脚本会将他们添加到 sudoers 列表中,以授予他们对受感染系统的管理权限。
图 5. 恶意行为者创建通用用户以避免检测并将其添加到 sudoers 列表黑客团队还添加了他们自己的 ssh-rsa 密钥,使他们能够重复登录受感染的系统。在进行系统修改后,他们会添加特殊权限以禁止对这些文件进行进一步修改。这确保了他们创建的恶意用户无法被删除或修改。
图 6. 恶意行为者添加自己的 ssh-rsa 密钥,使他们能够重复登录受感染的系统此活动的另一个有趣方面是它安装了洋葱路由器 (Tor) 代理服务。负载稍后将使用它来匿名化恶意软件建立的恶意连接。
图 7. 该活动安装并使用 Tor 代理服务来匿名化恶意连接活动有效载荷和升级的功能
该脚本部署了两个可执行和可链接格式 (ELF) 二进制文件 — linux64_shell 和 xlinux。
图 8. 显示部署两个 ELF 二进制文件 linux64_shell 和 xlinux 的恶意脚本的图表linux64_shell
二进制文件本身被打包和混淆,可执行文件的终极打包程序 (UPX) 打包程序已被使用,但随后二进制文件被篡改,以使分析更加困难并欺骗一些自动化工具集。
图 9. 二进制文件中存在的 UPX 标头仔细观察,我们可以看到另一个带有额外数据的二进制文件被附加到文件中。
图 10. 附加到文件的另一个二进制文件附加的二进制文件是一个已编译的 CrossC2 通信库,可以使用以下函数直接与 CobaltStrike 的模块交互:
- cc2_rebind_http_get_recv
- cc2_rebind_http_post_send
- cc2_rebind_post_protocol
- cc2_rebind_http_get_发送
成功解包后,可执行文件继续其控制流,其设计目的是使分析人员不易理解并且充满条件跳转。
图 11. 充满(条件)跳转的混淆控制流此时,恶意软件会尝试在端口 40443 上使用 IP 地址 45[.]76[.]220[.]46 连接到 C&C。这为攻击者提供了 shell 访问权限。
linux系统
第二个二进制文件是一个 Go 编译的二进制文件,实现了kunpeng 框架中的几个模块 。它充当漏洞扫描器,利用弱点并部署初始恶意脚本。
1. 该二进制文件通过向以下 URL 103[.]209[.]103[.]16:26800/api/postip 发送 HTTP POST 请求来通知恶意行为者有关受感染机器的信息
2. 将自身复制到 /tmp/iptablesupdate 并删除持久性脚本
图 12. 删除的脚本使 Go 二进制文件持久化3. 二进制文件以“安全”扫描开始。一旦发现弱点,它就会利用它并部署其有效载荷
图 13. 集成漏洞利用示例受感染的系统会扫描以下漏洞和安全弱点:
- SSH 弱密码
- Oracle 融合中间件的 Oracle WebLogic Server 产品中的漏洞 (CVE-2020-14882)
- Redis 未授权访问或弱密码
- PostgreSQL 未授权访问或弱密码
- SQLServer弱密码
- MongoDB 未授权访问或弱密码
- 文件传输协议l (FTP)弱密码
结论
加密货币矿工是 Linux 威胁环境中部署最多的有效载荷之一。近年来,我们已经观察到的恶意行为者,如 蒂岑茨 和 Kinsing 推出 cryptojacking 活动和cryptocurrency采矿恶意软件,受感染资源的计算能力竞争。
在 2020 年和 2021 年,我们已经看到这些网络犯罪集团如何始终以云环境为目标,并在其活动中添加以云为中心的功能,包括 凭据收集 以及移除与阿里云和腾讯云相关的云安全服务 。
云服务配置错误可能会导致加密货币挖掘和加密劫持攻击发生。我们监测到的大多数攻击都是因为在云上运行的服务具有 API 或 SSH 凭证薄弱,或者具有非常宽松的配置,攻击者可以滥用这些配置,使他们能够在无需利用任何漏洞的情况下渗透到系统中。在这种情况下,错误配置是一个常见的切入点,云用户应该像对待漏洞和恶意软件一样考虑和关注错误配置。
我们的团队发表了多篇博客和一篇研究论文,展示了恶意行为者如何针对特定的云提供商。在这篇博客中,我们看到了网络犯罪分子针对华为云等其他相对较新的 CSP 的证据。由于攻击者也在迁移到云,资源的可用性和可扩展性变得更加宝贵,因为他们的大多数攻击通常会在其他恶意程序中部署加密劫持恶意软件。
网友留言: