High Accuracy Attack Provenance via Binary-based Execution Partition abstract。

解决的问题

了解可疑事件的溯源图是非常重要的方面,因为其揭露了攻击的根本原因和后果。通常通过分析审计日志来完成,但是随着长时间的运行,大量的日志会导致依赖爆炸使得攻击调查几乎难以完成。
因此本文提出一种方法来解决该问题。

方法

作者观察到,通过监视程序事件处理循环的执行,可以将长时间的执行划分为单独的单元,每次迭代对应于独立的输入/请求的处理。

因此对二进制应用进行逆向工程,获取程序事件处理循环,还对可能导致单元之间工作流的指令进行逆向工程,检测这样的工作流程对于揭示单元之间的因果关系至关重要。

然后对单元边界和单元依赖执行选择性地进行了日志记录。

基于上述方法,提出了一种用于二进制程序的高效、无依赖爆炸日志记录的新方案,称为 BEEP。
BEEP 是一种新的、更细粒度的主题类型,称为单元 unit,具体来说,单元是处理特定对象的过程执行段,一个进程被分割成多个单元,BEEP 还设计识别一小组关键的内存依赖关系,这些依赖关系表示单元之间的高级因果关系.

main contribution

  • 粒度更细,一个进程可以分为多个单元 unit
  • 证明了基于进程的日志记录会导致依赖爆炸,并且在许多程序中确认了单元的存在
  • 提出了新技术来逆向关键循环,其循环迭代表示单元的自然边界,以及诱导单元之间因果工作流的内存访问指令
  • 提出了一种日志分析算法,该算法可以对系统日志和我们的日志进行内聚推理

实现

与现有方法的比较:

eg

具体溯源图例子如下:

eg

在源码中的 unit loop:

eg

eg
eg

逆向工程算法:

eg
eg

日志分析算法:

eg