Cherrybomb 是一个用 Rust 编写的 CLI 工具,可帮助您在开发早期防止错误的代码实现。它通过使用 OpenAPI 文件验证和测试您的 API 来工作。其主要目标是减少安全错误并确保您的 API 按预期运行。
Cherrybomb 确保您的 API 正常工作。它检查您的 API 规范文件(OpenAPI 规范)是否遵循良好实践,并确保其符合 OAS 规则。然后,它测试您的 API 是否存在常见问题和漏洞。如果发现任何问题,Cherrybomb 会向您提供一份包含问题确切位置的详细报告,以便您轻松修复。
目前暂时弃用
该脚本需要 sudo 权限才能将 cherrybomb 二进制文件移动到 /usr/local/bin/。
(如果您想查看 shell 脚本(或帮助改进它) - /scripts/install.sh)
您可以通过托管在 AWS ECR 上的容器化版本获取 Cherrybomb,这需要一个 API 密钥,您可以在该地址获取(加载速度有点慢)- 目前暂时弃用
docker run --mount type=bind,source=[OAS 文件路径],destination=/home public.ecr.aws/blst-security/cherrybomb:latest cherrybomb -f /home/[OAS 文件名] --api-key=[API 密钥]
cargo install cherrybomb
如果您没有安装 cargo,可以从这里安装
您也可以克隆此仓库并通过 cargo 从源码构建 Cherrybomb。
git clone https://github.com/blst-security/cherrybomb && cd cherrybomb
主分支的 Cargo.toml 文件使用来自 crates.io 的 cherrybomb-engine 和 cherrybomb-oas 包。
如果您也想从源码构建它们,可以修改以下文件:
(删除版本号并替换为本地仓库的路径)
cherrybomb/Cargo.toml:
cherrybomb-engine = version => { path = "cherrybomb-engine" }
cherrybomb/cherrybomb-engine/Cargo.toml:
cherrybomb-oas = version => { path = "../cherrybomb-oas" }
cargo build --release
sudo mv ./target/release/cherrybomb /usr/local/bin # 或 PATH 中的其他目录
配置文件允许您选择要使用的检查类型。
- info: 仅生成参数和端点表
- normal: 同时包含主动和被动检查
- intrusive: 主动和侵入性检查 [开发中]
- passive: 仅被动测试
- full: 所有选项
通过配置文件,您可以轻松编辑和查看 Cherrybomb 的选项。 配置文件允许您设置运行配置文件、OAS 文件的位置、详细程度以及忽略 TLS 错误。
配置还允许您使用服务器数组覆盖服务器的 URL,并为请求添加安全性 [开发中]。
请注意,如果同时设置了 CLI 参数,它将覆盖配置选项。
您还可以使用 passive/active-include/exclude 从配置文件中添加或删除检查。 [开发中]
cherrybomb --config <配置文件路径>
配置文件结构:
{
"file" : "open-api.json",
"verbosity" : "normal,
"profile" : " "Normal",
"passive_include" : ["check1, checks2"],
"active_include": ["check3, check4"],
"servers_override" , ["http://server/"],
"security": [{
"auth_type": "Basic",
"auth_value" : token_value,
"auth_scope" : scope_name
}],
"ignore_tls_errors" : true,
"no_color" : false,
}
安装后,通过运行以下命令验证它是否正常工作:
cherrybomb --version
cherrybomb --file <文件路径> --profile passive
被动输出示例:

cherrybomb --file <文件路径> --profile info
参数表输出:

端点表输出:

目前暂时弃用 - 很快将替换
您可以将其嵌入到 CI 管道中,如果您打算这样做,我建议您访问我们的网站,注册,然后通过 CI 管道集成向导,复制为您构建的 groovy/GitHub Actions 代码片段。
示例:

如果您有任何问题,可以在我们的 discord 服务器 上询问我们。
您也欢迎在 GitHub 上提交 Issue。