学位论文 > 优秀研究生学位论文题录展示

ROP攻击及其变种的检测技术

作 者: 韩浩
导 师: 谢立;茅兵
学 校: 南京大学
专 业: 计算机软件与理论
关键词: ROP攻击 恶意代码 影子栈 指令片段 完整性检测
分类号: TP393.08
类 型: 硕士论文
年 份: 2011年
下 载: 63次
引 用: 0次
阅 读: 论文下载
 

内容摘要


ROP(Return-oriented programming)是一种全新的攻击方式,它利用代码复用技术.攻击者扫描已有的动态链接库和可执行文件,提取出可以利用的指令片段(gadget),这些指令片段均以ret指令结尾,即用ret指令实现指令片段执行流的衔接.最初ROP攻击实现在x86体系结构下,随后扩展到各种体系结构.与以往攻击技术不同的是,ROP恶意代码不包含任何指令,将自己的恶意代码隐藏在正常代码中.因而,它可以绕过WX的防御技术.但是,ROP也有其不同于正常程序的内在特征:(1)ROP控制流中,call和ret指令不操纵函数,而是用于将函数里面的短指令序列的执行流串起来,但在正常的程序中,call和ret分别代表函数的开始和结束;(2)ROP控制流中,jmp指令在不同的库函数甚至不同的库之间跳转,攻击者抽取的指令序列可能取自任意一个二进制文件的任意一个位置,这很不同于正常程序的执行.比如,函数中部提取出的jmp短指令序列,可将控制流转向其他函数的内部;而正常程序执行的时候,jmp指令通常在同一函数内部跳转.本文深入分析研究各种指令片段的特性,ROP攻击及其变种的内在本质与不正常行为.基于这些发现,我们提出新的检测方法:首先,鉴于我们检测系统只关注动态链接库,故先通过分析程序的ELF头文件,得到动态链接库加载的基址;再通过IDA进行库静态分析,得到库中每个函数相对的起始地址和结束地址;将相对的起始地址和结束地址加上动态链接库基址,便得到程序加载运行阶段,每个库函数线性起始地址和结束地址.其次,创建一颗AVL树,用于存储前面得到的库函数线性起始地址和结束地址,用于call完整性检测和jmp完整性检测.这之后,利用二进制插桩工具为待监控程序装配检测分析代码,并创建出一个影子栈用于记录函数返回地址.最后,由于我们的插桩级别是指令级,故每当待监控程序的一条指令执行结束之后,控制流就转向分析检测代码,检测代码判断刚刚执行完的这条指令是否是ret,call和jmp间接跳转,如果是,分别执行相应的ret完整性检测,call完整性检测和jmp完整性检测.为了测试此检测系统的误报和漏报,我们选取大量的正常程序和ROP恶意代码,实验结果表明,此检测系统没有误报和漏报,而且性能开销是正常程序的3.8倍,比DROP检测系统的6.1倍少很多.

全文目录


摘要  5-7
Abstract  7-11
第1章 引言  11-13
  1.1 研究背景  11-12
  1.2 本文内容安排  12-13
第2章 ROP攻击技术背景  13-31
  2.1 代码注入式攻击  13-18
    2.1.1 基本的缓冲区溢出  13-15
    2.1.2 针对函数活动记录的攻击  15-18
  2.2 代码复用攻击  18-30
    2.2.1 Return-into-libc  18-22
    2.2.2 Borrowed code chunks  22-25
    2.2.3 Return-oriented programming  25
    2.2.4 JOP攻击  25-29
    2.2.5 BIOP攻击  29-30
  2.3 本章小结  30-31
第3章 ROP攻击防御  31-51
  3.1 引言  31-32
  3.2 ROP恶意代码的特征  32-33
  3.3 系统设计  33-36
  3.4 系统实现  36-44
    3.4.1 ELF分析  37-38
    3.4.2 库静态分析  38-39
    3.4.3 库动态分析  39-40
    3.4.4 AVL树  40-42
    3.4.5 ROP监控  42-44
  3.5 评价  44-50
    3.5.1 动态库分析  45-46
    3.5.2 误报和漏报  46-50
  3.6 性能评测  50
  3.7 本章小结  50-51
第4章 相关研究工作  51-55
  4.1 传统的代码注入防御  51
  4.2 其他代码复用技术  51-52
  4.3 ROP攻击防御  52-54
    4.3.1 DROP  52-53
    4.3.2 ROPdefender  53-54
  4.4 本章小结  54-55
第5章 总结与将来工作  55-57
  5.1 本文工作的意义  55
  5.2 本文工作的不足  55
  5.3 进一步工作  55-56
  5.4 本章小结  56-57
致谢  57
附录  57-58
参考文献  58-60

相似论文

  1. 基于主动方式的恶意代码检测技术研究,TP393.08
  2. 基于启发式算法的恶意代码检测系统研究与实现,TP393.08
  3. 基于内容的网页恶意代码检测的研究与实现,TP393.092
  4. 基于流特征的恶意代码检测,TP393.08
  5. 木马网络通信特征提取技术研究,TP393.08
  6. 基于虚拟化的恶意代码行为捕获技术研究,TP393.08
  7. 面向邮件系统的恶意代码检测技术研究,TP393.08
  8. 文件系统过滤驱动在反恶意代码中的应用研究,TP393.08
  9. 基于反编译的恶意代码检测关键技术研究与实现,TP309
  10. 基于动态模糊神经网络的程序行为恶意性判定关键技术研究,TP309
  11. 恶意代码检测及其行为分析,TP393.08
  12. 恶意代码检测与分类技术研究,TP393.08
  13. 面向抗攻击测试的主机系统完整性检测方法研究,TP393.08
  14. 基于程序语义的静态恶意代码检测系统的研究与实现,TP393.08
  15. 基于操作虚拟化及时序逻辑的恶意代码分析,TP393.08
  16. 恶意代码分类的研究与实现,TP393.08
  17. 基于主机异常行为的分布式恶意代码检测技术研究,TP393.08
  18. 基于码表理论的恶意代码检测技术研究,TP393.08
  19. 人工挖孔桩完整性低应变反射波法检测实践与局限性研究,TU753.3
  20. 校园网恶意蠕虫疫情响应系统的设计与实现,TP393.18
  21. 基桩动测扭剪法仿真研究,TU473.16

中图分类: > 工业技术 > 自动化技术、计算机技术 > 计算技术、计算机技术 > 计算机的应用 > 计算机网络 > 一般性问题 > 计算机网络安全
© 2012 www.xueweilunwen.com