Zurück zu den Updates
New releaseSep 19, 2026

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

JavaScript & Node.js Open-Source-SAST-Scanner. Ein statischer Analysator zur Erkennung der häufigsten schädlichen Muster 🔬.

Teilen

@nodesecure/js-x-ray

npm version license ossf scorecard slsa level3 github ci workflow

JS-X-Ray ist ein JavaScript- & TypeScript-SAST zur Identifizierung von schädlichen Mustern, Sicherheitslücken und Code-Anomalien. Man kann es sich wie ESLint vorstellen, jedoch ausschließlich für die Sicherheitsanalyse. Ursprünglich für die NodeSecure CLI entwickelt, hat sich JS-X-Ray zu einer unabhängigen und ernstzunehmenden Option für den Schutz der Lieferkette entwickelt.

🔎 Funktionsweise

JS-X-Ray parst JS- oder TS-Code in einen Abstract Syntax Tree (AST) ohne umfangreiche Verwendung von RegEx- oder Semgrep-Regeln. Dies ermöglicht Variablenverfolgung, dynamische Importauflösung und die Erkennung anspruchsvoller Obfuskation, die Musterabgleichswerkzeuge übersehen. Der Nachteil ist, dass JS-X-Ray ausschließlich auf das JavaScript/TypeScript-Ökosystem ausgerichtet ist.

💡 Funktionen

  • Verfolgt require(), import und dynamische Importe mit vollständiger Variablenverfolgung
  • Erkennt obfuskierten Code und identifiziert das verwendete Werkzeug (jsfuck, jjencode, obfuscator.io und mehr)
  • Markiert schädliche Muster: Datenexfiltration, process.env-Serialisierung, unsichere Shell-Befehle
  • Erkennt anfälligen Code: eval(), Function()-Konstruktor, ReDoS-anfällige Regexes, SQL-Injection
  • Markiert schwache kryptografische Algorithmen (MD5, SHA1 usw.)
  • Extrahiert Infrastrukturindikatoren: URLs, IPs, Hostnamen, E-Mails
  • Konfigurierbare Sensitivitätsmodi (konservativ/aggressiv) und erweiterbares Probe-System
  • Unterstützt sowohl JavaScript als auch TypeScript

💃 Erste Schritte

Diese Pakete sind im Node-Paket-Repository verfügbar und können einfach mit npm oder yarn installiert werden.

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

👀 Verwendung

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 });

Die vollständige API-Dokumentation, den Warnkatalog und die erweiterte Verwendung finden Sie in der README des Pakets @nodesecure/js-x-ray.

Workspaces

🐥 Leitfaden für Mitwirkende

Wenn Sie Entwickler sind und zum Projekt beitragen möchten, müssen Sie zunächst den CONTRIBUTING-Leitfaden lesen.

Nachdem Sie Ihre Entwicklung abgeschlossen haben, überprüfen Sie, ob die Tests (und der Linter) noch in Ordnung sind, indem Sie das folgende Skript ausführen:

$ npm run check

[!CAUTION] Falls Sie eine neue Funktion einführen oder einen Fehler beheben, stellen Sie sicher, dass Sie auch Tests dafür hinzufügen.

Interne APIs

Für Mitwirkende, die an den Interna von JS-X-Ray arbeiten, dokumentieren die folgenden Ressourcen Low-Level-Dienstprogramme und AST-Manipulationsmuster:

Benchmarks

Die Leistung von js-x-ray wird mit mitata gemessen und verfolgt.

So führen Sie die Benchmarks aus:

  1. Navigieren Sie zu workspaces/js-x-ray.
  2. Führen Sie npm run bench aus.

Die Benchmark-Ergebnisse werden in workspaces/js-x-ray/benchmark/report.json gespeichert. Bearbeiten Sie diese Datei nicht manuell; sie wird bei jedem Pull Request automatisch aktualisiert.

Mitwirkende ✨

All Contributors

Ein Dankeschön geht an diese wunderbaren Menschen (Emoji-Schlüssel):

Lizenz

MIT

Kategorien