เมื่อวันที่ 1 พฤศจิกายน MetaScout ตรวจพบว่า Onyx Protocol ซึ่งเป็นโปรโตคอลการให้กู้ยืมบน Ethereum ประสบกับการโจมตีด้วยสินเชื่อแฟลชและสูญเสียเงินจำนวน 2.1 ล้านเหรียญสหรัฐ สาเหตุที่แท้จริงคือแฮกเกอร์กำหนดเป้าหมายและดำเนินการข้อเสนอเพื่อเพิ่มตลาดใหม่ก่อน รวมถึงปัญหาการสูญเสียความแม่นยำของรหัสในโปรโตคอล Compound fork
MetaTrust Labs ดำเนินการวิจัยเชิงลึกและวิเคราะห์เหตุการณ์ดังกล่าว โดยเผยให้เห็นว่าแฮกเกอร์ใช้ข้อเสนอการกำกับดูแลและช่องโหว่ของโปรโตคอลเพื่อเริ่มการโจมตี Onyx Protocol ได้อย่างไร
เกี่ยวกับโปรโตคอลโอนิกซ์
Onyx Protocol (https://docs.onyx.org/) เป็นตลาดการให้ยืมที่ออกแบบมาเพื่อมอบบริการสินเชื่อและการให้ยืมที่ปลอดภัยและไร้ความน่าเชื่อถือแก่ผู้ใช้บนเครือข่าย Ethereum
เมื่อวันที่ 29 ตุลาคม 2023 Onyx Protocol (https://x.com/OnyxProtocol/status/1718348637158137858?s=20) ได้เปิดตัวข้อเสนอ OIP-22 เพื่อเพิ่ม $PEPE เข้าสู่ตลาด น่าเสียดายที่ข้อเสนอดังกล่าวตกเป็นเป้าหมายและถูกโจมตีโดยแฮกเกอร์
ในเวลาเดียวกันเมื่อพิจารณาจากสัญญาที่ใช้งานบน Onyx chain มันเป็นโปรโตคอลอนุพันธ์แบบผสม เนื่องจากการโจมตี TVL ลดลงจาก 2.86 ล้านเหรียญสหรัฐ เหลือ 550,000 เหรียญสหรัฐ
ปฏิบัติการเชิงรุก
การสูญเสียการโจมตี
ความสูญเสียทั้งหมดจากธุรกรรมการโจมตีทั้งสองครั้งมีมูลค่าประมาณ 2.14 ล้านดอลลาร์
ผู้โจมตี
0xdec2F31C3984F3440540DC78Ef21b1369d4eF767 0x5083956303a145f70ba9f3d80c5e6cb5ac842706
สัญญาโจมตี
0x052ad2f779c1b557d9637227036ccaad623fceaa
สัญญาถูกโจมตี
สัญญาตัวแทน:https://etherscan.io/address/0x5fdbcd61bc9bd4b6d3fd1f49a5d253165ea11750
ปฏิบัติตามสัญญา:https://etherscan.io/address/0x9dcb6bc351ab416f35aeab1351776e2ad295abc4#code
สัญญาการกำกับดูแล
https://etherscan.io/address/0xdec2f31c3984f3440540dc78ef21b1369d4ef767
ขั้นตอนการโจมตี
TL;DR
ยกตัวอย่างธุรกรรมการโจมตี 0x f 7 c 216
1. แฮกเกอร์ (0x 085 bDf) เริ่มใช้ข้อเสนอ OIP-22 เพื่อเพิ่มตลาดใหม่ที่เรียกว่า oPEPE (0x 5 fdbcd)
2. เปิดตัวสินเชื่อแฟลชจาก AAVE และรับ 4,000 $WETH ภายในหนึ่งนาทีหลังจากมีการเพิ่มตลาดใหม่
แลกเปลี่ยน 4, 000 $WETH เป็น 2, 520, 870, 348, 093 $PEPE
ย้าย $PEPE ทั้งหมดไปยังที่อยู่ 0x f 8 e 153
สร้างสัญญาตามที่อยู่ด้านบน 0x f 8 e 153 ใช้ 1 $PEPE เพื่อขุด 50, 000, 000, 000, 000, 000, 000 $oPEPE แลก $oPEPE ส่วนใหญ่ เหลือเพียง 2 wei ที่จะมอบให้กับตลาด oPEPE
โอน 2, 520, 870, 348, 093 $PEPE ไปยัง oPEPE และเข้าสู่ตลาดในชื่อ $oPEPE
ยืม 334 $ETH
เนื่องจากการสูญเสียความแม่นยำ จึงมีการแลก $oPEPE เพียง 1 wei เพื่อแลกกับ 2, 520, 870, 348, 093 $PEPE
ทำซ้ำขั้นตอนข้างต้นจากขั้นตอน b ถึงขั้นตอน f ยืม $USDC, $USDT, $PAXG, $DAI, $WBTC และ $LINK แล้วแลกเปลี่ยนเป็น $ETH
อัตราแลกเปลี่ยน = (เงินสดทั้งหมด + การให้ยืมทั้งหมด - เงินสำรองทั้งหมด) / อุปทานทั้งหมด = 2, 520, 870, 348, 093, 423, 681, 390, 050, 791, 472 / 2 = 1, 260, 435, 174, 046 , 711, 840, 695, 025, 395, 736
จำนวนเงินไถ่ถอน = 2, 520, 870, 348, 093, 423, 681, 390, 050, 791, 470
เนื่องจากการตัดทอนธุรกรรม โทเค็นการแลก = จำนวนการแลก / อัตราแลกเปลี่ยน = 1
881, 647, 840 wei $PEPE ของผู้กู้ยืมที่ชำระบัญชี (0x f 8 e 153)
แลกสิทธิ์แล้ว 856, 961, 701 Wei $PEPE
3. ใช้เงิน 4,002 $WETH เพื่อชำระเงินกู้แฟลชของ AAVE และได้รับกำไร 1,156.9 $ETH
สาเหตุที่แท้จริง
ในแง่หนึ่งแฮกเกอร์คุ้นเคยกับปัญหาการสูญเสียความแม่นยำของโปรโตคอล Compound เป็นอย่างดี และได้สังเกตเห็นช่องโหว่ของ Onyx Protocol ล่วงหน้า ดังนั้นแฮกเกอร์จึงอาจทราบถึงปัญหาในข้อเสนอ OIP-22 ตั้งแต่เนิ่นๆ เมื่อข้อเสนอถูก เปิดใช้งานและพร้อมสำหรับการดำเนินการแฮกเกอร์จะเป็นคนแรกที่ดำเนินการข้อเสนอและเริ่มการโจมตีเพียงไม่กี่นาทีต่อมา
ในทางกลับกัน ช่องโหว่การสูญเสียความแม่นยำเป็นสาเหตุของการโจมตี แฮกเกอร์จัดการ TotalSupply ให้เป็นค่าที่น้อยมาก 2 และเพิ่ม TotalCash เป็นมูลค่าที่สูงมาก 2520870348093423681390050791471 เพื่อขยายอัตราแลกเปลี่ยน ส่งผลให้มีการตัดทอนการคำนวณเมื่อไถ่ถอน
คำแนะนำด้านความปลอดภัย
ดำเนินการตรวจสอบข้อเสนอการกำกับดูแลโดยละเอียด ไม่จำกัดเพียงสัญญาอัจฉริยะ โดยเฉพาะอย่างยิ่งในสถานการณ์การเริ่มต้นและกรณี Edge อื่นๆ
พิจารณาเพิ่มหุ้นจำนวนเล็กน้อยเมื่อตลาดเริ่มต้นเพื่อป้องกันการบิดเบือน โดยเฉพาะอย่างยิ่งสำหรับโปรโตคอลแบบผสม
แนะนำให้ใช้ระบบการตรวจสอบเพื่อระงับโปรโตคอลในกรณีฉุกเฉิน หาก Onyx มีระบบตรวจสอบอยู่แล้ว ธุรกรรมการโจมตีครั้งที่สองอาจถูกบล็อกมากกว่าครึ่งชั่วโมงหลังจากเกิดขึ้น เพื่อลดการสูญเสีย นอกจากนี้ การรวมระบบการบล็อกพูลหน่วยความจำจะเป็นประโยชน์อย่างมาก ระบบนี้สามารถตรวจจับธุรกรรมการโจมตีใน mempool ได้อย่างมีประสิทธิภาพในขณะที่ผู้โจมตีกำลังดำเนินการโจมตี ทำให้สามารถบล็อกเชิงป้องกันเพื่อหลีกเลี่ยงการสูญเสีย
เงินทุนไหลเข้า
ในขณะที่เขียน ผู้โจมตี (0x 085 bDf) ได้ใช้ที่อยู่ควบคุมอื่น (0x 4 c 9 c 86) เพื่อโอน 1140 $ETH ไปยังแพลตฟอร์มผสมสกุลเงิน Tornado.Cash
ผู้โจมตีอีกรายยังคงเก็บเหรียญที่ถูกขโมยไว้ในกระเป๋าเงิน (0x 508395)
กรณีการโจมตีที่คล้ายกัน
ช่องโหว่นี้คล้ายกับการโจมตีของแฮ็กเกอร์ที่ได้รับความเดือดร้อนจาก Hundred Finance เมื่อวันที่ 15 เมษายน 2023 ซึ่งส่งผลให้สูญเสียเงินประมาณ 7 ล้านเหรียญสหรัฐ ลิงค์ธุรกรรม: 0x6e9ebcdebbabda04fa9f2e3bc21ea8b2e4fb4bf4f4670cb8483e2f0b2604f451
เกี่ยวกับ MetaTrust Labs
MetaTrust Labs คือผู้ให้บริการชั้นนำด้านเครื่องมือรักษาความปลอดภัยปัญญาประดิษฐ์ Web3 และบริการตรวจสอบโค้ดที่บ่มเพาะโดยมหาวิทยาลัยเทคโนโลยีนันยางในสิงคโปร์ เรานำเสนอโซลูชัน AI ขั้นสูงที่ช่วยให้นักพัฒนาและผู้มีส่วนได้ส่วนเสียของโครงการสามารถรักษาความปลอดภัยแอปพลิเคชัน Web3 และสัญญาอัจฉริยะได้ บริการที่ครอบคลุมของเราประกอบด้วยการสแกนความปลอดภัยของ AI การตรวจสอบรหัส การตรวจสอบสัญญาอัจฉริยะ และการตรวจสอบธุรกรรม ที่ MetaTrust Labs เรามุ่งมั่นที่จะรักษาความปลอดภัยภูมิทัศน์ของ Web3 เพื่อให้ผู้สร้างสามารถสร้างสรรค์สิ่งใหม่ๆ ด้วยความมั่นใจและเชื่อถือได้
Website: metatrust.io
Twitter: @MetatrustLabs
