fbpx
维基百科

返回导向编程

返回导向编程(英語:Return-Oriented Programming,缩写:ROP)是计算机安全中的一种漏洞利用技术,该技术允许攻击者在程序启用了安全保护技术(如堆栈不可执行)的情况下控制程序执行流,执行恶意代码[1]。其核心思想是通过棧緩衝區溢出等方式控制堆栈调用以劫持程序控制流并执行针对性的机器语言指令序列(称为Gadgets[2]。所谓 gadgets 就是以 ret 结尾的指令序列,通过这些指令序列,我们可以修改某些地址的内容,方便控制程序的执行流程。[3]

「返回导向编程」的各地常用別名
中国大陸返回导向编程、面向返回程序设计、面向返回编程
臺灣返回導向程式設計
港澳返回導向程式設計、返回導向編程

分类

依据对于 gadget 利用的形式,返回导向编程主要有以下几种类型:

  • ret2text
  • ret2shellcode
  • ret2syscall
  • ret2libc
  • ret2dl_resolve
  • ret2VDSO
  • SROP
  • BROP

背景

堆栈溢出攻击

ROP是一种高级的堆栈溢出攻击。这类攻击往往利用操作堆栈调用时的程序漏洞,通常是缓冲区溢出。在缓冲区溢出中,在将数据存入内存前未能正确检查适当范围的函数会收到多于正常承受范围的数据,如果数据将写入栈,多余的数据会溢出为函数变量分配的空间并覆盖替换返回地址(return address)。在原本用以重定向控制流并返回给调用者的地址被覆盖替换后,控制流将改写到新分配的地址。

标准的缓冲区溢出攻击,攻击者只需要写出针对堆栈部分的代码(有效载荷)。直到1990年代后期,主流操作系统没有为该类攻击作出任何防范,微软直到2004年才提供了缓冲区溢出保护。操作系统最终使用数据执行保护技术来修补这个漏洞,该技术标记内存数据不可执行。 启用数据执行保护,机器将拒绝执行任何内存中user级别可写区域的代码。该技术的硬件支持不久用以加强该防范。

相關條目

  1. ^ Vázquez, Hugo. Check Point Secure Platform Hack (PDF). Pentest. Barcelona, Spain: Pentest Consultores: 219. October 1, 2007 [2021-02-21]. (原始内容 (PDF)于2021-03-07). 简明摘要 (英语). 
  2. ^ Buchanan, E.; Roemer, R.; Shacham, H.; Savage, S. When Good Instructions Go Bad: Generalizing Return-Oriented Programming to RISC (PDF). Proceedings of the 15th ACM conference on Computer and communications security - CCS '08. October 2008: 27–38 [2021-02-21]. ISBN 978-1-59593-810-7. doi:10.1145/1455770.1455776. (原始内容 (PDF)于2017-08-11). 
  3. ^ 存档副本. [2021-04-19]. (原始内容于2021-04-23). 

返回导向编程, 英語, return, oriented, programming, 缩写, 是计算机安全中的一种漏洞利用技术, 该技术允许攻击者在程序启用了安全保护技术, 如堆栈不可执行, 的情况下控制程序执行流, 执行恶意代码, 其核心思想是通过棧緩衝區溢出等方式控制堆栈调用以劫持程序控制流并执行针对性的机器语言指令序列, 称为gadgets, 所谓, gadgets, 就是以, 结尾的指令序列, 通过这些指令序列, 我们可以修改某些地址的内容, 方便控制程序的执行流程, 的各地常用別名中国大陸, 面向返回程序. 返回导向编程 英語 Return Oriented Programming 缩写 ROP 是计算机安全中的一种漏洞利用技术 该技术允许攻击者在程序启用了安全保护技术 如堆栈不可执行 的情况下控制程序执行流 执行恶意代码 1 其核心思想是通过棧緩衝區溢出等方式控制堆栈调用以劫持程序控制流并执行针对性的机器语言指令序列 称为Gadgets 2 所谓 gadgets 就是以 ret 结尾的指令序列 通过这些指令序列 我们可以修改某些地址的内容 方便控制程序的执行流程 3 返回导向编程 的各地常用別名中国大陸返回导向编程 面向返回程序设计 面向返回编程臺灣返回導向程式設計港澳返回導向程式設計 返回導向編程此條目需要擴充 2013年9月21日 请協助改善这篇條目 更進一步的信息可能會在討論頁或扩充请求中找到 请在擴充條目後將此模板移除 目录 1 分类 2 背景 2 1 堆栈溢出攻击 3 相關條目分类 编辑依据对于 gadget 利用的形式 返回导向编程主要有以下几种类型 ret2text ret2shellcode ret2syscall ret2libc ret2dl resolve ret2VDSO SROP BROP背景 编辑堆栈溢出攻击 编辑 ROP是一种高级的堆栈溢出攻击 这类攻击往往利用操作堆栈调用时的程序漏洞 通常是缓冲区溢出 在缓冲区溢出中 在将数据存入内存前未能正确检查适当范围的函数会收到多于正常承受范围的数据 如果数据将写入栈 多余的数据会溢出为函数变量分配的空间并覆盖替换返回地址 return address 在原本用以重定向控制流并返回给调用者的地址被覆盖替换后 控制流将改写到新分配的地址 标准的缓冲区溢出攻击 攻击者只需要写出针对堆栈部分的代码 有效载荷 直到1990年代后期 主流操作系统没有为该类攻击作出任何防范 微软直到2004年才提供了缓冲区溢出保护 操作系统最终使用数据执行保护技术来修补这个漏洞 该技术标记内存数据不可执行 启用数据执行保护 机器将拒绝执行任何内存中user级别可写区域的代码 该技术的硬件支持不久用以加强该防范 相關條目 编辑Return to libc攻击 Vazquez Hugo Check Point Secure Platform Hack PDF Pentest Barcelona Spain Pentest Consultores 219 October 1 2007 2021 02 21 原始内容存档 PDF 于2021 03 07 简明摘要 英语 Buchanan E Roemer R Shacham H Savage S When Good Instructions Go Bad Generalizing Return Oriented Programming to RISC PDF Proceedings of the 15th ACM conference on Computer and communications security CCS 08 October 2008 27 38 2021 02 21 ISBN 978 1 59593 810 7 doi 10 1145 1455770 1455776 原始内容存档 PDF 于2017 08 11 存档副本 2021 04 19 原始内容存档于2021 04 23 取自 https zh wikipedia org w index php title 返回导向编程 amp oldid 70869570, 维基百科,wiki,书籍,书籍,图书馆,

文章

,阅读,下载,免费,免费下载,mp3,视频,mp4,3gp, jpg,jpeg,gif,png,图片,音乐,歌曲,电影,书籍,游戏,游戏。