DECAF(Dynamic Executable Code Analysis Framework 的缩写)是一个基于 QEMU 的二进制分析平台。
DECAF++ 是 DECAF 的新版本,污点分析速度提高约 2 倍,据我们所知,它是最快的全系统动态污点分析框架。这使得可用性大大提高,当不存在可疑(被污染)输入时,仅产生 4% 的开销(SPEC CPU2006)。即使在重污点分析工作负载下,DECAF++ 的性能也更好,由于它的弹性,在 nbench 上大约快 25%。DECAF++ 的弹性使其非常适合安全分析任务,这些任务需要选择性分析输入,例如可以过滤良性流量的入侵检测系统(IDS)。有关更多技术细节,请参阅我们的 RAID 2019 论文。要激活优化,请参阅我们的 DECAF++ wiki 页面。

Ali Davanian, Zhenxiao Qi, Yu Qu, and Heng Yin, DECAF++: Elastic Whole-System Dynamic Taint Analysis, In the 22nd International Symposium on Research in Attacks, Intrusions and Defenses (RAID), September 2019. (如果您希望引用 DECAF 的新优化版本,请引用此论文)
"Make it work, make it right, make it fast: building a platform-neutral whole-system dynamic binary analysis platform", Andrew Henderson, Aravind Prakash, Lok Kwong Yan, Xunchao Hu, Xujiewen Wang, Rundong Zhou, and Heng Yin, to appear in the International Symposium on Software Testing and Analysis (ISSTA'14), San Jose, CA, July 2014. (如果您希望引用 DECAF,请引用此论文)
Lok Kwong Yan, Andrew Henderson, Xunchao Hu, Heng Yin, and Stephen McCamant?.On soundness and precision of dynamic taint analysis. Technical Report SYR-EECS-2014-04, Syracuse University, January 2014.
DroidScope: Seamlessly Reconstructing OS and Dalvik Semantic Views for Dynamic Android Malware Analysis", Lok-Kwong Yan and Heng Yin, in the 21st USENIX Security Symposium, Bellevue, WA, August 8-10, 2012.
Luo, L., Fu, Y., Wu, D., Zhu, S., & Liu, P. (2016, June). Repackage-proofing android apps. In 2016 46th Annual IEEE/IFIP International Conference on Dependable Systems and Networks (DSN) (pp. 550-561). IEEE.
Wei, J., Yan, L. K., & Hakim, M. A. (2015, December). Mose: Live migration based on-the-fly software emulation. In Proceedings of the 31st Annual Computer Security Applications Conference (ACSAC) (pp. 221-230).
Carmony, C., Hu, X., Yin, H., Bhaskar, A.V., & Zhang, M. (2016). Extract Me If You Can: Abusing PDF Parsers in Malware Detectors. In Proceedings of 2016 Network and Distributed System Security Symposium (NDSS).
Feng, Q., Prakash, A., Yin, H., & Lin, Z. (2014, December). Mace: High-coverage and robust memory analysis for commodity operating systems. In Proceedings of the 30th annual computer security applications conference (pp. 196-205)
Alwabel, A., Shi, H., Bartlett, G., & Mirkovic, J. (2014). Safe and automated live malware experimentation on public testbeds. In 7th Workshop on Cyber Security Experimentation and Test (CSET'14).
DECAF(Dynamic Executable Code Analysis Framework)是 TEMU(BitBlaze 的动态分析组件)中开发的二进制分析技术的继承者,是 Heng Yin 在由 Dawn Song 领导的 BitBlaze 项目中的工作成果。DECAF 建立在 TEMU 之上。我们感谢所有与该项目的合作者。
图1 DECAF的总体架构
图1展示了 DECAF 的总体架构。DECAF 是一个平台无关的全系统动态二进制分析框架。它提供以下关键特性。
与 TEMU 不同,DECAF 不使用客户机驱动来获取操作系统级语义。DECAF 的 VMI 组件能够重建虚拟机中全新的操作系统级视图,包括进程、线程、代码模块和符号,以支持二进制分析。此外,为了支持多种架构和操作系统,它采用了平台无关的设计。提取操作系统级语义信息的工作流在多种架构和操作系统上是通用的。唯一的平台特定处理在于从哪些内核数据结构和哪些字段提取信息。
理想情况下,我们希望用相同的分析代码(带有最少的平台特定代码)在不同 CPU 架构(例如 x86 和 ARM)和不同操作系统(例如 Windows 和 Linux)上工作。这要求分析框架对分析插件隐藏架构和操作系统的具体细节。此外,为了使分析框架本身可维护且易于扩展到新的架构和操作系统,框架中的平台特定代码也应尽可能减少。DECAF 能够同时支持多种架构和多种操作系统。目前,DECAF 支持 32 位 Windows XP/Windows 7/Linux 以及 X86/ARM。
DECAF 通过保持 CPU 寄存器和内存的位级精度,并在翻译后的代码块中内联精确的污点规则,来确保精确的污点分析。因此,每个 CPU 寄存器和内存位置的污点状态在虚拟机代码执行期间同步处理和更新。污点标签的传播以异步方式进行。通过主要在中间表示层(更具体地说,TCG IR 层)实现这种污点逻辑,为新的 CPU 架构扩展污点支持变得容易。
DECAF 提供事件驱动的编程接口。这意味着“在翻译阶段插桩,然后在执行阶段分析”的模式对分析插件不可见。分析插件只需注册感兴趣的事件并实现相应的事件处理函数。代码插桩的细节由框架处理。
为降低运行时开销,插桩代码仅在必要时插入到翻译后的代码中。例如,当插件在函数入口点注册函数钩子时,该钩子的插桩代码仅放置在函数入口点。当插件取消注册此函数钩子时,插桩代码也会相应地从翻译后的代码中移除。为简化插件的开发,动态代码插桩的管理完全由框架负责,因此对插件不可见。
请参考我们的wiki页面获取帮助文档。