每月,MetaMask 安全总监 Luker 都会报告您需要了解的最新加密攻击事件和新兴风险。
2022 年 6 月,Endo 和 LavaMoat 项目发布了 import.meta、require.resolve 和 Yarn 3 支持,以强化构建流水线,同时 MetaMask 的漏洞赏金计划在 HackerOne 上正式上线。在指标方面,计算机事件响应团队在 2022 年上半年共关闭了 38 张工单,平均修复时间为 40.39 天,MetaMask 还因加密安全方面的顾虑弃用了 eth_decrypt 和 eth_getEncryptionPublicKey API 方法。本月有两项重要披露:Halborn 因发现"Demonic"漏洞(CVE-2022-32969)获得 50,000 美元奖励——该漏洞是一种磁盘加密弱点,可能导致助记词以明文形式缓存在未加密的驱动器上;United Global Whitehat Security Team 则因发现扩展程序中一个严重的点击劫持漏洞获得 120,000 美元赏金。完整详情见下文,但首先……
精选 STEM 先驱:Whitfield Diffie,公钥密码学的共同发明人
Whitfield Diffie 与 Martin Hellman 和 Ralph Merkle 于 1976 年 11 月共同发表了"密码学的新方向",提出了 Diffie-Hellman 密钥交换协议,使得无需预共享密钥即可实现安全通信成为可能。该协议是 TLS、SSH 以及自托管钱包用户每天所依赖的加密通道的基础。Diffie 于 2015 年荣获 ACM 图灵奖,并于 2011 年入选美国国家发明家名人堂。
点击劫持漏洞为 UGWST 赢得 120,000 美元赏金
MetaMask 向 United Global Whitehat Security Team(UGWST)授予了 120,000 美元的赏金,以表彰其负责任地披露了 MetaMask 扩展程序中一个严重的点击劫持漏洞。该攻击将扩展程序界面渲染为覆盖在恶意网站上的不可见 iframe,诱使用户在不知情的情况下批准交易并泄露私人数据。在补丁发布之前,未发现任何已知的利用行为。运行 MetaMask 扩展程序 10.14.6 或更高版本的用户已受到保护。
Halborn 披露"Demonic"漏洞,揭示浏览器钱包的磁盘加密风险
Halborn 的安全研究人员披露了 CVE-2022-32969,代号"Demonic"——该漏洞可导致导入时输入的助记词通过浏览器的会话恢复机制以明文形式缓存到磁盘。该风险在同时满足以下三个条件时存在:硬盘未加密、助记词在已被入侵或不受信任的设备上导入,以及在导入过程中勾选了"显示助记词"复选框。MetaMask 已在扩展程序 10.11.3 及更高版本中实施了缓解措施。MetaMask 移动端不受影响。Halborn 因此发现获得了 50,000 美元奖励。
MetaMask 事件响应团队在 2022 年上半年关闭 38 张工单,MTTR 为 40.39 天
MetaMask 计算机事件响应团队(CIRT)在 2022 年上半年共关闭了 38 张工单。外部报告者提交的工单占多数,超过审计和内部来源合计总数的两倍。按负责人划分,扩展程序团队处理的工单数量最多,其次是安全专项(跨产品)问题和移动端。在 38 张工单中,13 张附有 CVSS 评分:1 个严重级别——即点击劫持赏金漏洞——9 个中等级别,3 个低级别。外部报告者提交的工单解决速度最快,平均每个问题耗时 28.53 天。整体平均修复时间为 40.39 天。
eth_decrypt 和 eth_getEncryptionPublicKey 因加密安全顾虑被弃用
MetaMask 弃用了 eth_decrypt 和 eth_getEncryptionPublicKey API 方法。这两个方法依据 EIP-1024(现已废弃)构建,在不同椭圆曲线上复用同一私钥进行签名和加密,这种做法会带来额外的攻击面。目前尚无已知漏洞利用案例,但该设计被认为安全性不足,不宜继续推广使用。这些方法仍保持可用状态,以便第三方集成商有时间完成迁移。
Endo import.meta 和 require.resolve 支持完成
Endo 项目合并了针对 Compartments 的 import.meta 支持,需要对 static-module-record 中的 Babel 插件进行调整,以确保即使在已转换的导出定义内部,import.meta 节点也能被访问和转换。后续为 compartment-mapper 添加 import.meta.url 支持的 PR(endojs/endo #1202)为 compartment-mapper 的 importLocation 功能带来了 import.meta.url 支持(Archives 中不可用)。此外,require.resolve 函数被添加到 CommonJS 实现中,默认情况下会抛出错误,但可通过 ReadPowers 接受自定义实现。这些变更完成了计划中的 CJS 支持路线图。
LavaMoat 新增 Yarn 3 支持和显式策略拒绝
LavaMoat 为 allow-scripts 发布了 Yarn 3 支持,新增了一个插件,用于在受保护项目的全新检出时处理 yarn 设置。另一项更新在 policy-overrides.json 中引入了显式 false 值,允许项目拒绝特定的 endowments,并在策略合并期间防止对象字段的过度暴露。
HackerOne 漏洞赏金计划正式上线
MetaMask 于 2022 年 6 月在 HackerOne 上启动了其漏洞赏金计划,覆盖范围包括 MetaMask 扩展程序 GitHub 仓库和 MetaMask 移动端 GitHub 仓库。
MetaMask 2022 年 6 月加密安全报告涵盖了授予 UGWST 的 120,000 美元点击劫持赏金、影响浏览器钱包的 Halborn"Demonic"磁盘加密漏洞披露,以及 MetaMask 因加密安全顾虑弃用 eth_decrypt 和 eth_getEncryptionPublicKey 的相关内容。浏览往期 MetaMask 加密安全报告,了解更多威胁、趋势以及在整个生态系统中保持安全的建议。