
CLI टूल जो OpenAPI विनिर्देशों का ऑडिट करता है, उन्हें सर्वोत्तम प्रथाओं के विरुद्ध मान्य करता है, और APIs में कमजोरियों और अपरिभाषित व्यवहार का पता लगाने के लिए स्वचालित सुरक्षा परीक्षण चलाता है।
Cherrybomb एक CLI टूल है जो Rust में लिखा गया है और विकास के शुरुआती चरण में ही गलत कोड कार्यान्वयन को रोकने में मदद करता है। यह OpenAPI फ़ाइल का उपयोग करके आपके API को मान्य और परीक्षण करके काम करता है। इसका मुख्य उद्देश्य सुरक्षा त्रुटियों को कम करना और यह सुनिश्चित करना है कि आपका API इच्छित रूप से काम करे।
Cherrybomb सुनिश्चित करता है कि आपका API सही ढंग से काम कर रहा है। यह आपके API की विशिष्टता फ़ाइल (OpenAPI Specification) को अच्छी प्रथाओं के लिए जाँचता है और सुनिश्चित करता है कि वह OAS नियमों का पालन करती है। फिर, यह सामान्य समस्याओं और कमजोरियों के लिए आपके API का परीक्षण करता है। यदि कोई समस्या पाई जाती है, तो Cherrybomb आपको समस्या के सटीक स्थान के साथ एक विस्तृत रिपोर्ट देता है ताकि आप इसे आसानी से ठीक कर सकें।
DEPRECATED FOR NOW
स्क्रिप्ट को cherrybomb बाइनरी को /usr/local/bin/ में ले जाने के लिए sudo अनुमतियों की आवश्यकता है।
(यदि आप शेल स्क्रिप्ट देखना चाहते हैं (या इसे बेहतर बनाने में मदद करना चाहते हैं) - /scripts/install.sh)
आप Cherrybomb को इसके कंटेनरीकृत संस्करण के माध्यम से प्राप्त कर सकते हैं जो AWS ECR पर होस्ट किया गया है, और इसके लिए एक API कुंजी की आवश्यकता है जो आप उस पते पर प्राप्त कर सकते हैं (लोडिंग थोड़ी धीमी है) - DEPRECATED FOR NOW
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]
cargo install cherrybomb
यदि आपके पास cargo स्थापित नहीं है, तो आप इसे यहाँ से स्थापित कर सकते हैं here
आप इस रिपॉजिटरी को क्लोन करके और 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 <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
cherrybomb --file <PATH> --profile passive
निष्क्रिय आउटपुट उदाहरण:

cherrybomb --file <PATH> --profile info
पैरामीटर तालिका आउटपुट:

एंडपॉइंट तालिका आउटपुट:

DEPRECATED FOR NOW - WILL BE REPLACED SOON
आप इसे अपने CI पाइपलाइन में एम्बेड कर सकते हैं, और यदि आप ऐसा करने की योजना बना रहे हैं तो मैं अनुशंसा करूंगा कि आप हमारी वेबसाइट पर जाएँ, साइन अप करें, CI पाइपलाइन एकीकरण विज़ार्ड से गुज़रें, और आपके लिए बनाए गए groovy/GitHub actions स्निपेट को कॉपी करें।
उदाहरण:

यदि आपके कोई प्रश्न हैं, तो आप हमसे हमारे discord सर्वर पर पूछ सकते हैं।
आप यहाँ GitHub पर एक मुद्दा (Issue) खोलने के लिए भी स्वागत है।