文章主要讨论了Web3安全中容易被忽视的Frontend安全问题,指出尽管智能合约安全性受到广泛关注,但Frontend作为用户与区块链交互的第一层,其安全风险日益突出。
当大多数人谈论Web3安全时,他们通常会想到智能合约。这是有道理的。毕竟,这些代码片段掌握着真实的资产,定义了协议逻辑,并保护着数十亿美元的用户资金。多年来,安全团队投入了无限的精力来发现重入漏洞、访问控制问题、算术错误以及仅在特定执行路径下才会出现的细微漏洞。但在所有这些对链上发生的事情的痴迷中,我们忽略了绝大多数用户实际与之交互的第一件事:前端。
前端一直被视为闪亮的外壳,帮助用户与区块链对话的界面。但这个“外壳”正迅速成为整个生态系统中被滥用最多的层之一。虽然智能合约是不可变的且可审计的,但前端是可变的、中心化的,并且由完全在区块链保证之外的基础设施提供服务。然而,是它们构建了钱包要求用户签名的交易有效负载。如果这还没有让你感到害怕,那它就应该让你害怕了。
前端的真正危险不一定是技术复杂性;而是错位的信任。大多数用户不知道在确认交易时实际签署的是什么。他们完全依赖于前端向他们展示的内容。
一个“Swap”按钮可能正在触发批准。一个 staking 界面可能正在传递一个委托调用。除非钱包以人类可读的格式解码数据,而且许多钱包仍然没有这样做,否则用户无法验证他们正在做什么。
这使得前端入侵成为 Web3 中窃取资金最有效的方法之一。攻击者不需要破坏合约或在核心协议中找到漏洞。他们所需要的只是篡改前端的一种方式,即使是暂时的,他们也可以隐形地坐在用户和区块链之间。每一次点击都成为劫持意图的机会。
这些攻击的实施方式并没有什么特别之处。有时它就像 DNS 劫持一样简单,攻击者可以访问项目的域名记录并将其指向恶意服务器。在其他情况下,攻击者通过受感染的依赖项注入代码,替换恶意逻辑,在将交易数据传递给钱包之前修改交易数据。还有一些案例中,前端直接通过访问云仪表板或 CDN 配置而被入侵,从而允许攻击者实时更改 UI 脚本。
效果总是一样的。用户像往常一样访问应用程序,连接他们的钱包,并签署他们认为安全的交易。但他们签署的却是完全不同的东西,通常是批准一个不受信任的合约,或者将 tokens 转移到由攻击者控制的钱包。而且由于区块链完全按照签名执行,因此没有撤消按钮。
我们已经看到了一些这方面的痛苦例子。最著名的例子之一是 2022 年的 Curve Finance 事件,攻击者控制了 Curve 的 DNS 并向用户提供了一个虚假的前端。该网站看起来一模一样。钱包提示看起来也很正常。但在幕后,每笔交易都被路由到攻击者的钱包。仅在几个小时内就损失了近 60 万美元。
另一个例子是 BadgerDAO,在攻击者将恶意 JavaScript 注入其前端后,损失了超过 1 亿美元。该代码悄悄地更改了特定用户(尤其是鲸鱼)的交易有效负载,让这些用户自己点击进入毁灭。
这些事件的共同之处在于智能合约保持不变。逻辑是健全的,审计是干净的,但当前端讲述一个不同的故事时,这一切都无关紧要了。
Web3 中前端安全特别困难的原因在于它属于一个奇怪的灰色地带。它是链下的,因此大多数链上安全工具无法监控它。它经常在审计期间被忽略,尤其是在优先考虑交付而非安全性的项目中。而且它非常依赖于中心化基础设施,如 DNS、云存储和 JavaScript 包注册表,这些都没有提供与区块链相同的保证。
更糟糕的是,围绕前端验证的工具仍然不成熟。与可以在链上验证的合约字节码不同,前端代码经常更改,很少被固定或散列,并且几乎从不以用户可以检查的方式发布。这为有针对性的攻击创造了一个完美的环境,尤其是在 token 启动、空投或 UI 升级等敏感时期。
为了让 Web3 安全地发展,安全性需要扩展到智能合约之外。开发人员必须像对待后端一样,以同样的偏执和严谨对待前端。这意味着锁定依赖项,避免不必要的第三方脚本,保护 DNS 配置,并将前端审计视为每次重大发布的一部分。
钱包提供商也应该发挥作用。用户需要更清楚地了解他们正在签署的内容。这可能意味着改进的解码、更好的警告,甚至前端真实性检查。现在,人们对界面的信任度过高,而验证其完整性的努力却不足。
从用户的角度来看,建议是严厉但诚实的:不要盲目信任任何 UI。如果你正在与高价值协议交互,请不要只检查域名。检查源代码。使用跟踪恶意合约的浏览器扩展。如果有什么感觉不对劲,就不要签名。
Web3 不仅仅是关于无需信任的执行。它是关于整个信任边界,它的起点、如何转移以及它的终点。现在,前端恰好位于该边界的中间,并且已成为任何足够聪明的人利用用户所见与签名内容之间差距的游乐场。
你的合约可能很完美,但如果你的前端受到攻击,结果是一样的。资金损失,信任被打破,用户想知道这一切是如何出错的。是时候让行业停止将前端视为事后才考虑的事情了。因为对于黑客来说,它已经成为他们攻击的第一个目标。
- 原文链接: blog.immunebytes.com/202...
- 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!