
ravage v0.5.0
नियंत्रित, अधिकृत लक्ष्यों के लिए साक्ष्य-प्रथम स्वायत्त वेब सुरक्षा परीक्षण। प्रतिलिपि योग्य प्रयोगशालाओं, ऑडिट ट्रेल्स, रिपोर्ट्स और XBEN बेंचमार्किंग के साथ।
Ravage
Ravage एक साक्ष्य-प्रथम CLI है जो चल रहे वेब एप्लिकेशन का आकलन करने के लिए है, जिसके आप स्वामी हैं या जिसका परीक्षण करने के लिए आपको स्पष्ट रूप से अधिकृत किया गया है। यह निर्धारणात्मक टोही और सत्यापन को एक वैकल्पिक मॉडल-संचालित आक्रमण लूप के साथ जोड़ता है, जबकि दायरा, प्रमाणीकरण, ट्रैफ़िक लेखांकन और साक्ष्य को कोड-स्वामित्व वाली सीमाओं में रखता है।
Ravage एक पूर्व-1.0 शोध अल्फा है। डिस्पोज़ेबल वातावरण और लिखित संलग्नता नियमों का उपयोग करें। सुरक्षा परीक्षण एप्लिकेशन की स्थिति बदल सकता है; Ravage निष्कर्षों को ठीक नहीं करता या फिक्स तैनात नहीं करता।
क्विकस्टार्ट · प्रमाणीकरण · परिणाम · क्षमताएं · दस्तावेज़ीकरण
आवश्यकताएं
- Python 3.12
- Git
- macOS, Linux, या WSL
- Docker केवल कंटेनरीकृत टूल, XBEN, और एकीकरण परीक्षणों के लिए
- एक प्रदाता API कुंजी केवल मॉडल-संचालित कमांड के लिए
सामान्य पहला स्कैन किसी मॉडल कुंजी, ब्राउज़र, Docker डेमन, या बाहरी स्कैनर की आवश्यकता नहीं रखता।
स्रोत से इंस्टॉल करें
git clone https://github.com/duriantaco/ravage.git
cd ravage
scripts/bootstrap.sh
source .venv/bin/activate
ravage doctor
बूटस्ट्रैप .venv बनाता है और वर्कस्पेस स्थापित करता है। विकास निर्भरताओं के लिए scripts/bootstrap.sh --dev, ब्राउज़र समर्थन के लिए --browser, या Chromium भी स्थापित करने के लिए --install-browser का उपयोग करें।
पांच मिनट का स्थानीय क्विकस्टार्ट
पहले अपना एप्लिकेशन शुरू करें। यह उदाहरण मानता है कि यह http://127.0.0.1:3000 पर सुन रहा है।
-
एक स्कोप्ड संलग्नता ब्रीफ और निजी पर्यावरण फ़ाइल बनाएं:
ravage init http://127.0.0.1:3000 \ --brief ravage-brief.yaml \ --env-file .env.ravage \ --description "मेरे स्थानीय विकास ऐप का अधिकृत आकलन।" -
ravage-brief.yamlकी समीक्षा करें। लक्ष्य, दायरे में मार्ग, बहिष्करण, अनुरोध बजट, दर सीमा, उद्देश्य, और सफलता मानदंड जांचें। -
एक नो-मॉडल सतह स्कैन चलाएं:
ravage doctor --workflow scan --brief ravage-brief.yaml ravage scan ravage-brief.yaml --probe surface_map --report
कमांड रन निर्देशिका प्रिंट करता है। उस पथ को कॉपी करें और नीचे दिए गए निरीक्षण कमांड में RUN_DIR के रूप में उपयोग करें।
मॉडल-संचालित एजेंट चलाएं
.env.ravage में एक समर्थित प्रदाता कुंजी जोड़ें, जैसे OPENAI_API_KEY। Ravage इस फ़ाइल को सीधे पढ़ता है; इसे शेल-सोर्स न करें।
ravage doctor --workflow attack --brief ravage-brief.yaml
ravage attack ravage-brief.yaml --allow-paid-models --report
--allow-paid-models एक स्पष्ट स्वीकृति है कि रन प्रदाता शुल्क लगा सकता है। मॉडल चयन, स्थानीय प्रदाता, और प्रतिलिपि योग्य प्रोफाइल मॉडल प्रदाता में प्रलेखित हैं।
प्रमाणित परीक्षण
ब्रीफ में एक समर्पित परीक्षण पहचान जोड़ें:
ravage auth add ravage-brief.yaml \
--identity user \
--type form \
--login /login \
--health /account \
--marker Logout \
--env-file .env.ravage
उत्पन्न गुप्त संदर्भ भरें, सत्र सत्यापित करें, फिर चयनित पहचान के साथ आक्रमण करें:
ravage auth check ravage-brief.yaml --identity user
ravage attack ravage-brief.yaml \
--identity user \
--allow-paid-models \
--report
फ़ॉर्म लॉगिन, बियरर टोकन, और निश्चित स्थिर हेडर समर्थित हैं। प्रबंधित क्रेडेंशियल प्रमाणित HTTP स्वामी के भीतर रहते हैं; जब कोई पहचान चुनी जाती है तो प्रक्रिया, Python, और कमांड लेन अवरुद्ध हो जाती हैं। सेटअप और सीमाओं के लिए प्रमाणीकरण देखें।
अधिकृत दूरस्थ लक्ष्य
दूरस्थ निष्पादन फेल-क्लोज़ है और एक स्पष्ट फ्लैग की आवश्यकता होती है। कम-प्रभाव वाले सतह स्कैन से शुरू करें:
ravage init https://staging.example.test \
--brief ravage-brief.yaml \
--env-file .env.ravage \
--description "मेरे स्टेजिंग एप्लिकेशन का अधिकृत आकलन।"
ravage doctor --workflow scan \
--brief ravage-brief.yaml \
--authorized-remote-target
ravage scan ravage-brief.yaml \
--probe surface_map \
--authorized-remote-target \
--report
मॉडल-संचालित दूरस्थ रन के लिए:
ravage attack ravage-brief.yaml \
--authorized-remote-target \
--allow-paid-models \
--report
अधिकृत दूरस्थ आक्रमण डिफ़ॉल्ट रूप से पूरे-रन कम-शोर नीति का पालन करते हैं: केवल मूल मीटर्ड HTTP, 1-RPS से कम पेसिंग, एक भौतिक-अनुरोध सीमा, रूढ़िवादी GET/HEAD कैशिंग और डीडुप्लिकेशन, अनुकूली बैकऑफ़, सीमित पुनर्प्रयास, और सर्किट ब्रेकिंग। स्थायी लेजर फिर से शुरू होने पर बच जाता है। विवरण आर्किटेक्चर में हैं।
परिणाम समझें
Ravage अवलोकन, संभावित निष्कर्ष, और पुष्टि की गई कमजोरियों के बीच अंतर करता है। एक CTF फ्लैग एक संभावित प्रमाण है, आवश्यकता नहीं। एक सामान्य एप्लिकेशन पर, कोई रन बिना कोई फ्लैग पाए उपयोगी और सफल हो सकता है; पुष्टि की गई कमजोरियां अभी भी रिपोर्ट में लिखी जाती हैं।
एक बार आक्रमण रन शुरू होने पर, इसका विहित निजी मशीन-पठनीय आर्टिफैक्ट RUN_DIR/report.json है, जिसमें अधूरे रन शामिल हैं। --report RUN_DIR/report.md भी लिखता है।
ravage observe RUN_DIR
ravage audit verify RUN_DIR
ravage report RUN_DIR --brief ravage-brief.yaml
एजेंट ग्राफ द्वारा कैप्चर किए गए संरचित HTTP के लिए:
ravage traffic list RUN_DIR
ravage traffic show RUN_DIR REQUEST_ID
रिपोर्ट में साक्ष्य संदर्भ, अनुरोध-लेखांकन गुणवत्ता, पूर्णता स्थिति, और अधूरे रन के रुकने का कारण शामिल है। कभी भी एक अमान्य मॉडल दावे को पुष्टि किए गए निष्कर्ष के रूप में न मानें।
क्षमताएं
| क्षमता | प्रवेश बिंदु | नोट्स |
|---|---|---|
| निर्धारणात्मक टोही और प्रोब | ravage scan | कोई मॉडल आवश्यक नहीं |
| मॉडल-संचालित आकलन | ravage attack | साक्ष्य-गेटेड और स्कोप्ड |
| प्रबंधित प्रमाणीकरण | ravage auth | फ़ॉर्म, बियरर, स्थिर हेडर |
| ट्रैफ़िक निरीक्षण और पुनर्प्ले | ravage traffic | स्कोप्ड आर्टिफैक्ट |
| ज्ञान कौशल | ravage skills, ravage code-bug | सलाहकार |
| निष्क्रिय SATCOM निरीक्षण | ravage satcom inspect | कोई ट्रांसमिट नहीं |
| XBEN मूल्यांकन | ravage xben | Docker-आधारित शोध हार्नेस |
| सुधार प्रयोगशाला | scripts/improvement_lab.py | पृथक संग्रह |
ज्ञान कौशल प्राथमिकता निर्धारण में मार्गदर्शन कर सकते हैं, लेकिन टूल नहीं जोड़ सकते, दायरा नहीं बढ़ा सकते, या निष्कर्षों की पुष्टि नहीं कर सकते। इससे शुरू करें:
ravage skills list builtin
ravage skills validate builtin
सुधार प्रयोगशाला स्वच्छ पूर्व-रन संरचना को ग्रहण करती है, स्वतंत्र वर्कस्पेस में उम्मीदवार पैच का मूल्यांकन करती है, स्वीकृत और अस्वीकृत संस्करणों को संग्रहीत करती है, और पदोन्नति से पहले मिलान किए गए नो-रिग्रेशन साक्ष्य की आवश्यकता होती है। यह एक साइडकार है: यह स्रोत चेकआउट को म्यूटेट नहीं करता या चुपचाप खुद को पदोन्नत नहीं करता।
निष्क्रिय कक्षीय और पैकेट आर्टिफैक्ट अलग से निरीक्षण किए जा सकते हैं:
ravage satcom inspect orbit.tle --format tle --output orbit-report.json
ravage satcom inspect capture.bin \
--format ccsds-space-packets \
--direction auto \
--output packet-report.json
SATCOM समर्थन निष्क्रिय पार्सिंग और विश्लेषण है, रेडियो ट्रांसमीटर या अंतरिक्ष यान-नियंत्रण प्रणाली नहीं।
विकास
scripts/bootstrap.sh --dev
source .venv/bin/activate
python -m pytest -m "not integration" -q
python -m ruff check --select E9,F .
python scripts/qa/check_docs.py
python scripts/qa/check_release.py
Docker-समर्थित एकीकरण परीक्षण और जमे हुए XBEN तुलनाएं अलग रिलीज़ गेट हैं। केस परिणामों की व्याख्या करने से पहले बेंचमार्किंग पढ़ें; एक भाग्यशाली फ्लैग विश्वसनीय सुधार का साक्ष्य नहीं है।
दस्तावेज़ीकरण
- Ravage का उपयोग कैसे करें
- सेटअप और समस्या निवारण
- प्रमाणीकरण
- आर्किटेक्चर
- कौशल
- निष्क्रिय SATCOM
- सुधार प्रयोगशाला
- बेंचमार्किंग
- सुरक्षा नीति
- योगदान
अपने चेकआउट में सटीक विकल्पों के लिए ravage --help और ravage COMMAND --help का उपयोग करें।
लाइसेंस
Apache License 2.0. LICENSE, DISCLAIMER, और SECURITY.md देखें।