SharkTeam: การวิเคราะห์หลักการของเหตุการณ์การโจมตีโปรโตคอลทุกประการ
เมื่อวันที่ 18 สิงหาคม Exactly Protocol ถูกแฮ็ก และผู้โจมตีได้กำไรประมาณ 12.04 ล้านดอลลาร์ SharkTeam ได้ทำการวิเคราะห์ทางเทคนิคของเหตุการณ์นี้เป็นครั้งแรก และสรุปข้อควรระวังด้านความปลอดภัย โดยหวังว่าโครงการต่อๆ ไปจะสามารถเรียนรู้จากเหตุการณ์ดังกล่าว และสร้างแนวป้องกันความปลอดภัยสำหรับอุตสาหกรรมบล็อกเชน
1. การวิเคราะห์เหตุการณ์
ที่อยู่ของผู้โจมตี:
0x3747dbbcb5c07786a4c59883e473a2e38f571af9
0x417179df13ba3ed138b0a58eaa0c3813430a20e0
0xe4f34a72d7c18b6f666d6ca53fbc3790bc9da042
สัญญาโจมตี:
0x6dd61c69415c8ecab3fefd80d079435ead1a5b4d
สัญญาที่ถูกโจมตี:
0x675d410dcf6f343219aae8d1dde0bfab46f52106
ธุรกรรมการโจมตี:
0x3d6367de5c191204b44b8a5cf975f257472087a9aadc59b5d744ffdef33a520e
0x1526acfb7062090bd5fed1b3821d1691c87f6c4fb294f56b5b921f0edf0cfad6
0xe8999fb57684856d637504f1f0082b69a3f7b34dd4e7597bea376c9466813585
กระบวนการโจมตี:
(1) ผู้โจมตี (0x417179df) ได้สร้างสัญญาโทเค็นการตลาดที่เป็นอันตรายหลายสัญญาและสัญญา uniswapPool หลายสัญญาผ่านสัญญาการโจมตี (0x6dd61c69)


(2) จากนั้นเรียกใช้ฟังก์ชันเลเวอเรจของสัญญาที่ถูกโจมตี (0x675d410d) และส่งผ่านไปยังที่อยู่โทเค็นของตลาดที่เป็นอันตราย
(3) เพิ่มสภาพคล่องของ USDC และโทเค็นของตลาดที่เป็นอันตรายไปยังสัญญาพูลผ่านฟังก์ชันการฝากในฟังก์ชันเลเวอเรจ และเข้าสู่ฟังก์ชัน crossDeleverage ของสัญญาที่ถูกโจมตีอีกครั้ง (0x675d410d)

(4) สัญญาที่ถูกโจมตี (0x675d410d) ในฟังก์ชัน crossDeleverage จะใช้ USDC เพื่อแลกเปลี่ยนโทเค็นตลาดที่เป็นอันตรายในสัญญาพูล

(5) หลังจากการเรียกใช้ฟังก์ชันเสร็จสิ้น สัญญาการโจมตี (0x6dd61c69) จะลบสภาพคล่องในพูลออก จากนั้นจึงเสนอโทเค็น USDC ที่แลกเปลี่ยนเพื่อหากำไร

(6) ทำซ้ำการดำเนินการข้างต้นหลายครั้ง และการโจมตีแต่ละครั้งจะแทนที่ที่อยู่ผู้ใช้ที่ถูกโจมตีและที่อยู่โทเค็นของตลาดที่เป็นอันตราย

(7) จากนั้นส่ง USDC ที่ได้รับไปยังผู้โจมตี (0xe4f34a72)
(8) กำไรจากการดำเนินการเดียวกันหลายครั้ง
2. การวิเคราะห์ช่องโหว่
การโจมตีนี้หาประโยชน์จากช่องโหว่ในสัญญา DebtManager (0x675d410d) โดยที่ฟังก์ชันเลเวอเรจไม่ได้ตรวจสอบว่าพารามิเตอร์ตลาดขาเข้าเป็นสัญญาตลาดที่น่าเชื่อถือหรือไม่ เพื่อให้ตัวแปรสถานะ _msgSender สามารถปรับเปลี่ยนให้กับผู้โจมตีในฟังก์ชันอนุญาตมัณฑนากร การอ้างอิงโดยพลการ ที่อยู่.

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

3. คำแนะนำด้านความปลอดภัย
เพื่อตอบสนองต่อการโจมตีนี้ เราควรปฏิบัติตามข้อควรระวังต่อไปนี้ในระหว่างกระบวนการพัฒนา:
(1) ในกรณีของการส่งผ่านพารามิเตอร์และการเรียกที่อยู่ภายนอกที่เกี่ยวข้อง ควรตรวจสอบอย่างเข้มงวดว่าที่อยู่การส่งผ่านพารามิเตอร์นั้นเป็นที่อยู่ที่เชื่อถือได้หรือไม่
(2) ก่อนที่โปรเจ็กต์จะออนไลน์ จำเป็นต้องดำเนินการตรวจสอบสัญญาอัจฉริยะให้กับทีมตรวจสอบมืออาชีพจากภายนอก
About Us
วิสัยทัศน์ของ SharkTeam คือการรักษาความปลอดภัยให้กับโลก Web3 อย่างเต็มรูปแบบ ทีมงานประกอบด้วยผู้เชี่ยวชาญด้านความปลอดภัยที่มีประสบการณ์และนักวิจัยอาวุโสจากทั่วทุกมุมโลก พวกเขามีความเชี่ยวชาญในทฤษฎีพื้นฐานของบล็อคเชนและสัญญาอัจฉริยะ และให้บริการต่างๆ รวมถึงการตรวจสอบสัญญาอัจฉริยะ การวิเคราะห์ออนไลน์ และการตอบสนองฉุกเฉิน ได้สร้างความร่วมมือระยะยาวกับผู้เล่นหลักในด้านต่างๆ ของระบบนิเวศบล็อกเชน เช่น Polkadot, Moonbeam, polygon, OKC, Huobi Global, imToken, ChainIDE เป็นต้น
เว็บไซต์อย่างเป็นทางการ:https://www.sharkteam.org


