2022年1月18日,我們的異常交易監測系統檢測到了針對AnySwap項目的攻擊。由于anySwapOutUnderlyingWithPermit()函數未能正確地實現相關校驗機制,導致用戶授權給該項目的token可被攻擊者取出,關于漏洞細節和相關處置詳情可參考項目方的官方說明。盡管項目方嘗試了多種方法試圖提醒受影響的用戶,仍然有很多用戶未能及時響應,攻擊者得以持續地實施攻擊獲利。
由于攻擊持續進行,為了保護潛在的受害者,BlockSec團隊決定采取應急響應措施。本次救援特別針對以太坊上受到影響的賬戶,與之關聯的項目方合約地址為0x6b7a87899490EcE95443e979cA9485CBE7E71522,我們將相關的賬戶資金轉移到我們專門設立的多簽白帽賬戶中(0xd186540FbCc460f6a3A9e705DC6d2406cBcc1C47)。為了保證行動的透明性,我們將相關行動計劃在pdf文件中做了說明,并立即將文件hash向社區公開。這樣既能夠保證將我們的行為與攻擊者行為做區分,也不會泄漏任何細節。我們的救援行動從2022年1月21日正式開始,到2022年3月11日正式結束,相關的公開聲明分別如圖2、圖3所示。
應急救援并非是一件容易達成的任務,有各種技術和非技術方面的挑戰需要克服。由于行動已經結束,我們得以重新復盤整個過程,并將相關心得與體會與社區分享。我們希望也相信這樣的分享對社區,以及DeFi生態的安全會有所幫助。簡要總結
數據:Arbitrum One鏈上交易量突破3億筆,獨立地址已近90萬個:金色財經報道,據Dune Analytics數據顯示,Arbitrum One鏈上交易量突破3億筆,獨立地址已近90萬個,本文撰寫時總交易量達到311,851,012筆,獨立地址數為8,977,137個,其中橋接交易量超100萬筆,橋接存儲金額為2,731,913 ETH,按照當前價格計算超過50億滅源。[2023/8/7 21:28:44]
不同陣營的參與者對Flashbots的廣泛使用產生了激烈競爭,包括白帽和攻擊者兩個群體之間,乃至各自群體內部,向Flashbots支付的費用也隨著時間的推移迅速增長。Flashbots不是萬靈丹,并非總是有效。有些攻擊者轉而使用mempool,通過巧妙的策略安排了攻擊交易,成功實施了攻擊。某些攻擊者與項目方達成協議,歸還部分攻擊所得,保留部分攻擊所得作為獎賞,得以成功洗白。這種現象不是第一次出現,其激勵的公平性也在社區內部引起了很大的爭議和討論。從透明性考量,白帽可以在不泄露敏感信息的同時向社區公開宣告自己的行為,這樣取信于社區的方式在實踐中表現良好。社區的各方力量可以攜手合作,使得救援行動更為迅速和有效。比如可以在白帽之間開展協同,減少或避免無效競爭。以下我們將從四個方面展開。首先是對本次事件的總體性回顧,而后介紹我們實施救援的方法以及在整個過程中面臨的挑戰,接下來討論我們在本次行動中的一些心得和體會,最后提出一些想法和建議。0x1攻擊和救援情況概覽
0x1.1總體結果
在我們觀察范圍內,總體的攻擊和救援情況如表1所示,按照參與攻擊或救援的以太坊賬戶地址統計。具體來說,一個賬戶地址或者是救援賬戶,或者是攻擊賬戶,而類型是根據Etherscan.io的標簽和資金轉移地址來確定的。此外,在攻擊和救援的過程中,白帽和攻擊者均大量使用了Flashbots來發送交易,因而需要額外向礦工支付費用,我們稱之為Flashbots費用。總體而言,有9個救援賬戶保護了483.027693ETH,其中需扣除支付給Flashbots費用為295.970554ETH;有21個攻擊賬戶獲利1433.092224ETH,其中需扣除給Flashbots的費用為148.903707ETH。值得注意的是,由于存在一些復雜的交互情況,表格中列出的只是大概的統計。
ZigZag推出跨鏈交易工具Zap:7月10日消息,zkSync上DEX ZigZag推出跨鏈交易工具Zap。Zap支持EVM鏈與非EVM鏈之間的跨鏈交易,并允許開發者基于Zap進行再次開發。ZigZag表示,Zap將很快支持比特幣閃電網絡,用戶可以在單筆中將以太坊直接交易為比特幣或SOL等非EVM鏈上資產。[2023/7/10 10:46:19]
0x1.2Flashbots費用的變化趨勢
如前所述,白帽們需要和攻擊者競爭發送Flashbots交易來實施救援,支付給Flashbots的費用的變化趨勢可以反映競爭的激烈程度。為了對其作定量的評估,我們按照交易區塊,對攻擊和救援交易分別統計了各自Flashbots費用的占比。圖4給出了我們觀察范圍內的占比趨勢。剛開始的一些攻擊交易的Flashbots費用為0,表示在那段時間攻擊者尚未使用Flashbots,在早期其他人對漏洞尚未有了解,因此競爭并不激烈。在高度為14029765的區塊中,出現了第一筆使用Flashbots的攻擊交易,Flashbots費用占了獲利的10%。在這之后,Flashbots費用占比隨著參與競爭者數量的增加而快速上升,比如在區塊高度14072385時Flashbots費用占比達到80%,隨后在區塊高度14129449費用占比即達到91%。簡而言之,這樣的趨勢表明這業已成為由于Flashbots上鏈權之爭而導致的費用軍備競賽。
0x2我們實施的救援行動和面臨的挑戰
GitHub將OpenAI聊天功能添加到編碼工具中:金色財經報道,微軟旗下代碼托管平臺GitHub使用OpenAI的語言生成工具創建了首批被廣泛部署的程序之一,該應用程序名為Copilot,它幫助軟件開發人員編寫計算機代碼。現在GitHub正在為該應用增加聊天和語音功能,讓程序員可以詢問如何完成特定的編碼任務。周三公布的新版本被稱為Copilot X,GitHub CEO表示,(新加的)聊天窗口可以解釋代碼段的用途,創建測試代碼的方法,并提出錯誤修復建議。開發人員還可以用他們的聲音給出指令或提出問題。他還表示,開發人員可以注冊一個等待列表來預覽新服務。他希望該軟件可以用于教育。(金十)[2023/3/22 13:20:07]
0x2.1我們如何開展救援行動?
救援的基本思路是簡單而直接的。具體而言,我們需要監控一批潛在的受害者賬戶,這些賬戶已將WETH授權給有問題的項目方合約使用。當有任何的WETH轉賬進入該賬戶,我們利用合約漏洞直接將其轉出至我們的白帽多簽錢包。這里的關鍵是要滿足以下三個要求:R1:有效地定位轉賬給受害者賬戶的交易,為方便敘述,以下我們將這些交易命名為轉賬交易。R2:正確地構造交易實施拯救,為方便敘述,以下我們將這些交易命名為拯救交易。R3:成功地搶跑攻擊者交易,為方便敘述,以下我們將這些交易命名為攻擊交易。R1和R2對我們而言并不構成阻礙。因為我們已經構建了一套內部系統來監控mempool,得以及時定位到轉賬交易;與此同時,我們也研發了一套工具用以自動化地構造拯救交易。然而R3仍然是一個挑戰。雖然在理論上Flashbots可被用來贏得搶跑,然而這并不是一個容易達成的目標。首先,攻擊者也可能采用Flashbots,作為一個采用費用競拍模式的系統,成功率取決于費用的高低,而費用設置的策略需要額外考量。其次,由于上述競拍模式導致的競爭存在,使用Flashbots并不總是一個好的選擇。因此,我們也使用mempool發送普通交易。為了確保成功,交易在mempool中的位置和順序是關鍵因素,其設置策略也需納入考量。最后,我們也與其它的一些“白帽”產生了競爭,而在某些情況下這些所謂“白帽”的行為其實是較為可疑的。0x2.2我們卷入的競爭
華爾街日報記者:美聯儲有推遲放緩加息步伐的風險:10月14日消息,華爾街日報首席經濟記者,有新美聯儲通訊社之稱的Nick Timiraos表示,美國9月CPI數據已將美聯儲在11月2日加息75個基點板上釘釘。
他在報告中寫道,這份通脹報告還增加了一種風險,在下月加息75個基點之后,官員們將推遲放緩加息步伐,或者發出信號,表示他們可能在明年初將利率提高到高于政策制定者和投資者此前預期的水平。
注:市場目前預期美聯儲11月2日加息100個基點的幾率為17%,對終端利率目前的定價為4.91%,這意味著聯邦基金利率有可能在明年Q1突破4.75%-5.00%區間。(金十)[2022/10/14 14:27:28]
總體而言,我們嘗試保護171個獨立的潛在受害者賬戶。其中有10個通過及時撤銷了授權做了自我保護,而在余下的161個賬戶中,由于前述各類競爭的存在,我們僅成功救援了14個。我們將失敗的情況總結在下面的表格中,涉及3個救援賬戶和16個攻擊賬戶。
從這些失敗的案例中,我們也總結了一些經驗教訓,以下將逐一與大家分享。0x3我們的經驗教訓
0x3.1如何確定Flashbots費用?
在整個救援過程中,我們先后被12個同樣利用Flashbots的競爭者擊敗,包括2個救援賬戶和10個攻擊賬戶。我們設置Flashbots費用的策略相對而言是較為保守的。具體而言,為了保護受害者的利益,我們總是傾向于盡可能較少地設置Flashbots費用。因此除非已經有成功地使用Flashbots的攻擊交易出現,我們并不會主動地使用Flashbots或增加Flashbots費用。比如一個成功的攻擊交易設置的Flashbots費用比例為10%,我們可能會在下一次救援交易中將之設置為11%。但是,結果證明這樣的策略并不太成功,攻擊者通常會采用較為激進的策略設置費用以贏得競爭,例如:圖5展示了區塊高度為14071986的一筆攻擊交易,攻擊者0x5738**將比例設置為70%。圖6展示了區塊高度為14072255的一筆攻擊交易,白帽0x14ca**將比例設置為79%。圖7展示了區塊高度為14072385的一筆攻擊交易,白帽0x14ca**將比例設置為80%。圖8展示了區塊高度為14072417的一筆攻擊交易,白帽0x9117**將比例設置為81%。圖9展示了區塊高度為14073395的一筆攻擊交易,攻擊者0x5738**將比例設置為86%。
USDT活躍地址數量達到1個月高點:金色財經報道,Glassnode數據顯示,USDT活躍地址數量(7d MA)為3580.429個,達到1個月高點。[2022/9/23 7:16:18]
簡而言之,這似乎是一個零和游戲,可以通過建模來探索各參與方的行為模式。但在具體實踐中這是一項頗具挑戰的任務:一方面需要盡可能降低代價,另一方面要找到較優/最優的策略贏得競爭。0x3.2如何在mempool中正確地安排交易位置?
目前看起來救援成功與否依賴于Flashbots費用的軍備競賽。然而我們確實發現,由于多個參與方引發的激烈競爭的存在,使得Flashbots并非總是有效,這里的激烈競爭來自于和攻擊/救援無關的其它交易發送方,比如套利等。在這種情況下,即便某個攻擊交易所設置的最高Flashbots費用,都無法保證贏得Flashbots競爭。另一個可行的方法是使用通過mempool發送正常交易,如果交易被安排在合適的位置,也有可能實現目標。這里合適的位置指的是攻擊/救援交易位于轉賬交易之后,且非常接近轉賬交易。事實上,攻擊者0x48e9**運用這樣的策略成功的收割了312.014657ETH,且并沒有付出任何Flashbots費用的成本。以下四幅圖展示了該攻擊者獲利最高的兩次攻擊:圖10和圖11分別展示了在區塊高度14051020,受害者0x3acb**的轉賬交易位于65,而攻擊交易位于66。圖12和圖13分別展示了在區塊高度14052155,受害者0xbea9**的轉賬交易位于161,而攻擊交易位于164。
顯然,這樣巧妙的策略兼具實用性和啟發性,值得關注和學習。0x4一些其它的思考
0x4.1如何區分白帽和攻擊者?
識別白帽及其行為可能并不像一般人認為的那樣簡單直白。舉例來說,賬戶地址0xfa27被Etherscan.io標記為白帽:MultichainExploiter4(Whitehat)。然而在一開始的時候,這個地址被標記為攻擊者:MultichainExploiter4。這里的變化來自于項目方和攻擊者的互動,在若干輪協商之后,攻擊者同意保留50ETH的獲利作為獎賞,返還其它獲利:在交易0x3c3d**中,項目方聯系該攻擊者:
在交易0xd360**中,攻擊者回復:
在交易0x354f**中,項目方在受到返還的資金后表示感謝:
毫無疑問,該攻擊者通過這樣的方式不僅獲利也成功洗白了自己。這種現象不是第一次出現,其激勵的公平性也在社區內部引起了很大的爭議和討論。0x4.2白帽之間的競爭
社區有必要建立一個溝通協調機制來降低/避免白帽之間的競爭。一方面,這樣的競爭會浪費救援資源。比如在本次救援中,我們和其它三個白帽試圖同時保護54個受害者。另一方面,這樣的競爭也提高了救援成本。這些競爭會不可避免地加劇Flashbots費用比例的提高。如之前的圖7和圖8所示,不同白帽先后設置了80%和81%的Flashbots費用比例。然而可以想見的是,如果沒有相應的協調機制,白帽們是無法放棄/停止這樣的競爭的。0x4.3如何更好地開展救援行動?
一方面,從透明性考量,白帽可以在不泄露敏感信息的同時向社區公開宣告自己的行為,這樣取信于社區的方式在實踐中表現良好。與針對某個特別攻擊的阻斷任務相比,這樣的救援行動通常是拉鋸戰,白帽和攻擊者之間會在一段時間內交手多次,因此會有充足的時間做宣告。當然,在剛開始行動的時候,漏洞相關的細節信息并不需要披露,以免造成不必要的危害;在行動結束后,這些信息應該向社區充分公開。另一方面,社區的各方力量可以攜手合作,使得救援行動更為迅速和有效,包括但不限于:Flashbots/Miners向認證過且可信的白帽提供綠色通道,既可用于搶跑攻擊交易,也能避免白帽間的競爭。被攻擊的項目方負責Flashbots費用的成本。項目方采用更為方便和快捷的機制及時向用戶預警。項目方在代碼中采用一些必要的應急措施。
我們最近剛剛宣布以獨角獸估值籌集了6942萬美元的B輪融資。2018年,當我們在挪威奧斯陸創建Dune時,MatsOlsen和我作為首次創業的人開始從加密邊緣行業的底層起步.
1900/1/1 0:00:002022年3月4日,Tether首席技術官PaoloArdoino在個人推特號上宣布瑞士南部城市盧加諾計劃將接受BTC、USDT和LVGA作為“事實”法幣,在該城市.
1900/1/1 0:00:002月10日,EOS網絡基金會領導人YvesLaRose更新推文表示,EOS網絡基金會正在采取所有可能的法律手段,要求Block.one歸還其在EOS眾籌階段所募得的41億美元.
1900/1/1 0:00:00日前Stargate跨鏈橋的底層協議LayerZero更新了默認的交易驗證合約,經Cobo區塊鏈安全團隊分析,此次更新修復了之前版本中存在的嚴重漏洞.
1900/1/1 0:00:00Odaily星球日報譯者|念銀思唐 摘要: -使用高價值NFT作為抵押品的借貸賽道正受到越來越多的關注。-104個CryptoPunksNFT的所有者通過抵押借貸獲得了830萬美元.
1900/1/1 0:00:00在安徒生1837年撰寫的童話《國王的新裝》中,講述了一位皇帝被兩個騙子愚弄,穿上了一件看不見的——實際上根本不存在的新裝,赤裸裸地舉行游行大典的故事.
1900/1/1 0:00:00