本文是Ackee Blockchain Security 对 Unstoppable Domains 的Web3 Domains项目进行的安全性审计报告。审计发现了一些低危、警告和信息级别的安全问题,其中最严重的问题是由于退款接收方可写权限不足可能导致指令执行失败。审计团队建议 Unstoppable Domains 解决所有已识别的问题,改进顶级域的验证,并重新考虑二级域过期后的架构。
Unstoppable Domains 协议 允许在 Solana 区块链上创建和管理域名。这些可以是顶级域名,也可以有二级域名。二级域名以 non-fungible tokens (NFTs) 的形式铸造给用户。只有一个域名可以流通。
Unstoppable Domains 委托 Ackee Blockchain Security 对 Web3 Domains 进行安全审查,总共捐赠了 13 个工程日,时间在 2025 年 4 月 1 日至 4 月 10 日之间。
第二次修复审查于 2025 年 4 月 24 日进行。
我们首先了解协议的设计和架构来开始我们的审查。在这个初始阶段,我们收集了所有可用的信息,包括文档、网页功能和项目意图。
在第二阶段,我们进行了手动审查,并肩编写模糊测试。这个过程帮助我们更好地理解项目的源代码,同时实施模糊测试。在手动审查期间,我们更深入地研究了代码的功能,同时编写概念验证测试来支持我们的想法并测试指令的正确性。
在此阶段,我们特别关注以下方面:
最后阶段包括编写不变量检查。对于模糊测试,我们使用了 Trident 模糊测试框架。该框架专为使用 Anchor framework 编写的 Solana programs 的模糊测试而设计。在模糊测试期间,我们发现了 L1 问题,其中某些指令中的退款接收者缺少可写权限,导致指令执行出现问题的情况。
第一次 审计 在 commit ab4cecd
上进行,范围如下:
修复审查在 commit 844296e
上进行。
安全发现的分类由两个评级决定:影响 和 可能性。这种二维分类有助于阐明各个问题的严重性。如果问题被评为 中等 严重性,但可能只会被团队发现,通常会因可能性因素而降低到 警告 或 信息 严重性评级。
我们的审查产生了 9 个 发现,范围从信息级别到低级别。最严重的发现 L1 揭示了由于不正确的退款接收者可写权限而导致指令失败的可能性。所有问题都已由客户修复或确认。
第二次安全审查仅限于第一次安全审查中发现的问题,未审计其他代码更改。
未发现严重级别的问题。
未发现严重级别的问题。
未发现严重级别的问题。
L1:退款接收者的可变性不足
W1:二级域名可能被永久阻止
W2:可能失去 ProgramAuthority
访问权限
W3:过期时间不足以限制二级域名的更新
W4:记录值未完全覆盖
W5:顶级域名验证不足
I1:Tld
账户的不必要空间分配
I2:不必要的源代码
I3:可以使用 InitSpace 宏代替字面值
该 协议 在一定程度上实施了基于角色的访问控制 (RBAC) 机制。角色包括:
program authority
– 除了 smart contract 升级权限外,这是具有最高权限的角色(例如,任命新的铸币者);minter
– 具有铸造新的二级域名、更新域名元数据、修改域名过期时间、在铸造域名之前添加和删除记录的能力的角色。用户必须信任:
program authority
任命负责任的铸币者。Ackee Blockchain Security 建议 Unstoppable Domains:
Ackee Blockchain Security 的完整 Unstoppable Domains 审计 报告可以在这里找到 。
我们很高兴能审计 Unstoppable Domains,并期待再次与他们合作。
- 原文链接: ackee.xyz/blog/unstoppab...
- 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!