2019年09月13日AirSwap團隊公布了一個AirSwap智能合約中存在致命的漏洞,這一漏洞可以使得用戶的資產在某些情況下被對手惡意吃單『偷盜』,PeckShield安全人員獨立分析了該漏洞,并與AirSwap團隊溝通了細節和修復方案。
漏洞影響概述
PeckShield安全人員深入分析AirSwap智能合約后發現,這一漏洞只對最近上線的Wrapper有影響,AirSwap團隊在發現該問題后第一時間下線當前合約,并將AirSwap網站回退到之前使用的合約,從合約上線到問題修復整個過程僅持續了24小時,可見AirSwap團隊對于合約安全的重視程度之高。
PeckShield安全人員獨立分析了漏洞細節,并與AirSwap團隊溝通細節和修復的方案,同時將該漏洞命名為“ItchySwap”。
PeckShield在此提醒,由于這一漏洞可使用戶的資產被攻擊者惡意偷盜,受此次影響的賬號一共有18個,其中有部分賬號有數萬至數十萬美元的資產,這些賬號需要盡快完成升級,或與AirSwap團隊聯系。
歐盟委員Mairead McGuinness再次呼吁對加密貨幣進行全球監管:5月2日消息,歐盟負責金融服務、金融穩定和資本市場聯盟委員Mairead McGuinness發文呼吁達成新的“加密貨幣全球(監管)共識”,以保護投資者并限制比特幣挖礦對環境的影響。
McGuinness表示,她希望確保“沒有任何產品不受監管”,監管者應在全球范圍內收集和交換信息。她還警告稱,加密貨幣存在被用于規避制裁、影響金融穩定性等風險。她相信,歐盟和美國可以共同領導全球監管加密貨幣,可以共同推動金融創新,同時保護消費者并維護金融穩定。
據此前報道,今年2月,Mairead McGuinness表示,歐盟對加密資產使用的增長并不擔心,但全球需要對該領域進行監管。McGuinness警告說,“如果我們不認真對待”,任何新的金融工具都可能導致巨大的問題。(CoinDesk)[2022/5/3 2:46:12]
ItchySwap漏洞詳解
動態 | 加密企業Fairx因缺乏資金宣布倒閉:據ambcrypto報道,加密企業Fairx因缺乏資金在推特以個人名義宣布結束。[2019/7/21]
一、AirSwap合約
在分析之前,為方便起見,我們先定義幾個概念:
1.maker:出售資產的一方;
2.taker:購買資產的一方;
3.order:maker與taker之間發生資產交割的訂單;
4.Indexer:AirSwap中的訂單簿,匯聚了當前正在出售及需要購買的資產信息。
下圖說明了maker、taker和Indexer之間的交互流程:
AirSwap是一個基于Ethereum的點對點去中心化交易所,它集成了SwapProtocol,在其中作為一個自動托管服務,允許交易的雙方在以太坊上安全地交易任何資產。與許多去中心化交易所不同,AirSwap雖然沒有對資金進行托管控制,但仍然有一個用于匹配目的的集中式訂單簿,它實現了一個用于交易和訂單匹配的完全對等模型。
聲音 | 美國企業家:Polyairdrop為虛假網站,POLY沒有空投:美國企業家以及數字貨幣投資者Michael Terpin今日發推表示,明天沒有POLY的空投。該假冒網站(polyairdrop)是一個騙局,并會竊取你的ETH。請保護好個人私鑰。[2018/12/10]
特別值得一提的是,有一個名為Indexer的鏈下服務,可以聚合來自maker和taker的交易意圖,然后為他們提供匹配的服務。特別是,一旦taker找到了合適的maker,他們就會開始進行場外價格的談判。一旦達成協議,訂單將由Taker通過SwapProtocol在鏈上進行填充和資產交割。
在AirSwap智能合約中,taker將訂單上鏈及資產交割的過程在AirSwapswap(Types.Ordercalldata_order)函數之中,這一函數實現如下所示:
1)驗證訂單有效性
動態 | 美國在線旅行社CheapAir拒絕支付網絡暴徒BTC:據CCN消息,在線旅行社CheapAir的社交媒體團隊已經拒絕了黑客的勒索要求。CheapAir的社交媒體團隊在一篇博客文章中寫道:“付錢給這些網絡暴徒是不可取的。”“我們會提前讓你知道這件事,所以,如果你在我們的任何賬戶上看到不尋常的社交媒體活動或負面帖子,你就會全面了解事情的發展。”根據該公司Twitter賬戶的帖子,誹謗活動已經開始。到目前為止大多數負面推文似乎都是由機器人賬戶生成的。據金色財經此前報道,CheapAir收到威脅,要求支付10,000美元的比特幣或約1.4BTC的贖金。威脅表示,如果不這樣做,將在社交媒體上對CheapAir進行誹謗,破壞他們與客戶的關系。[2018/8/30]
訂單order參數有效性檢查,這些信息均由taker上鏈的時候指定的,也意味著這些信息都可以由taker篡改,具體包含:
比特幣現金發布推特稱將進入南美匯款公司的AirTM:比特幣現金官方發布推特,南美匯款公司AirTM稱將在本月添加加密貨幣的存取款,下個月增加加密余額數據統計功能,BCH將被列入其中。[2018/1/8]
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
BTC:復盤:盤面晚間下挫,多次出現看空k線,21點出現帶量下行,22點打出螺旋k在經過一段博弈后多軍再次敗退,被空軍牢牢壓制,直到凌晨才開始放量反撲,不過好景不長.
1900/1/1 0:00:00尊敬的LOEx用戶:BBSE更名為MOVE,于新加坡時間9月29日16:30開放MOVE充提幣以及開放MOVE/USDT交易市場.
1900/1/1 0:00:001、老鷹觀點 今天是長假的最后一天,自10月1日后整個幣圈的情況完全可以用一潭死水來形容,市場交投清談,比特幣橫盤調整,群消息大幅下滑......那么假期過后能不能得到改變,主力是會如期上班.
1900/1/1 0:00:00尊敬的用戶: 安全是幣鉆的中樞,而優質的數字資產是我們安全保障的前提和根本。以優質數字資產交易立身的幣鉆,秉承為用戶提供極致體驗的原則,持續跟蹤觀察項目,并根據存在或潛在的隱患大小,對項目進行警.
1900/1/1 0:00:002019年09月30日18:00:00到2019年10月07日18:00:00為慶祝V-ID(VIDT)上線KuCoin,KuCoin聯合V-ID項目方對KuCoin用戶壕送400.
1900/1/1 0:00:00尊敬的LOEx用戶:YYSJ自9月25日首發上線以來備受用戶關注,項目平臺交易熱度連續上漲;用戶的認可是我們最大的動力,為了滿足用戶更為全面的交易需求,經YYSJ項目方商議,特新增LCNY交易.
1900/1/1 0:00:00