5个版本 (2个稳定版本)
1.0.1 | 2023年10月26日 |
---|---|
1.0.0 | 2023年1月31日 |
0.7.2 | 2022年11月14日 |
0.7.1 | 2022年8月30日 |
0.7.0 | 2022年8月25日 |
#3 in #open-api
每月下载量 62次
1MB
5K SLoC
💣什么是Cherrybomb?
Cherrybomb是一款用Rust编写的CLI工具,可以帮助您在开发早期阶段预防错误的代码实现。它通过使用OpenAPI文件验证和测试您的API来工作。其主要目标是减少安全错误并确保您的API按预期运行。
🔨它如何工作?
Cherrybomb确保您的API能够正常工作。它会检查您的API规范文件(OpenAPI规范)中的良好实践,并确保它遵循OAS规则。然后,它会测试您的API是否存在常见问题和漏洞。如果发现任何问题,Cherrybomb会提供一个详细报告,其中包含问题的确切位置,以便您可以轻松修复。
🐾开始使用
安装
Linux/MacOS
curl https://cherrybomb.blstsecurity.com/install | /bin/bash
脚本需要sudo权限将cherrybomb二进制文件移动到/usr/local/bin/。
(如果您想查看shell脚本(或帮助改进它) - /scripts/install.sh)
容器化版本
您可以通过其容器化版本获取Cherrybomb,该版本托管在AWS ECR上,需要您在该地址上获取API密钥(加载速度有点慢) - https://cicd.blstsecurity.com/
docker run --mount type=bind,source=[PATH TO OAS],destination=/home public.ecr.aws/blst-security/cherrybomb:latest cherrybomb -f /home/[OAS NAME] --api-key=[API-KEY]
从crates.io获取
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 # or any other directory in your PATH
配置文件
配置文件允许您选择要使用的检查类型。
- info: only generates param and endpoint tables
- normal: both active and passive
- intrusive: active and intrusive [in development]
- passive: only passive tests
- full: all the options
配置
通过配置文件,您可以轻松编辑和查看Cherrybomb的选项。配置文件允许您设置运行配置文件、OAS文件的位置、详细程度以及忽略TLS错误。
配置还允许您使用服务器数组覆盖服务器的URL,并添加请求的安全措施[开发中]。
请注意,如果CLI参数和配置选项都设置了,CLI参数将覆盖配置选项。
您还可以使用passive/active-include/exclude
从配置文件中添加或删除检查。[开发中]
cherrybomb --config <CONFIG_FILE>
配置文件的结构
{
"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
OpenAPI规范
cherrybomb--文件<路径> --配置文件被动模式
被动输出示例
生成信息表
cherrybomb --file <PATH> --profile info
参数表输出
端点表输出
🍻 集成
您可以将它嵌入到您的CI管道中。如果您计划这样做,我建议您访问我们的网站,注册,通过CI管道集成向导,并复制为您构建的groovy/GitHub actions片段。
示例
💪 支持
获取帮助
如果您有任何问题,请通过[email protected]发送给我们或在我们的discord服务器上提问。
您也可以在这里的GitHub上创建一个Issue。
依赖项
~10–25MB
~342K SLoC