重入攻击与防护_第1页
重入攻击与防护_第2页
重入攻击与防护_第3页
重入攻击与防护_第4页
重入攻击与防护_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

20XX/XX/XX重入攻击与防护汇报人:XXXCONTENTS目录01

课程导论:认识重入攻击02

重入攻击的核心原理03

重入攻击典型案例分析04

主流重入攻击防护方案05

重入攻击与防护实操演示06

课程总结与拓展课程导论:认识重入攻击01重入攻击的基本定义代码层面的重入攻击内涵指攻击者利用智能合约代码执行的可中断特性,反复调用合约函数窃取资产,典型案例如TheDAO事件。金融场景的重入攻击界定在DeFi等金融场景中,攻击者借合约资金未完成更新时重复触发提款逻辑,比如MakerDAO早期遭遇的攻击。跨合约重入攻击的定义攻击者通过调用外部恶意合约,绕开原合约防护机制,多次执行资金转移操作,造成资产损失。学习目标与内容框架

明确重入攻击核心判定标准掌握重入攻击的识别特征,区分正常交互与恶意重入行为,以Uniswap早期重入漏洞为例强化认知。

构建重入攻击防护体系逻辑梳理防护设计的核心维度,从合约校验到权限管控,借鉴OpenZeppelin防护方案搭建完整框架。

掌握重入攻击应急响应流程学习漏洞触发后的止损与修复步骤,结合CurveFinance重入攻击事件演练应急处置全流程。重入攻击的核心原理02存在可重复调用的函数接口部分DeFi项目的智能合约开放可重复调用接口,攻击者可利用该特性反复发起恶意请求。合约未设置重入防护机制早期以太坊上的TheDAO合约因未加防护,被攻击者通过重入攻击盗走大量以太币。函数执行流程存在时序漏洞当合约先转账再更新余额时,攻击者可在转账回调中再次调用合约发起攻击。重入攻击的触发条件攻击执行的基本流程

捕获合法会话数据攻击者通过网络嗅探等手段,截获用户已认证的会话令牌,如银行网银的登录会话Cookie。

伪造重入请求报文攻击者利用捕获的会话数据,构造与合法请求格式一致的报文,模拟用户发起重复操作。

触发未校验的重复执行将伪造报文发送至服务器,利用未设重入校验的漏洞,完成重复转账、下单等恶意操作。常见的攻击应用场景

01DeFi平台借贷交易在Uniswap等DeFi借贷场景中,攻击者可利用重入漏洞重复调用提款函数,套取远超抵押额的资产。

02智能合约转账操作以太坊部分早期合约存在重入漏洞,攻击者能在转账回调时再次触发合约逻辑,窃取合约内的全部资产。

03跨链桥资产兑换部分跨链桥因未做重入防护,攻击者可重复发起兑换请求,套取不同链上的双倍或多倍资产。窃取用户敏感资产攻击者可通过重入攻击重复调用合约,转移用户账户内的加密货币,如2016年TheDAO事件损失超6000万美元。破坏合约正常逻辑重入攻击会打乱合约执行顺序,导致余额计算、权限验证等功能失效,使合约陷入混乱无法正常运行。引发市场信任危机知名项目遭重入攻击后,会引发加密货币市场恐慌,投资者信心受挫,相关代币价格短期内大幅下跌。重入攻击的危害分析重入攻击典型案例分析03智能合约重入攻击案例

TheDAO重入攻击事件2016年黑客利用TheDAO合约漏洞发起重入攻击,盗走约5000万美元以太币,引发以太坊硬分叉。

Parity钱包重入攻击事件2017年黑客借Parity钱包合约漏洞实施重入攻击,窃取价值超3000万美元的加密资产,造成严重损失。

bZx协议重入攻击事件2020年bZx协议遭重入攻击,黑客通过闪电贷配合重入漏洞,获利约800万美元,凸显DeFi领域风险。后端接口重入攻击案例支付接口重复提交重入攻击某电商平台曾遭攻击者重复提交支付请求,利用接口校验漏洞,造成用户同一订单被多次扣款。登录接口恶意重入攻击某社交平台登录接口被攻击者反复调用,通过高频重入尝试破解用户账号密码,引发账号安全危机。订单提交接口重入攻击某外卖平台订单接口遭重入攻击,攻击者重复提交订单请求,导致用户同一地址收到多份重复外卖。文件系统重入攻击案例

ext4文件系统竞态重入攻击2018年ext4曝出重入漏洞,攻击者利用文件写入竞态条件,篡改权限配置获取系统最高权限。

NTFS文件系统恶意挂载重入攻击曾有攻击者通过重复挂载NTFS分区触发重入漏洞,绕过文件访问控制窃取敏感文档数据。

XFS文件系统日志重入攻击某安全团队发现XFS日志模块重入漏洞,攻击者借此伪造日志记录,篡改系统关键文件内容。利用会话状态漏洞发起攻击多个案例均借助会话未及时失效的漏洞,例如某金融平台曾因会话复用被攻击者实施重入转账。依托高频交互场景实施多发生在支付、交易类高频交互场景,像电商平台退款环节曾出现重入恶意套取优惠券事件。攻击手法具有隐蔽性案例中攻击者均采用与正常操作一致的流程发起攻击,难以被常规防御机制第一时间察觉。案例共性特征总结主流重入攻击防护方案04操作原子性锁定机制

基于Redis的分布式锁实现借助Redis的SETNX命令实现排他锁,确保同一时间仅一个线程执行关键操作,如电商下单场景。

数据库行级锁防护利用数据库行级锁锁定操作数据,避免多线程同时修改,常见于金融转账的核心流程。

乐观锁版本号校验通过为数据添加版本号字段,操作时校验版本号,不一致则终止,适用于票务预订场景。状态校验校验方法

交易状态实时核验在支付场景中,每笔交易发起前核验订单状态,如支付宝会校验订单是否已完成,避免重复扣款。

操作幂等性标识校验为每个请求分配唯一幂等ID,像微信支付的商户订单号,重复请求会因ID重复被直接拦截。

时序状态递进校验设定操作的时序状态节点,如电商订单需从待支付到已支付递进,跳过节点的请求会被拒绝。重排序优化方案调用顺序重排

将可能引发重入的核心操作后置,如Uniswap曾通过调整交易结算顺序降低重入风险。权限校验前置

把权限验证等非核心逻辑提前执行,避免恶意合约利用核心操作间隙发起重入攻击。状态更新优先

优先完成合约状态变量更新,再执行外部调用,像MakerDAO就采用该思路规避重入漏洞。基于QPS阈值的动态限流通过设定每秒请求数阈值,如某电商平台峰值期限制单用户QPS为5,超出则拦截,防范批量重入攻击。基于会话维度的频次限流对单个用户会话设定请求频次上限,比如金融APP限制用户1分钟内仅可发起3次转账请求,阻断重复重入。基于IP地址的分段限流针对不同IP段设置差异化限流规则,像企业办公IP段放宽限制,陌生IP段严格管控,精准拦截异常重入。请求限流拦截机制重入攻击与防护实操演示05模拟攻击环境搭建搭建基础区块链测试链采用Ganache本地区块链工具搭建测试链,创建测试账户与智能合约部署环境,满足重入攻击模拟需求。部署存在重入漏洞的合约编写含漏洞的以太币取款合约并部署到测试链,比如简化版的DAO漏洞合约,为攻击测试提供目标。配置攻击发起端环境用Remix集成开发环境连接测试链,创建攻击账户并配置交易参数,实现攻击触发的操作入口。重入攻击复现演示基于以太坊智能合约的重入攻击复现模拟编写存在漏洞的众筹合约,调用恶意合约反复提取余额,还原经典重入攻击场景。基于DeFi借贷协议的重入攻击复现复刻某知名DeFi平台曾遭遇的重入攻击,利用合约回调漏洞套取超额借贷资金。重入攻击触发条件复现逐步演示调用时机、漏洞合约权限等触发要件,验证重入攻击的启动逻辑。合约重入检测工具部署部署OpenZeppelinDefender监控工具,实时检测合约调用中的重入风险,及时触发预警拦截。重入锁机制代码植入在合约转账逻辑中植入ReentrancyGuard锁,如UniswapV3合约,避免递归调用引发重入。权限控制策略配置设置合约调用权限白名单,仅允许认证地址触发关键操作,缩小重入攻击的可乘空间。防护方案部署演示防护效果验证测试模拟重复交易场景测试模拟用户重复提交支付请求的场景,验证防护系统能否识别拦截,参考支付宝重复支付拦截案例。异常时序请求验证测试打乱正常请求时序发起重入攻击,验证防护系统的时序校验机制是否有效,防范恶意重复操作。高并发重入攻击压力测试通过压测工具发起高并发重入请求,测试防护系统在极限负载下的稳定性与拦截准确率。课程总结与拓展06核心知识点回顾

重入攻击的定义与典型场景重入攻击指攻击者重复提交请求恶意获利,典型场景如以太坊TheDAO事件,曾造成巨额资产损失。

重入攻击的技术原理拆解其核心是利用智能合约漏洞,在回调函数未执行完时重复调用合约,窃取合约内资产。

基础防护策略梳理常见防护手段有检查-生效-交互模式、使用重入锁,OpenZep

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论