MPI: Multiple Perspective Attack Investigation with Semantics Aware Execution Partitioning abstract。

解决的问题

传统审计技术产生了大量的不准确的因果图,为了克服该缺点,研究人员开始将图按照执行划分来提高分析粒度和准确度。但是这些技术依赖地层次的编程范式来进行执行划分,这通常会使得低层级的图存在大量冗余。
这不仅会导致溯源图存储的空间效率低下,还会导致溯源图可理解性降低,并且这些技术要求通过训练来检测不同分区之间的低层的依赖关系。
在训练中获得较好的完整性和准确率是很难的。

Architecture

arch

提出了一个可以感知程序注解和命令语义的技术,来进行基于特定程序的分区执行。该方法避免了训练,而能够生成具有丰富语义信息的执行分区,并且提供了攻击的多个视角。

*MPI is short for “Multiple Perspective attack Investigation”

思路与方法

本文的指导思想就是将高层级的任务转化为数据结构。
MPI 允许用户注释与此类任务相对应的数据结构,然后,它利用程序分析来检测一组指示任务切换和继承的位置,以实现执行分区。

如架构图所示,首先用户通过 miner 的辅助来给源代码进行注释添加,添加的注释指示跟数据结构相关联的单元。

其次,分析模块被做成了 LLVM 通道,接受注释并分析程序以确定要检测的位置,例如表示单元边界的数据结构访问。

source-annotation

simplified model
firefox annotation
firefox thread

annotation miner