木星链 木星链
Ctrl+D收藏木星链

ENG:发现最安全钱包ZenGo问题 防御特权用户攻击细节分析(独家)

作者:

时间:1900/1/1 0:00:00

ZenGo是一个使用多方计算技术的安全Web3钱包。

最近,CertiK的SkyFall团队对众多移动钱包进行了彻底的审计和研究,发现ZenGo的MPC解决方案提供了比普通移动钱包更强大的安全防御措施——ZenGo的钱包用户,尤其是那些高价值的钱包用户可以防御来自高级攻击者的直接攻击:例如利用零日漏洞或高级恶意软件在用户设备上获得root权限。

该威胁是最新出现且仅被CertiK团队发现,因此MPC钱包开发者请务必注意攻击细节!

防御特权攻击者是具有挑战性的。我们在报告结果中提出了一个新的攻击方式,与针对ZenGo中的MPC方法攻击向量。于是我们立即向ZenGo报告了这个安全问题,同时ZenGo也迅速做出了回应并修复了该问题。

本文我们将深入探讨该发现的技术细节,并分享我们是如何与ZenGo合作以提高MPC钱包的整体安全性的。?

基于我们对ZenGo安全设计的彻底审查和他们对问题的专业回应,CertiK认为ZenGo可以被称为目前市场上安全度较高的钱包解决方案。

什么是MPC?

多方计算,有时也被称为安全多方计算,是密码学的一个领域。它允许多方联合签署交易,同时确保每一方的密钥不被泄露。

因为MPC技术可以在多方之间分配密钥从而消除任何单点故障,因此可以让用户更好地保护Web3私钥,这种方法也通常被称为"阈值签名",目前已被许多Web3托管人和钱包开发者采用以保护Web3资产。其中,ZenGo是最广为人知且使用率最高的MPC钱包开发商之一。?

如下图所示,该钱包并不是由一个传统的私钥来控制签署交易,而是由多个私钥分片参与交易签署过程,并产生一个最终签名从而进行验证。

安全公司 Dedaub 发现 Solidity 编译器存在漏洞,多数已部署合约中的死代码极大增加 Gas 费成本:2月11日消息,安全公司 Dedaub 团队发现以太坊编程语言 Solidity 编译器存在漏洞,导致已部署的合约字节码中包括死代码(dead code),致使部署和操作智能合约时极大地增加了 Gas 费成本。Dedaub 表示,团队在评估开源二进制分流器 Gigahorse 时发现了这个错误。当库方法只被合约的构造器调用时,该漏洞就会出现。

通过 Gigahorse 分析,Dedaub 发现至少 35% 合约上存在一些死代码,其中 33% 占据其运行的大部分字节码。这些结果以 NFT 代理为主导,但其他代理合约也有同样问题。对于大型合约,该问题可以被忽略,但大多数已部署的合约都是小型合约。Dedain 团队在去年 11 月就已经发现了这个错误,并提醒 Solidity 团队确认该问题。[2023/2/11 12:00:31]

产生签名的普通MPC设计

通过本次研究,我们已认识到与MPC方法相关的挑战和潜在的安全风险对于Web3资产保护的重要性。于是我们想要通过探索和解决这些挑战来更好地保护Web3用户。

?因此我们可以想一下这个问题:与传统的加密钱包相比,为什么MPC钱包可以提供更高的安全性?它又是如何做到的?

ZenGoMPC设计和安全保证

通过本次研究,我们已认识到与MPC方法相关的挑战和潜在的安全风险对于Web3资产保护的重要性。于是我们想要通过探索和解决这些挑战来更好地保护Web3用户。

?因此我们可以想一下这个问题:与传统的加密钱包相比,为什么MPC钱包可以提供更高的安全性?它又是如何做到的?

RivvooNFT COO于诗萌:NFT的价值在于发现和释放艺术品的潜在价值:7月30日,2021数字艺术未来论坛暨RivvooNFT平台启动仪式在京举行。在现场,RivvooNFT COO于诗萌以《NFT加密艺术的价值和意义》为题进行分享。她表示,NFT的价值在于发现和释放艺术品在不同应用场景下的潜在价值。透过NFT,艺术品的传播范围逐渐扩大,流动性增强,权限的扩展从而拓展市场维度。智能合约的应用可以保障艺术家的永久版权收益。宽泛的艺术创作形式让各种创作语音的创作者们实现稳定的收益。另外,社区的构建和共识给创作者和收藏者提供了有成长性的经济效益。[2021/7/30 1:24:47]

在评估了不同Web3钱包的设计后,我们研究了MPC的Web3钱包——我们评估了市场上最受推崇的MPC钱包之一,同时也是头部的自我托管MPC钱包——ZenGo。

本次评估我们采用了与之前研究概述中相同的威胁模型:“如果你的设备被植入了恶意软件,那么该钱包还能保护你的资产吗?”

ZenGo安全架构概述

如上图所示,ZenGo钱包具备独特的安全设计,安全架构和恢复过程比传统的钱包更富有层次。ZenGo提供的安全功能包括但不限于:

双方签名方案:ZenGo的MPC设计实现了双方签名方案。每个用户在生成交易签名时都涉及两个密钥分片:一个存储在ZenGo的服务器上,另一个存储在用户的设备上。ZenGo和用户均不知道对方持有的密钥是什么。

基于TEE的保护:此外,为了防止"中间人"和“APP劫持"的攻击,ZenGo应用程序使用了TEE解决方案,并用TEE专用密钥签署HTTPS的通信内容来请求相关API。这个基于TEE的设备密钥是在用户设置设备时在TEE内产生的,即使是操作系统本身也无法提取。

动态 | 币安研究院:大牛暂时看不到迹象 ICO融资艰难阶段恰是投资与发现的最佳时间:币安研究院微博发文《币安交易所上小币种18年与19年两次简单统计对比与简单总结》,文中总结称:

1、列表中大多基于ETH公链来做应用,解决痛点,17年这些的繁荣造就了ETH,并催生了牛市,大饼(BTC)到达2万美金高度。健康的生态是小币和主流币、大饼(BTC)互相促进。单靠BTC自我突破那注定了BTC无法走向主流,只会沦为炒作标的;

2、小币币民经过两年多的浮沉、试错,在接下来的阶段已经或者即将找到更合适的方法来迎接新的阶段,有些可能会迎来新生;

3、关于大牛市何时到来。底层的主网暂时还看不到突破性的东西,波卡、ATOM,Ton估计都不算革命性的东西。大牛暂时看不到迹象;

4、在可能即将到来的小币小行情中,会从图中的老的小币种开始,再走向一些特殊的板块。这些板块大概率是基于二层的与游戏行业相关;

5、那些专门提供资金盘交易的当红炸子鸡们会逐渐暗淡走向没落;

6、ICO融资已经变得很难,接下来一段时间会更难,这个阶段恰恰是投资与发现的最佳时间。[2019/10/8]

有了这些安全功能,攻击者就不能再从内存或存储文件中窃取用户的私钥并控制ZenGo用户的资产。ZenGo还利用TEE来保护服务器和客户端之间的互动不能够被篡改。这也意味着“中间人”和"APP劫持"攻击被有效阻止和防御了。

我们的审计证实,ZenGo确实有一个安全的设计和实现可以抵御这些攻击,并且这已是我们所接触过的被审计钱包中具备最高安全水准的设计。

ZenGo的安全设计和实现成功地防御了包括来自特权的攻击及上述攻击。然而处理所有类型的特权攻击也并不是易事,特别是考虑到攻击者可以读取任意内存。

通过审计整个钱包,我们能够发现ZenGo中的一个实现问题那就是:该钱包允许我们作为特权攻击者从而绕过某些保护。

不过在讨论细节之前,让我们先回顾一下ZenGo钱包的安全机制。

动态 | 俄罗斯立法者发现对监管加密货币有些毫无头绪:据Bitcoinist消息,近日俄罗斯财政部副部长Alexey Moiseev 表示,俄罗斯拟议的“数字资产”法的主要目的是使ICO合法化,预计5月份杜马将对该法案进行审查。但立法者也逐渐意识到,监管比特币和加密货币是徒劳的,因为立法者的设计根本无法调节比特币和加密货币。专家还指出,试图对分散的加密货币,特别是比特币进行管理,将使政府看起来很无能为力,而且还有政府官员正在悄悄地用上亿美金购买比特币。[2019/4/19]

ZenGo钱包的安全做法

通过本次研究,我们已认识到与MPC方法相关的挑战和潜在的安全风险对于Web3资产保护的重要性。于是我们想要通过探索和解决这些挑战来更好地保护Web3用户。

因此我们可以想一下这个问题:与传统的加密钱包相比,为什么MPC钱包可以提供更高的安全性?它又是如何做到的?

一个经典的Web3钱包只需要一个私钥。然而用户总是有一定可能会透露私钥或助记词的。因此他们可能会丢失私钥,然后眼睁睁看着攻击者占有资产。

MPC钱包的工作方式则不同。该钱包没有单一的私钥,用户现在只持有一份私钥分片,对其余的私钥分片一无所知。从这个角度看,攻击者即使获得了用户那一份的个人密钥,也不能直接转移资金。而为了进一步保护用户,ZenGo使用了多种手段来加强他们的安全设计:不仅仅是上述的双方签名方案和基于TEE的设备保护,还有基于面部扫描的生物识别认证及额外密钥加密等。

用户注册和用户账号恢复过程中的保护措施

在用户注册和账号恢复过程中,ZenGo采用了以下保护措施来保护用户资产。?

用户识别保护:?双方签名方案要求只有当用户与另一方交互,才能动用他们的资金。为了能够识别用户和存储在服务器上的相关密钥份额,ZenGo需要用户的电子邮件以便注册账户。

为了避免电子邮件被黑,ZenGo使用了面部扫描技术,将生物识别信息与用户账户绑定。在注册与电子邮件验证后的账号恢复过程中,用户需要“刷脸”来进行认证。

动态 | 研究人员发现新型挖掘XMR的恶意软件Linux Rabbit:据Live Bitcoin News消息,研究人员发现新型挖掘XMR的恶意软件Linux Rabbit。该软件通过影响Linux服务器和物联网设备以挖掘XMR。[2018/12/8]

应用程序-服务器通信保护:?为了确保ZenGo服务器与合法用户的设备进行互动,ZenGo在注册和账号恢复过程中在TEE环境中生成并注册了一个非对称密钥。ZenGo应用程序和服务器之间的所有交互都需要由这个特定的密钥签署。因为它受到硬件支持的安全解决方案的保护,因此攻击者不能直接读取这个密钥,而该密钥也很难被滥用。

ZenGo用户注册和账号恢复过程

用户密钥共享保护:?让用户存储和备份其密钥分片是有风险的,因为这或将危及到ZenGo提供的所有安全措施。而为了解决这个安全问题,ZenGo在注册过程中生成了一个加密密钥。加密密钥对用户的密钥共享进行加密,并将密码文本存储在其服务器上。

但是,加密密钥不与ZenGo共享,而是强制与用户的GoogleDrive或iCloud进行同步。只有在用户通过电子邮件验证和基于服务器的生物识别认证后,才能将加密的密钥共享并进一步解密。其中基于服务器的生物识别认证几乎不可能被常规的2D/3D人脸重建“蒙”。

交易签名的生成

ZenGo的交易过程

为了签署一项交易,ZenGo应用程序与ZenGo服务器进行了一系列的交互。在交互过程中,ZenGo使用其开源的双方签名解决方案和用户密钥分片来生成双方签名。然后,ZenGo服务器再进一步完成签名并广播交易。这个过程中的所有请求都有时间戳和TEE中的签名以保持信息的完整性和不可重放性。

ZenGoMPC设计中的问题发现

正如我们之前所讨论的,ZenGo的安全设计中涉及许多加密密钥,每一个密钥都有不同的职责。在下面的表格中,我们显示了ZenGo使用了哪些密钥以及它们是如何被保护的。

通过这个表格,我们可以看到,在客户端有三个密钥被使用:主密钥②,设备密钥和加密密钥。攻击者需要同时获得主密钥②和设备密钥,以便与ZenGo服务器互动,窃取用户资金。

正如前面交易细节部分所介绍的,主密钥②在内存中作为文本参与双方签名的生成,它允许攻击者读取进程内存并提取主密钥②。而作为一种一定程度上的解决方案,所有对ZenGo服务器的交易请求都需要由设备密钥签署,而设备密钥是不能被读取或提取的。这个过程是在TEE中完成的,攻击者无法控制。

然而,尽管ZenGo的安全设计考虑到了许多方面,CertiK的SkyFall团队仍然在其中发现了一个漏洞。在对ZenGo应用程序中所有API进行细节审计后,我们注意到某些API允许攻击者ZenGo服务器,并轻松生成一个新的设备密钥,以便在其他设备上使用。

这种由设备密钥注册的API缺乏必要的安全保护措施:攻击者可以在其他设备上生成一个新的NISTP-256椭圆曲线密钥,然后攻击者可以利用设备密钥注册API,并注册新生成的密钥对,假装新的用户设备并请求交易。

我们将这种攻击命名为设备分叉攻击。

对ZenGo钱包的设备分叉攻击

如上文所述,攻击者需要拥有ZenGo用户的主密钥②和有效的设备密钥来窃取其资产。

主密钥②:主密钥②是一个固定的密钥,在内存中作为明文使用,以便参与双方的签名过程。由于双方签名算法的复杂性和独特性,这个过程不能在TEE中完成。因此,一个有特权权限的攻击者可以简单地转储进程内存或劫持某些系统API来提取主密钥②。下方截图显示了我们在iOS平台上能够提取到的主密钥②。

设备密钥:在注册或账号恢复过程中,TEE中的用户设备上会生成一个有效的设备密钥作为对前述明文提取威胁的解决方案。设备密钥并不能被有特权权限的攻击者读取,然而,攻击者可以使用相同的设备密钥注册API,从而来注册另一对密钥并使用它。

设备密钥注册API只有一个非常基础的认证机制:攻击者可以使用一个普通的明文本地存储的JWT令牌和提取到的主密钥②进行API身份认证。根据设计,该API涉及到的服务器代码也应该经过Facetec生物识别认证。然而在实践中,由于逻辑缺陷,代码未能执行此环节。?

在我们的模拟攻击中,我们模拟了一个具备特权权限的攻击者,并持续监控受害者的设备。一旦ZenGo应用程序被启动,我们便立即从内存中提取主密钥②,并从本地数据库中读取API令牌。而这些信息足以让攻击者盗取用户的全部资金!

一旦有了API令牌,我们就会生成一个新的设备密钥,并调用设备密钥注册API从而在ZenGo服务器上注册设备密钥。随后,我们构建了所有的API请求,与ZenGo服务器交互来发起交易。对于MPC钱包来说,生成双方签名是一个非常独特并且复杂的过程。不过好在ZenGo的开发过程始终秉承着开源精神,我们才能够编译官方ZenGo应用程序中使用的双方签名库并在本地运行。

上图中展示了我们是如何提取主密钥②并代表受害者注册一个新的设备密钥的。随后我们利用这两个密钥向“攻击者的账户”发送了0.00222ETH。这整个过程只用了几秒钟,并且受害者也会完全意识不到。

为了解决这个问题,ZenGo在服务器端为设备注册实施了FaceTec生物识别认证。服务器API级别的解决措施消除了这种攻击的可能性,且不需要更新客户端代码。

总结

在CertiK对ZenGo的评估中,我们彻底检查并审计了其为保护用户资产所采取的所有安全措施。这些措施包括双方签名方案、基于TEE的设备保护以及用来注册和恢复账号的生物识别。?

尽管ZenGo有着较高的安全意识,并采取了诸多措施用来提高自己的安全性,CertiK还是在ZenGo的实施中发现了一个关键的可被利用的API访问认证风险。该漏洞可以让持有特权的攻击者绕过现有的安全措施,并在用户的设备被破坏时窃取用户的资金。

ZenGo及时解决了该问题并部署了一个补丁,CeritK随后也进行了彻底的进一步审计并确定该补丁已修复报告中提到的风险。

随着补丁的部署,我们相信ZenGo在日后可以有效地预防特权用户非法访问用户资金。防御特权攻击者是一项艰巨的任务,而ZenGo的安全实践向我们展示了全面保护用户的安全方法。该钱包的做法超过了目前市场上绝大多数常规钱包。?

我们很荣幸能够与ZenGo合作,并很荣幸能够与ZenGo在保护Web3用户安全方面做出共同努力并解决安全挑战。同时也感谢ZenGo对我们发现漏洞的及时回应与高效的漏洞补丁出台行动。

作为安全行业的从业者,我们很高兴看到一个顶级Web3钱包公司如此重视安全,对用户和用户的资金具备如此高的责任心。希望在未来的安全道路中,我们可为更多项目提升安全性,为其用户赋予“安心”。

标签:ENGZENMPCAPIeng币最新消息Zenlinkgmpc币能涨成啥样HAPI价格

以太坊价格今日行情热门资讯
AGI:a16z:为何推出Optimism Rollup新客户端Magi

虽然最近Arbtrum大有超越Optimism之势,但Optimism也在默默蓄力。继Coinbase之后,有一家加密巨头选择了OPStack.

1900/1/1 0:00:00
CHA:ChatGPT類應用服務 數據合規有特殊性嗎?

王融?腾讯研究院首席数据法律专家本期观点摘要:1.ChatGPT等AI应用服务商直接面向个人提供服务,收集并处理个人信息,可被视为个人信息保护合规主体——数据控制者.

1900/1/1 0:00:00
CRO:擴大 Web3 生態影響力,AWS 與 Cronos Labs 強強聯手重塑行業未來

亚马逊网络服务(AWS)是一个云计算平台,也是电子商务巨头亚马逊的子公司,它正在与CronosLabs合作,后者是CronosChain的开发团队.

1900/1/1 0:00:00
以太坊:科普:一文了解以太坊上海升级的“前世今生”与未来走向

作者:HashkeyGroup?前言:以太坊已在北京时间4月13日上午成功完成了Shapella升级,截至8:35已提取1.735万枚以太坊,存入128枚,待提取数量为31.9万枚ETH.

1900/1/1 0:00:00
加密货币:加密货币市场的5个积极看涨信号

持有ETH的看涨资产是有利可图的一年。在上周上海成功升级后,ETH开启上涨态势,该资产今年已经上涨了75%以上.

1900/1/1 0:00:00
比特币:圆桌讨论:充满争议的比特币Ordinals、比特币跨链与 BitcoinFi 走向何方

本文来自香港?Web3?嘉年华速记JeffreyHu:我是JeffreyHu,来自HashKeyCapital讨论的话题是比特币新兴技术,因为现在有非常多的比特币新热点出来.

1900/1/1 0:00:00