
js-x-ray @nodesecure/[email protected]
Scanner SAST open-source per JavaScript e Node.js. Un analizzatore statico per il rilevamento dei pattern dannosi più comuni 🔬.
JS-X-Ray è un SAST per JavaScript e TypeScript per identificare pattern malevoli, vulnerabilità di sicurezza e anomalie nel codice. Pensalo come ESLint, ma dedicato all'analisi di sicurezza. Creato originariamente per NodeSecure CLI, JS-X-Ray è diventato un'opzione indipendente e seria per la protezione della supply chain.
🔎 Come funziona
JS-X-Ray analizza il codice JS o TS in un Abstract Syntax Tree (AST) senza un uso estensivo di RegEx o regole Semgrep. Questo consente il tracciamento delle variabili, la risoluzione degli import dinamici e il rilevamento di sofisticate tecniche di offuscamento che gli strumenti basati sul pattern matching non riescono a individuare. Il compromesso è che JS-X-Ray è dedicato esclusivamente all'ecosistema JavaScript/TypeScript.
💡 Funzionalità
- Traccia
require(),importe import dinamici con tracciamento completo delle variabili - Rileva codice offuscato e identifica lo strumento utilizzato (jsfuck, jjencode, obfuscator.io e altri)
- Segnala pattern malevoli: esfiltrazione di dati, serializzazione di
process.env, comandi shell non sicuri - Rileva codice vulnerabile:
eval(), costruttoreFunction(), regex soggette a ReDoS, SQL injection - Segnala algoritmi crittografici deboli (MD5, SHA1, ecc.)
- Estrae indicatori infrastrutturali: URL, IP, hostname, email
- Modalità di sensibilità configurabili (conservativa/aggressiva) e sistema di probe estensibile
- Supporta sia JavaScript che TypeScript
💃 Per iniziare
Questi pacchetti sono disponibili nel repository dei pacchetti Node e possono essere facilmente installati con npm o yarn.
$ npm i @nodesecure/js-x-ray
# or
$ yarn add @nodesecure/js-x-ray
👀 Utilizzo
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 });
Per la documentazione completa delle API, il catalogo degli avvisi e l'utilizzo avanzato, consulta il README del pacchetto @nodesecure/js-x-ray.
Workspaces
🐥 Guida per i contributori
Se sei uno sviluppatore che desidera contribuire al progetto, devi prima leggere la guida CONTRIBUTING.
Una volta completato il tuo sviluppo, verifica che i test (e il linter) siano ancora corretti eseguendo il seguente script:
$ npm run check
[!CAUTION] Nel caso in cui introduca una nuova funzionalità o corregga un bug, assicurati di includere anche i test per essa.
API interne
Per i contributori che lavorano sugli interni di JS-X-Ray, le seguenti risorse documentano utilità di basso livello e pattern di manipolazione dell'AST:
- Utilità ESTree - Helper di basso livello per manipolare i nodi AST di ESTree
- Pattern di assegnazione e dichiarazione ESTree (francese) - Guida di riferimento per i pattern di assegnazione e dichiarazione JavaScript in forma AST
Benchmark
Le prestazioni di js-x-ray sono misurate e monitorate utilizzando mitata.
Per eseguire i benchmark:
- Vai in
workspaces/js-x-ray. - Esegui
npm run bench.
I risultati dei benchmark sono memorizzati in workspaces/js-x-ray/benchmark/report.json. Non modificare questo file manualmente; viene aggiornato automaticamente a ogni pull request.
Contributori ✨
Grazie a queste meravigliose persone (chiave emoji):
Licenza
MIT

























