Volver a actualizaciones
Nuevo releaseJul 24, 2026

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

Escáner SAST de código abierto para JavaScript y Node.js. Un analizador estático para detectar los patrones maliciosos más comunes 🔬.

Compartir

@nodesecure/js-x-ray

npm version license ossf scorecard slsa level3 github ci workflow

JS-X-Ray es un SAST (Static Application Security Testing) para JavaScript y TypeScript que identifica patrones maliciosos, vulnerabilidades de seguridad y anomalías en el código. Piense en él como ESLint, pero dedicado al análisis de seguridad. Creado originalmente para NodeSecure CLI, JS-X-Ray se ha convertido en una opción independiente y seria para la protección de la cadena de suministro.

🔎 Cómo funciona

JS-X-Ray analiza código JS o TS en un Árbol de Sintaxis Abstracta (AST) sin un uso extensivo de RegEx o reglas de Semgrep. Esto permite el rastreo de variables, la resolución de importaciones dinámicas y la detección de ofuscación sofisticada que las herramientas de coincidencia de patrones pasan por alto. La contrapartida es que JS-X-Ray está dedicado puramente al ecosistema JavaScript/TypeScript.

💡 Características

  • Rastrear require(), import e importaciones dinámicas con rastreo completo de variables
  • Detectar código ofuscado e identificar la herramienta utilizada (jsfuck, jjencode, obfuscator.io, y más)
  • Marcar patrones maliciosos: exfiltración de datos, serialización de process.env, comandos shell inseguros
  • Detectar código vulnerable: eval(), constructor Function(), expresiones regulares propensas a ReDoS, inyección SQL
  • Alertar sobre algoritmos criptográficos débiles (MD5, SHA1, etc.)
  • Extraer indicadores de infraestructura: URLs, IPs, nombres de host, correos electrónicos
  • Modos de sensibilidad configurables (conservador/agresivo) y sistema de sondas extensible
  • Compatible con JavaScript y TypeScript

💃 Primeros pasos

Estos paquetes están disponibles en el repositorio de paquetes Node y se pueden instalar fácilmente con npm o 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 la documentación completa de la API, el catálogo de advertencias y el uso avanzado, consulte el README del paquete @nodesecure/js-x-ray.

Espacios de trabajo

🐥 Guía para colaboradores

Si eres un desarrollador que desea contribuir al proyecto, primero debes leer la guía CONTRIBUTING.

Una vez que hayas terminado tu desarrollo, verifica que las pruebas (y el linter) sigan funcionando correctamente ejecutando el siguiente script:

$ npm run check

[!CAUTION] En caso de que introduzcas una nueva funcionalidad o corrijas un error, asegúrate de incluir también pruebas para ello.

APIs internas

Para los colaboradores que trabajan en los internos de JS-X-Ray, los siguientes recursos documentan utilidades de bajo nivel y patrones de manipulación de AST:

Benchmarks

El rendimiento de js-x-ray se mide y rastrea utilizando mitata.

Para ejecutar los benchmarks:

  1. Navega a workspaces/js-x-ray.
  2. Ejecuta npm run bench.

Los resultados de los benchmarks se almacenan en workspaces/js-x-ray/benchmark/report.json. No edites este archivo manualmente; se actualiza automáticamente en cada pull request.

Colaboradores ✨

All Contributors

Gracias a estas maravillosas personas (clave de emojis):

Licencia

MIT

Categorías