【问题标题】:What is a code reuse attack?什么是代码重用攻击?
【发布时间】:2017-02-07 04:12:32
【问题描述】:

什么是代码重用攻击,我们如何防御它们?我喜欢一个例子。

我不明白重用攻击与缓冲区溢出攻击有何显着不同。

谁能帮我解决这个问题?

【问题讨论】:

  • 缓冲区溢出是一个漏洞(代码中的问题),它允许代码重用、代码注入或其他攻击(使用的技术)。
  • @t.niese 那么回归 lib-c 攻击会是代码重用的一种形式吗?
  • 如果您不使用一种方法来重写内存中的代码(代码注入),而是使用例如更改控制流。缓冲区溢出以按预期不同的方式使用现有代码,然后是代码重用。返回 clib 不会改变现有代码,而是对堆栈进行操作,因此是代码重用。

标签: security code-reuse


【解决方案1】:

这是一种利用技术,它依赖于执行内存中已经存在的代码(例如,作为标准库的一部分),而不是将其作为有效负载的一部分发送到被攻击的主机。这使攻击缓解软件的工作显着复杂化,因为攻击的表面面积缩小了,并且更难检测(例如通过指纹识别)并与合法流量区分开来。 这是维基https://en.wikipedia.org/wiki/Return-oriented_programming

【讨论】:

  • “标准库”是什么意思?如果您不使用任何自己的代码,您会造成什么真正的损害?
  • 你正在拼凑库代码的片段来做你想做的事。
【解决方案2】:

代码重用攻击使用缓冲区溢出、内存泄漏等漏洞。借助这些漏洞,攻击者将恶意负载上传到受害机器,以劫持控制流或攻击其他系统。代码重用攻击使用面向返回的编程或面向跳转的编程。这种攻击来自使用数据缓存的堆栈或堆。

【讨论】:

    猜你喜欢
    • 2017-10-07
    • 2020-02-23
    • 1970-01-01
    • 2018-03-21
    • 1970-01-01
    • 2019-09-05
    • 2014-04-19
    • 2012-08-01
    • 1970-01-01
    相关资源
    最近更新 更多