2019年09月13日AirSwap團隊公布了一個AirSwap智能合約中存在致命的漏洞,這一漏洞可以使得用戶的資產在某些情況下被對手惡意吃單『偷盜』,PeckShield安全人員獨立分析了該漏洞,并與AirSwap團隊溝通了細節和修復方案。
漏洞影響概述
PeckShield安全人員深入分析AirSwap智能合約后發現,這一漏洞只對最近上線的Wrapper有影響,AirSwap團隊在發現該問題后第一時間下線當前合約,并將AirSwap?網站回退到之前使用的合約,從合約上線到問題修復整個過程僅持續了24小時,可見AirSwap團隊對于合約安全的重視程度之高。
PeckShield安全人員獨立分析了漏洞細節,并與AirSwap團隊溝通細節和修復的方案,同時將該漏洞命名為“?ItchySwap”。
PeckShield在此提醒,由于這一漏洞可使用戶的資產被攻擊者惡意偷盜,受此次影響的賬號一共有18個,其中有部分賬號有數萬至數十萬美元的資產,這些賬號需要盡快完成升級,或與AirSwap團隊聯系。
Starkware開源Cairo編程語言的最新版本:金色財經報道,區塊鏈開發公司 Starkware 開源了其編程語言 Cairo 的新版本,Cairo 支持 Starkware 的Layer 2網絡 StarkNet 和 StarkEx。根據一份聲明,這是該語言自創建以來的第一個主要版本,新版本將很快被引入 StarkNet。[2022/11/25 8:06:15]
ItchySwap?漏洞詳解
一、AirSwap合約
在分析之前,為方便起見,我們先定義幾個概念:
1.maker:出售資產的一方;
2.taker:購買資產的一方;
3.order:maker與taker之間發生資產交割的訂單;
4.Indexer:AirSwap中的訂單簿,匯聚了當前正在出售及需要購買的資產信息。
下圖說明了maker、taker和Indexer之間的交互流程:
Fairyproof:有攻擊者冒充Cryptovoxel官方進行釣魚攻擊盜取NFT:金色財經報道,據Fairyproof監測,3月28日晚22:00左右,有攻擊者冒充Cryptovoxel官方進行釣魚攻擊,誘導用戶進行授權,偷走了多個NFT(包括CryptovoxelsParcelToken,ArtBlocks:BLOCKSToken,MutantApeYachtClub:MAYCToken等),然后在opensea上出售。攻擊者地址為:0x794ca38bc1e15e528a7991ce25707a25ad71b675。Fariyproof會進一步監控相應地址活動情況,并提醒用戶批準交易時仔細甄別,不要輕易給予授權。[2022/3/29 14:23:17]
AirSwap是一個基于Ethereum的點對點去中心化交易所,它集成了SwapProtocol,在其中作為一個自動托管服務,允許交易的雙方在以太坊上安全地交易任何資產。與許多去中心化交易所不同,AirSwap雖然沒有對資金進行托管控制,但仍然有一個用于匹配目的的集中式訂單簿,它實現了一個用于交易和訂單匹配的完全對等模型。
FairySwap平臺權益憑證FAIRY計劃于3月29日進行首次減半:官方消息,FairySwap將于2022年3月29日進行首次減產,距今約4天,減產規模為50%,減產執行后,日產量獎勵將從50,000 FAIRY下降到25,000 FAIRY,現產出總量為 465,253.037 FAIRY。據悉,FAIRY本次減半后將間隔14天進行第二次減半。
FairySwap是構建在Findora上的首個自動做市商(AMM)去中心化交易所(DEX),是提供鏈上保密性和可編程隱私的新型區塊鏈。利用Findora的EVM,為用戶提供與以太坊和幣安智能鏈等L1鏈的極速跨鏈交換。[2022/3/25 14:17:47]
特別值得一提的是,有一個名為Indexer的鏈下服務,可以聚合來自maker和taker的交易意圖,然后為他們提供匹配的服務。特別是,一旦taker找到了合適的maker,他們就會開始進行場外價格的談判。一旦達成協議,訂單將由Taker通過SwapProtocol在鏈上進行填充和資產交割。
在AirSwap智能合約中,taker將訂單上鏈及資產交割的過程在AirSwapswap(Types.Ordercalldata_order)函數之中,這一函數實現如下所示:
Kraken允許用戶質押KSM以獲得AIR獎勵:金色財經報道,加密貨幣交易所Kraken支持Kusama平行鏈Altair,用戶將能夠質押Kusama(KSM)以獲得Altair的原生代幣AIR。據悉,Altair上個月由Polkadot驅動的Centrifuge推出,用于實現現實世界資產的代幣化。[2021/6/24 0:01:36]
1)驗證訂單有效性
訂單order參數有效性檢查,這些信息均由taker上鏈的時候指定的,也意味著這些信息都可以由taker篡改,具體包含:
1.訂單還在有效期內;
2.訂單還沒有被其它的taker吃單;
3.訂單還沒有被取消;
4.訂單的nonce大于最小值;
5.設置訂單狀態為TAKEN狀態。
2)驗證taker信息
Fair.Game團隊將在二級市場回購2000萬枚FAIR:據Fair.Game官網公告稱,鑒于近期的市場形勢,Fair.Game團隊決定推出一輪二級市場回購。團隊將在未來3個月期間(2月15日至5月15日),從OKEx和big.one回購2000萬枚FAIR。回購后,這筆專項資金將用于市場推廣或回饋用戶。[2018/2/7]
確立有效的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:AIRSWAPAirSwapFAIBear BillionaireKingdomswap (New)DFAI幣
2019年11月8-9日,由巴比特主辦的第二屆世界區塊鏈大會·烏鎮將正式開幕。目前,imToken創始人何斌已確認出席大會.
1900/1/1 0:00:0001 灰度Grayscale報告:三季度投資流入破紀錄,機構投資者興趣增加據Cointelegraph報道,灰度2019年第三季度全部投資流入總額為2.54億美金.
1900/1/1 0:00:00VC資金作為創投市場熱點的風向標,區塊鏈項目的融資數量與融資金額在一定程度上可被視為反映整個行業活躍程度的重要參考因素.
1900/1/1 0:00:00近期,比特幣幣價持續下跌,從左側上一個高點的12000美元附近跌到近日的8100美元左右,54天跌幅約為32.5%。另一方面,全網算力也出現短期下降.
1900/1/1 0:00:00昨天NuCypher宣布了新一輪的融資,投資機構璀璨奪目,兩輪融資總共1500萬美元,總估值達到1.3億美元。個人覺得這個估值真的不貴,甚至太便宜了些。我反倒是希望NuCypher再融一輪.
1900/1/1 0:00:00摘要:今日,比特幣向上插針后略有回落,山寨幣聯動比特幣為主。短時市場多空膠著,延續區間震蕩為主。目前比特幣已經跌至200日均線,大概率是階段性調整的底部,但煎熬的行情或將持續一段時間.
1900/1/1 0:00:00