
वेब-आधारित स्रोत कोड भेद्यता स्कैनर

Raptor एक वेब-आधारित (वेब-सेवा + UI) गिटहब-केंद्रित स्रोत-भेद्यता स्कैनर है, अर्थात यह सिर्फ गिटहब रेपो URL से किसी रिपॉजिटरी को स्कैन करता है। आप वेबहुक सेटअप कर सकते हैं ताकि हर बार जब आप कमिट करें या पुल रिक्वेस्ट मर्ज करें तो स्वचालित स्कैन सुनिश्चित हो सके। स्कैन अतुल्यकालिक रूप से किया जाता है और परिणाम केवल उसी उपयोगकर्ता के लिए उपलब्ध होते हैं जिसने स्कैन शुरू किया था।
Raptor की कुछ विशेषताएं:
यह टूल समुदाय और स्टार्ट-अप कंपनियों को सुरक्षित-कोडिंग पर जोर देने में मदद करने का एक प्रयास है। यह टूल वाणिज्यिक विकल्पों की सुविधाओं/गुणवत्ता से मेल खा सकता है या नहीं, कुछ भी गारंटी नहीं है और आपको चेतावनी दी गई है। यह टूल सुरक्षा कोड-समीक्षकों और/या सुरक्षित-कोडिंग अनुभव वाले डेवलपर्स द्वारा कोड-ऑडिट या पीयर रिव्यू के दौरान भेद्यता प्रवेश-बिंदु खोजने के लिए लक्षित है। कृपया टूल के आउटपुट पर आँख मूंदकर भरोसा न करें। यह सबसे अच्छा उपयोग तब होता है जब आप Raptor को अपने CI/CD पाइपलाइन में प्लग करते हैं।
0.1 बीटा
एकीकृत प्लगइन्स:
नोट: निम्नलिखित में से अधिकांश टूल्स/मॉड्यूल्स/लिब्स को फ्रेमवर्क में अच्छी तरह से एकीकृत करने के लिए भारी संशोधित किया गया है।
उपलब्ध रूलपैक:
स्थापना वीडियो: YouTube Install
$ wget https://github.com/dpnishant/raptor/archive/master.zip -O raptor.zip
$ unzip raptor.zip
$ cd raptor-master
$ sudo sh install.sh
स्थापना वीडियो: YouTube Usage
cd raptor-master
sudo sh start.sh #बैकएंड वेब-सेवा शुरू करता है
अब अपने ब्राउज़र को Raptor Home (http://localhost/raptor/) पर पॉइंट करें
जिस गिटहब सर्वर से आप जुड़े हैं, उस पर पंजीकृत उपयोगकर्ता नाम और कोई भी पासवर्ड (लेकिन स्कैन इतिहास देखने के लिए उपयोगकर्ता नाम याद रखें) से लॉगिन करें।
उदाहरण के लिए:
यदि आप https://github.com पर foobar के रूप में पंजीकृत हैं, तो https://github.com पर रेपो स्कैन करते समय वही उपयोगकर्ता नाम उपयोग करें। हालांकि, यदि आप अपने व्यक्तिगत/कॉरपोरेट गिटहब (जैसे https://github.corp.company.com) पर foobar_corp के रूप में पंजीकृत हैं, तो वही उपयोगकर्ता नाम उपयोग करें यदि आप https://github.corp.company.com पर रेपो स्कैन करने का इरादा रखते हैं।
हालांकि, अभी के लिए पासवर्ड कुछ भी हो सकता है, क्योंकि हमने डेवलपमेंट संस्करण में डेटाबेस नहीं लागू किया है।
आप अपनी विशिष्ट आवश्यकता(ओं) के लिए कोई भी नया/कस्टम नियम जोड़ने के लिए बंडल किए गए हल्के, GUI क्लाइंट-साइड नियम संपादक का उपयोग कर सकते हैं, या किसी अन्य सादे-पाठ संपादक का उपयोग कर सकते हैं, क्योंकि रूलपैक फ़ाइलें केवल सरल JSON संरचनाएं हैं। 'backend/rules' में स्थित नियमों को खोलने के लिए अपने ब्राउज़र का उपयोग करें। जब आप कर लें, तो अपनी नई/संशोधित नियम फ़ाइल को उसी निर्देशिका अर्थात 'backend/rules' में सहेजें। अब आपको बस एक मामूली संपादन करना है, यहाँ: Init Script। अपने नए रूलपैक फ़ाइलनाम को बिना '.rulepack' एक्सटेंशन के इस ऐरे में जोड़ें और बैकएंड सर्वर को पुनरारंभ करें। आप तैयार हैं! 👍
आप इसे यहाँ एक्सेस कर सकते हैं: Rules Editor (http://localhost/raptor/editrules.php)
स्कैन होने से बाहर करने के लिए एक फ़ाइल नाम या निर्देशिका नाम पैटर्न जोड़ें। यह किसी भी ज्ञात फ़ाइल जैसे jquery.min.js आदि या पूरी /test/ निर्देशिका को अनदेखा करने के लिए उपयोगी है। उदाहरण के लिए नीचे दी गई नमूना सामग्री में, jquery का अर्थ है jquery और यह केस-सेंसिटिव है, इसलिए सावधान रहें। plugins अनुभाग में, प्लगइन का name नियमपैक फ़ाइल का नाम है जो rules/ निर्देशिका के अंतर्गत उपलब्ध है, बिना ".rulepack" एक्सटेंशन के। issue फ़ील्ड नियमपैक फ़ाइलों के प्रत्येक नियम में उल्लिखित मुद्दे का आईडी है: उदाहरण #1, उदाहरण #2। match_type फ़ील्ड का मान regex या start या end हो सकता है। value फ़ील्ड वह सटीक स्ट्रिंग है जिसे मिलान किया जाना है, यदि match_type start या end है। यदि match_type फ़ील्ड regex है तो value में कच्चा RegEx पैटर्न होना चाहिए जिसे JSON सिंटैक्स एस्केपिंग से संबंधित समस्याओं से बचने के लिए Base64 एन्कोड किया जाना चाहिए। regex एक रेगुलर एक्सप्रेशन आधारित मिलान है, start स्निपेट की शुरुआत में मिलान करेगा और end स्निपेट के अंत में मिलान करेगा।
यह कैसे काम करता है, जब स्कैनर मुद्दों की स्कैनिंग समाप्त कर लेता है, तो यह सभी पाए गए मुद्दों पर पुनरावृति करेगा और उन मुद्दों को हटा देगा जो ignore_list.rulepack फ़ाइल में उल्लिखित प्रत्येक प्लगइन के पैटर्न (मिलान के प्रकार के आधार पर) से मेल खाते हैं।