
retire.js v5.5.0
scanner que detecta o uso de bibliotecas JavaScript com vulnerabilidades conhecidas. Também pode gerar um SBOM das bibliotecas que encontra.
Retire.js
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:
- Como scanner de linha de comando
- Como extensão do Chrome - Não disponível oficialmente na Chrome Web Store
- Como extensão do Burp ou Add-on do OWASP ZAP
- Como extensão do Firefox - Obsoleto Informe-nos se deseja mantê-la e remover a obsolescência.
- Um scanner de site headless
- Como plugin do Grunt (obsoleto)
- Como tarefa do Gulp (obsoleto)
Scanner de linha de comando
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
Geração de SBOM
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.
Extensões para Chrome e Firefox
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.
Extensão Burp e Add-on OWASP ZAP
@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/
Scanner de site headless
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)
Plugin Grunt (obsoleto)
Uma tarefa Grunt para executar o Retire.js como parte da rotina de build da sua aplicação ou outro fluxo de trabalho automatizado.
Tarefa Gulp (obsoleta)
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();
});
});
Doar
As doações serão usadas para financiar a manutenção da ferramenta e do repositório de vulnerabilidades.
