Intel CET缓解机制实战解读

前言

CET(CONTROL-FLOW ENFORCEMENT TECHNOLOGY)机制是 Intel 提出的⽤于缓解 ROP/JOP/COP 的新技术。因其具备“图灵完备”的攻击效果,ROP ⼀直是漏洞利⽤领域经常使⽤的攻击技术,在漏洞防御⽅⾯,针对 ROP 攻击技术也不断地在做新的尝试。例如微软的 CFG 缓解技术,虽然能够起到⼀定的缓解效果,但是在复杂场景的攻击下还不⾜够。CET 是⼀项基于硬件⽀持的解决⽅案,旨在预防前向( call/jmp )和后向( ret )控制流指令劫持。

本⽂将从 CET 的设计理念和实际效果出发,探索 CET 技术在攻防上带来的新变化。

0x01 ROP

ROP 全称为 Return-oriented programming ,是⼀种⾼级的内存攻击技术,且这种攻击技术难以检测。因为它利⽤了程序本身拥有的代码来执⾏精⼼构造的代码链。

ROP 依赖 RET 指令将多个段间的代码拼接在⼀起,组成⼀组完整的恶意代码。利⽤这个攻击⽅式前需要拥有覆盖返回地址的能⼒,其次攻击者再从程序代码段中去寻找可利⽤的代码序列段⽤于后续的构造拼接。

来看⼀个例⼦,假设程序中存在以下⼀段代码⽚段:

此时这⼀段正常的按顺序执⾏的三个指令是不存在 ret 指令的。但是,如果稍加偏移⼀下解释代码的地址时,就会导致出现完全不⼀样的指令,如下图所示:

如果按照红框中的顺序解释这些指令的时候,那么将会产⽣⾮代码预期的结果,会出现原代码中未出现过的 ret 指令以及 call 指令,这些指令序列被称为 gadget 。

通过仔细构造这些由ret指令终⽌的指令集,攻击者可以执⾏原程序中⾮预期的任意恶意代码,这种攻击被称为 ROP 攻击。

0x02 CET - Shadow Stack

Intel 提出了⼀种基于硬件的 CET 解决⽅案,其中之⼀的 shadow stack

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值