
OpenAPI 사양을 감사하고, 모범 사례에 대해 검증하며, 자동화된 보안 테스트를 실행하여 API의 취약점 및 정의되지 않은 동작을 탐지하는 CLI 도구입니다.
Cherrybomb은 Rust로 작성된 CLI 도구로, 개발 초기에 잘못된 코드 구현을 방지하는 데 도움을 줍니다. OpenAPI 파일을 사용하여 API를 검증하고 테스트합니다. 주요 목표는 보안 오류를 줄이고 API가 의도한 대로 작동하도록 하는 것입니다.
Cherrybomb은 API가 올바르게 작동하는지 확인합니다. API의 명세 파일(OpenAPI Specification)이 모범 사례를 따르고 OAS 규칙을 준수하는지 검사합니다. 그런 다음 API에서 일반적인 문제와 취약점을 테스트합니다. 문제가 발견되면 Cherrybomb은 문제의 정확한 위치를 포함한 상세 보고서를 제공하여 쉽게 수정할 수 있도록 합니다.
DEPRECATED FOR NOW
스크립트는 cherrybomb 바이너리를 /usr/local/bin/에 이동하기 위해 sudo 권한이 필요합니다.
(셸 스크립트를 보거나 개선에 도움을 주고 싶다면 - /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-KEY]
cargo install cherrybomb
cargo가 설치되어 있지 않다면 여기에서 설치할 수 있습니다.
이 저장소를 클론하고 cargo를 사용하여 Cherrybomb을 소스에서 빌드할 수도 있습니다.
git clone https://github.com/blst-security/cherrybomb && cd cherrybomb
메인 브랜치의 Cargo.toml 파일은 cherrybomb-engine과 cherrybomb-oas를 crates.io에서 가져옵니다.
이것들도 소스에서 빌드하려면 다음 파일을 변경할 수 있습니다:
(버전 번호를 제거하고 로컬 저장소 경로로 바꿉니다)
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 파일 위치, 상세도(verbosity), TLS 오류 무시 등을 설정할 수 있습니다.
설정을 통해 서버 URL을 서버 배열로 재정의하고 요청에 보안을 추가할 수도 있습니다 [개발 중].
참고: CLI 인수 매개변수는 둘 다 설정된 경우 설정 옵션보다 우선합니다.
passive/active-include/exclude를 사용하여 프로필에 검사를 추가하거나 제거할 수도 있습니다 [개발 중].
cherrybomb --config <CONFIG_FILE>
설정 파일 구조:
{
"file" : "open-api.json",
"verbosity" : "normal",
"profile" : "Normal",
"passive_include" : ["check1", "check2"],
"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 <PATH> --profile passive
수동 검사 출력 예시:

cherrybomb --file <PATH> --profile info
매개변수 테이블 출력:

엔드포인트 테이블 출력:

현재 사용 중단됨 - 곧 대체될 예정
CI 파이프라인에 포함시킬 수 있습니다. 그렇게 하려면 웹사이트에 가입하고 CI 파이프라인 통합 마법사를 통해 친숙한 절차를 따라가며, 귀하를 위해 생성된 groovy/GitHub Actions 스니펫을 복사하는 것을 권장합니다.
예시:

질문이 있으시면 디스코드 서버에서 문의하세요.
또한 GitHub에서 이슈를 열어주셔도 환영합니다.