
CLI-Tool, das OpenAPI-Spezifikationen prüft, gegen Best Practices validiert und automatisierte Sicherheitstests durchführt, um Schwachstellen und undefiniertes Verhalten in APIs zu erkennen.
Cherrybomb ist ein CLI-Tool, geschrieben in Rust, das hilft, fehlerhafte Code-Implementierungen frühzeitig in der Entwicklung zu verhindern. Es funktioniert durch das Validieren und Testen Ihrer API mit einer OpenAPI-Datei. Sein Hauptziel ist es, Sicherheitsfehler zu reduzieren und sicherzustellen, dass Ihre API wie beabsichtigt funktioniert.
Cherrybomb stellt sicher, dass Ihre API korrekt funktioniert. Es überprüft Ihre API-Spezifikationsdatei (OpenAPI Specification) auf bewährte Praktiken und stellt sicher, dass sie die OAS-Regeln einhält. Dann testet es Ihre API auf häufige Probleme und Schwachstellen. Wenn Probleme gefunden werden, erhalten Sie einen detaillierten Bericht mit der genauen Position des Problems, damit Sie es leicht beheben können.
DEPRECATED FOR NOW
Das Skript benötigt sudo-Berechtigungen, um die Cherrybomb-Binärdatei nach /usr/local/bin/ zu verschieben.
(Wenn Sie das Shell-Skript einsehen (oder sogar bei der Verbesserung helfen möchten) - /scripts/install.sh)
Sie können Cherrybomb über die containerisierte Version beziehen, die auf AWS ECR gehostet wird und einen API-Key benötigt, den Sie unter dieser Adresse erhalten können (das Laden ist etwas langsam) - VORÜBERGEHEND VERALTET
docker run --mount type=bind,source=[PFAD ZU OAS],destination=/home public.ecr.aws/blst-security/cherrybomb:latest cherrybomb -f /home/[OAS NAME] --api-key=[API-KEY]
cargo install cherrybomb
Falls Sie Cargo nicht installiert haben, können Sie es hier installieren.
Sie können Cherrybomb auch aus den Quellen erstellen, indem Sie dieses Repository klonen und es mit Cargo bauen.
git clone https://github.com/blst-security/cherrybomb && cd cherrybomb
Die Cargo.toml des Hauptbranchs verwendet cherrybomb-engine und cherrybomb-oas von crates.io.
Falls Sie diese ebenfalls aus den Quellen bauen möchten, können Sie die folgenden Dateien anpassen:
(entfernen Sie die Versionsnummer und ersetzen Sie sie durch den Pfad zum lokalen Repository)
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 # oder ein anderes Verzeichnis in Ihrem PATH
Profile ermöglichen es Ihnen, die Art der durchzuführenden Prüfungen auszuwählen.
- info: erzeugt nur Parameter- und Endpunkt-Tabellen
- normal: sowohl aktiv als auch passiv
- intrusive: aktiv und intrusiv [in Entwicklung]
- passive: nur passive Tests
- full: alle Optionen
Mit einer Konfigurationsdatei können Sie die Optionen von Cherrybomb einfach bearbeiten und anzeigen. Die Konfigurationsdatei ermöglicht es Ihnen, das Ausführungsprofil, den Pfad zur OAS-Datei, die Ausführlichkeit und das Ignorieren des TLS-Fehlers festzulegen.
Die Konfiguration erlaubt auch, die Server-URL mit einem Array von Servern zu überschreiben und die Anfrage mit Sicherheitsmechanismen zu versehen [in Entwicklung].
Beachten Sie, dass CLI-Argumente die Konfigurationsoptionen überschreiben, falls beide gesetzt sind.
Sie können auch Prüfungen zu einem Profil hinzufügen oder daraus entfernen, indem Sie passive/active-include/exclude verwenden [in Entwicklung].
cherrybomb --config <CONFIG_DATEI>
Struktur der Konfigurationsdatei:
{
"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,
}
Überprüfen Sie nach der Installation, ob es funktioniert, indem Sie ausführen:
cherrybomb --version
cherrybomb --file <PFAD> --profile passive
Beispiel für passive Ausgabe:

cherrybomb --file <PFAD> --profile info
Ausgabe der Parametertabelle:

Ausgabe der Endpunkttabelle:

VORÜBERGEHEND VERALTET - WIRD BALD ERSETZT
Sie können es in Ihre CI-Pipeline einbinden. Falls Sie das planen, empfehle ich Ihnen, unsere Website zu besuchen, sich anzumelden, den CI-Pipeline-Integrationsassistenten zu durchlaufen und das für Sie generierte Groovy/GitHub Actions-Snippet zu kopieren.
Beispiel:

Bei Fragen können Sie uns in unserem Discord-Server kontaktieren.
Sie sind auch herzlich eingeladen, ein Issue auf GitHub zu eröffnen.