加密貨幣交易所 加密貨幣交易所
Ctrl+D 加密貨幣交易所
ads

AirSwap智能合約漏洞詳解:用戶資產可被攻擊者惡意吃單?_AIR:CAI

Author:

Time:1900/1/1 0:00:00

2019年09月13日AirSwap團隊公布了一個AirSwap智能合約中存在致命的漏洞,這一漏洞可以使得用戶的資產在某些情況下被對手惡意吃單『偷盜』,PeckShield安全人員獨立分析了該漏洞,并與AirSwap團隊溝通了細節和修復方案。

漏洞影響概述

PeckShield安全人員深入分析AirSwap智能合約后發現,這一漏洞只對最近上線的Wrapper有影響,AirSwap團隊在發現該問題后第一時間下線當前合約,并將AirSwap網站回退到之前使用的合約,從合約上線到問題修復整個過程僅持續了24小時,可見AirSwap團隊對于合約安全的重視程度之高。

PeckShield安全人員獨立分析了漏洞細節,并與AirSwap團隊溝通細節和修復的方案,同時將該漏洞命名為“ItchySwap”。

PeckShield在此提醒,由于這一漏洞可使用戶的資產被攻擊者惡意偷盜,受此次影響的賬號一共有18個,其中有部分賬號有數萬至數十萬美元的資產,這些賬號需要盡快完成升級,或與AirSwap團隊聯系。

尼日利亞央行正在改變eNaira模式以促進CBDC的使用:金色財經報道,尼日利亞中央銀行(CBN)代理行長Folashodun Shonubi周三表示,尼日利亞正在改變其eNaira模式,以促進中央銀行數字貨幣(CBDC)的使用。為了增強服務質量并使其更加用戶友好,CBN升級了其eNaira應用程序以實現非接觸式支付。該銀行沒有提供eNaira模型計劃變更的詳細信息,也沒有在發布時回復提供更多信息的請求。[2023/7/26 15:59:59]

ItchySwap漏洞詳解

一、AirSwap合約

在分析之前,為方便起見,我們先定義幾個概念:

1.maker:出售資產的一方;

2.taker:購買資產的一方;

3.order:maker與taker之間發生資產交割的訂單;

Starknet主網已升級至v0.11.2,正式激活Cairo 1:6月1日消息,以太坊 Layer2 擴容解決方案 Starknet 主網已升級至 v0.11.2,正式激活 Cairo 1,開發者可在主網上部署 Cairo 1 智能合約,接下來 Starknet 主網將發布關于更高 TPS 的重大更新[2023/6/1 11:51:58]

4.Indexer:AirSwap中的訂單簿,匯聚了當前正在出售及需要購買的資產信息。

下圖說明了maker、taker和Indexer之間的交互流程:

AirSwap是一個基于Ethereum的點對點去中心化交易所,它集成了SwapProtocol,在其中作為一個自動托管服務,允許交易的雙方在以太坊上安全地交易任何資產。與許多去中心化交易所不同,AirSwap雖然沒有對資金進行托管控制,但仍然有一個用于匹配目的的集中式訂單簿,它實現了一個用于交易和訂單匹配的完全對等模型。

由Cairo語言社區和貢獻者創作的The Cairo Book文檔現已發布:4月18日消息,由 Cairo 語言社區和貢獻者創作的The Cairo Programming Language Book 文檔現已發布,闡述了 Cairo 的概念、常見的編程概念、Cairo 的所有權系統、Cairo 函數測試等內容。[2023/4/18 14:11:42]

特別值得一提的是,有一個名為Indexer的鏈下服務,可以聚合來自maker和taker的交易意圖,然后為他們提供匹配的服務。特別是,一旦taker找到了合適的maker,他們就會開始進行場外價格的談判。一旦達成協議,訂單將由Taker通過SwapProtocol在鏈上進行填充和資產交割。

在AirSwap智能合約中,taker將訂單上鏈及資產交割的過程在AirSwapswap(Types.Ordercalldata_order)函數之中,這一函數實現如下所示:

StarkNet 現已推出 Cairo 1.0-alpha.2 版本:金色財經報道,StarkNet 宣布推出 Cairo 1.0-alpha.2 版本,其新功能包括:詞典、合約中的事件、映射存儲變量、特征支持、類型推斷和方法。目前,團隊正致力于使 Cairo 1.0 與之前的 Cairo 完全兼容,并開發支持在 Cairo 1.0 中編寫合約的 StarkNet v0.11.0。[2023/1/28 11:33:43]

1)驗證訂單有效性

訂單order參數有效性檢查,這些信息均由taker上鏈的時候指定的,也意味著這些信息都可以由taker篡改,具體包含:

1.訂單還在有效期內;

2.訂單還沒有被其它的taker吃單;

3.訂單還沒有被取消;

4.訂單的nonce大于最小值;

Coinbase新增AirSwap(AST)、MetisDAO(METIS)至路線圖資產列表:金色財經報道,Coinbase新增AirSwap(AST)、MetisDAO(METIS)至路線圖資產列表。此前4月份,Coinbase計劃提高第二季度上線新資產的透明度,并公布正在考慮于第二季度上線Coinbase的資產列表。[2022/6/16 4:30:43]

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的授權操作,那么他就可以向Wrapper合約發起一筆惡意的訂單,其包含的內容如下:

1.order中的有效時間、nonce為一個非常大的數值;

2.order中的maker對應的賬號為Alice的賬號;

3.order中的taker為空;

4.order的signature為空。

將上述構造好的order代入AirSwap的swap()函數,其中1,2兩步的驗證由于是taker控制的,不會有問題,我們重點看下第三步驗證maker信息:

由于此時AirSwap合約是由Wrapper合約調用的,那么msg.sender即Wrapper合約的地址,前文講到,Wrapper合約是經過Alice授權可直接控制Alice的資產,此時雖然Eve沒有權限操作Alice的資產,但此時可以通過Wrapper控制,也就間接地控制了Alice的資產。

安全規避

PeckShield安全人員分析發現,截止至2019年09月28日為止,共有6個賬號執行了revoke()操作,以解除對Wrapper合約的授權,還有12個賬號存在安全風險,這剩下的所有賬號應當立即執行revoke()操作,或者將賬號中的資產轉移至未對Wrapper授權過的安全賬號。

任何的代碼在上線生產環境之前都應當得到充分的測試和驗證,特別是承載著用戶價值的DEX平臺。在產品增加新特性之時,一定要考慮到舊特性的兼容性與安全,新特性的引入不應該觸發舊產品中設計不完備的地方。

附錄

備注:AirSwap官方漏洞細節鏈接:https://medium.com/fluidity/critical-vulnerability-in-a-new-airswap-smart-contract-c1204e04d7d3

Tags:AIRSWAPAirSwapCAIAI FairyArcherSwapMCAI價格

比特幣交易所
FUBT關于“歡樂星期二”第10周提前執行發放的公告_UBT:USDT幣提到錢包有風控嗎

尊敬的FUBT用戶: 值國慶佳節來臨之際,為保障用戶及時收取FUC鎖倉分紅收益,“歡樂星期二”第10周提前至2019年9月30日發放執行.

1900/1/1 0:00:00
外匯巨頭CLS Group:肯定區塊鏈價值,但認為其對于外匯市場而言不是必須的_CLS:有人靠區塊鏈4天就掙了30萬嗎

CLSGroup首席策略和發展官AlanMarquard坦言,外匯擁有區塊鏈技術固然很好,但對于重新連接全球金融市場而言并不是必須的.

1900/1/1 0:00:00
BZEX關于開啟“限時搶購六百萬枚HUNG”第三期認購公告_BZE:bZx Protocol

尊敬的用戶: BZEX關于創新實驗區將于2019年10月10日15:00開啟“限時搶購六百萬枚HUNG”第三期認購,認購信息如下: 項目信息 “紅花幣”由“紅花基金會”推出,鏈接洪門昆仲.

1900/1/1 0:00:00
關于LBank推遲GRS提現開放時間的公告_加密貨幣:lbank交易所評價

尊敬的LBank用戶: 為避免「GRS存幣獎勵」活動期間出現惡意刷量的行為,LBank將于活動期間暫停GRS的提幣功能.

1900/1/1 0:00:00
ZG.COM于10月18日14:00開啟EUP/USDT交易對公告

親愛的用戶:您好!ZG.COM將于2019年10月17日14:00開放EUP的充幣和提幣業務,于10月18日14:00開啟EUP/USDT交易對.

1900/1/1 0:00:00
WBFex聯合GYB,國慶邀請7天樂_CDM:HTT

尊敬的用戶: 為慶祝WBF交易所正式上線GYB,WBF交易所攜手GYB項目方開啟以下活動: 活動時間: 2019年10月1日00:00—2019年10月8日00:00(新加坡時間) 活動規則:.

1900/1/1 0:00:00
ads