KeyFrame內部研究專用

DeFi Security Summit 2023 - Session 3: Network & VM - Yoav Weiss & Oren Fine

DeFi Security Summit - DSS·7月15日週六·19 min英文

三句話摘要

Etherscan上的智能合約代碼偽裝技術——通過隱藏、偽造和混淆手段,讓顯示的代碼與實際執行的代碼不一致,藉此欺騙審計者和用戶。 Etherscan驗證與實際執行之間的信息不對稱構成系統性風險,審計者必須超越代碼表面通過交易追蹤工具驗證實際執行流程。 代碼深度隱藏:上傳超過實際使用的大量代碼文件,將漏洞隱藏在複雜的多重繼承樹中。缺失onlyOwner修飾符等細微差別容易被審計者遺漏。

重點整理

重點
  • 1

    代碼深度隱藏:上傳超過實際使用的大量代碼文件,將漏洞隱藏在複雜的多重繼承樹中。缺失onlyOwner修飾符等細微差別容易被審計者遺漏。

  • 2

    代理層級欺騙:偽造代理顯示合法實現地址,但實際調用不同實現;或構建非代理代理(普通看起來的合約實際通過fallback委託),初始部署時委託地址為空,後期才添加惡意實現。

  • 3

    函數選擇器碰撞:利用4字節函數簽名只有有限可能性,在代理中創建與實現函數名完全不同但簽名相同的函數,優先級覆蓋合法功能(如用imageURL覆蓋addManager)。

  • 4

    儲存破壞與鏈表操縱:通過初始化或delegatecall破壞儲存結構;Solidity映射基於哈希無法查看實際意義,Gnosis Safe案例顯示鏈表中有簽名者但mapping中隱藏額外簽名者,使get_owners無法列出全部。

實用技巧與重點

乾貨
  • Chain Swap漏洞案例
  • 第一次攻擊:80萬美元損失
  • 第二次攻擊:440萬美元損失(2021年末)
  • 攻擊鏈路:Chainswap代理 → Factory代理 → FactoryImplementation → 未驗證閉源合約
  • 配額被繞過:每地址獲得10^22無限配額
  • 具體攻擊技術
  • 隱藏代碼行數:7000+行無用代碼
  • 函數選擇器長度:4字節
  • 儲存示例:20個隱藏簽名者通過映射而非鏈表可見
  • 使用工具與平台
  • Etherscan(代碼驗證查看)
  • Tenderly(交易追蹤分析)
  • Twitter掃描(配額查詢測試)

結論

結論

Etherscan驗證與實際執行之間的信息不對稱構成系統性風險,審計者必須超越代碼表面通過交易追蹤工具驗證實際執行流程。

完整解析

詳細

智能合約審計的假設是看到Etherscan上的已驗證代碼就代表真實執行邏輯,但實際上存在多層欺騙手段可以打破這個信任。最直接的方法是代碼深度隱藏——開發者可以上傳任意多個Solidity文件,其中大部分不被字節碼使用,造成審計者信息過載。更難以察覺的是多重繼承結構,同一函數可在不同父合約中有多個實現,審計者難以確定哪個被真正調用。展示的例子是一個包含7000行代碼的模板,其中ownership轉移函數在三個父合約中都有實現,第三個版本缺少onlyOwner修飾符,任何人都能接管合約。

代理層級的欺騙更加隱蔽。Etherscan識別ERC1967和透明代理的機制被濫用——偽造代理會在標準實現槽位放置虛假地址,但實際通過自定義邏輯從其他槽位讀取真實實現。更高階的是非代理代理,表面上是普通ERC-20代幣,其實繼承鏈深處隱藏了fallback函數,將所有超出ABI的調用委託給指定地址。關鍵是初始部署時委託地址為空(反事實部署),代碼審核時調用會回退無異常,但後期可隨時在該地址部署新合約添加mint等惡意函數。

函數選擇器碰撞是另一層攻擊面。Solidity編碼函數時只使用簽名哈希的前4字節,碰撞概率遠高於期待。在代理環境中,代理函數優先級更高,攻擊者可創建看似無害的pure函數(如imageURL)其實簽名與管理函數碰撞,當用戶執行addManager時實際調用imageURL,而imageURL返回映射getter導致狀態污染。Gnosis Safe案例展示存儲層面的破壞——簽名者以鏈表形式存儲確保順序,但同時用映射重複存儲以優化檢查。初始化時可通過delegatecall在隨意槽位植入垃圾數據,這些數據在映射邏輯中成為額外簽名者,getSigners無法遍歷發現但getSigner單個查詢會返回。

Chain Swap的4.4百萬美元漏洞完美展示這些技術的真實危害。審計報告未發現異常,因為Etherscan顯示的已驗證代碼配額檢查正常,但實際執行時交易委託給未驗證的閉源合約,其中配額函數不是映射而是自定義計算邏輯,返回所有地址都是10^22的無限額度。從部署到被攻擊的一周內,任何人都可以無限轉移資產。追蹤攻擊交易需要用Tenderly逐步執行才能發現真實委託目標與Etherscan顯示不符。

關鍵時刻

Pipeline v2

帶時間戳的重點,會在逐字稿層級分析上線後產生。目前請先透過原始影片觀看。

事實查核

Pipeline v2

說法查證是下一次管線升級的一部分。KeyFrame 只會顯示它真正能驗證的內容。

更多「Web3 安全」的內容

IF YOU OWN XRP YOU NEED TO SEE THIS PRICE MANIPULATION! ⚠️
8 min
Web3 安全英文8月14日

IF YOU OWN XRP YOU NEED TO SEE THIS PRICE MANIPULATION! ⚠️

Zach Humphries

  • 機構支撐的積極意義:價格操縱常被視為負面,但Ripple掌握大量XRP供應與escrow,在熊市期間提高價格下限,實際上替零售投資者鎖定了低風險的積累區間,這不是剝削而是市場穩定機制。
  • 歷史模式驗證:2024年7月至11月XRP在50美分附近橫盤整理,低點觸及42美分(wick),高點65美分;隨後11月5日至12月5日單月上漲456%,年底到2025年初累計漲幅534%,這個歷史周期正在1美元價位重演。
  • 比特幣聯動邏輯:講者在4-5月就預測「如果比特幣跌至60k以下,XRP會跌至1美元或更低」,此預測精準應驗,反映出熊市中兩者的明確連動關係。
Minimmit, Multimmit and the New Consensus Frontier with Patrick O'Grady
72 min
Web3 安全英文PODCAST8月5日

Minimmit, Multimmit and the New Consensus Frontier with Patrick O'Grady

Zero Knowledge

  • 反向 Linux 架構:Commonware 刻意暴露棧各層級控制,讓開發者自訂執行環境、共識機制、密碼學實現,而非像 Cosmos SDK 只允許應用層以上定制。2-3 個月能組裝一條定製鏈,代價是額外深度但回報是長期維護成本降低及效能優化彈性。
  • 容錯假設的典範轉移:Alpine Glow(Solana 2025)實現單輪投票定終的關鍵是將容錯預算分離為獨立的 Byzantine 和 Crash 容限。傳統系統把 33% 當一個整體預算;新模型允許 20% 惡意加 20% 崩潰,打破了 PBFT 理論界線,釋放單輪設計空間。
  • Minimet 與 Multimet 的遞進:Minimet 是 5F+1 設定下的乾淨構造,實現更短視圖延遲;Multimet(剛發布)進一步允許並行 mini-commits 且驗證者可推翻領導者審查,使用者交易在全球分布式網路達到 200-300 毫秒端到端定終。
Private Information Retrieval (PIR) with Alex Hoover
64 min
Web3 安全英文PODCAST7月29日

Private Information Retrieval (PIR) with Alex Hoover

Zero Knowledge

  • PIR 保護的是訪問模式,不是資料本身
  • PIR 與加密不同,它關注的是隱藏「客戶端查詢了什麼」,而非「資料是否加密」。在公開資料庫(如區塊鏈)上,客戶端可以在不洩露查詢對象給伺服器的情況下檢索特定條目,解決了輕量級客戶端的隱私和防審查問題。
  • 客戶端預處理方案是突破瓶頸的關鍵