BTC
ETH
HTX
SOL
BNB
ดูตลาด
简中
繁中
English
日本語
한국어
ภาษาไทย
Tiếng Việt

การสูญเสียมากกว่า 150 ล้านดอลลาร์ โปรโตคอลสะพานข้ามโซ่ การวิเคราะห์การวิเคราะห์การแฮ็คของ

DeFi之道
特邀专栏作者
2022-08-02 03:06
บทความนี้มีประมาณ 1318 คำ การอ่านทั้งหมดใช้เวลาประมาณ 2 นาที
ช่องโหว่ร้ายแรงเกี่ยวกับ "การตรวจสอบสิทธิ์"
สรุปโดย AI
ขยาย
ช่องโหว่ร้ายแรงเกี่ยวกับ "การตรวจสอบสิทธิ์"

ผู้เขียนต้นฉบับ:Samczsun, หุ้นส่วนที่ Paradigm

รวบรวมข้อความต้นฉบับ: The Way of DeFi

รวบรวมข้อความต้นฉบับ: The Way of DeFisamczsunเมื่อวันที่ 2 สิงหาคม Nomad โปรโตคอล cross-chain bridge ถูกโจมตี และเงินของผู้ใช้มากกว่า 150 ล้านดอลลาร์ถูกโอนโดยแฮ็กเกอร์

เหตุการณ์ด้านความปลอดภัยนี้ได้รับการวิเคราะห์

Nomad เพิ่งเสียเงินไป 150 ล้านดอลลาร์จากการแฮ็ก Web3 ที่ยุ่งเหยิงที่สุดเท่าที่เคยมีมา แล้วสิ่งนี้เกิดขึ้นได้อย่างไร และอะไรคือสาเหตุที่แท้จริง? ให้ฉันพาคุณไปเบื้องหลังการโจมตีครั้งนี้

ทุกอย่างเริ่มต้นด้วยทวีต @spreekaway ที่แชร์โดย @officer_cia ในช่องโทรเลข ETHSecurity และในขณะที่ฉันไม่รู้ว่าเกิดอะไรขึ้นในเวลานั้น จำนวนทรัพย์สินที่ออกจาก Nomad cross-chain bridge นั้นไม่ใช่สัญญาณที่ดี .

ความคิดแรกของฉันคือมีการกำหนดค่าจุดทศนิยมของโทเค็นผิดพลาด ท้ายที่สุดแล้ว สะพานข้ามโซ่ดูเหมือนจะมีโปรโมชั่น "ส่ง 0.01 WBTC รับ 100 WBTC คืน"

https://moonscan.io/tx/0xcca9299c739a1b538150af007a34aba516b6dade1965e80198be021e3166fe4c

https://etherscan.io/tx/0xa5fe9d044e4f3e5aa5bc4c0709333cd2190cba0f4e7f16bcf73f49f83e4a5460

อย่างไรก็ตาม หลังจากการขุดด้วยตนเองที่เจ็บปวดบนเครือข่าย Moonbeam ฉันยืนยันว่าธุรกรรม Moonbeam ทำธุรกรรมข้ามเชน 0.01 WBTC แต่ธุรกรรม Ethereum ข้ามเชน 100 WBTC

นอกจากนี้ การทำธุรกรรมข้ามเครือข่ายของ WBTC ไม่ได้พิสูจน์อะไรเลย มันแค่เรียก `กระบวนการ ' โดยตรง ซึ่งเป็นเรื่องที่แย่มากที่จะสามารถประมวลผลข้อความโดยไม่พิสูจน์ก่อน

ในขณะนี้ มีความเป็นไปได้สองประการ ไม่ว่าจะเป็นการพิสูจน์ที่ส่งแยกกันในบล็อกก่อนหน้า หรือมีช่องโหว่ร้ายแรงในสัญญาแบบจำลอง อย่างไรก็ตาม ยังไม่มีวี่แววว่าจะมีอะไรได้รับการพิสูจน์เมื่อเร็วๆ นี้

นั่นทำให้มีความเป็นไปได้เพียงอย่างเดียว นั่นคือมีช่องโหว่ร้ายแรงในสัญญาแบบจำลอง แล้วเกิดอะไรขึ้น? การดูอย่างรวดเร็วแสดงให้เห็นว่าข้อความที่คอมมิตต้องเป็นของรูทที่ยอมรับได้ มิฉะนั้น การตรวจสอบในบรรทัดที่ 185 จะล้มเหลว

โชคดีที่มีวิธีง่ายๆ ในการตรวจสอบสมมติฐานนี้ ฉันรู้ว่ารูทของข้อความที่ไม่ผ่านการรับรองจะเป็น 0x00 เนื่องจากข้อความ[_messageHash] จะไม่ได้รับการเตรียมใช้งาน สิ่งที่ฉันต้องทำคือตรวจสอบว่าสัญญาจะยอมรับสิ่งนี้หรือไม่

ทำไม……

ปรากฎว่าระหว่างการอัปเกรดตามปกติ ทีม Nomad เริ่มต้น root of trust เป็น 0x00 เพื่อให้ชัดเจน เป็นเรื่องปกติที่จะใช้ศูนย์เป็นค่าเริ่มต้น น่าเสียดายที่ในกรณีนี้ มีผลข้างเคียงเล็กน้อยในการตรวจสอบทุกข้อความโดยอัตโนมัติ

นี่คือสิ่งที่ทำให้การแฮ็กยุ่งเหยิง คุณไม่จำเป็นต้องรู้อะไรเช่น Solidity หรือ Merkle tree สิ่งที่คุณต้องทำคือค้นหาธุรกรรมที่ถูกต้อง ค้นหา/แทนที่ที่อยู่ของบุคคลอื่นด้วยที่อยู่ของคุณ และเผยแพร่ใหม่

โดยรวมแล้ว การอัปเกรดตามปกติทำเครื่องหมายแฮชเป็นศูนย์ว่าเป็นรูทที่ถูกต้อง ซึ่งมีผลทำให้สามารถปลอมแปลงข้อความบน Nomad ได้ ผู้โจมตีใช้ฟีเจอร์นี้ในทางที่ผิดเพื่อคัดลอก/วางธุรกรรม และทำให้เงินทุนหมดอย่างรวดเร็วในการต่อสู้ระยะประชิดที่บ้าคลั่ง สะพานโซ่

ความปลอดภัย
ข้ามโซ่
ยินดีต้อนรับเข้าร่วมชุมชนทางการของ Odaily
กลุ่มสมาชิก
https://t.me/Odaily_News
กลุ่มสนทนา
https://t.me/Odaily_CryptoPunk
บัญชีทางการ
https://twitter.com/OdailyChina
กลุ่มสนทนา
https://t.me/Odaily_CryptoPunk
ค้นหา
สารบัญบทความ
คลังบทความของผู้เขียน
DeFi之道
อันดับบทความร้อน
Daily
Weekly
ดาวน์โหลดแอพ Odaily พลาเน็ตเดลี่
ให้คนบางกลุ่มเข้าใจ Web3.0 ก่อน
IOS
Android