DeFi中最薄弱的环节不是智能合约——而是Web应用

  • zealynx
  • 发布于 6天前
  • 阅读 13

本文深入剖析了DeFi协议中Web2层面的安全漏洞,通过DNS劫持、供应链攻击、UI社会工程等案例,强调了前端和Web应用安全在DeFi防护中的关键作用。文章指出仅凭智能合约审计不足,并提供了详细的安全检查清单,以构建全面的防御体系。

这是我们的“Web2 安全性对 DeFi 的影响”系列文章的第二部分。阅读第一部分:当 Web2 基础设施破坏 DeFi 时以了解基础设施层面的攻击面。

TL;DR —— 让你的 Web 应用程序成为最薄弱环节的 5 个因素

  • DNS 劫持将用户重定向到完美的克隆网站,通过虚假交易提示耗尽钱包
  • npm 包和浏览器扩展程序中的供应链攻击将恶意代码注入受信任的界面
  • 通过 UI 欺骗的社会工程学诱使 多重签名 签署者批准他们不理解的交易
  • 管理面板中访问控制失效,允许攻击者在不触及智能合约的情况下治理协议
  • JavaScript 完整性失效,允许单行恶意代码危及数百万用户资金

智能合约审计是必要的,但在没有并行进行 Web 应用程序安全审查的情况下是不足的。以下是攻击者如何完全绕过你的合约以及如何阻止他们的方法。


引言:当表示层成为攻击载体

你在智能合约审计上花费了 5 万美元。你的代码很干净。你的 不变性测试 通过了。你的协议是“安全的”。

然后,用户连接到你的 前端,看到熟悉的界面,点击“确认”,并眼睁睁看着他们的钱包实时被掏空。

这次攻击并非源于 重入漏洞预言机操纵。它来自注入在你的 CDN 和他们的浏览器之间的某个地方的一行恶意 JavaScript 代码。或者来自 DNS 记录更改,该更改将他们重定向到一个 像素级完美 的克隆网站。或者来自一个通过 社会工程学 诱导的签署者,他们批准了一笔交易,因为 UI 使其看起来像例行操作。

在 2024-2025 年,前端 和 Web 应用程序攻击成为主要的攻击载体。根据 Halborn 的 2024 年 DeFi 百强黑客攻击报告链下攻击(账户入侵、网络钓鱼、内部威胁)占 2024 年被盗资金的 80.5%。前端 和 Web 应用程序漏洞是这些 链下攻击载体 的重要组成部分。

一个令人不安的事实是:DeFi 安全始于 OWASP,而非 Solidity

本文将剖析真实的 Web 应用程序攻击、DNS 劫持、供应链妥协、基于 UI社会工程学,这些攻击完全绕过了合约层面的安全性。无需智能合约漏洞。


1. Curve Finance:当用户信任错误的像素时(2025 年 5 月)

事件

日期:2025 年 5 月 12 日 协议:Curve Finance (多链 DEX) 攻击载体:域名劫持 + 钱包窃取 UI 损失:350 万美元

Curve 的 前端 遭到域名劫持攻击。攻击者获得了域名注册商的访问权限,并修改了 DNS 设置,将 curve.fi 重定向到一个恶意克隆网站。这个虚假网站在视觉上完全相同,同样的布局、同样的颜色、同样的“连接钱包”按钮。

但这个恶意网站只有一个目的:提示用户进行钱包签名,以授权无限 代币批准。该界面将这些提示呈现为常规连接请求。用户信任熟悉的 Curve 品牌和 URL,点击了确认。

关键细节:这不是一个复杂的智能合约漏洞。合约是完好的。UI 才是武器。

技术分析

  • DNS 妥协:注册商级别的访问权限允许攻击者修改 A 记录
  • 视觉欺骗:克隆网站完全匹配 Curve 的设计,包括字体和配色方案
  • 交易伪装:恶意提示显示为标准的钱包连接请求
  • 无完整性验证:用户无法验证 前端 代码是否已被篡改

经验教训

用户信任像素,而非协议。你的品牌、你的颜色、你的 URL,这些是用户所依赖的信号。当攻击者完美复制它们时,即使是经验丰富的 DeFi 用户也可能被骗。

DNS 劫持正在上升的原因是:

  • 注册商仍然是一个薄弱环节(社会工程学、凭证盗窃、内部威胁)
  • 用户缺乏验证 前端 完整性的工具
  • 大多数协议在 DNS 失败时没有备用访问方法

来源:Hypernative Detection ReportCurve Finance Incident Report


2. Ledger Connect Kit:背叛 DeFi 的供应链(2023 年 12 月)

事件

日期:2023 年 12 月 14 日 范围:Ledger Connect Kit npm 包 攻击载体:npm 发布凭证 被泄露 损失:60 万美元以上(避免了更严重的损失)

Ledger Connect Kit 是一个广泛使用的 npm 包,它支持 DeFi 前端 中的钱包连接。数百个协议依赖于它。12 月 14 日,攻击者泄露了一名前 Ledger 员工的 npm 发布凭证,并推送了该包的恶意版本(1.1.5、1.1.6、1.1.7)。

恶意代码:

  1. 检测钱包活动
  2. 窃取敏感钱包数据 并通过未经授权的交易执行实现资金窃取
  3. 在用户意识到发生什么之前,从连接的钱包中窃取资产

攻击窗口很窄,大约 2 小时,但它影响了任何自动更新依赖项的 dApp。Revoke.cash 和其他平台不得不实施紧急阻止,以防止用户在攻击期间进行交互。

技术分析

  • 凭证泄露:前员工的 npm 凭证 未被撤销
  • 自动更新管道:许多项目自动拉取最新版本
  • 深层依赖信任:Ledger Connect Kit 是许多项目中的 传递依赖
  • 签名限制:恶意包未正确签名/验证

经验教训

你的 前端依赖项 是你无法控制的代码。每个 npm 包 都是潜在的攻击载体。Ledger 事件表明,单个被泄露的凭证如何能够波及数百个协议。

DeFi 项目必须:

  • 锁定依赖项版本("@ledgerhq/connect-kit": "1.1.4" 而非 "^1.1.4"
  • 通过 校验和 验证包的完整性
  • 实施依赖项更新策略(生产环境不自动更新)
  • 维护 lockfile 并定期审计

来源:SlowMist AnalysisTechCrunch Report


3. Radiant Capital:通过 UI 进行社会工程学(2024 年 10 月)

事件

日期:2024 年 10 月 16 日 协议:Radiant Capital (跨链借贷) 攻击载体:基于 UI多重签名 签署者 社会工程学 损失:5000 万美元

Radiant Capital 采用 3-of-11 多重签名 来进行关键协议操作。在一次常规的 排放调整 期间,攻击者利用了堆栈的不同层面,而不是智能合约,而是签名环境本身。

根据 Radiant 的 事后分析,攻击者入侵了多个 多重签名 签署者使用的设备。当准备好合法交易进行签名时,恶意软件拦截了它们,并在将其转发到硬件钱包之前,用恶意 负载 替换了底层交易数据。

关键在于,这些交易在用户界面中看起来是合法的,并通过了手动审查和模拟检查。硬件钱包签署了它们所呈现的内容,并获得了三个有效签名。

签署者没有泄露他们的私钥。他们签署的是在到达签名设备之前已被篡改的交易。

技术分析

  • 设备泄露:攻击者在 多重签名 签署者使用的机器上部署了恶意软件。
  • 交易拦截:恶意软件在合法交易数据到达硬件钱包 UI 之前对其进行了拦截。
  • Calldata 替换:原始交易细节被恶意 负载 替换;硬件钱包签署了被篡改的数据。
  • 无私钥盗窃:签署者的私钥仍然安全;攻击利用了对签名设备显示数据的信任。
  • 通过受损签署者满足阈值:仅需要 11 个签名中的 3 个;攻击者入侵了多个签署者设备以获得有效签名。

经验教训

如果 UI 不可信,多重签名 是不够的。当攻击者控制表示层时,他们就控制了签署者所看到的内容,从而也控制了他们批准的内容。

高价值的 多重签名 操作需要:

  • 基于 CLI 的验证(读取原始 calldata,而非 UI 显示)
  • 显示实际正在签名的交易的硬件钱包显示屏
  • 对关键操作进行 气隙验证
  • 绝不信任单一 UI 进行高价值批准

来源:Halborn ExplainedCoinDesk Report


4. Trust Wallet 扩展程序:当浏览器扩展程序背叛用户时(2025 年 12 月)

事件

日期:2025 年 12 月 24-25 日 协议:Trust Wallet (Chrome 扩展程序) 攻击载体:扩展程序更新机制被泄露 损失:约 700-850 万美元

Trust Wallet 的 Chrome 扩展程序 于 12 月 24 日收到了一个恶意更新。被泄露的版本以完整的浏览器权限执行恶意代码,从而导致未经授权的交易执行和资金窃取,并 窃取敏感钱包相关数据 到攻击者控制的服务器。许多用户通过 Chrome Web Store 的自动更新机制自动接收了被泄露的扩展程序,在数小时内扩大了影响。

技术分析

  • 扩展程序更新泄露:通过官方渠道推送恶意版本(签名密钥或开发者凭证被泄露)。
  • 自动更新利用:启用自动更新的用户在没有任何操作的情况下接收了恶意构建版本。
  • 特权访问:该扩展程序拥有广泛的权限,允许代码访问页面内容并与钱包相关的流程进行交互。
  • 恶意 负载:执行的代码实现了资金窃取(未经授权的交易构造/提交)并 窃取敏感钱包数据
  • 延迟缓解:数小时后才检测并撤销被泄露的版本。

经验教训

浏览器扩展程序是你无法控制更新机制的特权代码。当你信任一个钱包扩展程序时,你信任的是:

  • 扩展程序开发者
  • Chrome Web Store 审核流程
  • 更新机制
  • 每个拥有发布权限的开发者

对于高价值操作,浏览器扩展程序不应是主要的签名机制。硬件钱包、气隙签名者CLI 工具 提供了深度防御。

来源:CryptoSlate AnalysisCoinDesk Report


隐藏的模式:DeFi 管理面板中的访问控制失效

我们涵盖的所有四次攻击都完全绕过了智能合约安全。但我们仍然在公开事件报告中看到一个反复出现的主题:链下管理界面 中访问控制失效。

在 2024-2025 年,多起备受关注的事件和安全审查表明,管理面板配置错误是一个持续存在且被低估的风险:

  • 硬编码秘密——JWT 秘密API 密钥 提交到 前端仓库 或暴露在客户端代码中
  • 缺少认证——管理 端点 无需任何身份验证即可访问
  • 会话管理不当——具有无限生命周期且不轮换的 Token
  • CSRF 漏洞——状态更改操作容易受到 跨站请求伪造 攻击
  • RBAC 绕过——角色检查仅在客户端执行,允许参数操纵以提升权限

这些并非理论性的。在大量的 渗透测试泄露分析 中,团队通过利用配置错误的管理 API,无需触及单个智能合约就获得了完全的治理控制权。

为什么这很重要:被泄露的管理访问权限允许攻击者:

  • 调整协议参数(利率、抵押品因子)
  • 紧急暂停或升级合约
  • 窃取金库资金
  • 切换 预言机地址

所有这些都无需 Solidity 漏洞。


DeFi 团队的 Web 应用程序安全检查清单

根据上述事件,以下是你的可操作检查清单:

DNS 与域名安全

  • [ ] 在所有协议域上启用 DNSSEC——加密签名可防止篡改
  • [ ] 使用两个独立的注册商——将域名分发到不同的提供商
  • [ ] 实施 DNS 监控——对任何记录更改发出警报
  • [ ] 发布 ENS/IPFS 备用——当 DNS 失败时提供去中心化替代方案
  • [ ] 注册拼写错误域名——防止 同形异义词攻击

前端 完整性与供应链

  • [ ] 锁定 npm 依赖项——生产环境不使用 ^~;仅使用确切版本
  • [ ] 验证包 校验和——在每次安装时验证完整性
  • [ ] 子资源完整性 (SRI)——通过 哈希 验证所有外部脚本
  • [ ] 内容安全策略 (CSP)——限制脚本来源到已知域名
  • [ ] 禁止自动更新——手动审查所有依赖项更新
  • [ ] 每周审计 lockfile——npm audit --production;处理高/中风险
  • [ ] SBOM 生成——维护 软件物料清单 以符合合规性

认证与访问控制

  • [ ] JWT 秘密:加密随机,每季度轮换,从不存储在仓库中
  • [ ] JWT 过期:最长 1 小时;使用带有轮换的 刷新Token
  • [ ] SameSite=Strict cookies——防止 跨站请求伪造
  • [ ] 强制 MFA——所有管理访问使用 TOTPWebAuthn(而非短信)
  • [ ] IP 白名单——可选但建议用于管理面板
  • [ ] 会话超时——30 分钟不活动后自动退出
  • [ ] 审计日志——记录所有管理操作,包括用户 ID、时间戳、IP
  • [ ] 服务器端角色验证——绝不信任客户端角色检查

CSRF 与请求验证

  • [ ] 在所有状态更改的 POST/PUT/DELETE 端点 上使用 CSRF Token
  • [ ] 双重提交 Cookie同步器Token模式
  • [ ] Origin 头部验证——拒绝意外的 跨域请求
  • [ ] 限速——防止认证 端点 上的 暴力破解

多重签名 与高价值操作

  • [ ] 强制 CLI 验证——签署者必须独立验证 calldata
  • [ ] 硬件钱包显示——显示原始交易数据,而不仅仅是 UI 摘要
  • [ ] 气隙签名——用于超出预定义阈值的操作
  • [ ] 多个 UI——不要依赖单一 前端 进行关键操作
  • [ ] 交易模拟——在签名前向用户显示确切结果

监控与事件响应

  • [ ] 前端完整性监控——已部署资产的 哈希比较
  • [ ] DNS 更改警报——记录修改的即时通知
  • [ ] 管理员登录警报——在新设备/位置访问时通知
  • [ ] 依赖项漏洞警报——自动扫描 CVE
  • [ ] 事件响应计划——为 前端 泄露预先准备的步骤

面向用户的保护

  • [ ] EIP-712 类型化数据——人类可读的签名请求

  • [ ] 合约地址验证——将已知良好地址列入白名单

  • [ ] 滑点警告——对异常交易参数发出警报

  • [ ] 无限批准警告——对最大批准进行明确的用户确认

    • *

结论:深度防御意味着每个层面

智能合约审计是必要的但不够充分。上述事件证明攻击者已经适应:当你可以简单地入侵 前端 时,为什么还要寻找 重入漏洞 呢?

你的安全堆栈必须包括:

  1. 智能合约审计——基础
  2. Web 应用程序安全审查——DeFi 的 OWASP Top 10
  3. 基础设施评估——DNS、云、CI/CD(请参阅本系列文章的第一部分
  4. 供应链安全——依赖项、扩展程序、更新机制
  5. 持续监控——实时完整性检查、访问日志

下一个主要的 DeFi 黑客攻击 不会是新颖的智能合约漏洞。它将是一个被泄露的 npm 包、一个被劫持的管理面板,或者一个通过 社会工程学 诱导的 多重签名 签署者。

不要成为那样的协议。


你的下一步行动

在下一次合约审计之前进行 Web 应用程序安全评估。映射用户和区块链之间的每一个接触点:

User -> Browser -> Extension -> Frontend -> CDN -> Dependencies -> Blockchain

如果任何一层被泄露,你的合约将无法拯救你。

在 Zealynx,我们专注于发现传统审计师错过的漏洞:

  • 全栈渗透测试
  • 管理面板访问控制审查
  • 供应链安全分析
  • 前端完整性评估

联系我们进行全面的安全审查,涵盖你所有的攻击面。

获取报价 ->


FAQ:DeFi 协议的 Web 应用程序安全

  1. 如果我们保护了 前端,智能合约审计仍然必要吗?

    绝对必要。智能合约审计能发现逻辑漏洞、经济攻击和升级风险。两层都至关重要。全栈安全 = 合约审计 + Web 应用程序安全 + 基础设施审查。

  2. DeFi 中,管理面板泄露有多常见?

    比公开披露的更常见。根据 Zealynx 对 2025 年 40 个协议的评估,9 个(23%)在管理界面中存在关键的访问控制缺陷。大多数未被报告是因为尚未发生资金盗窃——但终会发生。

  3. DNS 劫持能否完全预防?

    不能完全预防,但可以通过 DNSSEC、多个注册商、监控和 ENS 备用 来大幅降低风险。目标是提高检测速度和减少影响范围。

  4. 我们应该停止使用浏览器扩展钱包吗?

    不一定,但不要完全依赖它们进行高价值操作。对于重要交易,请使用硬件钱包或 CLI 工具。扩展程序很方便;但它们不足以应对所有情况。

  5. 我们今天能做的最有影响力的一个修复是什么?

    锁定你的 npm 依赖项 并启用 DNSSEC。这两个措施成本不到 100 美元,并能阻止最常见的攻击载体。

  6. UI 可能被泄露时,我们如何验证交易完整性?

    要求签署者通过 CLI 工具 或硬件钱包显示屏验证原始 calldata。绝不信任 UI 显示 进行高价值操作。实施 EIP-712 以获取人类可读的签名数据。


词汇表

术语 定义
DNSSEC DNS 安全扩展,通过密码学方式签署 DNS 记录,以防止未经授权的修改和劫持攻击。
内容安全策略 (CSP) HTTP 响应头,限制浏览器中可以加载的脚本、样式和资源,从而缓解 XSS 和代码注入攻击。
子资源完整性 (SRI) 一种安全功能,允许浏览器使用 加密哈希 验证外部加载的脚本和样式表是否未被篡改。
CSRF 跨站请求伪造——一种通过利用已认证用户的活动会话,强制他们执行非预期操作的攻击。
EIP-712 以太坊的类型化结构化数据签名标准,使交易签名请求可读性更强,帮助用户验证他们正在批准的内容。
SBOM 软件物料清单——项目中所有软件组件和依赖项的完整清单,用于 供应链安全 和合规性。
JWT JSON Web Token——一种紧凑的、无状态的认证机制,将声明编码为签名的 JSON 负载,通常用于 API 授权
多重签名 多重签名钱包,在执行交易前需要 M 个独立签署者中的 N 个批准,将信任分散到多个参与方。

查看完整词汇表 ->


来源

  1. Hypernative: Curve Finance 前端攻击检测
  2. Curve Finance: 域名事件报告
  3. SlowMist: Ledger Connect Kit 供应链分析
  4. TechCrunch: Ledger 供应链攻击
  5. Halborn: Radiant Capital 攻击解释
  6. CoinDesk: Radiant Capital 5000 万美元损失
  7. CryptoSlate: 浏览器扩展程序设计缺陷
  8. CoinDesk: Trust Wallet 扩展程序被黑
  9. Halborn: 2025 年百强 DeFi 黑客攻击报告
  • 原文链接: zealynx.io/blogs/weakest...
  • 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
点赞 0
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
zealynx
zealynx
江湖只有他的大名,没有他的介绍。