比特幣交易所 比特幣交易所
Ctrl+D 比特幣交易所
ads
首頁 > MEXC > Info

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

Author:

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

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

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

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

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

JPEG'd已收到白帽黑客返還的5494.4枚WETH:8月5日消息,DeFi公共產品JPEG'd發推稱,DAO多簽地址確認收到5494.4枚WETH,從pETH漏洞中追回資金的地址所有者獲得了10%(610.6枚WETH)的白帽賞金。[2023/8/5 16:20:11]

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

越安全越好,對嗎?

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

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

Hashflow在攻擊事件中損失約60萬美元,派盾稱或為白帽黑客所為:6月15日消息,據派盾監測,去中心化交易平臺Hashflow存在一個與批準相關的問題,并因此遭到攻擊,不過這可能是一起白帽黑客行動。另據0xScope監測,盜竊合約的創建者在交易中留下了一條信息,在恢復使用前,請先撤銷。你的資金不安全。

Hashflow隨后發推表示,本次被盜事件的損失約為60萬美元,所有受影響用戶都能夠取回全部資產,而Hashflow DEX沒有受到影響,仍然保持正常運行。Hashflow發布了資產恢復指南,以便受影響用戶恢復資產,并提醒他們必須先撤銷批準才能收回資金。而沒有受到影響但在去年5月3日前使用過Hashflow的用戶,也需要盡快撤銷已棄用合約的任何授權。[2023/6/15 21:38:30]

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

Euler:黑客若歸還被盜DAI和ETH的90%,剩余10%可作為白帽黑客賞金:3月15日消息,借貸協議 Euler Finance 繼續在鏈上向黑客發布消息,Euler 稱,最簡單的方法是將你控制下的 DAI 和 ETH 的 90% 返還到 EulerDAO 金庫地址,10% 作為白帽黑客賞金,然后就會停止調查,重點可以轉向向協議用戶分發資金,而不需要走法律途徑。

今日早些時候,Euler稱,黑客若不及時還90%資金,將懸賞100萬美元征集線索。

?[2023/3/16 13:06:39]

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

越安全越好,真的嗎?

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

白帽黑客幫助MetaMask網絡釣魚攻擊受害者收回11.7萬美元加密貨幣:一位MetaMask用戶遭遇網絡釣魚攻擊,無意中將其私鑰交給了騙子。一名白帽黑客成功挽救該用戶錢包(持有24萬美元資金)的一半資金。

Reddit用戶“007happyguy”被引導填寫Whitehat熱線表格,并發布其詳細信息。表格的另一端是一些白帽黑客。這是一項臨時服務,如果有空的話,開發者可以選擇回應請求。前ZenGo區塊鏈研究員Alex Manuskin回應了請求。Manuskin做的第一件事是核實該Reddit用戶擁有的錢包,并且確認其沒有試圖獲取其他人的資金。此時他必須通過索要私鑰來訪問錢包。然后他確保騙子不能再從錢包轉移走資金。為了在以太坊進行交易,用戶需要一些ETH來支付交易費用。因此,他確保任何發送至該錢包的ETH都會被自動發送出去。

為了拯救剩余資金,Manuskin使用了Flashbots,這是一種支持開發人員和礦工之間通信的服務。簡而言之,開發人員可以使用Flashbots向礦工發送一個交易“包”,直接包含在一個區塊中,而不是向網絡廣播交易。

之所以有效是有兩個原因。這種情況的主要原因是,如果錢包里沒有任何ETH,任何零交易費用的交易都不會被任何礦工打包。使用Flashbots的情況是,進行了一項復雜的交易,將資金轉移到另一個錢包,并一次性使用其他資金支付給礦工。第二個原因是它更隱蔽。如果任何交易被廣播到公共網絡上,詐騙者就有機會搶先交易。

Manuskin解釋說,編寫定制腳本和執行交易大約需要5-6個小時。時間的長短取決于交易的復雜性以及他以前是否經歷過類似的情況。在騙子開始轉移錢包資金后,Manuskin設法從錢包剩下的12萬美元代幣中挽救了大約11.7萬美元。(The Block)[2021/7/18 0:59:49]

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

公告 | Binance Jersey將獎勵入侵其域名和推特賬號的白帽黑客:據官方公告,UTC時間8月16日15:00,一名白帽黑客通過對Binance Jersey使用的電子郵件域名服務提供商進行社交工程,獲得@BinanceJE(Binance Jersey)推特賬號訪問權限。該白帽黑客在推特賬號@BinanceJE上發布了幾條推文,之后將其刪除。其在與安全團隊的溝通中態度合作并開放,Binance Jersey能夠在幾分鐘內恢復域名,幾個小時后恢復推特。Binance Jersey將向其發出安全漏洞賞金,并與服務提供商繼續調查。Binance.JE上所有資金都安全。沒有數據被泄露。如果您是白帽黑客,并希望報告幣安生態系統內產品安全漏洞,可查看Binance Bug Bounty計劃。根據報告的問題嚴重性可獲得高達10萬美元獎勵。 注:社交工程是描述非技術類入侵的術語,多依賴于人類互動且通常涉及到欺騙其他人來破壞正常的安全程序。昨晚,推特用戶LightningNetwo9攻擊幣安法幣交易所Binance Jersey官方推特賬號。黑客聲稱成功越過官方域名binance.je,本可通過網絡釣魚計劃輕易進行騙局,但決定不這樣做。[2019/8/18]

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

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

例子1:Hashmasks

Hashmasks是一個供應有限的NFT頭像項目,用戶每次交易最多可以購買20個maskNFT。下面是購買mask的函數:

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

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

例子2:ENS域名封裝器

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

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

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

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

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

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

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

結論

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

Tags:ENSANCNANNCESint-Truidense Voetbalvereniging Fan TokenPenguin FinanceHepa FinancepSTAKE Finance

MEXC
SEC訴瑞波案最新進展:法院安排電話會議,撮合雙方就保密文件相關問題進行討論_SEC

比推消息,美國紐約南區地方法院治安法官SarahNetburn為Ripple和美國證券交易委員會安排了一次新的電話會議,會議將于8月31日下午12點舉行.

1900/1/1 0:00:00
數據:NFT交易平臺Opensea的供應方收入高于其協議收入_OPEN

巴比特訊,TokenterMinal數據顯示,NFT交易平臺Opensea的二次銷售賣方費用高于Opensea交易費用。8月供應方收入超過1.936億美元,協議收入超過1.039億美元.

1900/1/1 0:00:00
俄羅斯逮捕一宗涉及加密貨幣龐氏騙局的犯罪嫌疑人,涉及金額或高達9500萬美元_CRYPT

據俄羅斯媒體TheBell報道,近日,俄羅斯逮捕了一家名為Finiko公司的聯合創始人KirillDoronin,Finiko允許用戶投資比特幣而獲得Finiko的原生代幣收益.

1900/1/1 0:00:00
加密基礎設施服務商Figment完成5000萬美元B輪融資,Galaxy Digital參投_ENT

巴比特訊,8月16日,加密基礎設施服務商Figment完成5000萬美元B輪融資,SenatorInvestmentGroup和LibertyCityVentures領投.

1900/1/1 0:00:00
超2萬個節點接入Swarm/Nbzz測試網,參與測試即有機會領空投_ARM

8月20日消息,Swarm官方技術團隊LeetSquad針對Swarm網絡節點激勵模型問題開發的插件網絡解決方案Swarm/Nbzz在8月13日上線Goerli測試網絡,由于其接入成本低.

1900/1/1 0:00:00
調查:東歐地區在過去一年中向加密龐氏騙局和詐騙案發送了8.15億美元的資金_ARC

據Cointelegraph消息,9月1日,區塊鏈研究公司Chainalysis發表報告表示,位于東歐地區的加密貨幣地址在非法活動中的曝光率僅次于非洲.

1900/1/1 0:00:00
ads