2019年09月13日AirSwap團隊公布了一個AirSwap智能合約中存在致命的漏洞,這一漏洞可以使得用戶的資產在某些情況下被對手惡意吃單『偷盜』,PeckShield安全人員獨立分析了該漏洞,并與AirSwap團隊溝通了細節和修復方案。
漏洞影響概述
PeckShield安全人員深入分析AirSwap智能合約后發現,這一漏洞只對最近上線的Wrapper有影響,AirSwap團隊在發現該問題后第一時間下線當前合約,并將AirSwap網站回退到之前使用的合約,從合約上線到問題修復整個過程僅持續了24小時,可見AirSwap團隊對于合約安全的重視程度之高。
PeckShield安全人員獨立分析了漏洞細節,并與AirSwap團隊溝通細節和修復的方案,同時將該漏洞命名為“ItchySwap”。
PeckShield在此提醒,由于這一漏洞可使用戶的資產被攻擊者惡意偷盜,受此次影響的賬號一共有18個,其中有部分賬號有數萬至數十萬美元的資產,這些賬號需要盡快完成升級,或與AirSwap團隊聯系。
Dylan LeClair:BTC有助于緩解金融腐敗:金色財經報道,BTC Inc.市場研究主管Dylan LeClair表示,金錢腐敗了,其他一切也因此腐敗了。比特幣和其他數字貨幣被設計為標準金融的替代品,而標準金融領域長期以來一直由第三方、窺探者和中間商主導,他們告訴我們我們可以用我們的錢做什么和不能做什么。他們查看我們的工作經歷和我們生活的其他個人方面,并決定我們是否可以從那里獲得特定的產品和服務。
加密貨幣的目的是為沒有銀行賬戶的個人或無法獲得傳統金融機會的人提供獲得他們日常生存所需的產品和物品的機會。當你深入挖掘政府的根源,金錢、權力系統和當今社會的結構,你真的會明白整個游戲的基礎層面已經被腐敗了。社會底層的激勵措施以腐敗金錢的形式被腐蝕。[2023/7/4 22:15:49]
ItchySwap漏洞詳解
一、AirSwap合約
尼日利亞央行計劃將數字貨幣eNaira交易費用降低50%:9月26日消息,近日,尼日利亞中央銀行(CBN)宣布,計劃將央行數字貨幣eNaira平臺的交易費用降低50%,希望借此提升CBDC交易量,促進尼日利亞跨境貿易發展。The Continental Approach研究員Joshua Ogwu對這一消息持謹慎態度。他認為,e-Naira自推出以來,數字錢包下載量僅有84萬,其中只有四分之一處于活躍狀態,這與尼日利亞2.6億多的人口總數規模相差甚遠,所以上述計劃能否產生預期效果還是未知。[2022/9/26 7:21:09]
在分析之前,為方便起見,我們先定義幾個概念:
1.maker:出售資產的一方;
2.taker:購買資產的一方;
3.order:maker與taker之間發生資產交割的訂單;
動態 | 德國航空公司Hahn Air發行基于區塊鏈技術的機票:德國航空公司Hahn Air與開源旅行分銷平臺Winding Tree合作發行基于區塊鏈技術的機票。Winding Tree的創始人Maksim Izmaylov是使用該機票的第一批乘客。(路透社)[2019/11/19]
4.Indexer:AirSwap中的訂單簿,匯聚了當前正在出售及需要購買的資產信息。
下圖說明了maker、taker和Indexer之間的交互流程:
AirSwap是一個基于Ethereum的點對點去中心化交易所,它集成了SwapProtocol,在其中作為一個自動托管服務,允許交易的雙方在以太坊上安全地交易任何資產。與許多去中心化交易所不同,AirSwap雖然沒有對資金進行托管控制,但仍然有一個用于匹配目的的集中式訂單簿,它實現了一個用于交易和訂單匹配的完全對等模型。
動態 | FairWin躋身以太坊DApp前列,過去一周Gas消耗占比達39.99%:據 DAppTotal 09月23日數據顯示,過去一周,綜合對比ETH、EOS、TRON、IOST四大公鏈的DApp生態情況發現:總用戶量(個): ETH(292,271) > EOS(189,107) > TRON(59,034) > IOST(20,088);總交易次數(筆):EOS(34,957,643) > TRON(4,880,517) > IOST(2,837,113) > ETH(1,145,116);總交易額(美元):ETH(59,946,310) > EOS(57,343,801) > TRON(38,180,672) > IOST(9,317,979);跨四條公鏈按用戶量TOP3 DApps為:Hash Baby(EOS)、Dice(EOS)、Endless Game(EOS);按交易次數TOP3 DApps分別為:Hash Baby(EOS)、Dice(EOS)、Gako Binary Option(EOS);按交易額TOP3 DApps分別為:FairWin(ETH)、NEST(ETH)、WINk(TRON)。過去一周,以太坊現象級DApp FairWin交易額排名躋身第一位,同時其消耗以太坊的Gas費占比達到了39.99%,造成了以太坊網絡的持續擁堵。[2019/9/23]
特別值得一提的是,有一個名為Indexer的鏈下服務,可以聚合來自maker和taker的交易意圖,然后為他們提供匹配的服務。特別是,一旦taker找到了合適的maker,他們就會開始進行場外價格的談判。一旦達成協議,訂單將由Taker通過SwapProtocol在鏈上進行填充和資產交割。
聲音 | FairX創始人:星巴克與微軟合作的區塊鏈項目令人困惑:據Cointelegraph消息,針對星巴克將實施微軟的Azure區塊鏈服務來追蹤咖啡生產的消息,金融服務公司FairX首席執行官、前IBM區塊鏈分公司首席技術官Michael Dowling表示,在星巴克看來,微軟的區塊鏈平臺可能比Quorum更有聲望。然而,Dowling不確定星巴克為什么首先需要一個區塊鏈。他表示,這可能是一種潛在的有效方法,可以跟蹤哪個農民在采購客戶“投票”選出的最佳豆類,但他想不出區塊鏈技術可以實現的任何其他實際應用。“說實話,正如媒體所解釋的那樣,我覺得整個項目非常令人困惑,我不確定他們在試圖解決什么問題。為什么需要去中心化?為什么這個程序——我想是為咖啡豆投票的人——需要應用公鑰/私鑰和分布式數據庫?”[2019/5/13]
在AirSwap智能合約中,taker將訂單上鏈及資產交割的過程在AirSwapswap(Types.Ordercalldata_order)函數之中,這一函數實現如下所示:
1)驗證訂單有效性
訂單order參數有效性檢查,這些信息均由taker上鏈的時候指定的,也意味著這些信息都可以由taker篡改,具體包含:
1.訂單還在有效期內;
2.訂單還沒有被其它的taker吃單;
3.訂單還沒有被取消;
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
AOFEX國慶7日嘉年華 活動時間: 2019年10月1日16:00:00至2019年10月7日16:00:00 活動一: 持倉BTC,ETH,搶1,000.
1900/1/1 0:00:00尊敬的用戶: 為了感謝社區用戶的支持,PHTM聯合BiKi平臺舉辦了,詳情如下:活動時間:2019/10/0900:00-2019/10/1524:00 活動規則: 1、活動期間.
1900/1/1 0:00:00尊敬的幣權BQB用戶: BQB上線CNB,并開放CNB/USDT具體時間如下:CNB交易開啟時間:9月28日16:00Cybernerve協議的目標是為用戶提供各種個性化人工智能服務.
1900/1/1 0:00:00尊敬的用戶: JADE項目方于10月8日從二級市場回購100萬枚JADE進行銷毀,第一次回購共花費442,857USDT(不含手續費),平均回購價格0.4428USDT.
1900/1/1 0:00:00尊敬的用戶: BiKi平臺即將開放EPC的充值、提現,并開放EPC/USDT交易對,具體時間如下:1、開放充值時間:10月15日15:00;2、開放提現時間:10月15日15:00;3、開放交易.
1900/1/1 0:00:00尊敬的ZDCoin用戶:ZDCoin布道者福利第一彈規則如下: 高級布道者福利: 高級布道者A邀請用戶B成為一年期高級布道者,AB用戶同時獲得50USDT紅包.
1900/1/1 0:00:00