
scanner que detecta o uso de bibliotecas JavaScript com vulnerabilidades conhecidas. Também pode gerar um SBOM das bibliotecas que encontra.
O que você requer, também deve aposentar
Existe um vasto ecossistema de bibliotecas JavaScript disponíveis tanto para aplicações web quanto para Node.js. Embora essas bibliotecas acelerem significativamente o desenvolvimento, elas também exigem manutenção contínua para garantir que vulnerabilidades de segurança sejam tratadas prontamente. Em 2013, “Uso de Componentes com Vulnerabilidades Conhecidas” foi adicionado à lista OWASP Top 10 de riscos críticos de segurança, destacando a séria ameaça que dependências desatualizadas ou inseguras podem representar para aplicações web. O Retire.js foi criado para ajudar desenvolvedores a identificar versões de bibliotecas JavaScript com vulnerabilidades conhecidas, especialmente aquelas que não estão em manifestos de pacotes, mas simplesmente baixadas e colocadas no controle de versão.
O Retire.js pode ser usado de várias maneiras:
Escaneie uma aplicação web ou Node.js em busca de uso de bibliotecas JavaScript e/ou módulos Node.JS vulneráveis. Se ainda não o fez, você precisa instalar node/npm primeiro. Na pasta do código fonte da aplicação, execute:
$ npm install -g retire
$ retire
O retire.js pode gerar SBOMs no formato CycloneDX:
$ retire --outputformat cyclonedx
Por padrão, o retire.js sairá com código 13 se encontrar vulnerabilidades. Isso pode ser substituído com --exitwith 0.
Escaneia sites visitados em busca de referências a bibliotecas inseguras e coloca avisos no console do desenvolvedor. Um ícone na barra de endereços também indicará se bibliotecas vulneráveis foram carregadas.
@h3xstream adaptou o Retire.js como um plugin para as ferramentas de teste de penetração Burp e OWASP ZAP.
A equipe do OWASP ZAP oferece suporte oficial a um add-on Retire.js disponível no ZAP Marketplace e incluído por padrão nas versões semanais do ZAP: https://www.zaproxy.org/docs/desktop/addons/retire.js/
O retire-site-scanner https://github.com/RetireJS/retire-site-scanner pode ser usado para escanear um site em modo headless (em vez de usar as extensões do Chrome/Firefox)
Uma tarefa Grunt para executar o Retire.js como parte da rotina de build da sua aplicação ou outro fluxo de trabalho automatizado.
Um exemplo de tarefa Gulp que pode ser usada no seu gulpfile para monitorar e escanear automaticamente seus arquivos de projeto. Você pode modificar os padrões de monitoramento e as opções (opcionais) do Retire.js conforme desejar.
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();
});
});
As doações serão usadas para financiar a manutenção da ferramenta e do repositório de vulnerabilidades.