SharkTeam: UwU Lend การวิเคราะห์เหตุการณ์การโจมตี

avatar
SharkTeam
11เดือนก่อน
ประมาณ 4002คำ,ใช้เวลาอ่านบทความฉบับเต็มประมาณ 6นาที
เมื่อวันที่ 10 มิถุนายน 2024 UwU Lend ถูกโจมตี และโครงการนี้สูญเสียเงินไปประมาณ 19.3 ล้านดอลลาร์สหรัฐ SharkTeam ดำเนินการวิเคราะห์ทางเทคนิคของเหตุการณ์นี้ทันทีและสรุปมาตรการป้องกันความปลอดภัย เราหวังว่าโครงการต่อๆ ไปจะสามารถเรียนรู้จากสิ่งนี้ และร่วมกันสร้างแนวป้องกันความปลอดภัยสำหรับอุตสาหกรรมบล็อกเชน

เมื่อวันที่ 10 มิถุนายน 2024 UwU Lend ถูกโจมตี และโครงการนี้สูญเสียเงินไปประมาณ 19.3 ล้านดอลลาร์สหรัฐ

SharkTeam: UwU Lend การวิเคราะห์เหตุการณ์การโจมตี

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

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

ตัวรุก: 0x841dDf093f5188989fA1524e7B893de64B421f47

ผู้โจมตีเริ่มธุรกรรมการโจมตีทั้งหมด 3 รายการ:

ธุรกรรมการโจมตี 1:

0x242a0fb4fde9de0dc2fd42e8db743cbc197ffa2bf6a036ba0bba303df296408b

ธุรกรรมการโจมตี 2:

0xb3f067618ce54bc26a960b660cfc28f9ea0315e2e9a1a855ede1508eb4017376

ธุรกรรมการโจมตี 3:

0xca1bbf3b320662c89232006f1ec6624b56242850f07e0f1dadbe4f69ba0d6ac3

ใช้ธุรกรรมการโจมตี 1 เป็นตัวอย่างในการวิเคราะห์:

สัญญาการโจมตี: 0x21c58d8f816578b1193aef4683e8c64405a4312e

สัญญาเป้าหมาย: สัญญาซื้อคืน UwU Lend ได้แก่:

ดอลลาร์สหรัฐ: 0xf1293141fc6ab23b2a0143acc196e3429e0b67a6

uDAI: 0xb95bd0793bcc5524af358ffaae3e38c3903c7626

คุณUSDT: 0x24959f75d7bda1884f1ec9861f644821ce233c7d

กระบวนการโจมตีมีดังนี้:

1. โทเค็นยืมแฟลชหลายโทเค็นจากแพลตฟอร์มที่แตกต่างกัน รวมถึง WETH, WBTC, sUSDe, USDe, DAI, FRAX, USDC, GHO

ที่อยู่การรับโทเค็นคือ 0x4fea76b66db8b548842349dc01c85278da3925da

SharkTeam: UwU Lend การวิเคราะห์เหตุการณ์การโจมตี

โทเค็นและปริมาณของสินเชื่อแฟลชมีดังนี้:

เงินกู้ Flash จาก Aave V3 159, 053.16 WETH และ 14, 800 WBTC

สินเชื่อ Flash 40,000 WETH จาก Aave V2

สินเชื่อ Flash 91,075.70 WETH และ 4,979.79 WBTC จาก Spark

สินเชื่อแฟลชจาก Morpho 301, 738, 880.01 sUSDe, 236, 934, 023.17 USDe และ 100, 786, 052.15 DAI

สินเชื่อแฟลช 60, 000, 000 FRAX และ 15, 000, 000 USDC จาก Uniswap V3: FRAX-USDC

เงินกู้ Flash จาก Balancer 4,627,557.47 GHO และ 38,413.34 WETH

สินเชื่อแฟลช 500, 000, 000 DAI จาก Maker

รวมประมาณ 328,542.2 WETH, 19779.79 WBTC, 600786052.15 DAI, 301,738,880.01 sUSDe, 236,934,023.17 USDe, 4,627,557.47 GHO, 60,000,000 FRAX, 15, 000, 00 ดอลลาร์สหรัฐ

2. โอน Flash Loan Token ไปที่สัญญา 0xf19d66e82ffe8e203b30df9e81359f8a201517ad (ตัวย่อว่า 0x f 19 d) เพื่อเตรียมพร้อมสำหรับการโจมตี

SharkTeam: UwU Lend การวิเคราะห์เหตุการณ์การโจมตี

3. ควบคุมราคา sUSDe (ลดราคา) โดยการแลกเปลี่ยนโทเค็น

SharkTeam: UwU Lend การวิเคราะห์เหตุการณ์การโจมตี

(1)USDecrvUSD.แลกเปลี่ยน

SharkTeam: UwU Lend การวิเคราะห์เหตุการณ์การโจมตี

แปลง 8, 676, 504.84 USDe เป็น 8, 730, 453.49 crvUSD จำนวน USDe ใน USDecrvUSD จะเพิ่มขึ้นและราคาจะลดลง จำนวน crvUSD จะลดลงและราคาจะเพิ่มขึ้น

(2) USDeDAI. แลกเปลี่ยน

SharkTeam: UwU Lend การวิเคราะห์เหตุการณ์การโจมตี

แปลง 46, 452, 158.05 USDe เป็น 14, 389, 460.59 DAI จำนวน USDe ใน USDeDAI เพิ่มขึ้น ราคาลดลง จำนวน DAI ลดลง และราคาเพิ่มขึ้น

(3)FRAXUSDe.แลกเปลี่ยน

แปลง 14, 477, 791.69 USDe เป็น 46, 309, 490.86 FRAX จำนวน USDe ใน USDeDAI เพิ่มขึ้น และราคาลดลง และราคาเพิ่มขึ้น

(4)GHOUSDe.แลกเปลี่ยน

SharkTeam: UwU Lend การวิเคราะห์เหตุการณ์การโจมตี

แปลง 4,925,427.20 USDe เป็น 4,825,479.07 GHO จำนวน USDe ใน USDeDAI เพิ่มขึ้นและราคาลดลง จำนวน GHO ลดลงและราคาเพิ่มขึ้น

(5)USDeUSDC.แลกเปลี่ยน

SharkTeam: UwU Lend การวิเคราะห์เหตุการณ์การโจมตี

แปลง 14, 886, 912.83 USDe เป็น 14, 711, 447.94 USDC จำนวน USDe ใน USDeDAI เพิ่มขึ้น ราคาลดลง จำนวน USDC ลดลง และราคาเพิ่มขึ้น

หลังจากการแลกเปลี่ยนข้างต้น ราคาของ USDe ใน 5 กองทุนรวมก็ลดลง ส่งผลให้ราคา sUSDe ลดลงอย่างรวดเร็ว

4. สร้างสถานะการให้ยืมอย่างต่อเนื่อง นั่นคือ ฝากสินทรัพย์อื่น ๆ (WETH, WBTC และ DAI) ลงในสัญญา LendingPool จากนั้นให้ยืม sUSDe เนื่องจากราคาของ sUSDe ลดลง จำนวนเงินกู้ sUSDe จึงสูงกว่าก่อนที่ราคาจะดิ่งลงมาก

SharkTeam: UwU Lend การวิเคราะห์เหตุการณ์การโจมตี

5. เช่นเดียวกับขั้นตอนที่ 3 การดำเนินการย้อนกลับจะทำให้ราคา sUSDe สูงขึ้น

SharkTeam: UwU Lend การวิเคราะห์เหตุการณ์การโจมตี

เนื่องจาก sUSDe ถูกปั๊มสูงขึ้น มูลค่าของสถานะที่ยืมในขั้นตอนที่ 4 จึงเกินมูลค่าหลักประกัน ซึ่งเข้าเกณฑ์ในการชำระบัญชี

6. ชำระบัญชีสินเชื่อเป็นชุดและรับรางวัลการชำระบัญชี uWETH

SharkTeam: UwU Lend การวิเคราะห์เหตุการณ์การโจมตี

7. ชำระคืนเงินกู้และถอนสินทรัพย์อ้างอิง WETH, WBTC, DAI และ sUSDe

SharkTeam: UwU Lend การวิเคราะห์เหตุการณ์การโจมตี 8. ฝาก sUSDe เข้าสู่ LendingPool อีกครั้ง ในเวลานี้ ราคาของ sUSDe เพิ่มขึ้น เพื่อให้สามารถกู้ยืมสินทรัพย์อื่น ๆ ได้มากขึ้น รวมถึง DAI และ USDT

SharkTeam: UwU Lend การวิเคราะห์เหตุการณ์การโจมตี 9. แลกเปลี่ยนโทเค็นและชำระคืนเงินกู้แฟลช กำไรสุดท้าย 1,946.89 ETH

SharkTeam: UwU Lend การวิเคราะห์เหตุการณ์การโจมตีSharkTeam: UwU Lend การวิเคราะห์เหตุการณ์การโจมตี

2. การวิเคราะห์ช่องโหว่

จากการวิเคราะห์ข้างต้น พบว่ามีสินเชื่อแฟลชจำนวนมากและมีการปรับเปลี่ยนราคาของ sUSDe หลายครั้งในกระบวนการโจมตีทั้งหมด เมื่อมีการจำนอง sUSDe จะส่งผลกระทบต่อจำนวนสินทรัพย์ที่ให้ยืม จะส่งผลต่ออัตราการกู้ยืมและค่าสัมประสิทธิ์การชำระบัญชี (ปัจจัยด้านสุขภาพ)

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

จากขั้นตอนที่ 3 ข้างต้น เราพบว่าผู้โจมตีควบคุมราคาของ sUSDe โดยการควบคุมราคาของ USDe ในกลุ่มการซื้อขายทั้งห้าของ Curve Finance: USDe/rvUSD, USDe/AI, FRAX/SDe, GHO/SDe และ USDe/SDC ฟังก์ชั่นการอ่านราคามีดังนี้: SharkTeam: UwU Lend การวิเคราะห์เหตุการณ์การโจมตี

SharkTeam: UwU Lend การวิเคราะห์เหตุการณ์การโจมตี

ในบรรดาราคา sUSDe คำนวณจากราคา 11 รายการ โดย 10 รายการแรกอ่านจาก CurveFinance และรายการสุดท้ายมาจาก Uniswap V3

ราคาที่อ่านจาก CurveFinance นั้นมาจากกลุ่มการซื้อขายห้ากลุ่ม USDe/rvUSD, USDe/AI, FRAX/SDe, GHO/SDe และ USD/SDC ซึ่งเป็นกลุ่มการซื้อขายห้ากลุ่มที่ถูกจัดการโดยผู้โจมตีในธุรกรรมการโจมตี

SharkTeam: UwU Lend การวิเคราะห์เหตุการณ์การโจมตีSharkTeam: UwU Lend การวิเคราะห์เหตุการณ์การโจมตี ราคาที่ส่งคืนจะคำนวณจากราคาที่อ่านโดย uwuOracle, price_oracle(0) และ get_p(0) ในสัญญากลุ่มการซื้อขาย CurveFinance

(1) ราคาคือราคาที่ Chainlink ระบุไว้และไม่สามารถเปลี่ยนแปลงได้

SharkTeam: UwU Lend การวิเคราะห์เหตุการณ์การโจมตี

(2) พารามิเตอร์กลุ่มการซื้อขาย

SharkTeam: UwU Lend การวิเคราะห์เหตุการณ์การโจมตีSharkTeam: UwU Lend การวิเคราะห์เหตุการณ์การโจมตี

ผู้โจมตีจัดการค่าที่ส่งคืนของ get_p(0) โดยจัดการจำนวนโทเค็นในกลุ่มการซื้อขาย ดังนั้นจึงจัดการราคา

3. คำแนะนำด้านความปลอดภัย

เพื่อตอบสนองต่อการโจมตีนี้ ควรปฏิบัติตามข้อควรระวังต่อไปนี้ในระหว่างกระบวนการพัฒนา:

(1) เพื่อแก้ไขช่องโหว่ของการปั่นราคา สามารถใช้ออราเคิลราคาแบบออฟไลน์เพื่อหลีกเลี่ยงการปั่นราคาได้

(2) ก่อนที่โปรเจ็กต์จะออนไลน์ การตรวจสอบสัญญาอัจฉริยะจะต้องดำเนินการโดยบริษัทตรวจสอบมืออาชีพบุคคลที่สาม

เกี่ยวกับเรา

วิสัยทัศน์ของ SharkTeam คือการรักษาความปลอดภัยให้กับโลกของ Web3 ทีมงานประกอบด้วยผู้เชี่ยวชาญด้านความปลอดภัยที่มีประสบการณ์และนักวิจัยอาวุโสจากทั่วโลก ซึ่งมีความเชี่ยวชาญในทฤษฎีพื้นฐานของบล็อคเชนและสัญญาอัจฉริยะ โดยให้บริการต่างๆ เช่น การระบุและการบล็อกความเสี่ยง การตรวจสอบสัญญาอัจฉริยะ KYT/AML การวิเคราะห์ออนไลน์ ฯลฯ และได้สร้างแพลตฟอร์มการระบุความเสี่ยงและการบล็อกอัจฉริยะแบบออนไลน์ ChainAegis ซึ่งสามารถต่อสู้กับภัยคุกคามขั้นสูงแบบต่อเนื่อง (ขั้นสูง) ได้อย่างมีประสิทธิภาพ ภัยคุกคามถาวร) ในโลก Web3 , APT) ได้สร้างความสัมพันธ์ความร่วมมือระยะยาวกับผู้เล่นหลักในด้านต่างๆ ของระบบนิเวศ Web3 เช่น Polkadot, Moonbeam, polygon, Sui, OKX, imToken, Collab.Land, TinTinLand เป็นต้น

เว็บไซต์อย่างเป็นทางการ: https://www.sharkteam.org

ทวิตเตอร์: https://twitter.com/sharkteamorg

โทรเลข: https://t.me/sharkteamorg

ดิสคอร์ด: https://discord.gg/jGH9xXCjDZ

บทความต้นฉบับ, ผู้เขียน:SharkTeam。พิมพ์ซ้ำ/ความร่วมมือด้านเนื้อหา/ค้นหารายงาน กรุณาติดต่อ report@odaily.email;การละเมิดการพิมพ์ซ้ำกฎหมายต้องถูกตรวจสอบ

ODAILY เตือนขอให้ผู้อ่านส่วนใหญ่สร้างแนวคิดสกุลเงินที่ถูกต้องและแนวคิดการลงทุนมอง blockchain อย่างมีเหตุผลและปรับปรุงการรับรู้ความเสี่ยงอย่างจริงจัง สำหรับเบาะแสการกระทำความผิดที่พบสามารถแจ้งเบาะแสไปยังหน่วยงานที่เกี่ยวข้องในเชิงรุก

การอ่านแนะนำ
ตัวเลือกของบรรณาธิการ