Cointime

Download App
iOS & Android

SharkTeam: การวิเคราะห์การโจมตี Prisma Finance

เมื่อวันที่ 28 มีนาคม 2024 Prisma Finance ประสบกับการโจมตีด้วยสินเชื่อแฟลช และโครงการนี้สูญเสียเงินไปประมาณ 12.21 ล้านดอลลาร์สหรัฐ

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

ผู้โจมตี 1: 0x7e39e3b3ff7adef2613d5cc49558eab74b9a4202 (ย่อว่า 0x7e39)

สัญญาการโจมตี 1: 0xd996073019c74b2fb94ead236e32032405bc027c (ตัวย่อเป็น 0xd996)

ผู้โจมตี 2: 0x7fe83f45e0f53651b3ed9650d2a2c67d8855e385

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

สัญญาเป้าหมายที่ถูกโจมตี: 0x1cc79f3f47bfc060b6f761fcd1afc6d399a968b6

การโจมตีประกอบด้วยธุรกรรม 16 รายการ โดยพิจารณาธุรกรรมการโจมตีครั้งแรกเป็นตัวอย่าง:

0x00c503b595946bccaea3d58025b5f9b3726177bbdc9674e634244135282116c7

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

1. อ่านหลักประกันและหนี้ทั้งหมดในสัญญาเป้าหมาย ตามที่อยู่ 0x56a201b872b50bbdee0021ed4d1bb36359d291ed (ตัวย่อ 0x56a2)

ผลลัพธ์การส่งคืนจะเป็นดังนี้:

ผลลัพธ์การส่งคืนจะเป็นดังนี้:

ที่อยู่ 0x56a2 มียอดรวม 1,745 wstETH เป็นหลักประกันในสัญญาเป้าหมาย และมีหนี้สินรวม 1,442,100 mkUSD

2. ผู้โจมตี 0x7e39 เรียกใช้ฟังก์ชัน flashLoan ในสัญญาหนี้ mkUSD ผ่านสัญญาการโจมตี 0xd996

ตัวรับพารามิเตอร์ถูกตั้งค่าเป็น MigrateTroveZap และจำนวนคือหนี้ทั้งหมดที่สอบถามข้างต้น

จากนั้น ฟังก์ชัน onFlashLoan ในเครื่องรับ (ในที่นี้ MigrateTroveZap) จะถูกเรียกในฟังก์ชัน flashLoan

ขั้นแรกฟังก์ชัน onFlashLoan จะชำระหนี้เดิมทั้งหมดผ่านทางสินเชื่อแฟลช จากนั้นถอนหลักประกันให้กับผู้รับ จากนั้นผู้รับจะจำนองหลักประกันจำนวนหนึ่งอีกครั้ง และยืมหนี้จำนวนหนึ่ง มีสองหน้าที่หลักที่เรียกว่า:

(1) ฟังก์ชั่น closeTrove ชำระหนี้และถอนหลักประกันทั้งหมด (1745.08 swtETH) จาก troverManager ไปยังผู้รับ (นี่คือสัญญา MigrateTroveZap)

(2) ฟังก์ชั่น openTrove ผู้รับจำนอง 463.18 wstETH อีกครั้งใน troverManager และก่อหนี้จำนวน 1,443,598 mkUSD

จากข้อมูลข้างต้นจะเห็นได้ว่าหลังจากดำเนินการฟังก์ชัน flashLoan แล้ว หลักประกันที่ดึงมาจาก troverManager และเป็นของที่อยู่ 0x56a2 ยังคงอยู่ในผู้รับ และจำนวนเงินจะอยู่ที่ประมาณ 1745.08 – 463.18 = 1281.90 wstETH

3. ผู้โจมตี 0x7e39 ยืม 1 wstETH จาก Balancer ผ่านการยืมแฟลชโดยโจมตีสัญญา 0xd996

จากนั้นจำนอง 1 wstETH และยืมหนี้ 2000 mkUSD บวกค่าธรรมเนียม ยอดหนี้ทั้งหมด 2200 mkUSD

4. เช่นเดียวกับขั้นตอนที่ 2 ให้เรียกใช้ฟังก์ชัน flashLoan ในสัญญาหนี้ mkUSD ที่นี่ตัวรับพารามิเตอร์ยังคงตั้งค่าเป็น MigrateTroveZap และจำนวนเงินคือหนี้ทั้งหมดหลังจากให้คำมั่นสัญญา 1 wstETH ซึ่งเท่ากับ 2,000 mkUSD ในฟังก์ชัน FlashLoan ฟังก์ชัน onFlashLoan ในเครื่องรับจะถูกเรียก จากนั้นจึงเรียกใช้ฟังก์ชัน closeTrove และ openTrove

อย่างไรก็ตาม บัญชีพารามิเตอร์ในฟังก์ชัน closeTrove และ openTrove ที่นี่ไม่ใช่ที่อยู่ 0x56a2 ข้างต้นอีกต่อไป แต่เป็นสัญญาการโจมตี 0xd996 ที่ให้คำมั่นสัญญา 1 wstETH

(1) ฟังก์ชั่น closeTrove ชำระหนี้และถอนหลักประกันทั้งหมด (1 swtETH) จาก troverManager ไปยังผู้รับ (ซึ่งยังคงเป็นสัญญา MigrateTroveZap) ขณะนี้มี 1281.90 +1=1282.90 wstETH ในตัวรับ

(2) ฟังก์ชั่น openTrove ผู้รับจำนอง 1282.80 wstETH (เกือบทั้งหมด) อีกครั้งใน troverManager และก่อหนี้จำนวน 2001.8 mkUSD

ในความเป็นจริง 1281.80 wstETH ในหลักประกันที่นี่ไม่ได้เป็นของสัญญาการโจมตี 0xd996 แต่เป็นของที่อยู่ข้างต้น 0x56a2

5. ในที่สุด ผู้โจมตี 0x7e39 เรียกฟังก์ชัน closeTrove แยกจากกันผ่านสัญญาการโจมตี 0xd996 และแยกจำนอง 1282.80 wstETH ลงในสัญญาการโจมตี 0xd996

หลังจากชำระคืนเงินกู้แฟลชแล้ว ผู้โจมตียังคงทำกำไรได้ 1281.80 wstETH ซึ่งมีมูลค่าประมาณ 2.30 ล้านเหรียญสหรัฐ

สาเหตุที่แท้จริงของเหตุการณ์นี้คือสัญญาโครงการมีตรรกะและการตรวจสอบสิทธิ์ ซึ่งอนุญาตให้ผู้โจมตีใช้ช่องโหว่นี้เพื่อรับทรัพย์สินที่จำนำจากที่อยู่บัญชีอื่น

ในที่สุด wstETH ที่ผู้โจมตีได้รับคือหลักประกันของที่อยู่เดิม 0x56a2 ในสัญญา troverManager ด้วยฟังก์ชัน flashLoan ของสัญญา mkUSD เขาปรับแต่งพารามิเตอร์ของฟังก์ชัน onFlashLoan ในสัญญา MigrateTroveZap โดยใช้ MigrateTroveZap เพื่อแปลงเป็นหลักประกัน ของสัญญาโจมตีแล้วใช้มันโจมตีสัญญา ดึงมันออกมา

ผู้โจมตีจัดการการจำนองและการถอนที่อยู่บัญชีอื่นผ่านฟังก์ชัน flashLoan ในสัญญา mkUSD และฟังก์ชัน onFlashLoan ในสัญญา MigrateTroveZap

(1) ฟังก์ชัน flashLoan ขาดการตรวจสอบที่อยู่ของตัวรับพารามิเตอร์ เนื่องจากผู้รับในฟังก์ชัน onFlashLoan จะได้รับหลักประกันทั้งหมดของบัญชี ดังนั้นผู้รับจึงต้องได้รับการยืนยันว่าเชื่อถือได้

(1) ฟังก์ชัน flashLoan ขาดการตรวจสอบความถูกต้องของที่อยู่ตัวรับพารามิเตอร์ เนื่องจากผู้รับในฟังก์ชัน onFlashLoan จะได้รับหลักประกันทั้งหมดของบัญชี ดังนั้นผู้รับจึงต้องได้รับการยืนยันว่าเชื่อถือได้

(2) ฟังก์ชัน onFlashLoan ขาดการตรวจสอบที่อยู่บัญชี เนื่องจากฟังก์ชัน closeTrove และ openTrove เป็นทรัพย์สินของบัญชีที่กำลังดำเนินการ ดังนั้นจึงจำเป็นต้องเพิ่มการตรวจสอบสิทธิ์ให้กับบัญชี

นอกจากการตรวจสอบพารามิเตอร์ที่อยู่ทั้งสองนี้แล้ว ยังอาจจำเป็นต้องตรวจสอบพารามิเตอร์ปริมาณและตรรกะการใช้งานในฟังก์ชัน flashLoan ด้วย

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

(1) ในระหว่างกระบวนการออกแบบและพัฒนาโครงการต้องรักษาความสมบูรณ์และความเข้มงวดของตรรกะโดยเฉพาะอย่างยิ่งเมื่อต้องโอนสินทรัพย์ นอกจากนี้ ยังจำเป็นต้องเสริมสร้างการตรวจสอบสิทธิ์การวิจัยฟังก์ชันเพื่อให้แน่ใจว่า ผู้โทร ฟังก์ชันการโทร และพารามิเตอร์ฟังก์ชัน ลอจิกการถ่ายโอน ฯลฯ ทั้งหมดปลอดภัยและเชื่อถือได้

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

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

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

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

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

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

ความคิดเห็น

ความคิดเห็นทั้งหมด

Recommended for you

  • BTC ร่วงลงต่ำกว่า 100,000 USDT ชั่วครู่ โดยลดลง 1.13% ในช่วง 24 ชั่วโมง

    BTC ร่วงลงต่ำกว่า 100,000 USDT ชั่วครู่ และขณะนี้ซื้อขายอยู่ที่ 99,977.9 USDT ลดลง 1.13% ในช่วง 24 ชั่วโมง (จดหมายข่าวนี้สร้างขึ้นด้วยความช่วยเหลือจาก AI)

  • BTC ร่วงต่ำกว่า 101,000 ดอลลาร์

    ตลาดแสดงให้เห็นว่า BTC ตกลงมาต่ำกว่า 101,000 ดอลลาร์ และขณะนี้ซื้อขายอยู่ที่ 100,994.94 ดอลลาร์ โดยราคาเพิ่มขึ้นในช่วง 24 ชั่วโมงที่ผ่านมาลดลงเหลือ 2.02% ตลาดมีความผันผวน ดังนั้นโปรดควบคุมความเสี่ยงให้ดี

  • GTE ซึ่งเป็นศูนย์แลกเปลี่ยนแบบกระจายอำนาจได้ระดมทุน Series A มูลค่า 15 ล้านเหรียญสหรัฐ โดยมี Paradigm เป็นผู้นำโดยเฉพาะ

    Paradigm ประกาศเมื่อไม่นานนี้ว่าได้ดำเนินการระดมทุนรอบ Series A มูลค่า 15 ล้านเหรียญสหรัฐสำหรับ GTE (Global Token Exchange) ซึ่งเป็นแพลตฟอร์มการซื้อขายแบบกระจายอำนาจ แพลตฟอร์มดังกล่าวเรียกตัวเองว่า "DEX ที่เร็วที่สุดในโลก" และมุ่งหวังที่จะท้าทายประสิทธิภาพของการแลกเปลี่ยนแบบรวมศูนย์ เช่น Binance และ Coinbase Enzo Coglitore ผู้ก่อตั้งร่วมของ GTE กล่าวว่าแพลตฟอร์มนี้สร้างขึ้นบนสมุดคำสั่งจำกัดแบบส่วนกลาง (CLOB) และความล่าช้าในการจับคู่คำสั่งนั้นเทียบได้กับการแลกเปลี่ยนแบบรวมศูนย์ แต่ยังคงรักษาคุณสมบัติหลัก เช่น "การกระจายอำนาจ การไม่ต้องขออนุญาต ความสามารถในการจัดทำ และการไม่ต้องดูแล" และมุ่งมั่นที่จะแก้ไขปัญหาทั่วไปของ DEX ในปัจจุบัน ได้แก่ "ความล่าช้าของคำสั่งที่สูงและต้นทุนการทำธุรกรรมที่สูง" Charlie Noyes และ Caitlin Pintavorn ซึ่งเป็นหุ้นส่วนของ Paradigm กล่าวว่าพวกเขามีความหวังดีเกี่ยวกับทีมงานและการผสมผสานเทคโนโลยีของ GTE และเชื่อว่ามีศักยภาพในการแข่งขันกับการแลกเปลี่ยนแบบรวมศูนย์และโปรโตคอล AMM (เช่น Uniswap และ PancakeSwap) ปัจจุบัน GTE ถูกสร้างขึ้นบนเครือข่ายสาธารณะ MegaETH ที่เข้ากันได้กับ EVM เครือข่ายทดสอบของ GTE เปิดตัวเมื่อต้นปีและดึงดูดผู้ใช้ประมาณ 700,000 รายให้เข้าร่วมการทดสอบ มีรายงานว่าก่อนหน้านี้ GTE ได้ระดมทุนได้ทั้งหมด 10 ล้านเหรียญสหรัฐจากรอบก่อนการระดมทุน รอบการระดมทุนเริ่มต้น และรอบชุมชน โดยมีผู้สนับสนุน ได้แก่ สมาชิกชุมชนในช่วงเริ่มต้นและผู้ใช้แพลตฟอร์ม

  • BCGame Coin (BC) ทะลุ 0.007 ดอลลาร์ เพิ่มขึ้นมากกว่า 89% ใน 24 ชั่วโมง

    ตามข้อมูลตลาดของ GMGN เมื่อวันที่ 23 มิถุนายน 2025 ราคาของโทเค็น BC ของแพลตฟอร์ม BC.GAME ทะลุ 0.007 ดอลลาร์ โดยเพิ่มขึ้น 89.07% ในช่วง 24 ชั่วโมง เมื่อต้นเดือนนี้ มูลค่าตลาดของ BC ได้ทะลุจุดสูงสุดในประวัติศาสตร์

  • ผู้ว่าการเฟด โบว์แมน: ตอนนี้เป็นเวลาที่ต้องพิจารณาปรับอัตราดอกเบี้ยของนโยบาย

    ผู้ว่าการคณะกรรมการธนาคารกลางสหรัฐฯ โบว์แมน: ขณะนี้เป็นเวลาที่ต้องพิจารณาปรับอัตราดอกเบี้ยในนโยบาย

  • Binance Alpha เตรียมรายชื่อ Newton Protocol (NEWT)

    Binance Alpha จะเปิดตัว Newton Protocol (NEWT) และการซื้อขายจะเริ่มขึ้นในวันที่ 24 มิถุนายน เวลาที่แน่นอนจะประกาศให้ทราบในภายหลัง ผู้ใช้ที่มีสิทธิ์สามารถไปที่หน้ากิจกรรม Alpha ได้หลังจากเปิดการซื้อขาย Alpha แล้ว และใช้คะแนน Binance Alpha เพื่อรับ Airdrop รายละเอียดจะประกาศให้ทราบในวันที่ 24 มิถุนายน

  • BTC ร่วงต่ำกว่า 101,000 ดอลลาร์

    ตลาดแสดงให้เห็นว่า BTC ร่วงต่ำกว่า 101,000 ดอลลาร์ และขณะนี้ซื้อขายอยู่ที่ 100,980 ดอลลาร์ โดยลดลง 0.05% ในช่วง 24 ชั่วโมง ตลาดมีความผันผวน ดังนั้นโปรดควบคุมความเสี่ยงให้ดี

  • ประธาน ECB ลาการ์ด: สมาชิกรัฐสภาสหภาพยุโรปควรปูทางสู่ยูโรดิจิทัล

    คริสติน ลาการ์ด ประธานธนาคารกลางยุโรป เรียกร้องให้สมาชิกรัฐสภายุโรปผ่านกฎหมายเพื่อปูทางสู่การเปิดตัวยูโรดิจิทัลอีกครั้งเมื่อวันจันทร์ที่ผ่านมา โดยลาการ์ดกล่าวว่า “ควรจัดตั้งกรอบกฎหมายโดยเร็วเพื่อปูทางสู่การเปิดตัวยูโรดิจิทัลที่อาจเกิดขึ้นได้ หากเราเลือกนโยบายที่ถูกต้อง เราก็สามารถใช้ประโยชน์จากโมเมนตัมในปัจจุบันและส่งเสริมโอกาสทางเศรษฐกิจของยุโรปและพลเมืองได้” (จินชิ)

  • Binance Wallet เปิดตัว Codatta Pre-TGE และงานพิเศษเฉพาะของ Booster

    ตามข่าวอย่างเป็นทางการ Binance Wallet ได้เปิดตัวการสมัครสมาชิก Pre-TGE และกิจกรรม Booster rewards อย่างเป็นทางการสำหรับโครงการ Codatta ผู้ใช้สามารถสมัครสมาชิก Codatta governance token XNY ผ่าน Binance Wallet ในช่วง Pre-TGE ผู้ใช้รายเดียวสามารถสมัครสมาชิก BNB ได้สูงสุด 3 BNB โทเค็นที่ได้รับจะถูกแจกจ่ายตามสัดส่วนและมีช่วงเวลาล็อค นอกจากนี้ กิจกรรม Booster จะกินเวลานาน 12 สัปดาห์ ผู้ใช้ที่ทำภารกิจรายสัปดาห์เสร็จสิ้นจะมีโอกาสแบ่งปัน XNY airdrops ทั้งหมด 6% เงื่อนไขในการเข้าร่วมคือต้องถือคะแนน Alpha 61 คะแนนขึ้นไป

  • บริษัทจดทะเบียน Nano Labs วางแผนที่จะสมัครขอใบอนุญาตธุรกิจ stablecoin สกุลเงินดอลลาร์ฮ่องกงและหยวนนอกประเทศ

    NanoLabs Ltd (รหัสหุ้น: NA) ประกาศในวันนี้ว่าบริษัทมีแผนที่จะทำงานร่วมกับนิติบุคคลอื่น ๆ เพื่อยื่นขอใบอนุญาตในการดำเนินธุรกิจที่เกี่ยวข้องกับสกุลเงินดอลลาร์ฮ่องกงและสกุลเงินหยวนในต่างประเทศ หลังจากที่พระราชบัญญัติสกุลเงินดอลลาร์ฮ่องกง (ต่อไปนี้จะเรียกว่า "พระราชบัญญัติสกุลเงินดอลลาร์ฮ่องกง") มีผลบังคับใช้อย่างเป็นทางการ ในเวลาเดียวกัน NanoLabs ยังวางแผนที่จะสร้างกรอบทางเทคนิคสำหรับสกุลเงินดอลลาร์ฮ่องกง โดยเน้นที่การสนับสนุนเครือข่ายบล็อคเชน เช่น Bitcoin และ BNB NanoLabs หวังว่าจะได้สร้างความร่วมมือเชิงกลยุทธ์เพื่อช่วยให้ระบบนิเวศสกุลเงินดอลลาร์ฮ่องกงและอุตสาหกรรม Web3.0 ที่กว้างขึ้นพัฒนาได้ เมื่อวันที่ 21 พฤษภาคม 2025 สภานิติบัญญัติฮ่องกงได้ผ่านพระราชบัญญัติสกุลเงินดอลลาร์ฮ่องกง ซึ่งได้จัดตั้งระบบการออกใบอนุญาตสำหรับผู้ออกสกุลเงินดอลลาร์ฮ่องกงที่ผูกกับสกุลเงินทั่วไป (FRS) ซึ่งช่วยเสริมสร้างตำแหน่งของฮ่องกงให้แข็งแกร่งยิ่งขึ้นในฐานะศูนย์กลางทางการเงินด้านสินทรัพย์ดิจิทัลระดับโลก เมื่อวันที่ 6 มิถุนายน 2025 รัฐบาลฮ่องกงได้เผยแพร่ประกาศในราชกิจจานุเบกษา โดยประกาศว่าพระราชบัญญัติดังกล่าวจะมีผลบังคับใช้อย่างเป็นทางการในวันที่ 1 สิงหาคม 2025 NanoLabs Ltd เป็นผู้ให้บริการโครงสร้างพื้นฐานและโซลูชันผลิตภัณฑ์ Web3.0 ที่ทุ่มเทให้กับการวิจัยและพัฒนาชิปคอมพิวเตอร์ประสิทธิภาพสูง (HTC) และชิปคอมพิวเตอร์ประสิทธิภาพสูง (HPC) บริษัทได้สร้างสถาปัตยกรรมหน่วยประมวลผลสตรีม (FPU) ที่สมบูรณ์ โดยผสานรวมคุณลักษณะทางเทคนิคของ HTC และ HPC เพื่อมอบโซลูชันแบบบูรณาการให้กับตลาด

ต้องอ่านทุกวัน