
स्कैनर जो ज्ञात कमजोरियों वाले JavaScript पुस्तकालयों के उपयोग का पता लगाता है। यह उन पुस्तकालयों का SBOM भी उत्पन्न कर सकता है जो यह ढूंढता है।
आपको जो चाहिए, उसे आपको सेवानिवृत्त भी करना होगा
वेब और Node.js अनुप्रयोगों दोनों के लिए JavaScript पुस्तकालयों का एक विशाल पारिस्थितिकी तंत्र उपलब्ध है। ये पुस्तकालय विकास को काफी तेज करते हैं, लेकिन सुरक्षा कमजोरियों को समय पर दूर करने के लिए इन्हें निरंतर रखरखाव की आवश्यकता होती है। 2013 में, "ज्ञात कमजोरियों वाले घटकों का उपयोग" को OWASP टॉप 10 महत्वपूर्ण सुरक्षा जोखिमों की सूची में जोड़ा गया, जो वेब अनुप्रयोगों के लिए पुरानी या असुरक्षित निर्भरताओं द्वारा उत्पन्न गंभीर खतरे को उजागर करता है। Retire.js को डेवलपर्स को ज्ञात कमजोरियों वाले JavaScript लाइब्रेरी संस्करणों की पहचान करने में मदद करने के लिए बनाया गया था, विशेष रूप से वे जो पैकेज मेनिफेस्ट में नहीं हैं, बल्कि केवल डाउनलोड करके स्रोत नियंत्रण में रखे गए हैं।
Retire.js का उपयोग कई तरीकों से किया जा सकता है:
किसी वेब ऐप या नोड ऐप को असुरक्षित JavaScript लाइब्रेरीज़ और/या Node.JS मॉड्यूल के उपयोग के लिए स्कैन करें। यदि आपने पहले से नहीं किया है, तो पहले node/npm स्थापित करें। एप्लिकेशन फ़ोल्डर के स्रोत कोड फ़ोल्डर में चलाएँ:
$ npm install -g retire
$ retire
retire.js CycloneDX-प्रारूप में SBOM उत्पन्न कर सकता है:
$ retire --outputformat cyclonedx
डिफ़ॉल्ट रूप से retire.js कमज़ोरियाँ मिलने पर कोड 13 के साथ बाहर निकलेगा। इसे --exitwith 0 से ओवरराइड किया जा सकता है।
विज़िट की गई साइटों को असुरक्षित लाइब्रेरीज़ के संदर्भों के लिए स्कैन करता है, और डेवलपर कंसोल में चेतावनियाँ देता है। एड्रेस बार पर एक आइकन यह भी इंगित करेगा कि क्या असुरक्षित लाइब्रेरीज़ लोड की गई थीं।
@h3xstream ने Retire.js को पेनिट्रेशन टेस्टिंग टूल Burp और OWASP ZAP के लिए एक प्लगइन के रूप में अनुकूलित किया है।
OWASP ZAP टीम आधिकारिक तौर पर एक Retire.js ऐड-ऑन का समर्थन करती है जो ZAP मार्केटप्लेस के माध्यम से उपलब्ध है और 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 चलाने के लिए आपके एप्लिकेशन की बिल्ड रूटीन या किसी अन्य स्वचालित वर्कफ़्लो के भाग के रूप में।
एक 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();
});
});
दान का उपयोग उपकरण और कमज़ोरी रिपॉजिटरी के रखरखाव के लिए किया जाएगा।