Cointime

Download App
iOS & Android

หลุมดำกลืนกิน: ช่องโหว่ Vyper ทำให้ Curve พลิกคว่ำอย่างแรง

Validated Project

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

รีวิวเหตุการณ์

ตาม Twitter อย่างเป็นทางการของ Curve Finance เมื่อวันที่ 31 กรกฎาคม 2023 พูลที่เสถียร (alETH/msETH/pETH) บางส่วนที่เขียนโดยใช้ Vyper เวอร์ชัน 0.2.15 อาจถูกโจมตีซ้ำ Curve Finance ระบุว่าการโจมตีเกิดจากการล็อกการกลับเข้าใช้ที่ผิดพลาดใน Vyper เวอร์ชัน 0.2.15 และได้รับผลกระทบเฉพาะกลุ่มที่ใช้ ETH บริสุทธิ์ ขณะนี้เคิร์ฟกำลังประเมินความเสียหาย ส่วนสระอื่นๆ ปลอดภัย

จากการวิเคราะห์ของ MetaTrust Labs ช่องโหว่ดังกล่าวถูกนำมาใช้ระหว่างเดือนสิงหาคมถึงตุลาคม 2021 สาเหตุหลักมาจากคอมไพเลอร์เวอร์ชัน 0.2.15/0.2.16/0.3.0 ของ Vyper สาเหตุของช่องโหว่คือตรรกะการกลับเข้าใช้ใหม่ใน bytecode ที่สร้างขึ้นไม่ควรมีผลเนื่องจากข้อผิดพลาดในคอมไพเลอร์

จากสถิติของเครือข่ายดังกล่าว เหตุการณ์การแฮ็คกลุ่มเหรียญ Stablecoin ของ Curve Finance ทำให้เกิดความสูญเสียสะสม 52 ล้านดอลลาร์สหรัฐในกลุ่ม Alchemix, JPEG'd, CRV/ETH เป็นต้น โทเค็น CRV ของ Curve Finance ก็ได้รับผลกระทบอย่างหนักเช่นกัน โดยลดลงมากกว่า 15% ในวันนั้น

วิเคราะห์สาเหตุ

สาเหตุที่ Curve Finance ถูกโจมตีในครั้งนี้คือเมื่อ Curve ใช้ภาษา Vyper ในการเขียนสัญญาอัจฉริยะ จะใช้ Vyper เวอร์ชัน 0.2.15 มีช่องโหว่ในเวอร์ชันนี้ที่เรียกว่า reentrancy locks ทำงานผิดพลาด (reentrancy lock failure) การโจมตีซ้ำเพื่อก่อให้เกิดความสูญเสีย ช่องโหว่ของ Curve Finance ในครั้งนี้เป็นช่องโหว่เฉพาะภาษา

ช่องโหว่เฉพาะภาษาหมายถึงช่องโหว่ที่เกิดจากข้อบกพร่องหรือความเข้ากันไม่ได้ในภาษาโปรแกรมหรือคอมไพเลอร์บางภาษา ช่องโหว่ดังกล่าวมักจะค้นหาและป้องกันได้ยาก เนื่องจากไม่ได้เกิดจากความประมาทเลินเล่อของนักพัฒนาหรือข้อผิดพลาดทางตรรกะ แต่เกิดจากปัญหาของแพลตฟอร์มเทคโนโลยีพื้นฐาน ช่องโหว่ประเภทนี้มีแนวโน้มที่จะส่งผลกระทบต่อหลายโครงการหรือหลายสัญญา เนื่องจากช่องโหว่เหล่านี้ใช้ภาษาหรือคอมไพเลอร์เดียวกัน

Vyper เป็นภาษาโปรแกรมสัญญาอัจฉริยะที่ใช้ Python ออกแบบมาเพื่อความปลอดภัยและความสามารถในการอ่านที่มากขึ้น Vyper อ้างว่าเป็นภาษาที่ "ปลอดภัยไว้ก่อน" และไม่สนับสนุนคุณสมบัติบางอย่างที่อาจทำให้เกิดความเสี่ยงด้านความปลอดภัย เช่น คลาส การสืบทอด ตัวดัดแปลง ชุดประกอบแบบอินไลน์ เป็นต้น อย่างไรก็ตาม Vyper ยังไม่สมบูรณ์แบบ และยังมีจุดบกพร่องหรือช่องโหว่ที่อาจส่งผลต่อความปลอดภัยของสัญญา ตัวอย่างเช่น นอกเหนือจากความล้มเหลวในการล็อกผู้กลับเข้าที่ใหม่ซึ่งพบโดย Curve Finance ในครั้งนี้ Vyper ยังประสบปัญหาต่างๆ เช่น อาร์เรย์อยู่นอกขอบเขต จำนวนเต็มล้น และข้อผิดพลาดในการเข้าถึงที่เก็บข้อมูล

มาตรการรักษาความปลอดภัย

สำหรับการโจมตีการกลับคืนสู่สภาพเดิมของ Curve Finance ในครั้งนี้ ได้มีการดำเนินการหรือเสนอมาตรการตอบโต้บางอย่าง ต่อไปนี้เป็นมาตรการตอบโต้ด้านความปลอดภัยที่คุณสามารถทำได้:

  • การถอนสภาพคล่อง: สำหรับกลุ่มที่ได้รับผลกระทบ ผู้ใช้สามารถเลือกที่จะถอนสภาพคล่องเพื่อหลีกเลี่ยงการสูญเสียเพิ่มเติม Curve Finance ได้จัดเตรียมปุ่มสำหรับถอนสภาพคล่องบนเว็บไซต์อย่างเป็นทางการซึ่งสะดวกสำหรับผู้ใช้ในการดำเนินการ
  • อัปเกรดคอมไพเลอร์: สำหรับสัญญาที่ใช้คอมไพเลอร์ Vyper 0.2.15/0.2.16/0.3.0 ขอแนะนำให้อัปเกรดเป็นเวอร์ชัน Vyper 0.3.1 ล่าสุด ซึ่งได้แก้ไขปัญหาการล็อกการกลับเข้าที่ล้มเหลวแล้ว ในขณะเดียวกัน ขอแนะนำให้ใช้เครื่องมือหรือวิธีการอื่นๆ ในการตรวจสอบความปลอดภัยของสัญญา เช่น การตรวจสอบอย่างเป็นทางการ การตรวจสอบโค้ด เป็นต้น
  • ระมัดระวัง: สำหรับสัญญาที่เขียนด้วยภาษา Vyper หรือภาษาอื่นๆ ขอแนะนำให้ระมัดระวัง ให้ความสนใจกับการอัปเดตภาษาหรือคอมไพเลอร์และการแก้ไขข้อบกพร่อง และใช้มาตรการที่จำเป็นในเวลาที่เหมาะสมเพื่อปกป้องทรัพย์สินของคุณ ในเวลาเดียวกัน ขอแนะนำด้วยว่าเมื่อใช้ภาษาใหม่หรือเทคโนโลยีใหม่ ให้ประเมินวุฒิภาวะและความเสถียรอย่างรอบคอบ และหลีกเลี่ยงการไล่ตามความใหม่หรือประสิทธิภาพอย่างสุ่มสี่สุ่มห้า

สรุป

สรุป

เหตุการณ์การกลับเข้าระบบของ Curve Finance เป็นเหตุการณ์ด้านความปลอดภัยที่โชคร้ายและเป็นบทเรียนที่กระตุ้นความคิด ในสาขาการเงินแบบกระจายอำนาจ (DeFi) การรักษาความปลอดภัยเป็นสิ่งสำคัญที่สุดเสมอ ฝ่ายโครงการควรปรับปรุงการรับรู้และความสามารถด้านความปลอดภัยอย่างต่อเนื่อง รายละเอียดใดๆ อาจกลายเป็นความก้าวหน้าสำหรับผู้โจมตีเพื่อใช้ประโยชน์

ตามเรามา

ทวิตเตอร์: @ MetaTrustLabs

เว็บไซต์: metatrust.io

ความคิดเห็น

ความคิดเห็นทั้งหมด

Recommended for you