近日,区块链安全公司 PeckShield 向链闻透露:多个已经在主流交易所上线的 ERC20 币种的智能合约代码存在严重的安全隐患,「攻击者」可通过公开的接口,以「零成本」技术手段实施割韭菜套利行为。

PeckShield 调查发现,目前已知有 700 多个 ERC20 币种存在此类问题。我们已经证实了至少有数十个币种已经在包括币安、火币以及 OKex 在内的主流交易所公开上线交易,且交易量巨大。其中最大币种市值已达 1.5 亿美金,全部币种共影响波及数十万投资者。

众所周知,交易所控着着数字货币资产的流进和流出,作为一个数字资产中转枢纽,交易所自诞生以来漏洞和安全事件就层出不穷,数年来,围绕交易所出现的黑客攻击事件,已造成超百亿美元的损失。然而,这仅仅是明面上技术漏洞诱发的黑客攻击事件,幕后还有借助智能合约代码漏洞实施操纵币价展开不公平套利行为。

PeckShield 研究大量智能合约代码发现,攻击者可使用如下两种技术手段来操纵币价:

安全问题一:项目 owner 可无限增发 Token

存在问题的 ERC20 币种智能合约有一个仅 owner 可调用的方法:mintToken,这个可被 owner 用于增发 token。通常一个项目在上交易所之前即预售期,增发行为尚算合理,项目方定向空投一些 Token 给特定地址,目的是为了激励社区用户参与活跃度。但在交易所上线可正常交易后,此种借助智能合约的增发行为会让项目 owner 空手套利,会严重影响市场平衡。

file

图一:受影响智能合约存在的 mintToken 问题

糟糕的是,我们已经发现有 10 余种存在此类问题的可交易 Token,他们存在于 23 个包括 Binance 和 OKex 这样的顶级交易所,且目前交易量巨大,一旦被利用可以影响数以万计的投资者。

以下为披露此信息时,我们已经发现的 10 个存在此问题的 Token。

file

安全问题二:可操纵的价格和不公平的套利行为

存在问题的 ERC20 币种的智能合约有三个可调用方法:

1) setPrices: 仅 owner 可访问,用来调整通过方法 buy 以及 sell 进行的 token 的买卖价格 (即 buyPrice / sellPrice);

2) buy: 公开且任意可访问方法,根据 buyPrice 购买 token;

3) sell: 公开且任意可访问方法,根据 sellPrice 购买 token。

为描述方便起见,我们将 buyPrice / sellPrice 称之为 owner 可操纵价格,并将 token 在交易所的价格称为市场价格。

file

图二:可操纵和利用的智能合约接口

按理说,一个币种上交易所后,交易走量都需要通过交易平台,成交时的买卖价格也是和市场保持同步的。然而,我们在图二代码中发现,项目 owner 可以通过智能合约任意修改买入价和卖出价,完全不需要依照市场价格。这样以来「套利」空间就有了,套利者可以在 Token 市场价格略高通过接口定一个较低的买入价,然后再以市场价格卖出,套利者还可以用市场价格买入 Token,再设定一个比市场价格高的价格卖出。不管怎样,这是一种干涉市场对流通 Token「定价权」的行为,严重点讲已经控制了市场,对市场上其他投资者而言存在极大的不公平。

以下为披露信息时,我们已经发现的 9 个存在此问题的 Token。

file

截至目前为止,已发现 9 个可交易的 token,在 26 个交易所上线交易。其中如 SUB、INT 和 SWFTC 等 token 都在主流的交易所上线并拥有巨大的交易量和影响力。

其它安全问题

我们进一步研究发现,如图三和图四,sell 或 buy 方法中存在整数溢出漏洞,项目 owner 在布局第二种套利行为的时候,可以设计一个套利陷阱,owner 能够利用该漏洞损害普通用户应得的收益。

file

图三:受影响的买方智能合约类别

file

图四:受影响的卖方智能合约类别

通常来讲,传统股票证券市场存在这样的「割韭菜」套路,幕后大庄通过周期性低拉高抛来制造市场震荡来收割韭菜,利用的是不少散户投资者盲目追涨杀跌的心理。大多数情况下,数字货币市场的大部分割韭菜行为也是基于此市场化操盘来实现。我们最新发现的此种借助智能合约漏洞割韭菜的方式,不经过市场,以技术手段进行零成本收割,对数字货币市场的稳定性威胁极大。

6 月 9 日,PeckShield 发现了上述安全隐患,在评估了安全威胁之后第一时间通知了相关交易所,希望携手交易所来共同预防危机的发生。不少交易所 (如币安) 和项目方 (如 Substratum,即 SUB) 在得到通报后已积极做出了响应。详情请参见:
https://peckshield.com/2018/06/11/tradeTrap
通过此次更详细的漏洞披露,我们可以看到安全漏洞背后的技术细节,也认识到此类安全问题存在的危害性,希望个多的交易所和项目方能够和我们通力合作,一同提高智能合约生态系统的安全性。