Socket - Supply Chain & Malicious Package Detection Cheatsheet
Socket ist ein Software-Supply-Chain-Sicherheitstool, das sich auf die Verhaltenerkennung von bösartigen Paketen konzentriert, anstatt nur bekannte CVEs zu abgleichen. Es inspiziert, was eine Abhängigkeit tatsächlich tut — Install-Skripte, Netzwerk- und Dateisystemzugriff, verschleierter Code und andere riskante Fähigkeiten — um Typosquats und kompromittierte Releases zu erkennen, die signaturbasierte Scanner verpassen. Es deckt Ökosysteme wie npm, PyPI, Go, Maven und andere ab und integriert sich in den Entwickler-Workflow über CLI, GitHub-App und CI.
Installation
| Methode | Befehl |
|---|
| npm (CLI) | npm install -g @socketsecurity/cli |
| npx (keine Installation) | npx @socketsecurity/cli --help |
| Homebrew | brew install socket |
| pip (Python CLI) | pip install socketsecurity |
| GitHub-App | Installieren Sie die Socket-App aus dem GitHub Marketplace |
| Auth | socket login (richten Sie ein API-Token ein) |
Core CLI-Befehle
| Befehl | Beschreibung |
|---|
socket scan create . | Erstellen Sie einen neuen Supply-Chain-Scan des aktuellen Projekts |
socket scan list | Listet vorherige Scans für die Organisation auf |
socket scan view <ID> | Anzeige von Ergebnissen eines bestimmten Scans |
socket package score npm react | Rufen Sie die Supply-Chain-Bewertung eines Pakets ab |
socket npm install <pkg> | Wrapper um npm, der Pakete vor der Installation überprüft |
socket npx <pkg> | Sicheres npx, das das Paket zuerst überprüft |
socket ci | Führen Sie einen für CI optimierten Scan durch (Non-Zero-Exit bei Problemen) |
socket --help | Vollständige Befehlsreferenz |
Was Socket flaggt
| Fähigkeit/Signal | Warum es wichtig ist |
|---|
| Install-Skripte | postinstall-Hooks sind ein häufiger Malware-Vektor |
| Netzwerkzugriff | Unerwartete ausgehende Verbindungen beim Installieren/Runtime |
| Dateisystemzugriff | Lesezugriff auf sensible Pfade (SSH-Schlüssel, Env-Dateien) |
| Shell / Process Exec | Spawning von Shells oder Kindprozessen |
| Verschleierter Code | Minifizierte/kodierte Payloads, die Verhalten verstecken |
| Typosquats | Namen, die beliebte Pakete nachahmen |
| Telemetrie / Exfil | Datenerfassungs- und Exfiltrationsmuster |
Paket-Bewertungen
# Inspizieren Sie eine einzelne Abhängigkeit, bevor Sie sie hinzufügen
socket package score npm left-pad
socket package score pypi requests
# Vergleichen Sie das Risiko eines Kandidaten vs. einer Alternative
socket package score npm chalk
Bewertungen fassen Supply-Chain-Risiko, Qualität, Wartung und Sicherheitsdimensionen zusammen, damit Sie eine Abhängigkeit schnell beurteilen können.
CI / GitHub-Integration
| Integration | Verhalten |
|---|
| GitHub-App | Kommentiert PRs, die riskante Abhängigkeitsänderungen einführen |
socket ci | Schlägt die Pipeline fehl, wenn ein Scan die Schwellenwerte überschreitet |
| Config-Datei | socket.yml passt an, welche Problemtypen blockieren vs. warnen |
| Diff-Aware | Konzentriert sich auf das, was ein PR hinzufügt, reduziert Rauschen |
Konfiguration (socket.yml)
version: 2
issueRules:
installScripts: error
networkAccess: warn
telemetry: warn
obfuscatedCode: error
| Feld | Zweck |
|---|
issueRules | Setzen Sie jede Fähigkeit/Problem auf error, warn oder ignore |
projectIgnorePaths | Schließen Sie Pfade vom Scan aus |
Häufige Workflows
# Überprüfen Sie eine Abhängigkeit, bevor sie jemals in package.json kommt
socket npm install some-package
# Gate a pull request in CI
socket ci
# Audits eines existierenden Repos gesamter Abhängigkeitsbaum
socket scan create . && socket scan list
Socket vs Traditional SCA
| Aspekt | Socket | Traditional SCA (z.B. CVE-Matcher) |
|---|
| Primäres Signal | Verhalten/Fähigkeiten | Bekannte CVE-Datenbankabgleiche |
| Fängt Zero-Day-Malware ab | Ja (Verhalten) | Nein (benötigt eine bekannte CVE) |
| Typosquat-Erkennung | Ja | Begrenzt |
| Beste Paarung mit | Syft/Grype, Sigstore | Socket für Malware-Abdeckung |
Ressourcen