比特幣行情 比特幣行情
Ctrl+D 比特幣行情
ads
首頁 > 火必 > Info

ENS:白帽黑客samczsun:針對NFT資產的攻擊會越來越頻繁

Author:

Time:1900/1/1 0:00:00

注:原文作者是擁有“審計上帝”之稱的白帽黑客samczsun,同時他也是Paradigm的研究合伙人,其最近出手拯救了BitDAO MISO荷蘭拍賣資金池中的3.5億美元資產,而在這篇文章中,他提醒了關于NFT代幣標準的潛在安全風險,他還預測稱,隨著ERC-721和ERC-1155代幣標準變得越來越流行,針對NFT的攻擊很可能會越來越頻繁。

如果你從事軟件工程方面的工作,很可能你聽說過至少一條軟件工程原則。雖然我不主張嚴格遵守每一條原則,但有一些確實是值得關注的。

我今天要講的就是最小驚訝原則,它有一個奇特的名字,但卻是一個非常簡單的想法。它所說的是,當呈現聲稱要做某件事的代碼時,大多數用戶都會假設它是如何完成這件事的。因此,作為開發人員,你的工作是編寫符合這些假設的代碼,這樣你的用戶就不會感到意外。

這是一個很好的原則,因為開發人員喜歡對事物進行假設。如果你導出一個名為calculateScore(GameState) 的函數,很多人就會假設該函數只會從游戲狀態中讀取。如果你還改變了游戲狀態,你會使得很多人面臨困惑的狀態,他們試圖弄清楚為什么他們的游戲狀態會隨機被破壞。即使你把它放在文檔中,仍然不能保證人們會看到它,所以最好首先確保你的代碼不會令人驚訝。

Aurora向白帽黑客獎勵100萬美元:9月29日消息,Aurora向一名通過Immunefi報告錯誤的白帽黑客獎勵100萬美元,以Aurora代幣的形式支付。

據悉,白帽黑客在6月10日通過Immunefi向Aurora提交了一個嚴重漏洞,目前該漏洞已修復。[2022/9/29 6:02:07]

“6小時的調試工作,可以為你們節省5分鐘的文檔閱讀時間。”

早在 2018 年初,當ERC-721 標準被起草出來時,有人就提出了實施轉賬安全性?的建議,以確保代幣不會被卡在不用于處理代幣的接受者合約中。為此,提案作者修改了transfer函數的行為,以檢查接收方是否能夠支持代幣轉賬。他們還引入了unsafeTransfer函數,如果發送者愿意,該函數將繞過這個檢查。

然而,由于擔心向后兼容性,這個函數在隨后的提交中被重命名了。這使得ERC-20 和 ERC-721 代幣的transfer函數表現相同。但是,現在需要將接收方檢查轉移到其他地方。因此,標準作者就引入了safe類函數:safeTransfer 以及 safeTransferFrom。

Nomad宣布向償還資金的白帽黑客獎勵NFT:8月24日消息,跨鏈互操作性協議Nomad推特發文稱,其與Metagame合作創建了可賺取收益的白帽黑客NFT,用于獎勵已向其償還資金的白帽黑客。Nomad稱要獲得此NFT的白帽黑客,必須已將90%以上的被黑資金退回到以太坊上的官方恢復錢包。尚未償還資金的白帽黑客仍有機會參與,Metagame會自動檢查鏈上交易歷史已確認資金償還情況。認領白帽黑客NFT后,前50位白帽黑客也可以認領100美元FF代幣。

此前8月2日消息,Nomad遭遇黑客攻擊,其代幣橋內的1.9億美元資金幾乎全部耗盡。經查看官方恢復錢包地址,目前Nomad已收回3256萬美元資金。[2022/8/24 12:44:51]

這是一個關于正當性問題的解決方案,因為有許多 ERC-20 代幣被意外轉移到從未期望收到代幣的合約的例子(一個特別常見的錯誤是將代幣轉移到代幣合約中,將其永久鎖定)。而在起草 ERC-1155 標準時,提案作者從ERC-721標準汲取了靈感,不僅在轉賬時,而且在鑄造(mint)也納入了接收方檢查,這一點也不足為奇。

Poly Network:希望白帽黑客作為Poly Network的重要治理者為協議的安全做出貢獻:Poly Network發表《寫在Poly Network主網上線一周年的一封公開信》,這封信是寫給Poly Network的攻擊者(白帽黑客)的。信中提到:我們非常希望你能參與到Poly Network的去中心化進程中來,作為Poly Network未來一個重要的治理者為協議的安全做出貢獻。[2021/8/18 22:21:56]

在接下來的幾年里,這些標準大多處于休眠狀態,而 ERC-20代幣標準保持了它的流行狀態,而最近gas成本的飆升,以及社區對NFT興趣的增強,自然而然導致開發者越來越多地使用ERC-721和ERC-1155代幣標準。有了這些新的興趣,我們應該慶幸這些標準的設計考慮了安全性,對嗎?

Ok,但對于轉帳和鑄造來說,安全意味著什么呢?不同的當事人對安全有不同的解釋。對于開發人員來說,一個安全函數可能意味著它不包含任何bug或引入額外的安全問題。而對于用戶來說,這可能意味著它包含額外的護欄,以保護他們不被意外射中自己的腳。

因發現重大漏洞 ArmorFi向一白帽黑客支付150萬美元賞金:2月5日消息,DeFi保險項目ArmorFi已向白帽黑客Alexander Schlindwein支付了150萬美元的漏洞賞金。因為這名黑客發現了該協議的一個“關鍵漏洞”,且可能會導致該公司所有的承保資金被耗盡。(CoinDesk)[2021/2/5 19:00:56]

事實證明,在這種情況下,這些函數更多的是后者,而較少會是前者。這是特別令人遺憾的,因為在transfer和safeTransfer函數之間進行選擇時,你為什么不選擇安全的那個函數呢?名字都體現出來了!

好吧,其中的一個原因可能是我們的老朋友reentrancy(可重入性),或者我一直在努力將其重命名為:不安全的外部調用。回想一下,如果接收方是攻擊者控制的,則任何外部調用都可能不安全,因為攻擊者可能會導致你的合約轉換為未定義狀態。根據設計,這些“安全”函數執行對代幣接收者的外部調用,通常在鑄造或轉移期間由發送者控制。換句話說,這實際上是不安全外部調用的教科書示例。

但是,你可能會問自己,如果允許接收方合約拒絕他們無法處理的轉賬,那最壞的后果是什么?好吧,讓我通過兩個案例研究來回答這個問題。

白帽黑客在上個月對Coincheck交換的調查中起到了重要作用:社區成員幫助追蹤了從東京交易所偷來的5.38億美元NEM加密貨幣。道德黑客協助當局,并鼓勵其他人參與提供援助。JK17和Hamabe在Twitter上的一頂著名的白色帽子,成功地識別出被盜的錢是在入侵后不久被發送的。這些信息是與NEM基金會共享的,這些賬戶已經被標記出來,目前正在受到監控。這些資金現在已經被轉移到400多個賬戶中,其中一些被無辜的持有者所擁有,這似乎是一種混淆追蹤者的嘗試。[2018/2/22]

Hashmasks是一個供應有限的 NFT頭像項目,用戶每次交易最多可以購買 20 個mask NFT(盡管它們已經售罄數月了)。下面是購買mask的函數:

你可能覺得這個函數看起來非常合理。然而,正如你可能已經預料到的,在 _safeMint 調用中隱藏著一些險惡的東西。讓我們來看看。

為了安全性,這個函數對token的接受者執行了一次callback回調,以檢查他們是否愿意接受轉賬。然而,我們是token的接收者,這意味著我們剛剛得到了一次callback回調,在這個點上我們可以做任何我們想做的事情,包括再次調用mintNFT函數。如果我們這樣做,我們將在僅鑄造了一個mask后重調用該函數,這意味著我們可以請求再鑄造另外19個mask。這導致最終鑄造出了39個 mask NFT,盡管規則允許鑄造的最大數量只有20個。

最近,來自ENS 的Nick Johnson聯系了我,他想讓我看看他們正在進行的ENS域名封裝器工作。這個域名封裝器允許用戶用新的ERC-1155 token代幣化他們的ENS域名,這提供了對細粒度權限以及更一致的 API 的支持。

概括地說,為了封裝任何ENS域名(更具體地說,除了 2LD.eth 之外所有的ENS域名),你必須首先批準域名封裝器以訪問你的ENS域名。然后,你調用wrap(bytes,address,uint96,address),它既為你鑄造一個ERC-1155 token,也負責管理底層的ENS域名。

下面就是這個wrap函數,它相當簡單。首先,我們調用_wrap,它執行一些邏輯并返回哈希域名。然后,我們確保交易發送方確實是ENS域名的所有者,然后再接管該域名。請注意,如果發送方不擁有底層的ENS域名,則整個交易應還原,撤銷在_wrap 中所做的任何更改。

下面是_wrap函數本身,這里沒有什么特別的。

不幸的是,正是這個 _mint 函數,它可能會給毫無戒心的開發者帶來可怕的驚喜。ERC-1155 規范規定,在鑄造token時,應咨詢接收者是否愿意接受該token。在深入研究庫代碼(該代碼庫根據OpenZeppelin的基礎稍作了修改)后,我們發現情況確實如此。

但這到底對我們有什么好處呢?好的,我們再一次看到了一個不安全的外部調用,我們可以用它來執行重入攻擊。具體地說,請注意,在callback回調期間,我們擁有了代幣ENS域名的ERC-1155 token,但域名封裝器尚未驗證我們擁有基礎ENS域名本身。這使我們能夠在不實際擁有ENS域名的情況下對其進行操作。例如,我們可以要求域名封裝器解開我們的域名,燃燒掉我們剛剛鑄造的token并獲取底層的ENS域名。

現在我們擁有了底層的ENS域名,我們可以用它做任何我們想做的事情,比如注冊新的子域名或者設置解析器。完成后,我們只需退出callback回調。域名封裝器將和底層ENS域名的當前所有者(即我們)交互,并完成交易。就像那樣,我們已經取得了域名封裝器被批準用于的任何ENS域名的臨時所有權,并對其進行了任意更改。

令人驚訝的代碼可能會以災難性的方式破壞事物。在本文的兩個案例下,開發人員合理地假設safe函數類可以安全地使用,卻無意中增加了他們的攻擊面。隨著ERC-721和ERC-1155代幣標準變得越來越流行及廣泛,這類攻擊情況很可能會越來越頻繁。開發人員需要考慮使用safe類函數的風險,并確定外部調用如何與他們編寫的代碼進行交互。

Tags:ENSNFTSAFERANQUEENSHIBA價格NFTBombSafeEnergyGRANX

火必
OIN:金色觀察丨五圖看懂Coinbase二季度股東信

北京時間2021年8月11日,在納斯達克上市的美國加密貨幣交易所Coinbase發布2021年二季度股東信,詳細披露了Coinbase在2021年二季度的運營數據.

1900/1/1 0:00:00
XYZ:Vitalik:代幣投票不應是治理權力下放的唯一合法形式

過去一年,區塊鏈領域的一個重要趨勢是從專注于DeFi轉變為也考慮去中心化治理 (DeGov)。雖然2020年被廣泛譽為DeFi之年,但自那以來,構成這一趨勢的DeFi項目的復雜性和能力不斷增長,

1900/1/1 0:00:00
區塊鏈:區塊鏈續章:何以上升為國家戰略?何以重新開局和監管?

本文力求用日常語言來解析這個行業,看看“區塊鏈+”將如何發生,有哪些可能的方向與我們相關,又有哪些局限和值得警惕的領域.

1900/1/1 0:00:00
DEF:DeFi 的治理問題 能真正的去中心化嗎?

又到了每年的這個時候——校園里討厭的孩子把他們的臉滿校園地貼,讓你給他們投票。你看了校園傳單上這些精選名單,并好奇為什么會有人會去競選這些學生會職位 (其實我知道,因為我曾經是校園里的那個孩子).

1900/1/1 0:00:00
NFT:韓國NFT有多火?明星藝術家NFT作品30分鐘內成交2億韓元

本文介紹了NFT在韓國的火爆程度和NFT行業出現的版權問題,以及對韓國NFT現狀的分析。(本文共 1948字,閱讀時間約4分鐘)最近NFT在韓國掀起一股熱潮,成為韓國數字貨幣行業的“頂流”.

1900/1/1 0:00:00
NFT:“萬物皆可NFT”時代 UENC如何把握機會乘勢而上?

2021年下半年,區塊鏈技術演進和創新應用加快,無論是二級市場還是專業投資機構均在頻繁布局,加入NFT等熱門賽道.

1900/1/1 0:00:00
ads