安全研究

Lazarus Group 针对加密货币交易所的 APT 攻击:IOC 与 TTP 披露

#APT分析#威胁情报#横向移动#社会工程学
近黑深绿蓝背景上,戴帽 APT 阴影人形沿多阶段箭头阶梯攀升,入口点 PyYAML RCE 后门泛铜橙光,横向移动箭头串向钱包服务器,信任链一环冒烟——象征 Lazarus Group 针对加密货币交易所的定向 APT 攻击

网络安全对抗是一场持久战。本文由我(Thinking)与山哥(23pds)联合撰写。

背景

自 2024 年 6 月以来,我和山哥(23pds)陆续收到多家团队的邀请,对多起黑客攻击事件展开取证调查。经过前期的积累以及对过去 30 天的深入分析调查,我们完成了对黑客攻击手法和入侵路径的复盘。结果表明,这是一场针对加密货币交易所的国家级 APT 攻击。通过取证分析与关联追踪,我们确认攻击者正是 Lazarus Group。

在获取相关 IOC 和 TTP 后,我们第一时间将该情报同步给合作伙伴。同时,我们还发现其他合作伙伴也遭遇了相同的攻击方式和入侵手法。不过,相较之下他们较为幸运 —— 黑客在入侵过程中触发了部分安全告警,在安全团队的及时响应下,攻击被成功阻断。

鉴于近期针对加密货币交易所的 APT 攻击持续发生,形势愈发严峻,我们在与相关方沟通后,决定对攻击的 IOC 和 TTP 进行脱敏处理并公开发布,以便社区伙伴能够及时防御和自查。受保密协议限制,我们无法披露过多合作伙伴的具体信息。接下来,我们将重点分享攻击的 IOC 和 TTP。

攻击者信息

攻击者使用的 C2 域名包括 gossipsnare[.]com51.38.145.49:443)、showmanroast[.]com213.252.232.171:443)、getstockprice[.]info131.226.2.120:443)、eclairdomain[.]com37.120.247.180:443)、replaydreary[.]com88.119.175.208:443)以及 coreladao[.]comcdn.clubinfo[.]io

涉及事件的 IP 包括 193.233.171[.]58193.233.85[.]234208.95.112[.]1204.79.197[.]20323.195.153[.]175

攻击者的 GitHub 账号 — mariaauijjpatriciauiokvlauraengmp — 以及 Telegram 账号 @tanzimahmed88

后门程序以 StockInvestSimulator-main.zipMonteCarloStockInvestSimulator-main.zip 等命名,伪装成正常的量化交易项目。

真实项目代码来自 cristianleoo/montecarlo-portfolio-management

真实项目代码

攻击者更改后的虚假项目代码,对比后可以发现 data 目录多了一个 data_fetcher.py 文件,其中包含一个异常的 Loader:

虚假项目代码

elif content_type.startswith("application/yaml"):
    data = yaml.load(response.text, Loader=yaml.Loader)
    #response.raise_for_status()
    self.prices = data

后门技术

攻击者利用 PyYAML 的 yaml.load() 配合不安全的 Loader 进行 RCE,实现恶意代码下发,从而控制目标电脑和服务器。

这种方式绕过了绝大多数杀毒软件的查杀。在与合作伙伴同步情报后,我们又获取了多个类似的恶意样本:

恶意样本

关键技术分析参考:PyYAML yaml.load() Deprecation

PyYAML 不安全 Loader 警告

PyYAML 参考文档

我和山哥通过对样本的深入分析,成功复现了攻击者利用 PyYAML 进行 RCE 的攻击手法:

RCE 复现

攻击链

目标与动机

攻击者的主要目标是通过入侵加密货币交易所的基础设施,获取对钱包的控制权,进而非法转移钱包中的大量加密资产。

技战术拆解

初始入侵:攻击者利用社会工程学手段,诱骗员工在本地设备或 Docker 内执行看似正常的代码。StockInvestSimulator-main.zipMonteCarloStockInvestSimulator-main.zip 伪装成合法的 Python 量化项目,实则是远程控制木马,利用 PyYAML 的 RCE 作为恶意代码下发和执行手段,绕过了大多数杀毒软件的检测。

权限提升:攻击者通过恶意软件成功获取员工设备的本地控制权限后,诱骗员工将 docker-compose.yaml 中的 privileged 设置为 true,利用该条件进一步提权,完全控制目标设备。

内部侦察与横向移动:攻击者利用被入侵的员工电脑对内网进行扫描,利用内网的服务和应用漏洞进一步入侵企业内部服务器。窃取关键服务器的 SSH 密钥后,利用服务器之间的白名单信任关系,横向移动至钱包服务器。

资产转移:获得钱包控制权后,将大量加密资产非法转移至其控制的钱包地址。

痕迹清理:攻击者利用合法的企业工具、应用服务和基础设施作为跳板,掩盖真实来源,并删除或破坏日志数据和样本数据。

社会工程学细节

攻击者通过社会工程学手段诱骗目标,常见方式包括:

  1. 伪装成项目方,寻找关键目标开发人员,请求帮助调试代码,并表示愿意提前支付报酬以获取信任。我们追踪相关 IP 和 UA 信息后发现,这笔交易属于第三方代付,没有太多价值。

社会工程学聊天记录

  1. 伪装成自动化交易或投资人员,提供交易分析或量化代码,诱骗关键目标执行恶意程序。一旦恶意程序在设备上运行,它会建立持久化后门,并向攻击者提供远程访问权限。

所有攻击行为均通过被入侵设备的 VPN 流量进行,从而绕过大部分安全设备的检测。攻击者还会诱骗员工删除调试运行的程序,并且提供调试报酬,以掩盖攻击痕迹。此外,由于部分受骗员工担心责任追究等问题,可能会主动删除相关信息,导致攻击发生后不会及时上报,使得排查和取证变得更加困难。

防御建议

APT 攻击因其隐蔽性强、目标明确且长期潜伏的特点,防御难度极高。传统安全措施往往难以检测其复杂的入侵行为,因此需要结合多层次网络安全解决方案。我和山哥梳理了 8 大防御方向:

1. 网络代理安全配置:配置基于零信任模型的安全策略。推荐 Fortinet、Akamai、Cloudflare Zero Trust 等。

2. DNS 流量安全防护:在 DNS 层检测并阻止解析已知恶意域名的请求,防止 DNS 欺骗或数据泄露。推荐 Cisco Umbrella 等。

3. 网络流量/主机监控:实时监测异常行为,部署 IDS/IPS 和 HIDS。推荐 SolarWinds、Palo Alto、阿里云安全中心、GlassWire 等。

4. 网络分段与隔离:将网络划分为相互隔离的区域,限制威胁传播范围。推荐 Cisco ISE、云平台安全组策略等。

5. 系统加固:实施安全强化策略,包括配置管理、漏洞扫描和补丁更新。推荐 Tenable、public.cyber.mil 等。

6. 端点可见性:部署 EDR 实时监控终端活动,设置应用程序白名单机制。推荐 CrowdStrike Falcon、Microsoft Defender for Endpoint、WDAC 等。

7. 集中日志管理:将不同系统日志整合到统一平台,便于追踪和分析。推荐 Splunk、Graylog、ELK 等。

8. 培养团队安全意识:提高组织成员安全意识,能够识别大部分社会工程学攻击,并在出事后主动上报异常。推荐 区块链黑暗森林自救手册Web3 钓鱼手法分析 等。

此外,我们建议周期性开展红蓝对抗演练,以便识别出安全流程管理和安全防御部署上的薄弱点。

写在最后

攻击事件常常发生在周末及传统节假日期间,给事件响应和资源协调带来了不小的挑战。在这一过程中,我和山哥、Reborn 等团队成员始终保持警觉,在假期期间轮班应急响应,持续推进调查分析。最终,我们成功还原了攻击者的手法和入侵路径。

回顾本次调查,我们不仅揭示了 Lazarus Group 的攻击方式,还分析了其利用社会工程学、PyYAML RCE、权限提升、内网渗透及资金转移等一系列战术。网络安全对抗是一场持久战,我们也将持续关注类似攻击,助力社区共同抵御威胁。