cb-multios:打造漏洞分析利器
项目核心功能/场景
cb-multios:适用于Linux、OS X和Windows的DARPA挑战二进制文件。
项目介绍
cb-multios 是一套专门为DARPA挑战设计的二进制文件,旨在模拟各种可能导致软件崩溃的漏洞。这些二进制文件不仅仅是简单的测试用例,它们具备足够的复杂性,可以用来测试手动和自动漏洞发现工具。cb-multios 提供了广泛的功能测试、引入错误的触发器、补丁以及性能监控工具,使得它成为评价补丁工具和漏洞缓解策略的绝佳基准。
cb-multios 原本是为 DECREE 操作系统设计的,这是一个定制的基于Linux的操作系统,没有信号、共享内存、线程和标准libc运行时,只有七个系统调用。这使得它们与大多数现有分析工具不兼容。在cb-multios 的代码库中,已经对CBs进行了修改,使其可以在Linux和OS X上运行,通过替换构建系统和重新实现CGC系统调用来兼容标准libc功能。
项目技术分析
cb-multios 使用CMake构建系统,确保了跨编译器和操作系统的可移植性。CMake 支持广泛的编译器和操作系统版本,同时提供了检查依赖项和构建软件项目的统一接口。
项目包含以下几个主要组件:
- challenges:包含所有挑战二进制文件的源代码。
- include:包含
libcgc
,它实现了在非DECREE系统上的系统调用。 - tools:包含用于修改、构建和测试原始挑战的Python脚本。
构建系统支持多种操作系统,包括MacOS、Linux和Windows,且可以构建32位和64位的挑战二进制文件。
项目技术应用场景
cb-multios 是评估程序分析工具的最佳基准。使用它们,可以进行以下比较:
- Cyber Grand Challenge 的工具与现有的程序分析和漏洞发现工具相比如何?
- 当发布新工具时,它如何与当前最佳工具相媲美?
- 针对源代码的静态分析工具是否比针对二进制文件的动态分析工具发现更多的漏洞?
- 针对Mac OS X、Linux和Windows编写的工具,哪个更好?
项目特点
-
高度模拟真实软件的复杂性:cb-multios 不仅仅是一组简单的测试用例,它们模拟了真实软件中可能出现的各种漏洞,为漏洞分析工具提供了真实的测试环境。
-
跨平台支持:通过修改构建系统和重新实现系统调用,cb-multios 能够在Linux、OS X和Windows上运行,大大提高了其可用性和灵活性。
-
全面的测试工具:项目提供了
tester.py
工具,用于测试挑战二进制文件并汇总结果,为评估工具提供了方便。 -
社区支持:cb-multios 的移植工作得到了社区的广泛支持,包括多位贡献者的努力,确保项目的持续发展和完善。
使用cb-multios,研究人员和开发者可以更好地评估和改进他们的程序分析工具,提高软件的安全性。cb-multios 的开源特性使得它成为了一个值得信赖和推荐的项目。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考