สรุป
เมื่อเวลา 02:59:23 น. ของวันที่ 11 พฤศจิกายน 2023 เวลา 8:00 UTC+ MetaScout ตรวจพบว่าโปรโตคอล Stablecoin Raft บน Ethereum ได้รับผลกระทบจากการโจมตีแบบ Flash Loan ผลลัพธ์คือเหรียญ stablecoin $R จำนวน 6.7 ล้านเหรียญถูกสร้างขึ้น และโปรโตคอลสูญเสียเงินจำนวน $3.6 ล้านเหรียญ สาเหตุที่แท้จริงคือปัญหาการคำนวณที่แม่นยำซึ่งเกิดขึ้นเมื่อสร้างโทเค็นการแชร์ ซึ่งแฮกเกอร์ใช้ประโยชน์เพื่อรับโทเค็นการแชร์เพิ่มเติม
MetaTrust Labs ดำเนินการวิจัยเชิงลึกและวิเคราะห์การโจมตีนี้ โดยเผยให้เห็นว่าแฮกเกอร์ใช้ประโยชน์จากช่องโหว่ดังกล่าวได้อย่างไร
แพโปรโตคอล Stablecoin
Raftเป็นโปรโตคอล DeFi ที่ให้วิธีการที่ประหยัดเงินทุนในการให้ยืมและยืมโดยการฝาก Liquid Stake Tokens (LSD) เป็นหลักประกันโดยยังคงรักษารางวัลจากการปักหลักไว้
ในขณะที่เขียนบทความนี้ มูลค่ารวมที่ถูกล็อค (TVL) ลดลง 46% เหลือ 7 ล้านดอลลาร์หลังจากการโจมตีในวันนี้ ราคาของ $R ลดลง 99.6% เหลือ $0.0036
ซื้อขาย
https://etherscan.io/tx/0xfeedbf51b4e2338e38171f6e19501327294ab1907ab44cfd2d7e7336c975ace7
ผู้โจมตี
0xc1f2b71a502b551a65eee9c96318afdd5fd439fa
สัญญาโจมตี
0x0a3340129816a86b62b7eafd61427f743c315ef8
สัญญาที่ถูกโจมตี
InterestRatePositionManager: 0x9ab6b21cdf116f611110b048987e58894786c244
ขั้นตอนการโจมตี
1. ยืม 6,000 $cbETH จาก AAVE ผ่านการกู้ยืมแบบแฟลช
2. โอนยอดรวม 6,001 $cbETH ไปยังสัญญา InterestRatePositionManager
3. ชำระบัญชีตำแหน่งที่สร้างไว้ล่วงหน้า 0x011992114806e2c3770df73fa0d19884215db85f ในสัญญา InterestRatePositionManager
4. ตั้งค่าดัชนีของโทเค็นจำนองแพเป็น 6, 003, 441, 032, 036, 096, 684, 181 ซึ่งเป็นยอดคงเหลือ $cbETH ของสัญญา InterestRatePositionManager และขยาย 1,000 เท่าเนื่องจากการบริจาคในขั้นตอนที่ 2 ;
5. เมื่อคำนวณส่วนแบ่งโดยใช้ฟังก์ชัน divUp 1 wei share จะถูกสร้างออกเพียง 1 wei ของ $cbETH โปรดทราบว่าเมื่อตัวเศษไม่เป็นศูนย์ ค่าที่ส่งคืนขั้นต่ำของฟังก์ชัน divUp จะเป็น 1 ไม่ว่าตัวส่วนจะใหญ่แค่ไหน:
6. ทำซ้ำขั้นตอนที่ 5 60 ครั้งเพื่อรับหุ้น wei 60 หุ้น ซึ่งเท่ากับ 10,050 $cbETH
7. แลกเปลี่ยน 6003 $cbETH ด้วยเพียง 90 wei $rcbETH-c;
8. ยืมกำไร 6.7 ล้าน $R และในที่สุดก็แลกเปลี่ยนเป็น 1,575 $ETH มูลค่า $3.6 ล้านใน Dapps ที่แตกต่างกัน รวมถึง:
แปลง 2.1 ล้าน $R เป็น 2 ล้าน $sDAI บน Balancer
แปลง 1.2 ล้าน $R เป็น 1.15 ล้าน $DAI บน Balancer
แปลง 200,000 $R เป็น 86,000 $USDC บน Uniswap
9. สิ่งที่น่าตกใจคือแฮกเกอร์เผา 1,570 $ETH ไปยังที่อยู่ของหลุมดำ ซึ่งหมายความว่าแฮกเกอร์ไม่ได้รับผลกำไรใดๆ
สาเหตุที่แท้จริง
สาเหตุที่แท้จริงคือปัญหาการคำนวณที่แม่นยำซึ่งเกิดขึ้นเมื่อสร้างโทเค็นการแชร์ ซึ่งแฮกเกอร์ใช้ประโยชน์เพื่อรับโทเค็นการแชร์เพิ่มเติม เนื่องจากการบริจาค $cbETH จะขยายดัชนี ทำให้ส่วนแบ่งของแฮ็กเกอร์มีมูลค่ามากขึ้น แฮ็กเกอร์จึงใช้ $rcbETH-c เพียงเล็กน้อยเพื่อแลกเปลี่ยน 6003 $cbETH และยืม $R จำนวนมาก
รหัสกุญแจ
การสูญเสียทรัพย์สิน
3.6 ล้านเหรียญสหรัฐ
เงินทุนไหลเข้า
1,570 $ETH ถูกเผาเนื่องจากความผิดพลาดของแฮกเกอร์
ในขณะที่เขียนบทความนี้ ผู้โจมตีมีโทเค็น R $R 1.4 ล้าน (มูลค่า $4.6k) ในกระเป๋าเงินของเขา
คำแนะนำด้านความปลอดภัย
พิจารณาตรวจสอบปัญหาการปัดเศษที่อาจเกิดขึ้นในบริบทของการคำนวณอัตราดอกเบี้ย เช่น ว่าพวกเขาสามารถจัดการโดยผู้ใช้ที่เป็นอันตรายในกรณี Edge หรือไม่ เช่นเดียวกับในสถานการณ์การโจมตี Raft
ขอแนะนำให้ดำเนินมาตรการเพื่อตรวจสอบระบบและระงับโปรโตคอลในกรณีฉุกเฉิน การรวมระบบการบล็อกพูลหน่วยความจำจะเป็นประโยชน์ ระบบนี้สามารถตรวจจับธุรกรรมการโจมตีในกลุ่มหน่วยความจำได้อย่างมีประสิทธิภาพเมื่อผู้โจมตีทำการโจมตี เพื่อที่จะทำการบล็อกเชิงป้องกันและหลีกเลี่ยงการสูญเสีย
เกี่ยวกับ MetaTrust Labs
MetaTrust Labs คือผู้ให้บริการชั้นนำด้านเครื่องมือรักษาความปลอดภัยปัญญาประดิษฐ์ Web3 และบริการตรวจสอบโค้ดที่บ่มเพาะโดยมหาวิทยาลัยเทคโนโลยีนันยางในสิงคโปร์ เรานำเสนอโซลูชัน AI ขั้นสูงที่ช่วยให้นักพัฒนาและผู้มีส่วนได้ส่วนเสียของโครงการสามารถรักษาความปลอดภัยแอปพลิเคชัน Web3 และสัญญาอัจฉริยะได้ บริการที่ครอบคลุมของเราประกอบด้วยการสแกนความปลอดภัยของ AI การตรวจสอบรหัส การตรวจสอบสัญญาอัจฉริยะ และการตรวจสอบธุรกรรม ด้วยการบูรณาการ AI เรารับประกันระบบนิเวศที่ปลอดภัยและเพิ่มความไว้วางใจระหว่างผู้ใช้และนักพัฒนา
Website: https://metatrust.io/
Twitter: https://twitter.com/MetatrustLabs
