《Counterfeit Object-oriented Programming》 论文笔记

一、简介

现阶段,ROP (面向返回的编程技术) 已经成为了一种非常流行的利用手法,同时现在也存在各种方式来保护程序免受 ROP 工具,例如 shadow stack 技术。而这篇 2015 年的论文向我们展示了一种新的利用手法,称为面向伪对象编程(COOP),即只通过程序中现有虚函数链以及 callsite 来进行恶意攻击。该攻击方式是图灵完备的,即可以执行任何操作,包括条件分支等。

同时,COOP 技术也可以绕过那些 不精确考虑C++面向对象语义 的防御手段。它并不针对与某一类语言(例如 C++),因此自然无法防护 COOP 技术。

该攻击手法基于 C++ 虚函数的一些特性:

  • C++ 编译器通过 vtable 虚函数表来实现对 vcall 虚函数 的访问

    其中 vtable 是指向类的所有可能继承继承的虚函数的指针数组。

    根据逆向结果来看, vtable 通常位于 .rodata 段上。

  • 对于包含虚函数的类来说,其对象内存开始处(即偏移量为0)包含一个指向 vtable 的指针。

阅读更多...

《CollAFL - Path Sensitive Fuzzing》论文笔记

一、简介

现有 fuzz 大多以代码覆盖率为引导指标。以AFL为例,它使用映射至 hashmap 中的基于 edge 的覆盖率信息来引导测试。这种覆盖率信息不太准确,因为只统计至 edge 层面,同时还会产生覆盖 hash 冲突,丢失覆盖率信息,给模糊测试带来一些不良限制。

这篇论文提出了一个新的方式,来达到以下三个目的:

  • 提供更准确的覆盖信息
  • 缓解路径冲突
  • 保持较低检测开销

同时,该论文还利用覆盖率信息,提出了三种新的模糊测试策略,加快了发现新路径和漏洞的速度。

下图是一个完整 fuzz 的工作流程,其中黄色标注部分为论文所提出的重点思路

image-20211201164140587

阅读更多...

《VScape - Assessing and Escaping Virtual Call Protections》 论文笔记

一、简介

这篇论文介绍了一种面向伪对象编程(COOP)的加强攻击手法,称为 COOPlus。对于那些不破坏 C++ ABI 的虚拟调用保护来说,有相当一部分的 虚拟调用保护手段易受 COOPlus 的攻击。

符合以下三个条件的虚拟函数调用容易受到 COOPlus 的攻击:

  • 不破坏虚函数调用的 ABI
  • 不保证 C++ 对象 vtable 指针的完整性(即可以被修改)
  • 允许在虚拟函数调用点上调用不同的函数

COOPlus 本质上是代码重用攻击,它在目标虚拟函数调用点上调用符合类型但不符合上下文的虚拟函数。该调用可通过 C++ 语义感知的 控制流完整性 CFI 检测,但由于调用上下文不同,因此可能会造成进一步的利用。

除了 COOPlus 以外,该论文还提出了一种解决方案 VScape,用来评估针对虚拟调用攻击保护的有效性。

论文 + 幻灯片 - USENIX security 21

阅读更多...

《HEALER - Relation Learning Guided Kernel Fuzzing》 论文笔记

一、简介

Healer 是受 Syzkaller 启发的 kernel fuzz。

与 Syzkaller 类似,Healer 使用 Syzlang 描述所提供的 syscall 信息来生成确认参数结构约束和部分语义约束的系统调用序列,并通过不断执行生成的调用序列来发现内核错误,导致内核崩溃。

与 Syzkaller 不同,Healer 不使用 choise table,而是通过动态移除最小化调用序列中的调用并观察覆盖范围变化来检测不同系统调用之间的内部关系,并利用内部关系来指导调用序列的生成和变异。此外,Healer 还使用了与 Syzkaller 不同的架构设计。

论文地址:HEALER: Relation Learning Guided Kernel Fuzzing

项目地址:github

阅读更多...

syzkaller 环境搭建

一、简介

Syzkaller 是一个无监督的覆盖引导的内核 fuzzer,是目前类似里程碑一样的 fuzz 。

项目地址 - syzkaller

本人对 syzkaller 的工作机制比较感兴趣,同时课题组也会经常用到 syzkaller,因此了解 syzkaller 是一个必不可少的过程。

在研究内核fuzz的工作机制之前,我们需要先学会如何搭建它的环境。

阅读更多...
  • Copyrights © 2020-2022 Kiprey
  • 访问人数: | 浏览次数:

请我喝杯咖啡吧~