Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
safe-npm — NPM-Pakete sicher installieren | Kitploit
Tools/GitHubGitHub/kevinslin/safe-npm
Allgemeine DienstprogrammeSchwachstellenanalyseScripting & AutomatisierungDevSecOpsLieferkettensicherheit
GitHubkevinslin/safe-npm

safe-npm

NPM-Pakete sicher installieren

Repository anzeigen
1939vor 8 MonatenVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

safe-npm

Ein sicherheitsorientierter npm-Installer, der Ihre Projekte vor kürzlich kompromittierten Paketen schützt.

Warum gibt es das?

Angriffe auf die Lieferkette von npm-Paketen sind eine wachsende Bedrohung. Angreifer kompromittieren manchmal legitime Pakete, indem sie:

  • Maintainer-Zugangsdaten stehlen
  • Schädliche Updates für beliebte Pakete veröffentlichen
  • Verwaiste Pakete übernehmen

Diese Angriffe passieren oft plötzlich – ein Paket, das gestern sicher war, könnte heute kompromittiert sein. safe-npm schützt Sie, indem es nur Paketversionen installiert, die seit einer Mindestdauer öffentlich verfügbar sind (standardmäßig 90 Tage). Das gibt der Sicherheitsgemeinschaft Zeit, bösartige Veröffentlichungen zu entdecken und zu melden, bevor sie Ihr Projekt erreichen.

So funktioniert es

Wenn Sie safe-npm install ausführen, geschieht Folgendes:

  1. Liest Ihre Abhängigkeiten aus package.json oder über Befehlszeilenargumente
  2. Fragt die npm-Registry ab, um alle verfügbaren Versionen zu finden
  3. Filtert Versionen heraus, die neuer als Ihre Mindestaltersgrenze veröffentlicht wurden
  4. Wählt die neueste Version aus, die sowohl Ihre Semver-Anforderungen als auch die Altersanforderungen erfüllt
  5. Installiert die sicheren Versionen mit npm

Wenn Sie beispielsweise react@^18 angeben und ein bösartiges [email protected] gestern veröffentlicht wurde, installiert safe-npm stattdessen die neueste Version, die mindestens 90 Tage alt ist.

Installation

Von npm installieren (empfohlen)

root@kitploit:~
# Install globally
npm install -g @dendronhq/safe-npm

# Now you can use it anywhere
safe-npm install

Aus dem Quellcode erstellen

root@kitploit:~
# Clone and build
git clone <repository-url>
cd safe-npm
npm install
npm run build

# Link the binary globally
npm link

Grundlegende Verwendung

Abhängigkeiten aus package.json installieren

root@kitploit:~
# Use the minimum age of 90 days (default)
safe-npm install

# Or specify your own minimum age
safe-npm install --min-age-days 120

Bestimmte Pakete installieren

root@kitploit:~
# Install packages directly with version constraints
safe-npm install react@^18 lodash@^4.17.0

# These will be filtered to only use versions at least 90 days old
safe-npm install express --min-age-days 60

Testlauf (Dry Run), um zu sehen, was installiert würde

root@kitploit:~
# Preview which versions would be installed without actually installing
safe-npm install --dry-run

Konfigurationsoptionen

--min-age-days <n>

Standard: 90

Die Mindestanzahl an Tagen, die eine Paketversion veröffentlicht sein muss, bevor sie installiert werden kann.

Beispiel: --min-age-days 120 erfordert, dass Pakete mindestens 4 Monate alt sind.

Wann Sie den Wert anpassen sollten:

  • Erhöhen Sie ihn für maximale Sicherheit (z. B. 180 Tage für kritische Produktionssysteme)
  • Verringern Sie ihn, wenn Sie neuere Funktionen benötigen und etwas mehr Risiko akzeptieren (z. B. 30 Tage)

--ignore <pkg1,pkg2>

Eine durch Kommas getrennte Liste von Paketen, die die Altersanforderung umgehen. Diese Pakete respektieren weiterhin Semver-Bereiche, ignorieren jedoch das Mindestalter.

Beispiel: --ignore typescript,@types/node

Wann Sie das verwenden sollten:

  • Schnelllebige Pakete, denen Sie vertrauen (wie TypeScript oder Build-Tools)
  • Interne Pakete aus Ihrer Organisation
  • Pakete, bei denen Sie dringend die neuesten Funktionen benötigen

--strict

Beendet mit einem Fehler, wenn IRGENDEINE Abhängigkeit nicht auf eine Version aufgelöst werden kann, die die Altersanforderung erfüllt.

Beispiel: safe-npm install --strict

Wann Sie das verwenden sollten:

  • CI/CD-Pipelines, in denen Builds fehlschlagen sollen, anstatt problematische Pakete zu überspringen
  • Produktionsbereitstellungen, bei denen Sie Gewissheit benötigen

--dev / --prod-only

Steuert, welche Abhängigkeiten aus package.json verarbeitet werden.

Beispiele:

  • safe-npm install --dev - Nur devDependencies installieren
  • safe-npm install --prod-only - Nur Produktionsabhängigkeiten installieren

Wann Sie das verwenden sollten:

  • Installation von Entwicklungswerkzeugen mit strengeren Anforderungen
  • Produktions-Builds, bei denen Sie unterschiedliche Altersrichtlinien für Dev- und Prod-Abhängigkeiten wünschen

--strategy <direct|overrides>

Standard: direct

Wie safe-npm die aufgelösten Versionen installiert:

direct - Installiert die aufgelösten Versionen direkt mit npm install package@version

  • Einfach und unkompliziert
  • Gut für einmalige Installationen oder Skripte

overrides - Schreibt aufgelöste Versionen in das overrides-Feld von package.json und führt dann npm install aus

  • Erzwingt Versionen im gesamten Abhängigkeitsbaum (einschließlich transitiver Abhängigkeiten)
  • Hinweis: Diese Funktion ist derzeit deaktiviert, da sie noch nicht korrekt funktioniert

--registry <url>

Standard: https://registry.npmjs.org

Gibt eine alternative npm-Registry an.

Beispiel: --registry https://registry.company.com

Wann Sie das verwenden sollten:

  • Private npm-Registries
  • Spiegel oder Caches

--dry-run

Zeigt an, was installiert würde, ohne Änderungen vorzunehmen.

Beispiel: safe-npm install --dry-run

Wann Sie das verwenden sollten:

  • Testen Ihrer Konfiguration
  • Verstehen, welche Versionen verfügbar sind
  • Bevor Sie Änderungen an Produktionssystemen vornehmen

Häufige Arbeitsabläufe

Ein neues Projekt absichern

root@kitploit:~
# Create a new project
mkdir my-project && cd my-project
npm init -y

# Install dependencies safely
safe-npm install express@^4 lodash

# This creates package-lock.json with versions at least 90 days old

Ein bestehendes Projekt prüfen

root@kitploit:~
# Check what versions would be installed with age requirements
safe-npm install --dry-run

# If you're happy, install them
safe-npm install

CI/CD-Integration

root@kitploit:~
# In your CI pipeline, fail the build if any package can't meet age requirements
safe-npm install --strict --min-age-days 120

# Or allow newer packages for dev dependencies only
safe-npm install --prod-only --strict

Notfall-Updates

root@kitploit:~
# Need to urgently update a specific package? Add it to ignore list
safe-npm install --ignore package-with-critical-fix

Testen

Das Projekt enthält eine Testsuite, die Sie ausführen können:

root@kitploit:~
npm test

Für automatisierte Tests können Sie Registry-Antworten mithilfe von Fixtures simulieren:

root@kitploit:~
export SAFE_NPM_FIXTURES=/path/to/fixtures.json
safe-npm install

Die Fixtures-Datei sollte JSON enthalten, das die npm-Registry-Antworten für jedes Paket widerspiegelt.

Wie Sie geschützt werden

Szenario aus der Praxis:

  1. Ein beliebtes Paket popular-lib wird von einem vertrauenswürdigen Entwickler gepflegt
  2. Ein Angreifer kompromittiert die npm-Zugangsdaten des Maintainers
  3. Der Angreifer veröffentlicht [email protected] mit Malware
  4. Projekte, die ^5.0.0 verwenden, würden sofort die bösartige Version installieren
  5. Mit safe-npm würden Sie weiterhin 4.9.0 verwenden (die neueste Version von vor über 90 Tagen)
  6. Sicherheitsforscher entdecken die Kompromittierung und melden sie
  7. Die bösartige Version wird zurückgezogen
  8. Sie haben die kompromittierte Version nie installiert

Einschränkungen

  • Bietet keinen Schutz vor Paketen, die von Anfang an bösartig waren
  • Verzögert den Zugriff auf legitime neue Funktionen und Fehlerbehebungen
  • Erfordert Vertrauen, dass ältere Versionen keine unentdeckten Schwachstellen aufweisen
  • Die altersbasierte Filterung ist eine Heuristik, keine Garantie

Philosophie

Sicherheit bedeutet Kompromisse. safe-npm tauscht hochmoderne Updates gegen Schutz vor plötzlichen Kompromittierungen der Lieferkette. Es ist eine Ebene in einer Defense-in-Depth-Strategie, die auch Folgendes umfassen sollte:

  • Regelmäßige Sicherheitsaudits (npm audit)
  • Prüfung von Abhängigkeiten, bevor neue Pakete hinzugefügt werden
  • Überwachung von Sicherheitshinweisen
  • Verwendung von Lock-Dateien, um reproduzierbare Builds zu gewährleisten
  • Ausführung in Sandbox- oder Container-Umgebungen

Systemanforderungen

  • Node.js 18 oder höher
  • npm (für die zugrunde liegende Installation)

Lizenz

ISC

Tool herunterladen