
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 🔬.
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(),importe 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(), constructorFunction(), 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:
- Utilidades ESTree - Ayudantes de bajo nivel para manipular nodos AST de ESTree
- Patrones de asignación y declaración de ESTree (francés) - Guía de referencia para patrones de asignación y declaración de JavaScript en forma de AST
Benchmarks
El rendimiento de js-x-ray se mide y rastrea utilizando mitata.
Para ejecutar los benchmarks:
- Navega a
workspaces/js-x-ray. - 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 ✨
Gracias a estas maravillosas personas (clave de emojis):
Licencia
MIT

























