ด้วยการพัฒนาเทคโนโลยีบล็อกเชนและการเกิดขึ้นของการเติบโตใหม่ๆ ระบบนิเวศของสกุลเงินดิจิทัลได้สร้างความเสี่ยงด้านความปลอดภัยและความซับซ้อนมากขึ้น
สำหรับรายละเอียดของภาพพาโนรามาของการโจมตีในปี 2021 โปรดดู [รายงานความปลอดภัยของอุตสาหกรรม DeFi ประจำปี 2564บนพื้นฐานของปี 2564 "ผู้เล่นที่ทรงพลัง" อีกคนปรากฏตัวบนเส้นทางการโจมตีในปี 2565
บนพื้นฐานของปี 2564 "ผู้เล่นที่ทรงพลัง" อีกคนปรากฏตัวบนเส้นทางการโจมตีในปี 2565
ในฐานะที่เป็นเวกเตอร์การโจมตีใหม่ สะพานข้ามโซ่ยังไม่ครบกำหนดในแง่ของความปลอดภัย ดังนั้นสะพานข้ามโซ่จึงเป็นหนึ่งในพื้นที่ที่โครงการและผู้พัฒนาทุกโครงการควรเฝ้าระวัง
ก่อนที่วันหยุดเทศกาลฤดูใบไม้ผลิในปี 2022 จะสิ้นสุดลง การโจมตีครั้งใหญ่เกิดขึ้น 2 ครั้งบนสะพานข้ามสะพาน รวมถึงเหตุการณ์อื่นที่คล้ายกันก่อนเทศกาลฤดูใบไม้ผลิ การโจมตี 3 ครั้งในเวลาเพียง 10 วันทำให้แฮ็กเกอร์ "ภูมิใจ" ในสะพานข้ามโซ่ คน" สำเร็จ.
ก่อนที่จะเข้าใจเหตุการณ์เหล่านี้ เราจำเป็นต้องรู้ว่าสะพานข้ามโซ่คืออะไรและทำงานอย่างไร
ชื่อระดับแรก
การทำธุรกรรมข้ามสายโซ่
ขั้นตอนของการทำธุรกรรมข้ามสายโซ่มีดังนี้:
1. ผู้ใช้ "ฝาก" โทเค็นลงใน "สัญญาเชื่อมโยง" บนเชนเดียว และสร้างหลักฐานที่ระบุข้อมูลข้ามเชนที่ต้องการ (เช่น จำนวนโทเค็นที่จะถอนและที่อยู่ของผู้รับ)
2. สัญญาสะพานตรวจสอบหลักฐาน จากนั้นในห่วงโซ่เป้าหมายที่ผู้ใช้สามารถ"โทเค็น"โทเค็น
คำอธิบายภาพ
ชื่อระดับแรก
เหตุการณ์ช่องโหว่ Qubit Bridge
ผู้โจมตีปลอมแปลงข้อมูลเพื่อหลีกเลี่ยงการตรวจสอบความถูกต้องของข้อมูลของสัญญาบริดจ์ และทำให้สัญญาบริดจ์สร้างใบรับรองเวลาเท็จที่ผู้โจมตีฝากไว้โดยไม่ได้ระบุสกุลเงินเข้ารหัสใดๆ
เหตุผลพื้นฐานสำหรับสิ่งนี้คือเงินฝาก ETH และ ERC-20 มีหลักฐานยืนยันเหตุการณ์เดียวกัน ซึ่งช่วยให้ผู้โจมตีสามารถเรียกใช้ฟังก์ชันนี้เพื่อสร้างการพิสูจน์เหตุการณ์การฝาก ETH ที่เป็นเท็จโดยใช้ข้อมูลการฝาก ERC20 ที่ไม่มีอยู่จริง และถอน ETH บนเชนอื่น
ในกรณีนี้ ข้อผิดพลาดในสัญญาจะถูกเรียกใช้ - ฟังก์ชัน "safeTransferFrom" จะไม่ถอยกลับเมื่อที่อยู่โทเค็นคือ EOA (เช่น ที่อยู่ (0)) ดังนั้น ผู้โจมตีจึงได้รับหลักฐานโดยไม่ต้องส่งโทเค็นใดๆ ให้กับสัญญา
ชื่อระดับแรก
เหตุการณ์ช่องโหว่ของสะพานมิเตอร์
ช่องโหว่นี้คล้ายกับช่องโหว่ของสะพาน Qubit มาก โดยผู้โจมตีจะข้ามสัญญาของสะพานและแสดงหลักฐานของโทเค็นที่ไม่มีอยู่แก่สะพานเพื่อข้ามขั้นตอนการตรวจสอบ เพื่อให้สามารถถอนโทเค็นบนเครือข่ายอื่นได้
สัญญา Bridge มีสองวิธี: ฝากและฝาก ETH อย่างไรก็ตาม วิธีการทั้งสองนี้ให้หลักฐานการฝากเงินที่เหมือนกัน และฟังก์ชันการฝากเงินไม่ได้ป้องกันธุรกรรมการฝากของ WETH/WBNB และไม่ทำลายหรือล็อก WETH/WBNB
แฮ็กเกอร์ใช้เงินฝากเพื่อทำสัญญาบริดจ์สร้างใบรับรองกิจกรรมการฝากเงิน WETH/WBNB ปลอมโดยไม่มีการฝากจริง
สำหรับรายละเอียดของการวิเคราะห์เหตุการณ์ โปรดดูที่บัญชีสาธารณะ CertiK【ชื่อระดับแรก】。
เหตุการณ์รูหนอนสะพานข้ามโซ่ Solana
ในเหตุการณ์ช่องโหว่ของรูหนอน Solana ผู้โจมตีข้าม "ตรวจสอบลายเซ็น" โดยแทรก "บัญชี sysvar" ที่เป็นอันตรายลงในคำสั่ง และปลอมแปลงข้อความเพื่อสร้าง Ether ที่ห่อหุ้มด้วย Wormhole
สาเหตุหลักของช่องโหว่นี้คือในกระบวนการตรวจสอบลายเซ็น ("verify_signatures") โปรแกรมใช้ฟังก์ชัน "load_current_index" ซึ่งเลิกใช้งานเมื่อ Solana อัปเดตเป็น 1.8.0 ฟังก์ชันนี้จะไม่ตรวจสอบว่าอินพุต "บัญชี sysvar" เป็น "sysvar ระบบ" จริงหรือไม่ ดังนั้นผู้โจมตีสามารถใช้โอกาสนี้ปลอมแปลงบัญชีที่สำคัญนี้ได้
หลังจากนั้น ผู้โจมตีใช้บัญชีปลอมนี้เพื่อสร้างข้อมูลการสร้างเหรียญปลอม จากนั้นแยกโทเค็นจริงที่สอดคล้องกันบนเชนเป้าหมายตามข้อมูลการสร้างเหรียญที่ได้รับ
สำหรับรายละเอียดของการวิเคราะห์เหตุการณ์ โปรดดูที่บัญชีสาธารณะ CertiK【ชื่อระดับแรก】。
สรุป 3 คดีระเบิดสะพาน
รหัสบริดจ์ของ Qubit และ Meter.io ล้มเหลวในการจัดการกับสถานการณ์วิกฤต นั่นคือ ฟังก์ชันการฝากเงิน ERC20 ของสัญญาสามารถใช้เพื่อสร้างใบรับรองเหตุการณ์การฝาก ETH/BNB ปลอมได้ และอย่างหลังกลายเป็นหลักฐานการถอนของจริง ETH/BNB บนห่วงโซ่เป้าหมาย
Wormhole Bridge คือ "บัญชี sysvar" ที่ถูกฉีดโดยผู้โทรที่ไม่ได้รับการยืนยันสัญญา ดังนั้นจึงสร้างข้อมูลการสร้างเหรียญเท็จ
ชื่อระดับแรก
จะจัดการกับช่องโหว่ดังกล่าวได้อย่างไร?
มีบทเรียนสำคัญบางประการที่เราสามารถเรียนรู้ได้จากการโจมตีข้างต้น:
1. สำหรับการทำงานที่แตกต่างกัน เช่น การฝาก ERC20 และการฝาก ETH/BNB สัญญาควรสร้างการพิสูจน์เหตุการณ์ที่แตกต่างกัน
2. อย่าลืมตรวจสอบอินพุตที่ผู้ใช้ป้อนเข้าไปเสมอ
3. ให้ความสนใจอย่างใกล้ชิดกับเหตุการณ์ความเปราะบางล่าสุด และตรวจสอบว่ามีสถานการณ์ที่คล้ายคลึงกันในโครงการอื่นๆ หรือไม่
4. สัญญาหลักของแต่ละสะพานจะต้องมีการตรวจสอบตามนั้น
นอกจากนี้ เมื่อเกิดช่องโหว่ขึ้น เราควร:
1. หยุดเลเยอร์ข้อความรีเลย์และระงับการโอนโทเค็น และสัญญาบริดจ์ควรระงับฟังก์ชันฝากและถอนทั้งหมดด้วย
2. แจ้งให้ชุมชน การแลกเปลี่ยน และพันธมิตรแพลตฟอร์มทราบทันทีเพื่อติดตามการไหลของเงินทุน
3. สร้างช่องทางการสื่อสารกับผู้เชี่ยวชาญด้านความปลอดภัยที่เชื่อถือได้เพื่อการสนทนาและการแบ่งปันข้อมูลที่มีประสิทธิภาพ
4. ระบุ ตรวจสอบ และแก้ไขช่องโหว่ ทดสอบในเวลาเพื่อให้แน่ใจว่าช่องโหว่ที่มีอยู่ได้รับการแก้ไขและไม่มีการสร้างช่องโหว่ใหม่ และสัญญาสะพานจะได้รับการอัปเกรดในเวลาเดียวกัน
5. ประเมินความเสียหายและสื่อสารกับชุมชนอย่างตรงไปตรงมาเกี่ยวกับจำนวนทรัพย์สินที่ถูกใช้ประโยชน์ ทรัพย์สินที่สามารถกู้คืนได้ และแผนการชดเชย


