การวิเคราะห์เหตุการณ์การโจมตี DeFi Protocol Warp Finance "Oracle Machine"
เมื่อเวลาประมาณ 6:00 น. ของวันที่ 18 ธันวาคม ตามเวลาปักกิ่ง Warp Finance ข้อตกลงการให้กู้ยืม DeFi ถูกแฮ็ก ทำให้สูญเสียทรัพย์สินไปเกือบ 8 ล้านดอลลาร์
ในเวลาเดียวกัน Warp Finance ทวีตอย่างเป็นทางการว่ากำลังตรวจสอบสินเชื่อที่ผิดกฎหมายและแนะนำให้ผู้ใช้ระงับการฝาก Stablecoin จนกว่าความจริงของเหตุการณ์จะชัดเจน
หลังจากได้รับสัญญาณเตือนจากแพลตฟอร์มการรับรู้สถานการณ์ด้านความปลอดภัยของบล็อกเชน (Beosin-Eagle Eye) ทีมงานของเฉิงตู เหลียนหนานได้ตรวจสอบการโจมตีทันทีและพบว่า:
1. Warp Finance ใช้ราคาสัมพัทธ์ของคู่ซื้อขาย Uniswap เป็นแหล่งฟีดราคาสำหรับออราเคิล
2. หลังจากเรียนรู้เกี่ยวกับสถานการณ์นี้ ผู้โจมตีได้ควบคุมราคาของคู่ซื้อขาย Uniswap ด้วยเงินทุนจำนวนมหาศาลที่ได้รับจากเงินกู้ด่วน
3. ด้วยการควบคุมเครื่อง Oracle เพื่อป้อนข้อมูลแหล่งที่มาของราคา ผู้โจมตีได้ทำลายมาตรฐานการตัดสินมูลค่าสินเชื่อของ Warp Finance
4. ภายใต้สภาพแวดล้อมข้อมูลที่ไม่ถูกต้องของ Warp Finance ผู้โจมตีได้ขโมยทรัพย์สินที่มีมูลค่าเกินกว่ามูลค่าของหลักประกัน
ชื่อเรื่องรอง
ชื่อเรื่องรอง
0x8bb8dc5c7c830bac85fa48acad2505e9300a91c3ff239c9517d0cae33b595090
การวิเคราะห์กระบวนการโจมตี
ผู้โจมตีใช้ Uniswap เป็นครั้งแรกสำหรับเงินกู้แบบแฟลช และใช้วิธีการแบบโมเสค (ดำเนินการต่อเนื่องก่อนชำระคืน) เพื่อดำเนินการกู้ยืมเงิน WETH ในพูล WBTC2, USDC3 และ USDT2 ตามลำดับ ดังแสดงในรูปต่อไปนี้:
ต่อมา เพื่อขยายจำนวนเงินที่ใช้สำหรับการโจมตี ผู้โจมตีได้ทำการยืมแฟลชจาก dYdX ดังที่แสดงด้านล่าง:
ในขณะนี้ ขนาดของกองทุนที่กู้ยืมมีจำนวนเกือบ 200 ล้านดอลลาร์สหรัฐ ถัดมา ผู้โจมตีได้อัดฉีดสภาพคล่องเข้าไปในกลุ่มการซื้อขาย DAI 2 ของ Uniswap และได้รับ LP ของโทเค็นสภาพคล่องดังแสดงในรูปต่อไปนี้:
จากนั้นจำนองโทเค็น LP ที่ได้รับในสัญญา Warp Finance ธุรกรรมและรหัสมีดังนี้:
หลังจากเสร็จสิ้นการจดจำนอง ผู้โจมตีใช้เงินทุนที่ยืมมาเพื่อแลกเปลี่ยน DAI ทั้งหมดในพูล Uniswap DAI 2 ดังแสดงในรูปด้านล่าง:
ชื่อเรื่องรอง
อัลกอริทึมราคาโทเค็น LP
(ราคาของโทเค็น A × จำนวนโฮลดิ้งใน A Token Pool + ราคาของ B Token × จำนวนโฮลดิ้งใน B Token Pool) / จำนวนโทเค็น LP ทั้งหมด
ในหมู่พวกเขา ราคาของโทเค็น A และ B คำนวณโดยคู่ซื้อขาย "โทเค็นที่สอดคล้องกันและสกุลเงินที่มีเสถียรภาพ" ของ Uniswap
ดังนั้นภายใต้สถานการณ์ข้างต้น ราคาของโทเค็น A และ B จะอยู่ในระดับปกติ ในขณะที่ราคาสัมพัทธ์ของโทเค็น A และ B ในคู่การซื้อขายกลายเป็นผิดปกติ ทั้งนี้เนื่องจาก Uniswap ใช้กลไกผู้ดูแลสภาพคล่องผลิตภัณฑ์คงที่ นั่นคือ A×B=K เมื่อมีการแลกเปลี่ยนจำนวนมากสำหรับโทเค็นบางรายการ จะมีการเลื่อนไหลอย่างมาก ส่งผลให้ราคาแตกต่างกัน
สมมติฐาน: A=ปริมาณโทเค็น A B=ปริมาณโทเค็น B AP=ราคาโทเค็น A BP=ราคาโทเค็น B
ทราบ: A×B=k (K เป็นค่าคงที่เมื่อไม่มีการเพิ่มสภาพคล่อง); Warp price=(AP×A+BP×B)/totalLP
เนื่องจากทั้ง AP และ BP มีค่าคงที่ในเหตุการณ์นี้ เราจึงสามารถตั้งค่า AP=X1×BP และทำให้ง่ายขึ้นเพื่อให้ได้ Warp price=((X1×K)/B+B)×BP/totalLP
สรุปได้ว่า X1×K, BP และ totalLP นั้นคงที่ในการโจมตี และเมื่อจำนวน B เพิ่มขึ้น ราคาของ LP ก็จะเพิ่มขึ้น
ผู้โจมตีใช้ประโยชน์จากสิ่งนี้และใช้เงินทุนจำนวนมหาศาลที่ได้รับจากเงินกู้แฟลชเพื่อเพิ่มสภาพคล่องของหนึ่งในโทเค็นในกลุ่มการทำธุรกรรมอย่างหนาแน่น บังคับให้โทเค็นอื่นเพิ่มขึ้นตามนั้น ทำให้เกิดความไม่สมดุลของราคาของ LP เนื่องจากราคาของ LP ได้รับการจัดการและอยู่ในระดับสูง ผู้โจมตีจึงสามารถยืมทรัพย์สินได้มากกว่าปกติ
หลังจากนั้นผู้โจมตีทำการกู้ยืมโดยเรียกใช้ฟังก์ชันต่อไปนี้
ชื่อเรื่องรอง
สรุปเหตุการณ์
เห็นได้ชัดว่านี่เป็นอีกหนึ่งเหตุการณ์การโจมตีของออราเคิลที่เกิดขึ้นจากการยืมแฟลชจำนวนมาก Chengdu Lianan เคยเขียนบทความโดยชี้ให้เห็นว่าในบรรดาวิธีการโจมตีที่หลากหลายของแฮ็กเกอร์ในปัจจุบัน การควบคุมการป้อนราคาของ "เครื่องออราเคิล" เป็น "ผู้ร้าย" ที่มองไม่เห็น
ในขณะเดียวกัน Chengdu Lianan ยังเตือนนักพัฒนา DeFi อย่างเคร่งขรึมว่าพวกเขาควรเสริมความแข็งแกร่งให้กับการทดสอบเครื่อง Oracle แบบกำหนดเป้าหมาย โดยเฉพาะอย่างยิ่งก่อนที่โครงการจะออนไลน์ จำลองสถานการณ์ต่างๆ ของการโจมตีด้วยการควบคุมราคาให้มากที่สุดเท่าที่จะเป็นไปได้ ค้นพบปัญหาในเวลาและค้นหาวิธีแก้ไข และปรับปรุงความสามารถของโครงการในการต่อต้านการโจมตีของออราเคิลได้อย่างมีประสิทธิภาพ เพียงหนึ่งเดือนต่อมา การสูญเสียทรัพย์สินครั้งใหญ่เตือนเราอีกครั้งว่าในด้านของบล็อกเชน การป้องกันความปลอดภัยมีความสำคัญเป็นพิเศษ และช่องโหว่ด้านความปลอดภัยของระบบจำนวนมากก็ยากที่จะป้องกัน ดังนั้นเราจึงต้องใช้มาตรการเชิงรุกเพื่อจัดทำแผนป้องกันอย่างต่อเนื่องและมีประสิทธิภาพเพื่อหลีกเลี่ยงปัญหาล่วงหน้าให้ได้มากที่สุด นอกจากนี้ หากมีปัญหาด้านเทคนิคด้านความปลอดภัยระหว่างการดำเนินงานของโครงการ DeFi เป็นวิธีที่มีประสิทธิภาพในการนำโซลูชันเทคโนโลยีความปลอดภัยของบุคคลที่สามมาใช้ สุดท้ายนี้ เฉิงตู เหลียนหนานได้ยื่นอุทธรณ์อีกครั้งเพื่อเสริมความแข็งแกร่งให้กับการทดสอบความปลอดภัยตามปกติของเครื่อง Oracle ของโครงการและด้านอื่นๆ เพื่อป้องกันไม่ให้เหตุการณ์ดังกล่าวเกิดขึ้นอีก


