trailofbits/buttercup

GitHub: trailofbits/buttercup

由 Trail of Bits 为 DARPA AIxCC 开发的 AI 驱动漏洞发现与自动修补系统,实现从模糊测试到补丁生成的完整安全闭环。

Stars: 1510 | Forks: 166

# Buttercup 网络推理系统 (CRS) [![Tests](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/8ef2fb3f14185321.svg)](https://github.com/trailofbits/buttercup/actions/workflows/tests.yml) [![Component Integration Tests](https://github.com/trailofbits/buttercup/actions/workflows/comp-integration.yml/badge.svg)](https://github.com/trailofbits/buttercup/actions/workflows/comp-integration.yml) [![System Integration](https://github.com/trailofbits/buttercup/actions/workflows/integration.yml/badge.svg)](https://github.com/trailofbits/buttercup/actions/workflows/integration.yml) **Buttercup** 是由 **Trail of Bits** 为 **DARPA AIxCC (AI Cyber Challenge)** 开发的网络推理系统 (CRS)。Buttercup 用于查找并修补开源代码仓库中的软件漏洞,例如 [example-libpng](https://github.com/tob-challenges/example-libpng)。它首先运行 AI/ML 辅助的 fuzzing 活动(基于 oss-fuzz)来测试程序。当发现漏洞时,Buttercup 会对其进行分析,并使用多智能体 AI 驱动的修补程序来修复漏洞。**Buttercup** 系统由以下几个组件组成: - **Orchestrator**:协调整体任务流程并管理工作流 - **Seed Generator**:创建用于漏洞发现的输入 - **Fuzzer**:通过智能 fuzzing 技术发现漏洞 - **Program Model**:分析代码结构和语义以更好地理解程序 - **Patcher**:生成并应用安全补丁以修复漏洞 ## 系统要求 ### 最低要求 - **CPU:** 8 核 - **内存:** 16 GB RAM - **存储:** 100 GB 可用磁盘空间 - **网络:** 稳定的互联网连接(用于下载依赖项) **注意:** Buttercup 使用第三方 AI 提供商(来自 OpenAI、Anthropic 和 Google 等公司的 LLM),这需要费用。请确保通过使用内置的 LLM 预算设置来管理每次部署的成本。 **注意:** Buttercup 在同时拥有 OpenAI **和** Anthropic 模型访问权限时效果最佳,但也可以在至少拥有一个第三方提供商 API 密钥的情况下运行。您可以组合使用 OpenAI、Anthropic 和 Google 的 LLM。 ### 支持的系统 - **Linux x86_64**(完全支持) - **macOS**(通过 Docker Desktop 或 Colima 支持本地开发) - **ARM64**(部分支持上游 Google OSS-Fuzz 项目) ### 所需系统软件包 在设置之前,请确保已安装以下软件包: ``` # Ubuntu/Debian sudo apt-get update sudo apt-get install -y make curl git # RHEL/CentOS/Fedora sudo yum install -y make curl git # 或 sudo dnf install -y make curl git # MacOS brew install make curl git ``` ### 支持的目标 Buttercup 适用于: - **C 源代码仓库**(兼容 OSS-Fuzz) - **Java 源代码仓库**(兼容 OSS-Fuzz) - 能够成功构建且具有现有 fuzzing harness 的项目 ## 快速开始 1. 使用子模块克隆仓库: ``` git clone --recurse-submodules https://github.com/trailofbits/buttercup.git cd buttercup ``` 1. 运行自动设置脚本(推荐) ``` make setup-local ``` 此脚本将安装所有依赖项,配置环境,并引导您完成设置过程。 **注意:** 如果您更倾向于手动设置,请参阅 [手动设置指南](guides/MANUAL_SETUP.md)。 1. 在部署前确保 Docker 正在运行: ``` # Docker Desktop:启动应用程序 # Colima (macOS/Linux 替代方案): colima start --cpu 6 --memory 10 --disk 80 ``` 1. 在本地启动 Buttercup ``` make deploy ``` 1. 验证本地部署: ``` make status ``` 部署成功后,您应该看到所有 Pod 处于 "Running" 或 "Completed" 状态。 1. 向 Buttercup 发送一个简单任务 **注意:** 接到任务后,Buttercup 将开始消耗第三方 AI 资源。 此命令将让 Buttercup 拉取一个带有已知漏洞的示例仓库 [example-libpng](https://github.com/tob-challenges/example-libpng)。Buttercup 将开始对其进行 fuzzing 以查找并修补漏洞。 ``` make send-libpng-task ``` 1. 访问 Buttercup 的 Web GUI 运行: ``` make web-ui ``` 然后在 Web 浏览器中导航到 `http://localhost:31323`。 在 GUI 中,您可以监控活动任务,并查看 Buttercup 何时发现错误并为其生成补丁。 1. 停止 Buttercup **注意:** 这是一个重要步骤,用于确保 Buttercup 关闭并停止消耗第三方 AI 资源。 ``` make undeploy ``` ## 访问日志 Buttercup 默认包含本地 SigNoz 部署,以提供全面的系统可观测性。您可以通过 SigNoz UI 访问日志、追踪和指标: ``` make signoz-ui ``` 然后在 Web 浏览器中导航到 `http://localhost:33301` 以查看: - 分布式追踪 - 应用程序指标 - 错误监控 - 性能洞察 如果您在设置期间配置了 LangFuse,您还可以在那里监控 LLM 使用情况和成本。 有关其他日志访问方法,请参阅 [快速参考指南](guides/QUICK_REFERENCE.md)。 ## 其他资源 - [快速参考指南](guides/QUICK_REFERENCE.md) - 常用命令和故障排除 - [手动设置指南](guides/MANUAL_SETUP.md) - 详细的手动安装步骤 - [AKS 部署指南](guides/AKS_DEPLOYMENT.md) - 在 Azure 上进行生产部署 - [贡献指南](CONTRIBUTING.md) - 开发工作流程和标准 - [部署文档](deployment/README.md) - 高级部署配置 - [编写自定义挑战](guides/CUSTOM_CHALLENGES.md) - 自定义项目配置和设置 - [不计分轮次](guides/UNSCORED.md) - 运行不计分轮次挑战 - [计分轮次](guides/SCORED.md) - 解析最终轮次后的结果
标签:AIxCC, C2, DARPA, DLL 劫持, Fuzzing, LLM, PyRIT, Python, TLS抓取, Unmanaged PE, 云安全监控, 人工智能, 多智能体系统, 大语言模型, 子域名突变, 无后门, 漏洞修复, 用户模式Hook绕过, 网络安全, 网络安全培训, 网络推理系统, 自动修补, 请求拦截, 软件安全, 逆向工具, 防御性安全, 隐私保护, 静态分析