คำเตือนความเสี่ยง: ระวังความเสี่ยงจากการระดมทุนที่ผิดกฎหมายในนาม 'สกุลเงินเสมือน' 'บล็อกเชน' — จากห้าหน่วยงานรวมถึงคณะกรรมการกำกับดูแลการธนาคารและการประกันภัย
ข่าวสาร
ค้นพบ
ค้นหา
เข้าสู่ระบบ
简中
繁中
English
日本語
한국어
ภาษาไทย
Tiếng Việt
BTC
ETH
HTX
SOL
BNB
ดูตลาด
去中心化金融安全:理解风险并降低风险
Salus Insights
特邀专栏作者
2024-02-12 07:00
บทความนี้มีประมาณ 4821 คำ การอ่านทั้งหมดใช้เวลาประมาณ 7 นาที
在去中心化金融(DeFi)领域中存在着大量的安全风险,这些风险可能对用户、平台和整个金融生态系统造成严重的危害。我们总结了三种 DeFi 安全风险,并通过分析最近发生的真实安全事件来阐述黑客攻击的过程以及相应的解决方案。

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

  • ความเสี่ยงจากการปั่นราคา

  • ความเสี่ยงจากช่องโหว่ของสัญญาอัจฉริยะ

  • ความเสี่ยงในการดำเนินงานของผู้ใช้

1. ความเสี่ยงจากการปั่นราคา

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

  • การโจมตีสินเชื่อแฟลช

  • การโจมตีแซนวิช

  • การโจมตีของออราเคิล

1.1 การโจมตีสินเชื่อแฟลช

การโจมตีด้วย Flash Loan เป็นวิธีการโจมตีที่ปรากฏในแอปพลิเคชัน DeFi ใช้ประโยชน์จากสินเชื่อแฟลช ซึ่งเป็นการดำเนินการทางการเงินที่ให้คุณยืมเงินโดยไม่ต้องมีหลักทรัพย์ค้ำประกันผู้โจมตียืมเงินจำนวนมากผ่านการกู้ยืมแบบแฟลช และดำเนินการหลายอย่างในธุรกรรมเดียวกันเพื่อกระทำการฉ้อโกง

เหตุการณ์การโจมตีด้วยแฟลชยืมของ ShidoGlobal

เมื่อวันที่ 23 มิถุนายน 2023 การโจมตี Flash Loan ของ ShidoGlobal เกิดขึ้นบน BSC (Binance Smart Chain) ผู้โจมตีบรรลุการเก็งกำไรโทเค็นผ่านกลไกการล็อคและการอ้างสิทธิ์และราคาที่แตกต่างกันระหว่างสองพูลขโมย 976 WBNB สำเร็จ

Attack Tx:

https://explorer.phalcon.xyz/tx/bsc/0x72f8dd2bcfe2c9fbf0d933678170417802ac8a0d8995ff9a56bfbabe3aa712d6

ผู้โจมตีทำการโจมตีแบบ flash Loan อย่างไร?

  • ผู้โจมตีหยิบเงินกู้แฟลชจำนวน 40 WBNB

  • ผู้โจมตีแลกเปลี่ยน 39 WBNB เป็น 10, 436, 972, 685, 676, 390, 697 Shido Inu: โทเค็น SHIDO (ทศนิยม 9 ตำแหน่ง) และฝากไว้ใน PancakeSwap V2: SHIDO-WBNB pool การดำเนินการนี้จะเพิ่มอุปทานของโทเค็น Shido Inu: SHIDO ในกลุ่ม ทำให้ราคาของโทเค็นลดลง

  • ผู้โจมตีจึงเรียก ShidoLock.lockTokens และ ShidoLock.claimTokens ตามลำดับ โดยแปลง 10, 436, 972, 685.676390697 Shido Inu: โทเค็น SHIDO (ทศนิยม 9 ตำแหน่ง) เป็น 10, 436, 986, 704, 133, 494, 387, 000, 000 , 000 โทเค็น SHIDO (ทศนิยม 18 ตำแหน่ง)

เมื่อผู้โจมตีเรียกใช้ฟังก์ชัน lockTokens ในสัญญา ShidoLock ผู้โจมตีจะล็อกโทเค็น 10, 436, 972, 685.676390697 Shido Inu: โทเค็น SHIDO ในสัญญา ซึ่งหมายความว่าโทเค็นเหล่านี้ไม่สามารถโอนหรือซื้อขายได้จนกว่าจะตรงตามเงื่อนไขบางประการ ด้วยการล็อคโทเค็น ผู้โจมตีสามารถรักษาเสถียรภาพราคาของโทเค็นได้ในระดับหนึ่ง

ผู้โจมตีเรียกฟังก์ชันการเคลมโทเค็นเพื่อแปลงโทเค็นที่ถูกล็อคเป็นโทเค็น SHIDO 10, 436, 986, 704, 133, 494, 387, 000, 000, 000 ขั้นตอนนี้จะเพิ่มจำนวนตำแหน่งทศนิยมสำหรับโทเค็น SHIDO จาก 9 เป็น 18 ได้อย่างมีประสิทธิภาพ ซึ่งจะเพิ่มปริมาณโทเค็นทั้งหมด

  • มีความแตกต่างด้านราคาระหว่างพูล PancakeSwap V2: SHIDO-WBNB และพูล PancakeSwap V2: SHIDO 28 ผ่านกลไกการล็อคและเคลม โดยเฉพาะอย่างยิ่ง ราคาลดลงเนื่องจากอุปทานโทเค็น SHIDO เพิ่มขึ้นในพูล PancakeSwap V2: SHIDO-WBNB ใน PancakeSwap V2: SHIDO 28 พูล ราคาค่อนข้างสูงเนื่องจากอุปทานไม่ได้เพิ่มขึ้น ผู้โจมตีใช้ประโยชน์จากความแตกต่างของราคานี้และแลกเปลี่ยนโทเค็นระหว่างสองพูลโดยโอนโทเค็น SHIDO 10, 436, 986, 704, 133, 494, 387, 000, 000, 000 SHIDO (หลังจุดทศนิยม) ในราคาที่ดีกว่า 18 บิต) ถูกแลกเปลี่ยนเป็น 1,016 WBNB

  • ในท้ายที่สุด ผู้โจมตีได้ชำระคืนเงินกู้แฟลชจำนวน 40 WBNB และได้รับผลกำไรประมาณ 976 WBNB

จำกัดฟังก์ชันการยืมแฟลช

จำกัดฟังก์ชันสินเชื่อแฟลชและเสนอค่าธรรมเนียมสินเชื่อแฟลชเป็นวิธีทั่วไปในการลดความเสี่ยงของการโจมตีและการยักย้ายแฟลชยืม

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

  • ขอแนะนำค่าธรรมเนียมการจัดการสินเชื่อแฟลช: สามารถเรียกเก็บค่าธรรมเนียมการจัดการบางอย่างจากผู้ยืมได้ สิ่งนี้สามารถเพิ่มค่าใช้จ่ายในการโจมตี ทำให้ผู้โจมตีเผชิญกับความเสี่ยงและค่าใช้จ่ายที่สูงขึ้นเมื่อทำการโจมตีแบบ flash Loan

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

1.2 การโจมตีด้วยแซนด์วิช

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

CurveFinance การโจมตีแบบแซนด์วิช

เมื่อวันที่ 2 สิงหาคม 2023 ระบบ Hypernative ได้เปิดตัวการโจมตีแบบแซนวิชกับ Curve Finance ผู้โจมตีแทรกธุรกรรมที่เป็นอันตรายระหว่างสองธุรกรรมที่เพิ่มสภาพคล่องและลบสภาพคล่องรับ 36.8K USDT

Attack Tx:

https://explorer.phalcon.xyz/tx/eth/0xd493c73397952049644c531309df3dd4134bf3db1e64eb6f0b68b016ee0bffde

ผู้โจมตีทำการโจมตีแบบแซนวิชได้อย่างไร?

  • ผู้โจมตีได้รับสินเชื่อแฟลชจำนวนมากจากแหล่งเงินทุนหลายแห่ง รวมถึง wstETH, WETH และ USDT

  • ผู้โจมตีมอบสภาพคล่อง 155, 000, 000 USDT ให้กับ 3 พูลและได้รับโทเค็น CRV LP 3 อัน 3 CRV คือโทเค็น LP ของ Curve TriPool (กลุ่มการขุด Curve DAI/USDC/USDT) ซึ่งเป็นกลุ่มการขุดที่ถูกโจมตีจากการโจมตี

  • ผู้โจมตีได้ลบสภาพคล่อง DAI และ USDC (เกือบทั้งหมด) ออกจากกลุ่มและทำลายโทเค็น CRV LP 3 รายการ ณ จุดนี้ พูลเกือบทั้งหมดเป็น USDT ซึ่งทำให้ถูกกว่า DAI และ USDC ชั่วคราวมาก

  • เรียกใช้ฟังก์ชัน UnderlyingBurner ดำเนินการสัญญา () เพื่อเพิ่มสภาพคล่องให้กับกลุ่มการขุด Curve DAI/USDC/USDT ต่อไป UnderlyingBurner ถือหุ้น USDT เป็นหลัก และจำนวน DAI:USDC:USDT ที่เพิ่มคือ 100, 000: 100, 000: 227, 079, 039, 776 ส่งผลให้พูลไม่สมดุลมากขึ้น โดยมีจำนวน USDT สัมพันธ์ที่สูงกว่าและค่าที่ต่ำกว่า

  • ผู้โจมตีได้เพิ่มการถือครอง DAI และ USDC ของเขาลงในกลุ่ม Curve DAI/USDC/USDT และเพลิดเพลินกับพรีเมี่ยม ซึ่งหมายถึงการได้รับโทเค็น CRV LP จำนวน 3 อันที่สูงขึ้น

  • ผู้โจมตีทำลายโทเค็น CRV LP 3 อันและถอนสภาพคล่องของ USDT

  • ผู้โจมตีชำระคืนเงินกู้แฟลชและเก็บกำไรไว้ 36.8 K USDT

ในกระบวนการนี้ ธุรกรรมที่เป็นอันตรายหมายถึงธุรกรรมที่ผู้โจมตีลบสภาพคล่อง DAI และ USDC จำนวนมากออกจากกลุ่มการขุด Curve DAI/USDC/USDT และทำลายโทเค็น CRV LP 3 อัน ธุรกรรมนี้ทำให้พูลไม่สมดุลอย่างมาก โดยมีจำนวน USDT ที่สูงขึ้น ส่งผลให้มูลค่าลดลง

อีกสองธุรกรรมหมายถึงธุรกรรมที่ผู้โจมตีเพิ่มสภาพคล่องและถอนสภาพคล่อง ผู้โจมตีใช้ประโยชน์จากส่วนต่างของราคาโดยเพิ่มสภาพคล่อง DAI และ USDC ที่เขาถือไว้ให้กับกลุ่มการขุด Curve DAI/USDC/USDT และถอนออกที่พรีเมียม เพื่อรับโทเค็น CRV LP จำนวน 3 อันที่สูงกว่า

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

จำกัดลำดับการทำธุรกรรม

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

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

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

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

1.3 การโจมตีของออราเคิล

Price Oracle คือแหล่งข้อมูลที่ให้ข้อมูลราคาแบบเรียลไทม์สำหรับสกุลเงินดิจิทัล ข้อมูลนี้มีความสำคัญต่อการทำงานที่เหมาะสมของโปรโตคอล DeFi จำนวนมากการโจมตีของ Oracle หมายถึงผู้โจมตีที่เปลี่ยนแปลงข้อมูลที่ได้รับจาก Oracle โดยไม่ตั้งใจ เพื่อให้ได้กำไรจากการทำธุรกรรมตามการควบคุมราคา

เหตุการณ์การโจมตีของออราเคิลของ Rodeo Finance

Rodeo เป็นแพลตฟอร์ม DeFi ที่ให้บริการ price oracle เมื่อวันที่ 11 กรกฎาคม 2023 การปั่นป่วนราคาออราเคิลทำให้แฮกเกอร์ขโมยจากโปรโตคอล Rodeoประมาณ 472 ETH (ประมาณ 888,000 USD)

Attack Tx:

https://explorer.phalcon.xyz/tx/arbitrum/0xb1be5dee3852c818af742f5dd44def285b497ffc5c2eda0d893af542a09fb25a

ออราเคิลราคาได้รับการจัดการอย่างไร?

กุญแจสำคัญในการโจมตี Rodeo Finance คือ Rodeo TWAP Oracle ออราเคิลนี้ใช้เพื่อติดตามอัตราส่วนราคาระหว่าง ETH และ unshETH

  • การวิเคราะห์ธุรกรรมการโจมตี: กระบวนการโจมตีเริ่มต้นด้วยการที่ผู้โจมตีดำเนินธุรกรรมที่วางแผนไว้อย่างรอบคอบ ผู้โจมตีใช้ประโยชน์จากความเข้าใจอย่างลึกซึ้งเกี่ยวกับสถาปัตยกรรมแพลตฟอร์มและช่องโหว่ที่อาจเกิดขึ้นใน Oracle Time Weighted Average Price (TWAP) เพื่อเริ่มการโจมตี

  • การจัดการออราเคิล TWAP: ผู้โจมตีสามารถบังคับการแลกเปลี่ยน USDC สำหรับ unshETH โดยใช้ฟังก์ชัน Earn ที่เกี่ยวข้องกับที่อยู่นโยบายที่ไม่ได้กำหนดค่า การจัดการนี้จะข้ามการควบคุมการเลื่อนไหลที่เกิดจากออราเคิลราคา unshETH ที่มีข้อบกพร่องได้อย่างมีประสิทธิภาพ โดยพื้นฐานแล้ว ฟังก์ชัน Earn จะถูกบังคับจาก USDC ไปยัง WETH จากนั้นจึงยกเลิก ETH

  • คำนวณราคา TWAP: ราคา TWAP คำนวณโดยการเฉลี่ยราคาของการอัปเดตสี่ครั้งล่าสุด โดยแต่ละรายการอัปเดตห่างกัน 45 นาที อย่างไรก็ตาม ออราเคิลราคาที่มีข้อบกพร่องส่งคืนราคาที่ถูกบิดเบือน ทำให้สัญญาอัจฉริยะพิจารณาว่าตำแหน่งอยู่ในเกณฑ์ดี

  • การเปิดตำแหน่งที่มีเลเวอเรจ: ผู้โจมตีจัดการ TWAP oracle ผ่านการโจมตีแบบแซนด์วิช จากนั้นเปิดตำแหน่งที่มีเลเวอเรจโดยการเรียกใช้ฟังก์ชันรับจากสัญญานักลงทุน พวกเขายืมเงิน USDC มูลค่า 400,000 ดอลลาร์

  • สลับสินทรัพย์: ผู้โจมตีสลับสินทรัพย์ที่ยืมมากับกลุ่ม CamelotDEX พื้นฐาน ขณะเดียวกันก็ขาย unshETH ที่เตรียมไว้กลับไปที่พูล

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

  • การโอนเงินที่ถูกขโมย: ผู้โจมตีย้ายเงินที่ถูกขโมยจาก Arbitrum ไปยัง Ethereum โดยแลกเปลี่ยน 285 ETH เป็น unshETH จากนั้นจึงย้ายเงินเหล่านั้นไปที่ Arbitrum เพื่อดำเนินการโจมตีต่อไป เงินที่ถูกขโมยซึ่งมีมูลค่า 150 ETH จะถูกโอนไปยัง Tornado Cash ซึ่งเป็นบริการผสม Ethereum ที่เน้นความเป็นส่วนตัว ส่วนที่เหลืออีก 371.2 ETH (มูลค่าประมาณ $701,679) ยังคงถือครองโดยที่อยู่ที่ควบคุมโดยผู้โจมตี

ช่องโหว่ที่สำคัญในการโจมตีนี้คือข้อบกพร่องในการดำเนินการ Rodeo TWAP Oracle ออราเคิลอาศัยทุนสำรองของคู่การซื้อขาย WETH/unshETH ซึ่งมีสภาพคล่องต่ำและมีความผันผวนของราคาสูง

คำนวณราคาตามออราเคิลหลายรายการ

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

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

นี่คือโค้ดตัวอย่างที่ใช้สัญญาตัวรวบรวม Chainlink เพื่อรับข้อมูลราคา:


ในโค้ดข้างต้น เราใช้อาร์เรย์ประเภท AggregatorV3Interface เพื่อจัดเก็บอินสแตนซ์ Oracle หลายรายการ Constructor ยอมรับอาร์เรย์ของที่อยู่ Oracle เป็นพารามิเตอร์ และยกตัวอย่างที่อยู่แต่ละรายการเป็นอ็อบเจ็กต์ AggregatorV3Interface

ฟังก์ชัน getLatestPrice ใช้เพื่อรับข้อมูลราคาล่าสุดจากแหล่งข้อมูลหลายแหล่ง โดยวนซ้ำผ่านอาร์เรย์ priceFeeds และรับข้อมูลราคาโดยการเรียกใช้ฟังก์ชัน latestRoundData ของแต่ละ Oracle ข้อมูลราคาทั้งหมดจะถูกจัดเก็บไว้ในอาร์เรย์ประเภท int และส่งคืนไปยังผู้โทร

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

2. ความเสี่ยงจากช่องโหว่ของสัญญาอัจฉริยะ

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

การระบุช่องโหว่เหล่านี้เป็นสิ่งสำคัญเราการตรวจสอบครอบคลุมถึงปัญหาที่อาจเกิดขึ้นต่างๆ. ซึ่งรวมถึงแต่ไม่จำกัดเพียงช่องโหว่ในการกลับเข้าใช้งาน ช่องโหว่ในการควบคุมการเข้าถึง ช่องโหว่จำนวนเต็มล้น และช่องโหว่ด้านตรรกะทางธุรกิจ บริการตรวจสอบที่ครอบคลุมของเราได้รับการออกแบบมาเพื่อเพิ่มความปลอดภัยให้กับสัญญาอัจฉริยะของคุณและป้องกันความเสี่ยงเหล่านี้

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

ช่องโหว่การควบคุมการเข้าถึง LeetSwap

LeetSwap ถูกโจมตีการสูญเสียเกิน 340 ETH. สาเหตุหลักคือมีช่องโหว่ในการควบคุมการเข้าถึงในสัญญาคู่ LeetSwap V2 และการเปิดเผยฟังก์ชัน _transferFeesSupportingTaxTokens เป็นแบบสาธารณะ

Attack Tx:

https://dashboard.tenderly.co/tx/base/0xbb837d417b76dd237b4418e1695a50941a69259a1c4dee561ea57d982b9f10ec

Vulnerable Contract:

https://basescan.org/address/0x94dac4a3ce998143aa119c05460731da80ad90cf

ผู้โจมตีเรียกฟังก์ชัน _transferFeesSupportingTaxTokens เพื่อจัดการพูล กระบวนการโจมตีจะเป็นดังนี้:

  • ใช้ WETH เพื่อแลกเปลี่ยนเป็นโทเค็น A อื่น

  • ฟังก์ชัน _transferFeesSupportingTaxTokens ถูกเรียกเพื่อถ่ายโอนโทเค็น A และฟังก์ชันการซิงค์จะถูกเรียกในเวลาต่อมา ส่งผลให้ราคาของโทเค็น A เพิ่มขึ้น

  • แลกเปลี่ยนโทเค็น A เพื่อรับ WETH เพิ่มเติมและล้างพูล

สารละลาย

หากต้องการแก้ไขช่องโหว่ในการควบคุมการเข้าถึงของฟังก์ชัน _transferFeesSupportingTaxTokens ควรเปลี่ยนการมองเห็นฟังก์ชันเป็นแบบส่วนตัวหรือภายใน ประกาศฟังก์ชันให้เป็นไพรเวตเพื่อให้เฉพาะฟังก์ชันอื่นๆ ภายในสัญญาเท่านั้นที่สามารถเรียกใช้ได้ ประกาศฟังก์ชันเป็นแบบภายในเพื่อให้สามารถเข้าถึงได้โดยสัญญาที่สืบทอดสัญญานี้ เมื่อสัญญาอื่นสืบทอดสัญญาคู่ LeetSwap V2 สัญญาเหล่านั้นสามารถเรียกใช้ฟังก์ชัน _transferFeesSupportingTaxTokens ผ่านซูเปอร์คีย์เวิร์ดได้ ผู้ใช้ภายนอกไม่สามารถเข้าถึงฟังก์ชันนี้ได้โดยตรง ซึ่งช่วยเพิ่มความปลอดภัยของสัญญา

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

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

3. ความเสี่ยงในการดำเนินงานของผู้ใช้

ในด้าน DeFi ความเสี่ยงในการปฏิบัติงานของผู้ใช้หมายถึงความเสี่ยงในการสูญเสียเงินทุนที่เกิดจากข้อผิดพลาดในการดำเนินงานของผู้ใช้เอง การขาดความตระหนักรู้ด้านความปลอดภัย หรือพฤติกรรมที่ไม่รอบคอบเมื่อใช้แพลตฟอร์ม DeFiต่อไปนี้คือความเสี่ยงในการดำเนินการของผู้ใช้ทั่วไป:

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

  • ใช้กระเป๋าเงินที่ไม่ปลอดภัย: หากผู้ใช้เลือกใช้แอปพลิเคชันกระเป๋าเงินที่ไม่ปลอดภัยหรือกระเป๋าเงินฮาร์ดแวร์ ผู้โจมตีอาจใช้ประโยชน์จากช่องโหว่เหล่านี้เพื่อขโมยคีย์ส่วนตัวของผู้ใช้หรือสิทธิ์ในการปฏิบัติงาน

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

  • การดำเนินการซื้อขายที่ไม่รอบคอบ: หากผู้ใช้ไม่ตรวจสอบรายละเอียดธุรกรรมอย่างรอบคอบ (เช่น ที่อยู่เป้าหมาย จำนวนเงินธุรกรรม ฯลฯ) เมื่อทำธุรกรรม เงินอาจถูกส่งไปยังที่อยู่ผิดหรือจำนวนเงินไม่ถูกต้อง

เพื่อลดความเสี่ยงในการดำเนินงานของผู้ใช้ ต่อไปนี้คือคำแนะนำบางส่วน:

  • เพิ่มการรับรู้ด้านความปลอดภัย: ทำความเข้าใจกลวิธีฟิชชิ่ง มัลแวร์ และการหลอกลวงทั่วไป และเรียนรู้วิธีจดจำและหลีกเลี่ยง ระมัดระวังและตรวจสอบลิงก์และแอปพลิเคชันที่เกี่ยวข้องกับ DeFi อย่างรอบคอบ

  • ใช้กระเป๋าเงินที่ปลอดภัย: เลือกใช้แอพกระเป๋าเงินหรือกระเป๋าเงินฮาร์ดแวร์ที่ได้รับการตรวจสอบความปลอดภัยและมีชื่อเสียงที่ดี ตรวจสอบให้แน่ใจว่าแอปพลิเคชันกระเป๋าเงินและเฟิร์มแวร์ของคุณทันสมัยและปฏิบัติตามแนวทางปฏิบัติด้านความปลอดภัยที่ดีที่สุด

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

  • ตรวจสอบรายละเอียดธุรกรรมอีกครั้ง: ก่อนดำเนินการธุรกรรมใดๆ ให้ตรวจสอบรายละเอียดธุรกรรมอีกครั้งเพื่อให้แน่ใจว่าที่อยู่ปลายทาง จำนวนเงินของธุรกรรม ฯลฯ ถูกต้อง การตรวจสอบซ้ำสามารถหลีกเลี่ยงการสูญเสียเงินทุนเนื่องจากความประมาทเลินเล่อ

4. สรุป

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

ความปลอดภัย
การเงิน
DeFi
ยินดีต้อนรับเข้าร่วมชุมชนทางการของ Odaily
กลุ่มสมาชิก
https://t.me/Odaily_News
กลุ่มสนทนา
https://t.me/Odaily_CryptoPunk
บัญชีทางการ
https://twitter.com/OdailyChina
กลุ่มสนทนา
https://t.me/Odaily_CryptoPunk
สรุปโดย AI
กลับไปด้านบน
在去中心化金融(DeFi)领域中存在着大量的安全风险,这些风险可能对用户、平台和整个金融生态系统造成严重的危害。我们总结了三种 DeFi 安全风险,并通过分析最近发生的真实安全事件来阐述黑客攻击的过程以及相应的解决方案。
คลังบทความของผู้เขียน
Salus Insights
ดาวน์โหลดแอพ Odaily พลาเน็ตเดลี่
ให้คนบางกลุ่มเข้าใจ Web3.0 ก่อน
IOS
Android