2019年09月13日AirSwap團隊公布了一個AirSwap智能合約中存在致命的漏洞,這一漏洞可以使得用戶的資產在某些情況下被對手惡意吃單『偷盜』,PeckShield安全人員獨立分析了該漏洞,并與AirSwap團隊溝通了細節和修復方案。
漏洞影響概述
PeckShield安全人員深入分析AirSwap智能合約后發現,這一漏洞只對最近上線的Wrapper有影響,AirSwap團隊在發現該問題后第一時間下線當前合約,并將AirSwap?網站回退到之前使用的合約,從合約上線到問題修復整個過程僅持續了24小時,可見AirSwap團隊對于合約安全的重視程度之高。
PeckShield安全人員獨立分析了漏洞細節,并與AirSwap團隊溝通細節和修復的方案,同時將該漏洞命名為“?ItchySwap”。
PeckShield在此提醒,由于這一漏洞可使用戶的資產被攻擊者惡意偷盜,受此次影響的賬號一共有18個,其中有部分賬號有數萬至數十萬美元的資產,這些賬號需要盡快完成升級,或與AirSwap團隊聯系。
Ethereum Fair 硬分叉成功并正常出塊:9月15日消息,以太坊成功升級合并并正式轉為 PoS 算法,同一時間 Ethereum Fair 硬分叉成功將繼續 PoW 算法,目前 ETF 已成功出塊。[2022/9/15 6:58:25]
ItchySwap?漏洞詳解
一、AirSwap合約
在分析之前,為方便起見,我們先定義幾個概念:
1.maker:出售資產的一方;
2.taker:購買資產的一方;
3.order:maker與taker之間發生資產交割的訂單;
4.Indexer:AirSwap中的訂單簿,匯聚了當前正在出售及需要購買的資產信息。
下圖說明了maker、taker和Indexer之間的交互流程:
AirSwap是一個基于Ethereum的點對點去中心化交易所,它集成了SwapProtocol,在其中作為一個自動托管服務,允許交易的雙方在以太坊上安全地交易任何資產。與許多去中心化交易所不同,AirSwap雖然沒有對資金進行托管控制,但仍然有一個用于匹配目的的集中式訂單簿,它實現了一個用于交易和訂單匹配的完全對等模型。
Fairyproof:BNB鏈上ShadowFi (SDF)遭到攻擊,被盜1078個BNB:9月2日消息,根據區塊鏈安全公司Fairyproof的探測系統,部署在BNB鏈上的ShadowFi (SDF)遭到攻擊。
根本原因是它的“burn”函數的可見性是“public”。這種可見性通常不應該設置為公開,而應該是一個內部函數。
攻擊過程如下:
步驟1:攻擊者獲取了一定數量的SDF
步驟2: 燒掉交易對中的一些SDF,以推高SDF的價格
步驟3:攻擊者將步驟1中獲取的所有SDF交換為WBNB
下面是攻擊交易的截圖:
在撰寫本文時,大約有1078 BNB(30萬美元)被盜,并通過BNB鏈上的Tornado Cash提現。[2022/9/2 13:05:04]
特別值得一提的是,有一個名為Indexer的鏈下服務,可以聚合來自maker和taker的交易意圖,然后為他們提供匹配的服務。特別是,一旦taker找到了合適的maker,他們就會開始進行場外價格的談判。一旦達成協議,訂單將由Taker通過SwapProtocol在鏈上進行填充和資產交割。
Fairyproof提示:定期檢查錢包授權情況及時取消不合適的授權:3月20日,跨鏈應用平臺 Li.Fi遭到攻擊。由于項目合約未開源,本次被利用的漏洞尚未被第三方公開報道。Fairyproof研究得到的信息是:事件中受到損失的用戶,其錢包中有授權的代幣皆被黑客卷走。
Fairyproof提示:代幣持有者在授權任何第三方協議或應用轉賬其錢包中的代幣時,千萬要注意授權,尤其要小心無限額的授權。代幣持有者最好定期檢查自己的代幣授權情況,及時取消不合適的授權。[2022/3/21 14:08:53]
在AirSwap智能合約中,taker將訂單上鏈及資產交割的過程在AirSwapswap(Types.Ordercalldata_order)函數之中,這一函數實現如下所示:
1)驗證訂單有效性
訂單order參數有效性檢查,這些信息均由taker上鏈的時候指定的,也意味著這些信息都可以由taker篡改,具體包含:
動態 | 去中心化交易所AirSwap出現智能合約漏洞 目前已修復:據theblockcrypto報道,以太坊去中心化交易所AirSwap稱,發現一個智能合約漏洞,該漏洞允許攻擊者直接進行代幣交易,而無需對手方確認。據AirSwap團隊稱,該漏洞僅在其系統中出現不到24小時,其中10個賬戶被確定為“有風險”。確定漏洞后,AirSwap團隊進行回滾處理,并聯系相應用戶進行補救措施。[2019/9/15]
1.訂單還在有效期內;
2.訂單還沒有被其它的taker吃單;
3.訂單還沒有被取消;
4.訂單的nonce大于最小值;
5.設置訂單狀態為TAKEN狀態。
2)驗證taker信息
確立有效的taker,根據order中指定或者等同于合約的調用方msg.sender。
Airbnb競爭對手利用區塊鏈技術將酒店預訂價格降低20%:Lockchain (LOC)近日宣布他們成功將世界范圍內的酒店價格平均降低了20%。據悉,Lockchain (LOC)是唯一一家旨在為人們提供折扣酒店預訂服務的區塊鏈公司。[2018/4/16]
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:SWAPAIRAirSwapAPPPolyswapBaby Billionaires Clubcoinwapp下載
日前,開發者RustyRussell首次對外披露了閃電網絡安全漏洞及對應解決方案的技術細節。 以下是技術細節內容: 接受通道的閃電網絡節點必須檢查交易輸出是否確實打開了提議的通道,否則攻擊者可聲.
1900/1/1 0:00:00全文字數:2395 閱讀時間:8分鐘 當你與去中心化數字錢包的客服反饋問題時,經常會聽到這樣一句話:“很抱歉,我們不是傳統的銀行.
1900/1/1 0:00:00Faceboo為建立一個基于加密貨幣的全球支付網絡而組建的聯盟出現了裂痕。 據知情人士透露,Visa、萬事達(Mastercard)和其他簽署了幫助建立和維護天秤座支付網絡協議的金融合作伙伴,在.
1900/1/1 0:00:00BTC上漲至前期高點8320一線受阻后,在8200區域上方調整,進入震蕩調整的節奏,昨日觸底反彈之后,今日接連引發反彈之勢,有進一步形成上漲趨勢的契機,短期走勢一旦在8200上方企穩.
1900/1/1 0:00:00Cointelegraph9月27日消息,據閃電網絡統計網站1ML的實時統計,比特幣閃電網絡的節點數量首次達到1萬個.
1900/1/1 0:00:00據路透社消息,Facebook的Libra數字貨幣項目本周將迎來一次關鍵的支持者會議,成員們將在會議上審查章程并任命董事會.
1900/1/1 0:00:00