DeFi三大安全隱患:閃電貸、價格操控和重入攻擊

DeFi常見安全漏洞及預防措施

最近,一位安全專家分享了一堂關於DeFi安全的課程,探討了Web3行業近期遭遇的重大安全事件,分析了這些事件發生的原因以及如何規避,並總結了智能合約中常見的安全漏洞及預防措施。本文將重點介紹閃電貸、價格操控和重入攻擊這三種常見漏洞類型。

Cobo DeFi 安全課(下):DeFi 常⻅安全漏洞及預防

閃電貸

閃電貸本身是DeFi的一種創新,但常被黑客利用進行攻擊:

  • 攻擊者通過閃電貸借出大量資金,操縱價格或攻擊業務邏輯
  • 開發者需考慮合約功能是否會因巨額資金而異常,或被用於在一筆交易中獲取過多獎勵
  • 常見問題:用Token數量計算獎勵,或用DEX交易對中Token數量參與計算

過去兩年出現了很多問題。一些DeFi項目看似高收益,實則開發水平參差不齊。比如有項目在固定時間根據持倉發放獎勵,被攻擊者利用閃電貸購買大量代幣獲取大部分獎勵。

價格操控

價格操控與閃電貸密切相關,主要有兩種問題:

  1. 計算價格時使用第三方數據,但使用方式不當或缺少檢查
  2. 使用某些地址的Token餘額作爲計算變量,而這些餘額可被臨時增減

重入攻擊

調用外部合約的主要風險是可能接管控制流,對數據進行意料之外的修改。

一個典型的重入攻擊示例: solidity mapping (address => uint) private userBalances;

function withdrawBalance() public { uint amountToWithdraw = userBalances[msg.sender]; (bool success, ) = msg.sender.call.value(amountToWithdraw)(""); require(success); userBalances[msg.sender] = 0; }

由於用戶餘額直到函數最後才清零,重復調用可多次提取。

解決重入問題需注意:

  1. 不只防單一函數重入
  2. 遵循Checks-Effects-Interactions模式
  3. 使用經過驗證的防重入modifier

建議使用成熟的安全實踐,避免重復造輪子。

項目方安全建議

  1. 遵循最佳安全實踐開發合約
  2. 實現合約可升級、暫停功能
  3. 採用時間鎖
  4. 建立完善的安全體系
  5. 提高全員安全意識
  6. 預防內部作惡,提升效率同時加強風控
  7. 謹慎引入第三方,默認其不安全並做好驗證

用戶如何判斷智能合約安全性

  1. 合約是否開源
  2. Owner是否採用去中心化的多籤
  3. 查看合約已有交易情況
  4. 合約是否可升級,是否有時間鎖
  5. 是否接受多家機構審計,Owner權限是否過大
  6. 注意預言機的可靠性

總之,在DeFi領域安全至關重要。項目方應全方位構建安全體系,用戶也需提高警惕,謹慎參與。

DEFI-2%
查看原文
此頁面可能包含第三方內容,僅供參考(非陳述或保證),不應被視為 Gate 認可其觀點表述,也不得被視為財務或專業建議。詳見聲明
  • 讚賞
  • 8
  • 分享
留言
0/400
DeFiVeteranvip
· 07-24 01:36
钱包又没了 不稀奇
回復0
幻想破灭预言家vip
· 07-23 19:20
好的defi继续闹 人家黑客天天薅牛毛
回復0
GateUser-bd883c58vip
· 07-21 12:00
还是得留个后门吧!
回復0
被毕业的矿工vip
· 07-21 02:24
哈 还得是老样子 花样洗矿
回復0
NewLiquidationWatchervip
· 07-21 02:19
漏洞这么多 DeFi还玩个啥?
回復0
层叠巢机老狐狸vip
· 07-21 02:18
又被割韭菜了
回復0
Layer2观察员vip
· 07-21 02:08
代码才是最硬核的证据
回復0
SerumSurfervip
· 07-21 02:07
闪电贷还是狗都不玩
回復0
交易,隨時隨地
qrCode
掃碼下載 Gate APP
社群列表
繁體中文
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)