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.23%
此页面可能包含第三方内容,仅供参考(非陈述/保证),不应被视为 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)