intel/tsffs
GitHub: intel/tsffs
基于 SIMICS 的快照式覆盖率引导模糊测试器,专门用于测试 UEFI、BIOS、内核和固件等传统模糊测试难以覆盖的目标软件。
Stars: 329 | Forks: 25
[](https://www.bestpractices.dev/projects/9349)
# TSFFS: 目标软件 Fuzzer 用于 SIMICS
TSFFS 是一个基于 [SIMICS](https://www.intel.com/content/www/us/en/developer/articles/tool/simics-simulator.html) 全系统模拟器构建的快照式覆盖率引导模糊测试器。TSFFS 可以轻松地对传统上难以模糊测试的目标进行测试并对崩溃进行分类,包括 UEFI 应用程序、引导程序、BIOS、内核模块和设备固件。TSSFS 还可以对 Linux 和 Windows 上的用户空间应用程序进行模糊测试。查看[需求](以了解 TSSFS 是否可以模糊测试您的代码。
- [TSFFS: Target Software Fuzzer For SIMICS](#tsffs-target-software-fuzzer-for-simics)
- [快速开始](#quick-start)
- [文档与设置](#documentation--setup)
- [功能特性](#capabilities)
- [使用场景](#use-cases)
- [联系方式](#contact)
- [寻求帮助 / 路线图](#help-wanted--roadmap)
- [作者](#authors)
## 快速开始
开始使用 TSFFS 最快的方式是使用我们的 [dockerfile](Dockerfile)。要改为在本地设置 TSFFS,请阅读[文档](https://intel.github.io/tsffs)。要立即开始使用 TSFFS:
```
git clone https://github.com/intel/tsffs
cd tsffs
docker build -t tsffs .
docker run -it tsffs
```
然后,运行提供的示例目标和模糊测试配置:
```
./simics -no-gui --no-win ./fuzz.simics
```
## 文档与设置
本项目的设置和使用文档位于 [intel.github.io/tsffs](https://intel.github.io/tsffs)。
## 功能特性
此模糊测试器使用 [LibAFL](https://github.com/AFLplusplus/LibAFL) 和 SIMICS 构建,并利用了两者的多项先进技术能力。
- 边覆盖率引导
- 快照式测试(完全确定性)
- 并行模糊测试(跨核心,机器并行即将支持)
- 易于添加到现有 SIMICS 项目
- 分类模式以重现和调试崩溃
- 现代模糊测试方法:
- Redqueen/I2S 基于污点的变异
- MOpt 和自动令牌变异
- 更多功能即将推出!
## 使用场景
TSFFS 专注于以下几个主要使用场景:
- UEFI 和 BIOS 代码,特别是基于 [EDKII](https://github.com/tianocore/edk2) 的代码
- 预发布和早期硅片固件及设备驱动程序
- 硬件依赖的内核和固件代码
- 用于复杂错误条件的模糊测试
然而,TSFFS 也能对以下内容进行模糊测试:
- Windows、Linux 等平台上的内核和内核驱动程序
- Windows、Linux 等平台上的用户空间应用程序
- 网络应用程序
- 虚拟机监控程序和裸金属系统
## 联系方式
如果您发现非安全问题或问题,请提交一个[问题](https://github.com/intel/tsffs/issues)!
寻求帮助和获取 TSFFS 使用支持的最佳场所是 [Awesome Fuzzing](https://discord.gg/gCraWct) Discord 服务器。如果您愿意,也可以发送电子邮件给[作者](#authors)。我们定期会将 Discord 和电子邮件中收到的问题添加到[常见问题](./docs/FAQ.md)中。
请勿创建问题或公开询问您在 TSFFS 中发现的可能的安全问题。相反,请查看我们的[安全政策](./SECURITY.md)并遵循链接的指南。
## 寻求帮助 / 路线图
请参阅[问题](https://github.com/intel/tsffs/issues?q=is%3Aopen+is%3Aissue+label%3Afeature)以获取计划功能和改进的路线图。欢迎帮助此处列出的任何功能。如果有人已被分配了您想要处理的问题,请联系他们以避免重复工作!
## 作者
Rowan Hart
Brandon Marken 博士
Robert Guenzel 博士
标签:0day挖掘, BIOS安全, LibAFL, pocsuite3, SIMICS, Triage模式, UEFI安全, UML, 全系统模拟, 内核安全, 可视化界面, 固件分析, 固件安全, 固件模糊测试, 崩溃调试, 并行模糊测试, 引导程序安全, 快照化, 模糊测试框架, 用户空间模糊测试, 覆盖率引导, 请求拦截, 软件测试, 边缘覆盖率, 通知系统