Nym 钱包安全审计报告

Nym Wallet 的安全审计

1 分钟 阅读

背景

2022 年 12 月,Nym 接受了由 Oak Security 开展的独立安全审计。Oak Security 是一家位于德国的网络安全咨询公司,专注于第三代区块链和去中心化协议的安全审计。 拥有宇宙、Terra、Polkadot和Flow等生态系统方面的广泛经验, 橡树安全的任务是评估Nym生态系统的两个关键组成部分:⑴ Nym mixnet和授予合同(见[完整报告](https://github.com/oak-security/audit-reports/blob/main/Nym/2023-03-27%20Audit%20Report%20-%20Nym%20Mixnet%20and%20Vesting%20Contracts%20v1.0.pdf))和⑵ Nym Wallet (见[完整报告](https://github.com/oak-security/audit-reports/blob/main/Nym/Audit%20Report%20-%20Nym%20Wallet.pdf)) 审计的目的是评估这些组成部分的安全性和健全性,查明潜在的弱点,并确保遵守安全代码制定方面的最佳做法。 为便于读者理解,我们已按组件各自整理和呈现对应的审计发现。 您可以查看Nym mixnet的审计摘要并授予合同 (https://nym.com/trust-center/oak-security-audit-contracts-2023)

Oak Security的Nym Wallet 审计摘要

这次审计历时两个星期,来自橡树安全公司的四名专家参加了这次审计。 Nym小组提供了全面查阅整个代码库、项目规格和相关文件的机会。 审计范围涵盖“nym-wallet”储存库。

审计员全面评估了钱包储存库,评价了它的安全脆弱性、整合机制、密码强度和总体遵守安全发展做法的情况。

橡树安全采用混合方法,将自动分析与人工代码检查结合起来,以发现安全方面的弱点。

调查结果概述

发现Nym Wallet 有一个结构完善、可读性中等至高的代码库。 审计员建议扩大测试范围和文件编制,以提高可靠性和可维护性。

关于Nym Wallet一共报告了17项调查结果。 没有一个被列为临界值; 其中4人被评为主要人,其余13人被归类为次要或信息丰富,为进一步完善钱包的实施提供了机会。

Nym小组迅速处理了所有主要调查结果,橡树安全公司审查并核准了修复。

NYM-WALLET-1: 注销后仍在内存中的密码 (Major)

审计员发现,与mnemonic不同,用来检索密码即使在用户退出后,仍然可在内存中看到。

为了解决该问题,Nym 实施了一项解决方案,在用户登出和创建账号时对窗口进行重置/循环利用(recycles the window)。 此操作有效地摧毁了WebView,它持有JavaScript运行时间并清除任何敏感数据,包括内存中的助记符和密码。

NYM-WALLET-2:在钱包内创建账号后助记词仍保留在内存中(中高危)

审计人员发现,虽然用户登出时助记词会在内存中被妥善覆盖,但在创建账号后却并非如此。 具体而言,当在钱包中创建新账号时,即便用户登出,助记词也不会从内存中清除,这可能会泄露敏感信息。

在NYM-WALLET-1号文件中实施的解决办法也纠正了这个问题。

NYM-WALLET-3:限定范围的密码特殊字符(Major)

审计员们发现,钱包中的密码强度组件使用正则表达式来执行密码强度, 但这种模式限制性过强,建议使用一套更灵活的符号来允许更广泛的密码。 我们根据审计员的建议,通过更新电子形式来处理这个问题,允许范围更广的人物和加强密码安全。

我们通过整合Dropbox "zxcvbn"包来解决这个问题,以便更准确和强大的密码强度验证。

NYM-WALLET-4:用户被迫将麦克风短语复制到剪贴板(Major)

在创建账号期间,系统会向用户展示助记词短语,并要求其点击“复制助记词”按钮,该操作会将助记词复制到剪贴板。 审计员认为这种做法是一种安全风险,因为其他应用软件可能会进入该模组。

为了解决这个问题,我们通过移除“复制Mnemonic”按钮,执行了审计员建议的修复。 而是这样。 我们添加了关于安全储存和使用助记词句的指南和一个复选框,供用户确认他们已经阅读和理解所提供的信息。

致谢

我们谨向 Oak Security 团队在本次审计全流程中所付出的专业努力与卓越贡献致以诚挚谢意。 我们对贵方在本次审计的筹备规划与具体实施阶段所展现出的高度协同与卓越专业性表示由衷赞赏。 保障系统安全是我们贯穿始终的重中之重。展望未来,我们将继续深化与业内顶尖安全团队的合作,共同为生态系统的稳健发展夯实最高标准的安全防线。

分享