朝鲜黑客如何用 1 个 PDF 攻破 Mac 并盗了几个亿
本文作者:OneKey 中文@OneKeyCN。发文时间:下午9:02 · 2024年12月12日
此次攻击的复杂性和周密度,超乎了绝大多数人的想象。
朝鲜黑客显然已经进入了 Next-level。
将军的恩情,他们或许真的可以还完。
▷ ▷ 前言
今年 10 月 16 日,Radiant Capital,*一个基于LayerZero 的去中心化跨链借贷协议,*遭遇黑客攻击。
授权项目合约的资金尽数被盗,损失约 5000 万美元,一时间人心惶惶。
背景资料:
在之前,知名开发者 banteg 就 Radiant Capital 被盗一事评论表示:「这种程度的攻击确实很可怕。据我所知,受到感染的签名地址已经遵循了最佳操作规范。他们还使用了不同组合的操作系统和软、硬件钱包,并模拟了每笔交易。」
终于,项目官方聘请 Mandiant 在内的多家安全公司,在最近完成调查,发布了10月份被盗事件的完整报告(https://medium[.]com/@RadiantCapital/radiant-capital-incident-update-e56d8c23829e)。
报告中高度确信,此次攻击与朝鲜有关。
▷ ▷ 攻击全流程复盘
第一步:伪装
2024 年 9 月 11 日,Radiant Capital 的一名开发者收到了一条 Telegram 消息,发送者是伪装成的一位「Contractor」(这里应当理解为一位为该公司工作过的外包人员,以下称为外包同事)。
消息内容显得很自然:「我现在开始从事智能合约审计的新工作,想请你帮忙看看我的项目报告。」
这位「前外包同事」还贴心地附上了一份压缩文件,声称里面有详细的分析报告,希望开发者提出意见。
这类请求在币圈远程工作中非常常见,互相分享 PDF 文档几乎是日常操作。更巧妙的是,黑客使用了一个非常接近真实域名的假冒网站,看起来就像这位「前外包同事」真实的个人主页。所有这些细节让这位团队成员一时间没有察觉到这是一个骗局。
第二步:下毒
当开发者下载并解压压缩文件时,表面上看到图标名字,似乎是一个正常的 PDF 文件。
打开这个文件,会展示一份看似完全正常的 PDF 文档,内容「专业且详尽」。
但实际上,这个文件是一个 *.app 的可执行恶意软件,名字叫 INLETDRIFT。一旦运行,INLETDRIFT 立刻悄悄在 macOS 系统中安装了一个后门,并和朝鲜黑客服务器(“atokyonews[.]com”)不断通信。
假如这个时候及时发现,采取杀毒措施、更换安全权限,可能还来得及。
结果蛋疼的是,该团队成员在与其他开发人员征求反馈时,还把文件发给了其他人,最终传播了恶意软件,促成了后续入侵。
第三步:精准攻击
植入木马之后,黑客针对他们团队量身定制了攻击方式——「狸猫换太子」。
黑客在网页前端成功截获了他们在操作 Gnosis Safe (@safe)多签钱包时的交易数据。这些数据在开发者的交互的网页上显示为「正常的多签交易」,看起来完全没有异常。
然而,传输到在 Ledger 硬件钱包请求签名时,攻击者利用木马替换了交易请求的内容。而且,Ledger 硬件钱包中签名 Safe 多签交易时,是盲签,团队成员无法察觉交易背后隐藏着恶意意图。于是,他们的硬件钱包最终签署了 transferOwnership(),将借贷池的控制权交给了攻击者。
随后,便是黑客利用合约权限,大规模地转移了用户们授权合约的资金。
如此精心的中间人替换攻击,加上精准踩到盲点。即便 Radiant Capital 成员采取了包括硬件钱包、交易模拟工具(如 Tenderly)以及行业标准的操作流程来检查交易,仍然未能发现异常。
当然,这也不难理解。既然中了木马,这台电脑设备已经完全在黑客的控制之下了。
真的令人唏嘘。
第四步:撤退
在成功实施盗窃后,黑客几乎立刻展开“清理工作”。仅仅 3 分钟 之内,他们移除了系统中的后门和浏览器扩展,尽可能清除了所有会暴露他们身份的痕迹。
▷ ▷ 启示
此次攻击对整个 DeFi 行业提出了严峻警告。即使 Radiant Capital 在事件发生前已采用硬件钱包、前端交易验证和模拟工具等多种措施,仍未能避免损失。这暴露了以下问题:
(1)不要温和地点开那个文件
从今天开始,让我们对合作过程中「下载文件」的行为说不。
在日常协作中,尽量避免下载和打开陌生来源的文件,尤其是压缩包和可执行文件。建议团队统一采用在线文档工具(如 Google Docs、Notion 等),直接在浏览器中查看和编辑内容,从根本上减少恶意软件通过文件传播的风险。
例如,OneKey 的招聘表单,就严格规定了,我们只接受Google Docs的链接(以docs[.]google[.]com开头)。我们不会打开任何其他链接,包括应聘者的简历文件或过往作品网站。
Radiant 团队对木马钓鱼的防范意识显然还不够。有敏感权限的成员必须提高设备安全性,防范木马安装杀毒软件。加强团队协作时的文件管理规范,可以有效避免成为社交工程攻击的目标。
(2)前端安全形势严峻
当前大多数交易验证依赖于前端接口,但黑客可以轻松伪造正常的交易信息,让用户在毫不知情的情况下签署恶意交易。前端依赖包的供应链攻击也是屡见不鲜,参考「Solana 官方 web3.js 库被攻击的生死 5 小时」(https://x.com/OneKeyCN/status/1864655720303739303)。
(3)盲签机制的风险
很多硬件钱包只显示简单的交易摘要,无法有效展示交易数据的完整性,使得用户难以识别恶意内容。现在 OneKey 已经在 Permit 的盲签上取得重大进展,更多的重要签名包括这里的 Safe 多签也在进展中。
(4)Defi 资产风控机制还能加强
呼吁各位掌控大资金的项目方,为资金相关的协议设置 时间锁(Timelock) 和完善的治理流程,可以有效减少类似攻击的风险。
通过设定 T+1 等延迟机制,大额资金转移需经过一定时间,这为安全机构和白帽黑客提供了检测异常、触发警报和采取措施的窗口期。同时,用户也可以在延迟期间撤销授权,确保资产安全。相比于「一觉醒来直接被偷家」,时间锁能大幅提升安全性,给项目方和用户争取宝贵的反应时间。
当然,Radiant 这边的合约升级权限没有 Revoke,黑客是通过升级合约改变代码实现盗窃的,这个就是项目方的问题了。