本文讨论了Web3安全中SDK审计的重要性,强调了SDK作为连接dApp、钱包和区块链网络的关键层,其安全性常常被忽视。文章详细解释了SDK审计的定义、与智能合约和OpSec审计的区别,以及SDK审计的具体流程和评估领域,并列举了现实世界中SDK漏洞的案例,突出了进行SDK审计的必要性。
你审计智能合约,那你的SDK呢?一个未经检查的漏洞可能会危及你的整个生态系统。了解为什么SDK审计是不可协商的。
在快节奏的Web3世界中,大多数项目都优先考虑智能合约审计和运营安全。然而,一个关键层经常被忽视:SDK,即连接dApp、钱包和区块链网络的软件开发工具包。SDK审计是一项重要的安全服务,可确保你的开发者工具没有可能危及用户、资金或你的声誉的漏洞。
在本指南中,我们将分解什么是SDK审计,为什么它们很重要,以及它们是如何进行的。这将帮助你理解为什么将SDK审计添加到你的安全策略中不仅是明智的,而且是必要的。
软件开发工具包(SDK)审计是对开发者用于构建、扩展或集成Web3应用程序的库和工具进行的严格安全评估。SDK充当前端接口和区块链网络之间的桥梁,处理关键操作,例如钱包连接、交易创建和智能合约交互——通常在链下管理或中继敏感的用户数据。
由于SDK在区块链的链上共识之外运行,因此它们不受保护智能合约的安全检查的约束。因此,受损的SDK可以轻松绕过原本强大的链上安全保护措施。如果攻击者利用不安全的SDK,多个dApp可能会同时暴露,导致大规模的违规、资金损失或不可逆转的声誉损害。
SDK审计侧重于保护与区块链系统交互的链下工具。虽然智能合约和OpSec审计涵盖了关键领域,但SDK审计填补了它们之间的关键空白——保护了连接你的应用程序、用户和区块链的粘合剂。
想要更深入地了解?
在Three Sigma,我们不仅专注于SDK审计,我们还编写了全面的指南来解释什么是智能合约审计和OpSec审计:
当我们在 Three Sigma 审计SDK时,我们遵循一个多阶段流程,旨在发现显而易见和深层嵌入的漏洞。通过集成标准检查表、全面的代码审查和有针对性的测试策略,我们确保你的SDK符合行业最佳安全实践。以下是我们评估的核心方面:
SDK可能会遭受各种已知的弱点:
即使SDK通过了标准漏洞检查,逻辑缺陷仍然会带来重大风险:
由于大多数SDK依赖于外部库:
逐行手动代码审查仍然不可或缺:
此阶段验证或反驳先前审查中标记的潜在问题:
加密模块需要更高的审查级别:
完成后,我们将提供一份深入的报告,详细说明:
通过采用这种彻底的审计方法,Three Sigma 提供了对你的SDK安全态势的全面评估——确保你可以主动解决弱点并保持对潜在漏洞的强大防御。
以下是流行的SDK中被利用的漏洞的实际案例。每个场景都突出了一个独特的风险领域——从依赖关系攻击到加密疏忽——并强调了对链下安全进行严格审计的关键需求。
Solana Web3.js库 (2024) – 当攻击者控制了一个npm发布者账户时,官方的Solana JavaScript SDK受到了损害。他们发布了两个@solana/web3.js
的恶意更新,其中注入了后门代码,能够窃取私钥并从使用这些版本的任何应用程序(例如机器人)中提取资金。这种供应链攻击没有影响Solana区块链本身,但它 targeted 了链下SDK;在短暂窗口期内不知情地更新的项目暴露了他们的密钥。
Ledger Connect Kit (2023) – Ledger的Connect Kit SDK(用于将硬件钱包链接到dApp)通过npm供应链攻击被短暂劫持。Ledger的一位前开发者的npm凭据遭到 phishing,导致恶意发布了包含嵌入式恶意软件的包(v1.1.5-1.1.7)。篡改的SDK更改了交易逻辑——它“允许黑客操纵用户可见的功能,导致他们无意中将资金发送给攻击者”而不是他们预期的接收者。Ledger的团队在几个小时内发现了并修复了该问题,但它突显了受损的依赖项如何注入未经授权的代码并重定向加密资产。
WalletConnect Verify API (2023) – WalletConnect,一种流行的Web3钱包连接协议,引入了一个“Verify API”来警告用户有关可疑的dApp域。但是,此Web API中的逻辑缺陷(反射型XSS漏洞)允许攻击者将恶意脚本注入到验证提示中。在实践中,攻击者可以制作一个 phishing 页面,该页面触发API的警告,但其 payload 会欺骗用户批准意外的交易(例如,在不知不觉的情况下授予token限额)。根本原因是API的域处理中的输出清理不足,导致Web3上下文中出现经典的Web漏洞。
Profanity Vanity Address Tool (2022) – Profanity,一种用于生成“vanity”以太坊地址的链下工具,被发现具有严重的加密弱点。它没有依赖于安全的熵,而是仅使用32位随机种子来生成256位私钥——大大降低了有效的密钥空间。这使得攻击者能够对 vanity 地址的生成过程进行逆向工程,并在正确生成的密钥所需时间的很小一部分内恢复私钥。
该缺陷使攻击者能够通过模拟确定性密钥生成逻辑将公共地址映射回其原始的低熵种子。这导致了几个钱包的 compromise,最值得注意的是导致DeFi做市商Wintermute损失约 1.6亿美元。
Stellar Freighter Wallet (2023) – Freighter浏览器钱包SDK(用于Stellar)包含一个访问控制错误,允许任何网站在未经用户同意的情况下与特权钱包功能进行交互。具体来说,由于扩展程序中不正确的消息处理,恶意站点可以发送与钱包自己的UI无法区分的伪造请求,从而欺骗Freighter在后台显示用户的密钥恢复短语。这意味着攻击者只需诱使用户访问网页即可提取私钥(恢复短语)——无需点击或批准。
Coin98 Wallet Extension (2023) – 类似的逻辑缺陷影响了Coin98浏览器钱包。它的内部API公开了一个开发人员标志,当设置该标志(isDev:true
)时,钱包会将传入消息视为已授权的UI操作。攻击者的网页可以发送此类消息来解锁钱包,甚至无需任何用户批准即可触发交易。实际上,这种访问控制漏洞允许远程、隐形地提取资金——钱包会签署并广播交易,就好像用户已确认它们一样。
Coinbase WaaS SDK (Lindell17 Vulnerability, 2023) – 研究人员发现了几个实施Lindell17双方ECDSA签名协议的钱包SDK中的一个缺陷。该问题 (CVE-2023-33242) 源于不正确的错误处理:如果签名尝试失败,协议的实现不会安全地中止,而是泄漏了一小部分私钥。有能力诱发签名错误的攻击者可以重复触发失败并每次尝试收集密钥的1位,最终在约256次尝试后重建整个256位私钥。根本原因是忽略中止条件而偏离了发布的协议,从而通过侧信道错误数据导致敏感信息泄露。
这些漏洞虽然多种多样,但有一个共同的主题:它们可以通过勤勉的监督来预防。 为了保护你的dApp并保护用户资产,彻底的SDK审计至关重要。
安全的软件开发工具包是任何成功的Web3应用程序的基石。即使是最防弹的智能合约和最完善的基础设施也可能因链下代码中的弱点而受到损害。SDK审计弥合了这一关键差距,确保你依赖的开发工具不会默默地危及用户资产、品牌声誉和法规遵从性。
通过彻底检查你的SDK的架构、代码质量、加密模块和依赖项,你可以预防漏洞并围绕你的核心功能构建堡垒。 SDK审计不仅仅是一种防御措施,它还是一项战略投资,可以培养用户信任、加快监管部门的批准并保持项目的长期价值。
准备好加强你的Web3工具包了吗?
安排与Three Sigma的SDK审计 并立即保护你的去中心化生态系统的基础。
保护你的链上代码至关重要,但 SDK在链下运行 并且可能会引入与智能合约中发现的漏洞一样严重的漏洞。 通过审计你的SDK,你可以确保将用户连接到区块链的工具同样强大和值得信赖。
理想情况下,每次代码更新后都应执行SDK审计,尤其是在你添加新功能、修改关键逻辑或引入新依赖项时。 许多团队仍然选择定期进行全面审计(例如,每年或每两年一次的审查),以在不断变化的威胁之前保持领先地位。 但是,每次代码更改后都进行 较小的 targeted 审计 是确保持续安全并最大限度地降低新引入漏洞的风险的最佳方法。
时间表因 范围 和 复杂性 而异。 较小的SDK可以在几天内完成审查,而具有多个集成的更广泛的代码库可能需要 两到三周 或更长时间。
全面的SDK审计包括 所有依赖项、集成和第三方库。 这种方法有助于检测 供应链风险——恶意代码注入最常见的向量之一。
大多数审计员 在现有代码存储库上工作 并且不需要访问生产系统,因此中断是最小的。 如果需要修复,你可以按照最终审计报告中的建议安排补丁发布或 hotfix。
是的。 金融、游戏和企业 项目通常依赖第三方审计来证明风险管理方面的尽职调查。 通过证明 链上和链下组件 都符合严格的安全标准,SDK审计可以加强合规工作。
当然。 你将获得一份 综合报告,其中概述了每个已识别的问题、其严重性评级、潜在影响以及明确的补救建议。 此最终文档还包括一份 executive summary,可以轻松地与利益相关者和非技术团队成员分享。
闭源代码仍然可以被审计。 声誉良好的审计员通常会签署 保密协议 (NDA) 以保护你的知识产权。 审计侧重于识别漏洞,不需要代码可以公开访问。
是的。 许多审计公司(包括Three Sigma)提供 重新验证服务(有时称为“后续审计”),以确保补丁和更新完全解决了任何报告的漏洞。
虽然主要目标是 安全性,但SDK审计可以高亮显示性能瓶颈,尤其是在它们带来拒绝服务 (DoS) 风险时。 但是,更深入的性能优化通常需要 单独的评估 或专门的审查。
- 原文链接: threesigma.xyz/blog/SDK/...
- 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!