Voltar às atualizações
New releaseJul 24, 2026

js-x-ray @nodesecure/[email protected]

Scanner SAST open-source para JavaScript & Node.js. Um analisador estático para detetar os padrões maliciosos mais comuns 🔬.

Compartilhar

@nodesecure/js-x-ray

npm version license ossf scorecard slsa level3 github ci workflow

JS-X-Ray é um SAST (Teste Estático de Segurança de Aplicações) para JavaScript & TypeScript que identifica padrões maliciosos, vulnerabilidades de segurança e anomalias de código. Pense nele como um ESLint, mas dedicado à análise de segurança. Originalmente criado para o NodeSecure CLI, o JS-X-Ray se tornou uma opção independente e séria para proteção da cadeia de suprimentos.

🔎 Como Funciona

O JS-X-Ray analisa código JS ou TS em uma Árvore Sintática Abstrata (AST) sem uso extensivo de RegEx ou regras Semgrep. Isso permite rastreamento de variáveis, resolução de imports dinâmicos e detecção de ofuscação sofisticada que ferramentas de correspondência de padrões não detectam. A desvantagem é que o JS-X-Ray é puramente dedicado ao ecossistema JavaScript/TypeScript.

💡 Recursos

  • Rastreie require(), import e imports dinâmicos com rastreamento completo de variáveis
  • Detecte código ofuscado e identifique a ferramenta utilizada (jsfuck, jjencode, obfuscator.io e outros)
  • Sinalize padrões maliciosos: exfiltração de dados, serialização de process.env, comandos shell inseguros
  • Detecte código vulnerável: eval(), construtor Function(), regex propensas a ReDoS, injeção de SQL
  • Sinalize algoritmos criptográficos fracos (MD5, SHA1, etc.)
  • Extraia indicadores de infraestrutura: URLs, IPs, hostnames, emails
  • Modos de sensibilidade configuráveis (conservador/agressivo) e sistema de sondas extensível
  • Suporta tanto JavaScript quanto TypeScript

💃 Primeiros Passos

Esses pacotes estão disponíveis no repositório de pacotes Node e podem ser facilmente instalados com npm ou yarn.

$ npm i @nodesecure/js-x-ray
# or
$ yarn add @nodesecure/js-x-ray

👀 Uso

import { AstAnalyser } from "@nodesecure/js-x-ray";

const scanner = new AstAnalyser();

const { warnings, dependencies } = await scanner.analyseFile("./file.js");

console.log(dependencies);
console.dir(warnings, { depth: null });

Para documentação completa da API, catálogo de avisos e uso avançado, veja o README do pacote @nodesecure/js-x-ray.

Workspaces

🐥 Guia de contribuidores

Se você é um desenvolvedor interessado em contribuir com o projeto, deve primeiro ler o guia CONTRIBUTING.

Após concluir seu desenvolvimento, verifique se os testes (e o linter) ainda estão funcionando executando o seguinte script:

$ npm run check

[!CAUTION] Caso introduza uma nova funcionalidade ou corrija um bug, certifique-se de incluir também testes para isso.

APIs internas

Para contribuidores que trabalham nos internos do JS-X-Ray, os seguintes recursos documentam utilitários de baixo nível e padrões de manipulação de AST:

Benchmarks

O desempenho do js-x-ray é medido e rastreado usando mitata.

Para executar os benchmarks:

  1. Navegue até workspaces/js-x-ray.
  2. Execute npm run bench.

Os resultados dos benchmarks são armazenados em workspaces/js-x-ray/benchmark/report.json. Não edite este arquivo manualmente; ele é atualizado automaticamente a cada pull request.

Contribuidores ✨

All Contributors

Thanks goes to these wonderful people (emoji key):

Licença

MIT

Categorias