比特幣交易所 比特幣交易所
Ctrl+D 比特幣交易所
ads
首頁 > 火必 > Info

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

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團隊聯系。

去中心化交易所AirSwap推出其最新的V4版本:5月10日消息,去中心化交易所AirSwap發文稱已實現超過35億美元的交易量。現推出最新版本的 AirSwap:V4。此更新包括新的用例、協議和合約,現在部署在 6 個 EVM 上,包括 Ethereum、BSC、Polygon、Avalanche、Arbitrum 和 RSK——即將推出的 Linea 和 Base。[2023/5/10 14:55:23]

ItchySwap漏洞詳解

一、AirSwap合約

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

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

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

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

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

AI 藝術家Claire Silver將于3月21日在盧浮宮展示NFT系列作品:金色財經報道,AI藝術家Claire Silver將于3月21日在巴黎盧浮宮博物館首次展示她的NFT新系列作品“我能告訴你一個秘密嗎”,據悉,該系列是一個“用人工智能創造的100個攝影后作品的自傳系列”。展覽將由Superchief畫廊促成,該畫廊是紐約和洛杉磯的實體畫廊空間。除了新系列首次亮相外,一件名為“Lovein the 4th Turning”的單件NFT藝術品也將在盧浮宮展出。[2023/3/8 12:48:36]

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

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

流動性控制協議Llama Airforce后端代碼現已開源:9月20日消息,DeFi Llama旗下流動性控制協議Llama Airforce的后端代碼現已開源,包括API服務器、Azure Functions、賄賂分析等,此前已于9月初將前端代碼開源。[2022/9/20 7:08:10]

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

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

Open Zeppelin發布智能合約庫Cairov0.2.0,改進了可擴展性模式:7月6日消息,區塊鏈安全公司Open Zeppelin發布為StarkNet編寫的智能合約庫Cairov0.2.0,該版本利用Cairo命名空間迭代了可擴展性模式;實施了與以太坊兼容賬戶合約的第一個版本;附帶了安全訪問和權限管理的基本構建塊Access Control庫;增加免受重入攻擊的實用程序Reentrancy Guard等。[2022/7/6 1:54:22]

1)驗證訂單有效性

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

1.訂單還在有效期內;

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

3.訂單還沒有被取消;

FairySwap冷啟動開啟5小時內TVL突破100萬美元:3月3日,據官方消息,FairySwap宣布上線并開啟為期12天的冷啟動,在冷啟動5小時內TVL已經突破100萬美元。

此前報道,FairySwap是構建在Findora上的首個DEX。利用Findora的EVM,FairySwap為用戶提供與以太坊和幣安智能鏈等L1鏈之間的極速跨鏈交換。

FairySwap的冷啟動階段為期12天,UTC 3月3日-3月14日,所有擁有Findora通證FRA的用戶都能通過質押FRA獲得Fairy獎勵,并且參與冷啟動的質押用戶后期還有機會領取Findora生態中的Fairy NFT。[2022/3/3 13:35:24]

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

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:SWAPAIRAirSwapAPPStackswapFairLunar區塊鏈dapp開發合法嗎

火必
HXT暫停提幣的公告_BIO

尊敬的BIONE用戶: 由于HXT錢包鏈上升級的原因,BIONE交易所暫時關閉HXT提幣通道,開通時間請持續關注交易所公告。對于暫停期間給您造成的不便敬請諒解.

1900/1/1 0:00:00
【活動】“金秋華誕,與祖國一起靚起來”公告_AND

喜迎新中國70周年華誕,FUBT團隊提前預祝全體用戶國慶節快樂!FUBT交易平臺金秋華誕多重活動,為每個活動均設有不同的獎品,歡迎您的參加!借此向您表示衷心的感謝和美好的祝愿.

1900/1/1 0:00:00
XBG登陸CITEX P板交易區公告_XBG

尊敬的CITEX用戶: XBG上線CITEXP板交易區,并開放XBG/BTC和XBG/USDT交易對.

1900/1/1 0:00:00
V-ID (VIDT)上幣福利活動獎勵已發放_Kucoin

親愛的KuCoin用戶:KuCoin已完成V-ID(VIDT)上幣福利活動獎勵的發放,請獲獎者在資產中心>我的福利>其他獲贈頁面查詢獎勵的發放記錄.

1900/1/1 0:00:00
大幣網(Dcoin)關于XRP恢復充提公告_COIN

親愛的Dcoin用戶: 由于XRP節點升級已經完成,XRP的充值和提現功能現已恢復。暫停期間給您帶來的不便,敬請諒解,感謝您對Dcoin的支持! Dcoin全球運營團隊 灰度創始人透露其持有BT.

1900/1/1 0:00:00
BKEX Global 關于MSN交易有獎活動結果公示的公告_BAL

親愛BKEXer: BKEXGlobal舉辦的MSN交易有獎活動已于2019年10月2日15:00結束,感謝用戶的大力支持!現對活動結果進行公示.

1900/1/1 0:00:00
ads