
retire.js v5.5.0
स्कैनर जो ज्ञात कमजोरियों वाले JavaScript पुस्तकालयों के उपयोग का पता लगाता है। यह उन पुस्तकालयों का SBOM भी उत्पन्न कर सकता है जो यह ढूंढता है।
Retire.js
आप जो require करते हैं, उसे retire भी करना होगा
वेब और Node.js दोनों अनुप्रयोगों के लिए JavaScript लाइब्रेरीज़ का एक विशाल पारिस्थितिकी तंत्र उपलब्ध है। हालाँकि ये लाइब्रेरीज़ विकास को काफी तेज़ करती हैं, फिर भी उन्हें यह सुनिश्चित करने के लिए निरंतर रखरखाव की आवश्यकता होती है कि सुरक्षा कमज़ोरियों का तुरंत समाधान किया जाए। 2013 में, "Using Components with Known Vulnerabilities" (ज्ञात कमज़ोरियों वाले घटकों का उपयोग) को OWASP Top 10 महत्वपूर्ण सुरक्षा जोखिमों की सूची में जोड़ा गया, जो वेब अनुप्रयोगों के लिए पुरानी या असुरक्षित निर्भरताओं (dependencies) के गंभीर खतरे को उजागर करता है। Retire.js को डेवलपर्स की मदद के लिए बनाया गया था ताकि वे ज्ञात कमज़ोरियों वाले JavaScript लाइब्रेरी संस्करणों की पहचान कर सकें, विशेष रूप से उनकी जो पैकेज मैनिफेस्ट में नहीं हैं, बल्कि केवल डाउनलोड करके सोर्स कंट्रोल में रख दी गई हैं।
Retire.js का उपयोग कई तरीकों से किया जा सकता है:
- कमांड लाइन स्कैनर के रूप में
- Chrome एक्सटेंशन के रूप में - नहीं आधिकारिक रूप से Chrome वेब स्टोर में उपलब्ध
- Burp एक्सटेंशन के रूप में या OWASP ZAP ऐड-ऑन के रूप में
- Firefox एक्सटेंशन के रूप में - अप्रचलित (Deprecated) यदि आप इसे बनाए रखना और इसे फिर से सक्रिय (undeprecate) करना चाहते हैं तो हमें बताएं।
- एक हेडलेस वेब साइट स्कैनर
- grunt प्लगइन के रूप में (अप्रचलित)
- gulp कार्य के रूप में (अप्रचलित)
कमांड लाइन स्कैनर
किसी वेब ऐप या नोड ऐप को असुरक्षित JavaScript लाइब्रेरीज़ और/या Node.JS मॉड्यूल के उपयोग के लिए स्कैन करें। यदि आपने पहले से नहीं किया है, तो आपको पहले node/npm इंस्टॉल करना होगा। एप्लिकेशन फ़ोल्डर के सोर्स कोड फ़ोल्डर में चलाएँ:
$ npm install -g retire
$ retire
SBOM निर्माण
retire.js CycloneDX-प्रारूप में SBOM उत्पन्न कर सकता है:
$ retire --outputformat cyclonedx
cyclonedx CycloneDX 1.4 XML उत्पन्न करता है। JSON के लिए, और नए स्पेक संस्करणों के लिए, cyclonedxJSON (1.4), cyclonedxJSON1_6 या cyclonedxJSON1_7 का उपयोग करें। cyclonedxJSON1_6_VEX और cyclonedxJSON1_7_VEX वेरिएंट में vulnerabilities अनुभाग भी शामिल होता है।
डिफ़ॉल्ट रूप से, retire.js यदि कमज़ोरियाँ पाता है तो कोड 13 के साथ बाहर निकल जाएगा। इसे --exitwith 0 के साथ ओवरराइड किया जा सकता है।
Chrome और firefox एक्सटेंशन
विज़िट की गई साइटों को असुरक्षित लाइब्रेरीज़ के संदर्भों के लिए स्कैन करता है, और डेवलपर कंसोल में चेतावनियाँ दिखाता है। एड्रेस बार पर एक आइकन यह भी संकेत देगा कि क्या असुरक्षित लाइब्रेरीज़ लोड की गई थीं।
Burp एक्सटेंशन और OWASP ZAP ऐड-ऑन
@h3xstream ने Retire.js को पैठ परीक्षण उपकरणों Burp और OWASP ZAP के लिए एक प्लगइन के रूप में अनुकूलित किया है।
OWASP ZAP टीम आधिकारिक तौर पर एक Retire.js ऐड-ऑन का समर्थन करती है जो ZAP Marketplace के माध्यम से उपलब्ध है और ZAP साप्ताहिक रिलीज़ में डिफ़ॉल्ट रूप से शामिल है: https://www.zaproxy.org/docs/desktop/addons/retire.js/
हेडलेस साइट स्कैनर
retire-site-scanner https://github.com/RetireJS/retire-site-scanner का उपयोग किसी वेब साइट को हेडलेस मोड में स्कैन करने के लिए किया जा सकता है (Chrome/Firefox एक्सटेंशन का उपयोग करने के विपरीत)।
Grunt प्लगइन (अप्रचलित)
आपके एप्लिकेशन की बिल्ड दिनचर्या या किसी अन्य स्वचालित वर्कफ़्लो के भाग के रूप में Retire.js चलाने के लिए एक Grunt कार्य।
Gulp कार्य (अप्रचलित)
एक Gulp कार्य का उदाहरण जिसका उपयोग आप अपनी gulpfile में अपनी प्रोजेक्ट फ़ाइलों को स्वचालित रूप से देखने और स्कैन करने के लिए कर सकते हैं। आप वॉच पैटर्न और (वैकल्पिक) Retire.js विकल्पों को अपनी इच्छानुसार संशोधित कर सकते हैं।
const c = require("ansi-colors");
var gulp = require("gulp");
var beeper = require("beeper");
var log = require("fancy-log");
var spawn = require("child_process").spawn;
gulp.task("retire:watch", ["retire"], function (done) {
// Watch all javascript files and package.json
gulp.watch(["js/**/*.js", "package.json"], ["retire"]);
});
gulp.task("retire", function () {
// Spawn Retire.js as a child process
// You can optionally add option parameters to the second argument (array)
var child = spawn("retire", [], { cwd: process.cwd() });
child.stdout.setEncoding("utf8");
child.stdout.on("data", function (data) {
log(data);
});
child.stderr.setEncoding("utf8");
child.stderr.on("data", function (data) {
log(c.red(data));
beeper();
});
});
दान करें
दान का उपयोग उपकरण और कमज़ोरी रिपॉजिटरी के रखरखाव के लिए किया जाएगा।
