APT与新威胁论坛 0day动态检测之插桩下的ROP 检测 ROP Return Orientated Programming(面向返回的编程) 攻击者扫描已有的动态链接库和可执行文件,提取出 可以利用的指令片段(gadget),这些指令片段均以ret指令结 尾,即用ret指令实现指令片段执行流的衔接 ROP例子 … …. ROP 几种方式: *直接调用系统代码段实施ROP攻击 *先调用关闭DEP保护函数再利用内存代码段的组合进行的攻 击 *调用系统关键函数(如WinExec)实施的攻击 ROP 可能用到的API有: 先关闭DEP保护再进行攻击可能用到的API有: VirtualAlloc(), HeapCreate(), SetProcessDEPPolicy(), NtSetInformationProcess(), VirtualProtect(), WriteProtectMemory()等 调用系统关键函数进行攻击可能用到的API有: WinExec等 EMET 微软Enhanced Mitigation ExperienceToolkit 增强减灾体验工具 EMET ROP的检测方法 1.StackPviot:check if stack is pviotted 2.Caller:check if critical functions was called and not returned into 3.SimExecFlow:Simulate the execution flow after the return address to detect subsequent ROP Gadgets 4.MemProt:specail check on memory protections API 5.LoadLib:check and prevent LoadLibrary calls againts UNC paths EMET EMET CALLER CHECKS 核心原理 EMET处理了一批关键函数(如VirtualProtect, VirtualAlloc 等),Caller是在运行到关键函数的基础之上进行检测 Caller:check if critical functions was called and not retur ned into 即检查关键函数的返回地址所指向的指令的前一条指令是否 为CALL指令,如果不是则认为检测到ROP EMET EMET CALLER CHECKS 核心原理 32位操作系统的四种CALL类型: ①“call xxxxxxxx”形式的间接跳转 ②“call AAAABBBBBBBB”形式的直接远跳,其“AAAA”代 表16位的段选择子,“BBBBBBBB”代表32位偏移 ③“call [内存地址] ”形式,opcode为“FF15 [xxxxxxxx]” ④“call far[内存地址] ”形式,opcode为 “FF1D [xxxxxxxx]” 正常情况下的关键函数调用及返回 ROP情况下的关键函数调用及返回 绕过 返回地址的上方是一个call的形式 微软CFG控制流保护 利用bitmap记录函数起始地址 存在的问题: 为考虑性能, 进行缓解措施 操作系统关联, 程序编译关联 使用插桩实现ROP检测 防御/检测 插桩实现ROP检测 原理图 CFI实现与改进 性能消耗较大 使用场景: 动态沙盒,虚拟机,非加壳程序 动态二进制插桩 动态二进制插桩原理: “just in time” compiler 动态二进制插桩框架有: Pin ,DynamoRIO , Valgrind等 虚拟机堆栈检测ROP流程 1. 创建虚拟堆栈,用于记录调用CALL函数的地址, 2. 执行过程中记录RETN的返回地址, 3. RETN的返回地址和表中上个记录的CALL地址进行校验, 4. 即校验两者是否在一定范围之内, 5. 校验成功则删除虚拟堆栈中的地址, 6. 否则认为检测到ROP

pdf文档 2015-《0day动态检测之插桩下的ROP检测-吴卓群》

安全研究库 > 网络论坛材料 > 数据驱动安全之APT与新威胁论坛 > 文档预览
29 页 0 下载 29 浏览 0 评论 0 收藏 3.0分
温馨提示:如果当前文档出现乱码或未能正常浏览,请先下载原文档进行浏览。
2015-《0day动态检测之插桩下的ROP检测-吴卓群》 第 1 页 2015-《0day动态检测之插桩下的ROP检测-吴卓群》 第 2 页 2015-《0day动态检测之插桩下的ROP检测-吴卓群》 第 3 页 2015-《0day动态检测之插桩下的ROP检测-吴卓群》 第 4 页 2015-《0day动态检测之插桩下的ROP检测-吴卓群》 第 5 页
下载文档到电脑,方便使用
还有 24 页可预览,继续阅读
本文档由 张玉竹2022-04-08 10:39:20上传分享
给文档打分
您好可以输入 255 个字符
安信天行文库的中文名是什么?( 答案:安信天行 )
评论列表
  • 暂时还没有评论,期待您的金玉良言