โปรโตคอล Truebit ขาดทุน 26.4 ล้านดอลลาร์จากการโจมตีสัญญาอัจฉริยะ

iconPANews
แชร์
Share IconShare IconShare IconShare IconShare IconShare IconCopy
AI summary iconสรุป

expand icon
โปรโตคอล Truebit ขาดทุน 26.4 ล้านดอลลาร์หลังจากมีการโจมตีเพื่อใช้ประโยชน์จากช่องโหว่ในสัญญาอัจฉริยะ (smart contract) ที่ไม่เปิดเผยแหล่งที่มา (non-open-source) ซึ่งมีอายุ 5 ปีแล้ว ผู้โจมตีสร้างโทเคน TRU ขึ้นมาและถอนเงินไป 8,535.36 ETH บริษัท Beosin สามารถติดตามเงินที่ถูกโอนไปยังที่อยู่ Ethereum ที่มีความเสี่ยงสูง 3 ที่อยู่ วิธีโจมตีนี้เกี่ยวข้องกับการเรียกใช้ฟังก์ชันที่มีข้อบกพร่องซ้ำๆ ด้วยค่า msg.value ที่น้อยมาก ขณะนี้มีการเผยแพร่รายงานที่อธิบายรายละเอียดเกี่ยวกับการละเมิดความปลอดภัยของสัญญาและกระแสเงินที่ถูกโอนไปแล้ว

ผู้แต่ง: Beosin

เมื่อเวลาตี 5 ของวันที่ 9 มกราคม ที่ผ่านมา ข้อตกลงที่ไม่ได้เปิดเผยแหล่งที่มา (non-open source contract) ซึ่งได้ถูกฝังไว้ในโปรโตคอล Truebit ตั้งแต่ 5 ปีก่อน ได้ถูกโจมตี ทำให้สูญเสีย ETH จำนวน 8,535.36 หน่วย (มีมูลค่าประมาณ 26.4 ล้านดอลลาร์สหรัฐ) ทีมงานด้านความปลอดภัยของ Beosin ได้ทำการวิเคราะห์ช่องโหว่และติดตามการเคลื่อนไหวของเงินในเหตุการณ์ความปลอดภัยครั้งนี้ และได้แบ่งปันผลลัพธ์ดังต่อไปนี้:

การวิเคราะห์วิธีการโจมต

สำหรับเหตุการณ์นี้ เราจะใช้ธุรกรรมการโจมตีหลักเป็นหลักในการวิเคราะห์ แฮชธุรกรรมคือ: 0xcd4755645595094a8ab984d0db7e3b4aabde72a5c87c4f176a030629c47fb014

1. ผู้โจมตีเรียกใช้ getPurchasePrice() เพื่อรับราคา

2. หลังจากนั้นก็เรียกใช้ฟังก์ชันที่มีข้อบกพร่อง 0xa0296215() และตั้งค่า msg.value ให้เล็กมาก

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

3. ผู้โจมตีใช้ฟังก์ชัน burn เพื่อ "ขายโทเคนที่สร้างกลับ" ไปยังสัญญา ทำให้สามารถดึง ETH ในปริมาณมากออกจากเงินกองทุนของสัญญาได้

กระบวนการนี้ถูกทำซ้ำอีก 4 ครั้ง โดยแต่ละครั้งค่า msg.value เพิ่มขึ้น จนกระทั่งเกือบจะถอน ETH ทั้งหมดออกจากสัญญาได้

การติดตามเงินที่ถูกขโมย

จากข้อมูลการทำธุรกรรมบนบล็อกเชน Beosin ได้ทำการติดตามเงินทุนอย่างละเอียดผ่านแพลตฟอร์ม BeosinTrace ซึ่งเป็นแพลตฟอร์มสำหรับการสืบสวนและการติดตามบนบล็อกเชน และได้แบ่งปันผลลัพธ์ดังต่อไปนี้:

ในปัจจุบัน ETH จำนวน 8,535.36 ที่ถูกขโมยไปนั้นหลังจากการโอนย้ายแล้วส่วนใหญ่ถูกเก็บไว้ในที่อยู่ 0xd12f6e0fa7fbf4e3a1c7996e3f0dd26ab9031a60 และ 0x273589ca3713e7becf42069f9fb3f0c164ce850a ตามลำดับ

ที่อยู่ 0xd12f ถือครอง ETH จำนวน 4,267.09 และที่อยู่ 0x2735 ถือครอง ETH จำนวน 4,001 ที่อยู่ที่ผู้โจมตีใช้ในการโจมตี (0x6c8ec8f14be7c01672d31cfa5f2cefeab2562b50) ยังคงถือครอง ETH จำนวน 267.71 และยังไม่มีการโอนเงินเพิ่มเติมจากทั้งสามที่อยู่

แผนผังการวิเคราะห์การเคลื่อนไหวของเงินทุนที่ถูกขโมย โดย Beosin Trace

ที่อยู่ทั้งหมดดังกล่าวถูก Beosin KYT จัดประเภทเป็นที่อยู่ที่มีความเสี่ยงสูง ตัวอย่างเช่นที่อยู่ของผู้โจมตี:

Beosin KYT

บทสรุป

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

*Beosin จะให้รายงานการวิเคราะห์ทั้งหมดเกี่ยวกับการเคลื่อนไหวของเงินทุนและข้อมูลความเสี่ยงของที่อยู่ สามารถรับได้ทางอีเมลทางการ support@beosin.com

แหล่งที่มา:แสดงต้นฉบับ
คำปฏิเสธความรับผิดชอบ: ข้อมูลในหน้านี้อาจได้รับจากบุคคลที่สาม และไม่จำเป็นต้องสะท้อนถึงมุมมองหรือความคิดเห็นของ KuCoin เนื้อหานี้จัดทำขึ้นเพื่อวัตถุประสงค์ในการให้ข้อมูลทั่วไปเท่านั้น โดยไม่มีการรับรองหรือการรับประกัน และจะไม่ถูกตีความว่าเป็นคำแนะนำทางการเงินหรือการลงทุน KuCoin จะไม่รับผิดชอบต่อความผิดพลาดหรือการละเว้นในเนื้อหา หรือผลลัพธ์ใดๆ ที่เกิดจากการใช้ข้อมูลนี้ การลงทุนในสินทรัพย์ดิจิทัลอาจมีความเสี่ยง โปรดประเมินความเสี่ยงของผลิตภัณฑ์และความเสี่ยงที่คุณยอมรับได้อย่างรอบคอบตามสถานการณ์ทางการเงินของคุณเอง โปรดดูข้อมูลเพิ่มเติมได้ที่ข้อกำหนดการใช้งานและเอกสารเปิดเผยข้อมูลความเสี่ยงของเรา