华为云是华为公有云品牌,致力于提供专业的公有云服务,提供弹性云服务器、对象存储服务、软件开发云等云计算服务,以“可信、开放、全球服务”三大核心优势服务全球用户。
我们会在本文中介绍一种全新的 Linux 恶意软件攻击趋势,其中攻击者会部署代码来删除主要存在于华为云中的应用程序和服务。
我们最近注意到一种全新的 Linux 恶意软件攻击,它针对相对较新的云服务提供商 (CSP) 进行加密货币挖掘恶意软件和加密劫持攻击。攻击者会部署代码来删除主要存在于华为云中的应用程序和服务。具体来说,恶意代码会禁用 hostguard 服务,这是一个“检测安全问题、保护系统并监控代理”的华为云 Linux 代理进程。恶意代码还包括cloudResetPwdUpdateAgent,这是一个开源插件代理,允许华为云用户重置弹性云服务(ECS)实例的密码,该实例默认安装在公共镜像上。由于攻击者在其 shell 脚本中存在这两项服务,我们可以假设他们专门针对华为云内的易受攻击的 ECS 实例。
使用包含的 cloudResetPwdUpdateAgent 插件代理禁用主机保护并重置 ECS 实例密码的恶意代码
攻击行为演变
在研究此活动时,我们偶然发现了2020 年腾讯博客中讨论过的一个样本。那次攻击的样本针对的是容器环境。有两个特定的样本支持这一发现:第一个是该攻击的其中一个有效载荷安装了网络扫描器,以将其他主机映射到通常用作容器 API 的端口。第二个是创建防火墙规则以确保这些容器 API 端口将打开的功能。在我们此次新发现的样本中,防火墙规则的创建仍然作为遗留的代码出现。但是,它已经被注释了,所以没有创建规则。我们观察到较新的样本仅针对云环境。
在这次活动中,另一个我们以前没见过的有趣功能是,攻击者一直在寻找特定的公钥,这将使他们能够从受感染的系统中停止竞争对手的资源争夺并更新自己的密钥。与我们迄今为止看到的任何其他样本和活动相比,该活动对操作系统进行了全面的清理。它会寻找以前感染的迹象和可以阻止其恶意程序的安全工具。不仅如此,它还使用简单而有效的命令在执行感染程序后进行清理。
显示 SSH 密钥清理的代码
大多数来源的示例都遵循相同的样本,即以无特定顺序声明多个函数。在调用函数的文件末尾,,它按照特定的顺序执行:首先进行初始连通性检查,确保外部连接是允许的,然后检查DNS服务器是否是公共的(8.8.8.8和1.1.1.1)。通常执行这样的活动是确保在请求恶意 URL 时不会检测到它们,并且实现了域名系统 (DNS) 安全拒绝的域转换。
在第一次连接检查之后,然后调用下一组函数来准备系统。它首先删除竞争对手制造的任何感染痕迹,以避免共享计算资源。这种行为以前曾被发现并记录在案,但这次特定的活动不仅仅涉及在受感染系统中维护访问权限。
活动样本为避免检测而遵循的特定功能顺序
在进一步分析此活动后,我们发现了一个有趣的观察结果:攻击者非常了解他们的竞争对手。他们知道竞争对手用来维持访问的用户。这就是为什么他们确保在创建自己的用户之前先检查并删除竞争对手的用户。
恶意行为者在系统中检查并删除竞争对手的用户
在从系统中删除不必要的用户之后,下一步是创建自己的几个用户。这是我们在其他针对云环境的示例中看到的另一个行为。然而,这个活动的不同之处在于,它创造了更多的用户使用更通用的、不显眼的名称,如“system”和“logger”。使用这样的用户名会让缺乏经验的Linux分析师误以为这些用户是合法用户。
另一个独特的行为是,在创建用户期间,脚本会将他们添加到 sudoers 列表中,赋予他们对受感染系统的管理权限。
攻击者创建通用用户以避免检测并将其添加到 sudoers 列表
黑客团队还添加了他们自己的 ssh-rsa 密钥,使他们能够重复登录受感染的系统。在进行系统修改后,他们会添加特殊权限以禁止对这些文件进行进一步修改。这确保了他们创建的恶意用户无法被删除或修改。
攻击者添加自己的 ssh-rsa 密钥,使他们能够反复登录受感染的系统
此活动的另一个有趣方面是它安装了洋葱路由器 (Tor) 代理服务。这将被稍后的有效载荷用来匿名恶意软件的恶意连接。
该活动安装并使用 Tor 代理服务来匿名化恶意连接
活动有效载荷和升级后的功能
该脚本部署了两个可执行和可链接格式 (ELF) 二进制文件 — linux64_shell 和 xlinux。
部署两个 ELF 二进制文件 linux64_shell 和 xlinux 的恶意脚本
linux64_shell
二进制文件本身被打包和混淆了,使用了终极可执行程序打包器(UPX),但是为了使分析更加困难和欺骗一些自动化工具,二进制文件被篡改了。
二进制文件中存在的 UPX 标头
仔细看一下,我们可以看到另一个带有额外数据的二进制文件被附加到该文件中。
附加到该文件的另一个二进制文件
附加的二进制文件是一个编译的 CrossC2 通信库,可以使用以下函数直接与 CobaltStrike 的模块交互:
cc2_rebind_http_get_recv
cc2_rebind_http_post_send
cc2_rebind_post_protocol
cc2_rebind_http_get_send
成功解包后,可执行文件继续其控制流,其设计目的是使分析人员不易理解并且充满条件跳转。
充满(条件)跳转的混淆控制流
此时,恶意软件会尝试在端口 40443 上使用 IP 地址 45[.]76[.]220[.]46 连接到 C&C。这为攻击者提供了 shell 访问权限。
Xlinux
第二个二进制文件是一个 Go 编译的二进制文件,实现了 kunpeng 框架中的几个模块。它充当漏洞扫描器,利用漏洞并部署初始恶意脚本。XLinux 是由美国网虎公司推出的世界上最小的嵌入式 Linux 系统,内核只有143KB,而且还在不断减小。采用亚洲区使用最广的CLE 中文延伸套件,稳定、安装快速、维护简单、多国语言的安装支持。
1.该二进制文件通过向以下 URL 103[.]209[.]103[.]16:26800/api/postip 发送 HTTP POST 请求来通知攻击者有关受感染设备的信息。
2.将自身复制到 /tmp/iptablesupdate 并删除持久性脚本
删除的脚本使 Go 二进制文件持久化
3.二进制文件以“安全”扫描开始。一旦发现漏洞,它就会利用它并部署其有效载荷
集成漏洞利用示例
对受感染的系统进行以下漏洞和安全漏洞扫描:
SSH弱密码;
Oracle Fusion Middleware的Oracle WebLogic Server产品漏洞(CVE-2020-14882);
Redis未授权访问或弱密码;
PostgreSQL未授权访问或弱密码;
SQLServer弱密码;
MongoDB 未授权访问或弱密码;
文件传输协议 (FTP) 弱密码;
总结
加密货币挖矿程序是 Linux 威胁中部署最多的有效载荷。近年来,我们观察到 TeamTNT 和 Kinsing 等攻击者发起了加密劫持活动和加密货币挖掘恶意软件,以争夺受感染资源的计算能力。
在 2020 年和 2021 年,我们已经看到这些网络犯罪集团始终以云环境为目标,并在其活动中添加以云为中心的功能,包括凭据收集以及攻击与阿里云和腾讯云相关的云安全服务。
云服务配置错误可能会导致加密货币挖掘和加密劫持攻击发生。我们监测到的大多数攻击都是因为在云上运行的服务具有 API 或 SSH 的凭据较弱,或者具有非常宽松的配置,攻击者可以滥用这些配置,使他们能够在无需利用任何漏洞的情况下渗透到系统中。在这种情况下,错误配置是一个常见的切入点,云用户应该像对待漏洞和恶意软件一样考虑和关注错误配置。
我们的团队已经发表了多篇文章,介绍了攻击者如何针对特定的云提供商。在这篇文章中,我们看到了网络犯罪分子针对华为云等其他相对较新的 CSP 的证据。由于攻击者也在迁移到云,资源的可用性和可扩展性变得更加宝贵,因为他们的大多数攻击通常会在其他恶意程序中部署加密劫持恶意软件。
云安全建议
攻击者和黑客组织不断升级其攻击能力,以充分利用他们的攻击。 为了保证云环境的安全,组织不能仅仅依赖恶意软件扫描和漏洞检查工具。检查和研究其 CSP 的责任模型可以帮助他们定义在发布云服务时实施的最佳策略。
另外华为云也有自己的WAF,通过对网站和应用的HTTP/HTTPS业务流量进行多维度检测,利用深度机器学习识别出恶意请求、发现未知威胁,拦截诸如SQL注入、跨站脚本等攻击,避免这些攻击影响Web应用程序的可用性、安全性或过度消耗资源,降低数据被篡改、失窃的风险。
本文翻译自:https://www.trendmicro.com/en_us/research/21/j/actors-target-huawei-cloud-using-upgraded-linux-malware-.html如若转载,请注明原文地址