
Salesforce उत्पाद सुरक्षा द्वारा ओपन-सोर्स पेंटेस्टिंग प्रबंधन और ऑटोमेशन प्लेटफ़ॉर्म
Vulnreport पेनिट्रेशन परीक्षणों के प्रबंधन और सुव्यवस्थित, कार्रवाई योग्य निष्कर्ष रिपोर्ट तैयार करने के लिए एक मंच है, बिना सामान्य ओवरहेड के जो सुरक्षा इंजीनियर का समय लेता है। यह मंच प्रक्रिया के प्रत्येक चरण में स्वचालन का समर्थन करने और आपकी पेनटेस्टिंग प्रक्रिया में उपयोग किए जाने वाले अन्य सिस्टम के लिए अनुकूलन की अनुमति देने के लिए बनाया गया है।
Vulnreport को Salesforce उत्पाद सुरक्षा टीम द्वारा पेनिट्रेशन परीक्षणों के लिए रिपोर्ट लिखने, फ़ॉर्मेट करने और प्रूफ़ करने में लगने वाले समय से छुटकारा पाने के तरीके के रूप में बनाया गया था। हमारा लक्ष्य था और जारी है कि हम ऐसे बेहतरीन सुरक्षा उपकरण बनाएं जो पेंटेस्टर्स और सुरक्षा इंजीनियरों को भेद्यता खोजने और ठीक करने पर ध्यान केंद्रित करने दें।
Vulnreport एक Ruby वेब एप्लिकेशन (Sinatra/Rack स्टैक) है जो Redis कैश लेयर के साथ PostgreSQL डेटाबेस द्वारा समर्थित है।
Vulnreport को स्थानीय VM या nginx जैसी किसी चीज़ के पीछे सर्वर पर स्थापित किया जा सकता है, या Heroku पर तैनात किया जा सकता है।
स्थानीय रूप से तैनात करने के लिए, आपको यह सुनिश्चित करना होगा कि आपने निर्भरताएँ स्थापित कर ली हैं:
रिपॉजिटरी क्लोन करें और .env फ़ाइल खोलें, आवश्यकतानुसार इसे अपडेट करें। फिर bundle install चलाएँ। आप शायद अपने वातावरण के लिए start.sh को संशोधित करना चाहेंगे - रिपॉजिटरी में शामिल एक डिबगिंग/विकास के दौरान स्थानीय उपयोग के लिए है।
आपको .env.example के आधार पर .env फ़ाइल भी बनानी चाहिए, या अपने वातावरण में .env में परिभाषित समान ENV वेरिएबल्स सेट करने चाहिए।
आप Heroku पर स्वचालित रूप से तैनात कर सकते हैं। ऐसा करने के बाद, Vulnreport में लॉगिन करने और कॉन्फ़िगरेशन पूरा करने के लिए नीचे दिए गए निर्देशों का पालन करें।
Heroku पर तैनात करने के लिए (यह मानते हुए कि आपने Heroku ऐप बनाया है और टूलबेल्ट स्थापित है)
git clone [Vulnreport repo url]
heroku git:remote -a [Heroku app name]
heroku addons:create heroku-postgresql:hobby-dev
heroku addons:create heroku-redis:hobby-dev
heroku addons:create rollbar:free
heroku addons:create sendgrid:starter
फिर आप .env फ़ाइल खोलना चाहेंगे और कुंजी/मान (जहाँ आवश्यक हो मान अपडेट करते हुए) को अपने ऐप के Heroku सेटिंग्स पर कॉपी करना चाहेंगे। यह टूलबेल्ट CLI कमांड के माध्यम से भी किया जा सकता है। ध्यान दें कि ऐड-ऑन चलाने के बाद डिफ़ॉल्ट ENV वेरिएबल्स ठीक होने चाहिए, लेकिन आप दोबारा जाँच सकते हैं। आप निश्चित रूप से VR_SESSION_SECRET को अपडेट करना चाहेंगे। यदि यह आपकी उत्पादन स्थापना नहीं है, तो आपको RACK_ENV को development में बदलना चाहिए।
heroku config:set VR_SESSION_SECRET=abc123456
heroku config:set RACK_ENV=production
git push heroku master
अब आप इंस्टॉलेशन के निर्देशों का पालन कर सकते हैं जैसे आप Vulnreport को स्थानीय रूप से चला रहे हों।
Vulnreport के प्रारंभिक कॉन्फ़िगरेशन को संभालने के लिए, SEED.rb स्क्रिप्ट चलाएँ। यदि आप Heroku पर तैनात कर रहे हैं, तो इसे heroku run ./SEED.rb के माध्यम से चलाएँ।
यदि आपने स्वचालित 'Heroku पर तैनात करें' सुविधा का उपयोग किया है, तो यह चरण आपके लिए स्वचालित रूप से संभाला जाना चाहिए था।
Running ./SEED.rb on ⬢ vulnreport-test... up, run.8035
Vulnreport 3.0.0.alpha seed script
WARNING: This script should be run ONCE immediately after deploying and then DELETED
Setting up Vulnreport now...
Setting up the PostgreSQL database...
Done
Seeding the database...
Done
User ID 1 created for you
ALL DONE! :)
Login to Vulnreport now and go through the rest of the settings!
अब, SEED.rb फ़ाइल हटाएँ।
डिफ़ॉल्ट व्यवस्थापक उपयोगकर्ता आपके लिए उपयोगकर्ता नाम admin और पासवर्ड admin के साथ बनाया गया है। इसे तुरंत बदला जाना चाहिए और/या SSO कॉन्फ़िगर किया जाना चाहिए।
इस बिंदु पर आपको अपने Vulnreport URL (जैसे ऊपर https://my-vr-test.herokuapp.com) पर जाना चाहिए और बनाए गए उपयोगकर्ता से लॉगिन करना चाहिए। Vulnreport और उपयोगकर्ता सेटिंग्स के माध्यम से अपने Vulnreport इंस्टेंस को कॉन्फ़िगर करें।
आप तैयार हैं - अपने नए स्थापित Vulnreport इंस्टेंस का उपयोग करने के तरीके के बारे में दस्तावेज़ीकरण के लिए, http://vulnreport.io/documentation पर पूर्ण दस्तावेज़ देखें।
Vulnreport को बाहरी सिस्टम के साथ उपयोग करने के लिए डिज़ाइन और इच्छित किया गया है। बाहरी सिस्टम के साथ एकीकरण/सिंक्रनाइज़ेशन की अनुमति देने वाले इंटरफ़ेस को लागू करने के तरीके के बारे में अधिक जानकारी के लिए कृपया http://vulnreport.io/documentation#interfaces पर कस्टम इंटरफ़ेस दस्तावेज़ देखें।
कोड के लिए दस्तावेज़ीकरण उत्पन्न करने के लिए, बस Yard चलाएँ:
yard doc
yard server
वर्तमान में, Vulnreport एक विशिष्ट परीक्षण में भेद्यता आयात करने के लिए एक XML प्रारूप का समर्थन करता है। यह उपयोगी है यदि आप चाहते हैं कि Vulnreport उस नेटवर्क से अलग नेटवर्क पर हो जिस पर आप पेनटेस्ट करते हैं और इस प्रकार सक्रिय रूप से पेनटेस्ट करते समय निष्कर्ष रिकॉर्ड करने के लिए एक अलग क्लाइंट का उपयोग कर रहे हैं, लेकिन यह आपके विशिष्ट Vulnreport इंस्टेंस और Vulntypes कॉन्फ़िगरेशन के लिए कॉन्फ़िगर किए जाने पर निर्भर करता है।
हम कुछ अन्य प्रकार के XML आयात (उदाहरण के लिए ZAP और Burp) का समर्थन करने के साथ-साथ Vulnreport इंस्टेंस के बीच मनमाना XML निर्यात/आयात की अनुमति देने पर काम कर रहे हैं। बने रहें क्योंकि हम जल्द ही इन सुविधाओं को जारी करने की उम्मीद करते हैं।
Vulnreport वर्तमान में जिस XML प्रारूप का समर्थन करता है वह है:
<?xml version="1.0" encoding="UTF-8"?>
<Test xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Vuln>
<Type>[Vulntype ID]</Type>
<File>[File Vuln Data]</File>
<Code>
[Code Vuln Data]
</Code>
<File>clsSyncLog.cls</File>
<Code>
hello world
</Code>
...etc...
</Vuln>
<Vuln>
<Type>6</Type>
<File>clsSyncLog.cls</File>
<File>CommonFunction.cls</File>
<Code>
12 Public Class CommonFunction{
</Code>
</Vuln>
</Test>
<?xml version="1.0" encoding="UTF-8"?>
<Test xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"">
<Vuln>
<Type>REQUIRED - EXACTLY 1 - INTEGER - ID of VulnType. 0 = Custom</Type>
<CustomTypeName>OPTIONAL - EXACTLY 1 - STRING if TYPE == 0</CustomTypeName>
<BurpData>OPTIONAL - UNLIMITED - STRING - Burp req/resp data encoded in our protocol</BurpData>
<URL>OPTIONAL - UNLIMITED - STRING - URL for finding</URL>
<FileName>OPTIONAL - UNLIMITED - STRING - Name/path of file for finding</FileName>
<Output>OPTIONAL - UNLIMITED - STRING - Output details</Output>
<Code>OPTIONAL - UNLIMITED - STRING - Code details</Code>
<Notes>OPTIONAL - UNLIMITED - STRING - Notes for vuln</Notes>
<Screenshot>
OPTIONAL - UNLIMITED - Screenshots of vuln
<Filename>REQUIRED - EXACTLY 1 - STRING - Filename with extension</Filename>
<ImageData>
REQUIRED - EXACTLY 1 - BASE64 - Screenshot data
</ImageData>
</Screenshot>
</Vuln>
....unlimited vulns....
<Vuln>
</Vuln>
</Test>