近日,區塊鏈安全公司 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
通過此次更詳細的漏洞披露,我們可以看到安全漏洞背後的技術細節,也認識到此類安全問題存在的危害性,希望個多的交易所和項目方能夠和我們通力合作,一同提高智能合約生態系統的安全性。