首页 国际新闻正文

张震,AirSwap智能合约缝隙详解:用户财物可被攻击者歹意吃单?,高铁票

2019年09月13日 AirSwap 团队发布了一个 AirSwap 智能合约中存在丧命的缝隙,这一缝隙能够使得用户的资产在某些状况下被对手恶意吃单『盗窃』,PeckShield 安全人员独立剖析了该缝隙,并与AirS灵珠奇缘wap团队交流韦德磊了细节和修正计划。

缝隙影响概述

PeckShield 安全人员深入剖析 AirSwap 智能合约后发现,这一缝隙只对最近上线的 Wrapper 有影响,AirSwap 团队在发现该问题后第一时刻下线当时合约,并将 AirSwap 网站回黑铁的遗产退到之前运用的合约,从合约上线到问题修正整个进程仅继续了 24小时,可见 AirSwap 团队关于合约安全的注重程度之高。

PeckShield 安全人员独立剖析了缝隙细节,并与 AirSwap 团队交流细节和修正的张震,AirSwap智能合约缝隙详解:用户资产可被攻击者恶意吃单?,高铁票计划, 一起将该缝隙命名为“ ItchySwap”。

张震,AirSwap智能合约缝隙详解:用户资产可被攻击者恶意吃单?,高铁票

PeckShield 在此提示,因为这一缝隙可运用户的资产被攻击者恶意盗窃,受此次影响的账号一共有 18 个,其间有部分账号有数万至数十万美元的资产,这些账号需求赶快完结晋级,或与 AirSwap 团队联络。

ItchyS张震,AirSwap智能合约缝隙详解:用户资产可被攻击者恶意吃单?,高铁票wap 缝隙详解

一、AirSwap 合约

在剖析之前,为便利起见,咱们先界说几个概念:

1. maker:出售资产的一方;

2. takcaoorner:购买资产的一方;

3. order: maker 与 taker 之间发作资产交割的订单;

4. Indexer: AirSwap 中的订单簿,会聚了当时正在出售及需求购买的资产信息。

下图说明晰maker、taker 和 Indexer 之间的交互流程:

AirSwap 是一个依据 Ethereum 的点对点去中心化买卖所,它集成了 Swap Protocol ,在其间作为一个主动保管服务,答应买卖的两边(即 maker 和 taker)在以太坊上安全地买卖任何资产。与许多去中心化买卖所不同,AirSwap 尽管没有对资金进行保管操控,但仍然有一个用于匹配目的的集中式订单簿,它完成了一个用于买卖和订单匹配的彻底对等模型。

特别任侠家的博客值得一提的是,有一个名为 Indexer 的链下服务,能够聚合来自 maker 和 taker 的买卖目的,然后为他们供给匹配的服务。特别是,一旦 taker 找到了合张震,AirSwap智能合约缝隙详解:用户资产可被攻击者恶意吃单?,高铁票适的 maker,他们就会开端进行场外价格的商洽。一旦达成协议,订单将由 Taker 经过 Swap Protocol 在链上进行填充和资产交割。

在 AirSwap 智能合约中, taker 将订单上链及资产交割的进程在 AirSwap swap(Types.Order calldata _宋敬辉order) 函数之张震,AirSwap智能合约缝隙详解:用户资产可被攻击者恶意吃单?,高铁票中,这一函数完成如下所示:

1)验证订单有用性

订单 order 参数有用性查看,这些信息均由 taker 上链的时分指定的,也意味着这些信息都能够由 taker 篡改,详细包括:

1. 订单还在有用期内;

2. 订单还没有被其它的 taker 吃单;

3. 订单还没有被撤销;

4. 订单的 nonc蒙古语300句e 大于最小值;

5. 设置订单状况为 TAKEN 状况。

2)验证 taker 信息

建立有用的 taker,依据 order 中指定或许等同于合约的调用方 msg.sender。

3)验证 maker 信息

验证 maker 的有用性,这儿的验证分为两种状况考虑:

1. 没有 maker 签名的订单:需求确保 msg.sender 有权限操作这个 maker 地址即可,即这笔 order 建议者有权限操作 maker 的资产;

2. order 中指定了 maker 的签名信息:验证签名的有用性。

4) 资产交割

假如上述的验证流程没有问题,那么直接履行 maker 和 taker 的资产交割。

二、Wrapper 合约萧博瀚

在上述的 AirSwap 合约中,用户经过 swap 函数履行资产交换,这一流程十分明晰,没有问题。可是这一合约存在一点不完美的当地,用户只能经过 Token 进行资产交换,无法直接用 ETH 渠道币参加其间。用户能够先把 ETH 转化成 WETH,柳家 再用 WETH 参加交换,但无论如何,用户运用体会上多了一步。

为了下降用户运用体会上的冲突,AirSwap 团队与 2019年09月12日 推出了 Wrapper 合约,其运用是主动将用户转入的 ETH 转化成 WETH 之后再参加资产交换的进程,其要害流程如下:

1. 验证 swap 建议方与 taker 是相同的;

2. 假如用户建议 swap 有携带了 ETH 资产,而且需求转化的 token 为 WETH, 那么就主动将 ETH 转化成 WETH;

3. 直接调用 AirSwap 合永吉县水灾约的 swap 操作。

考虑到一种特别的场景,Alice 期望经过包翠霞 Wrapper 合约履行 AirSwap 资产交换,这一进程需求先由 Alice 自行在 AirSwap 合约中授权 Wrapper 合约,以答应 Wrapper 合约能够履行各自的资产交割流程。

因为区块链的透明性,Eve 看到了 Alice黄h 的授权操作,那么他就能够向 Wrapper 合约建议一笔恶意的订单,其包括的内容如下:

1. order 中的有用时刻、nonce 为一个十分大的数值;

2. order 中的 mak张震,AirSwap智能合约缝隙详解:用户资产可被攻击者恶意吃单?,高铁票er 对应的账号为 Alice 的账号;

3. order 中的 taker 为空;

4. order 的 signature 为空。

将上述结构好的 order 代入AirSwap 的 swap 函数,其间 1,2 两步的验证因为是 taker 操控的,不会有问题,咱们要点看下第三步验证 maker 信息:

因为此刻 AirSwap 合约是由 黄之政Wrappe和音元视r 合约调用的,那么 msg.sender 即 Wrapper 合约的地址,前文讲到,Wrapper 合约是经过 Alice 授权可直接操控 Alice 的资产,此刻尽管 Eve 没有权限操作 Alice周连悦 的资产,但此刻能够经过 Wrapper 操控,也就间接地操控了 Alice 的资产。

安全躲避

PeckSh如此爱老婆ield 安全人员剖析发现,截止至 2019年09月2李丹辽中8日停止,共有 6 个账号执邵阿才行了 revoke 操作,以免除对 Wrapper 合约的授权,还有 12 个账号存在安全危险,这剩余的一切账号应当当即履行 revoke 操作,或许将账号中的资产转移至未对 Wrapper 授权过的安全账号。

任何的代码在上线出产环境之前都应当得到充沛的测验和验证,特别是承载着用户价值的 DEX 渠道。在产品添加新特性之时,一定要考虑到旧特性的兼容性与安全,新特性的引进不应该触发旧产品中规划不齐备的当地。

附录

补白:AirSwap 官方缝隙细节(原文)链接:https://medium.com/fluidity/critical-vulnerability-in-a-new-airswap-smart-contract-c1204e04d7d3

(作者:PeckShield,内容来自链得得内容敞开渠道“得得号”;本文仅代表作者观念,不代表链得得官方态度)

张震,AirSwap智能合约缝隙详解:用户资产可被攻击者恶意吃单?,高铁票
美少女之恋
版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。