【ARM 芯片 安全与攻击 5.7 -- 码重用攻击】

文章目录

  • 什么是代码重用攻击?
      • ROP 攻击示例
      • 示例背景
      • 攻击步骤
      • 假设的 ROP 链
      • 构建输入数据
      • 使用 payload 进行攻击
    • 防御措施
    • Summary

什么是代码重用攻击?

代码重用攻击(Code Reuse Attack, CRA)是一种利用现有的合法代码片段来执行恶意行为的攻击方法。由于现代操作系统和处理器通常会采用数据执行保护(DEP)等安全机制,直接在堆栈或堆上执行注入的恶意代码变得困难。代码重用攻击通过拼接或链接现有的代码片段来实现恶意目的,从而绕过这些安全机制。

常见的代码重用攻击技术包括:

  • 返回导向编程(Return-Oriented Programming, ROP):利用程序中现有的小片段代码(称为“gadget”),每个 gadget 以返回指令结尾,通过构建特定的返回地址序列来执行复杂的恶意操作。
  • 跳转导向编程(Jump-Oriented Programming, JOP):类似于 ROP,但利用的是跳转指令而不是返回指令。

ROP 攻击示例

以下是一个通过 ROP 攻击实现 execve("/bin/sh", NULL, NULL) 的示例。这个示例的目的是在没有直接执行注入代码的情况下,利用现有的代码片段来执行一个 shell。

你可能感兴趣的:(#,【ARM,芯片,安全与攻击专栏】,arm开发,安全,代码重用攻击)