#open-api #api #security-testing #security #api-testing #scanning

app cherrybomb

Cherrybomb是一款CLI工具,可以帮助您通过验证API规范来避免未定义的用户行为

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

Download history 7/week @ 2024-04-22 7/week @ 2024-05-13 12/week @ 2024-05-20 6/week @ 2024-06-03 5/week @ 2024-06-10 4/week @ 2024-06-24 6/week @ 2024-07-01 5/week @ 2024-07-08 51/week @ 2024-07-29

每月下载量 62次

Apache-2.0

1MB
5K SLoC

cherry_bomb_v1.0

停止半成品的API规范

Maintained by blst security

docs

Discord Shield

💣什么是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-enginecherrybomb-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--文件<路径> --配置文件被动模式

被动输出示例

passive_output

生成信息表

cherrybomb --file <PATH> --profile info

参数表输出

parameter_output

端点表输出

endpoint_output

🍻 集成

您可以将它嵌入到您的CI管道中。如果您计划这样做,我建议您访问我们的网站,注册,通过CI管道集成向导,并复制为您构建的groovy/GitHub actions片段。


示例

CI pipeline builder output

💪 支持

获取帮助

如果您有任何问题,请通过[email protected]发送给我们或在我们的discord服务器上提问。

您也可以在这里的GitHub上创建一个Issue。

依赖项

~10–25MB
~342K SLoC