
ship-safe v9.7.5
Der unabhängige Sicherheitsagent für KI-geschriebene Software. Findet Probleme, untersucht, ob sie echt sind, und zeigt Ihnen die Beweise. Deterministischer Kern, kein API-Schlüssel erforderlich, JSON- und SARIF-Ausgabe.
Der unabhängige Sicherheitsagent für KI-geschriebene Software. Er findet Probleme, untersucht, ob sie echt sind, und zeigt Ihnen die Belege.
Website · Dokumentation · Sicherheit & Datenfluss · Benchmark · Preise · Blog · Mitwirken
Ship Safe CLI
Ship Safe läuft lokal in Ihrem Repo und arbeitet in zwei Schichten.
Eine deterministische Engine findet Probleme im Anwendungscode, in KI-Agenten, MCP-Konfigurationen, Prompts, Abhängigkeiten, CI/CD, Secrets und cloudnaher Konfiguration. Schnell, wiederholbar und benchmarkgestützt — das ist die Sensor-Schicht.
Eine Untersuchungsschicht entscheidet anschließend, was die Befunde wert sind. Sie verfolgt den Wert, der eine Senke erreicht, durchsucht das Projekt nach Kontrollen, deren Fehlen eine Regel behauptet, baut Angriffsketten über Konfigurationen hinweg auf, die keine einzelne Datei enthält, und — wenn Sie es verlangen — prüft einen geleakten Schlüssel gegen seinen Anbieter. Jede Schlussfolgerung trägt den Durchlauf, der sie erreicht hat, und die Zeilen, die er gelesen hat:
CONFIRMED — traced end to end (10)
NoSQL Injection via $where [high]
app/data/allocations-dao.js:78 NOSQL_INJECTION_WHERE
why: threshold is assigned from the HTTP request and reaches the sink without validation on that path.
decided by: dataflow
1. value reaches NOSQL_INJECTION_WHERE here app/data/allocations-dao.js:78
2. getByUserIdAndThreshold is called here with threshold app/routes/allocations.js:23
3. threshold is assigned here app/routes/allocations.js:20
fix: Replace $where with standard MongoDB operators ($eq, $gt, $regex, etc.)
Echte Ausgabe von ship-safe investigate gegen OWASP NodeGoat. Der kontaminierte Wert wird in einer Routendatei destrukturiert und an ein DAO drei Verzeichnisse weiter übergeben.
Beginnen Sie mit einem Befehl:
npx ship-safe
Keine Anmeldung. Für das Scannen ist kein API-Schlüssel erforderlich. Die Kernprüfungen funktionieren offline. KI-gestützte Red-Team-Modi verwenden Ihren konfigurierten Anbieter, sofern verfügbar.
Verwenden Sie --no-ai, um einen vollständig lokalen Scan zu gewährleisten. Anbietergestützte Klassifizierung, tiefgehende Analyse und GPT-Red senden begrenzten Kontext direkt an Ihren ausgewählten Anbieter, nachdem eine bestmögliche Maskierung von Anmeldedaten erfolgt ist. Siehe Security & Data Flow für die genauen Grenzen und Kontextlimits.
Schnellstart
Erfordert Node.js 22.13+ in der 22.x-Reihe oder Node.js 24+. Node 18 und 20 werden von der aktuellen Entwicklungsversion nicht mehr unterstützt.
# Interactive REPL: scan, fix, and ask questions in one session
npx ship-safe
# Full audit: secrets + 31 agents + deps + remediation plan
npx ship-safe audit .
# Investigate: confirmed / likely / unresolved / refuted, with the evidence
npx ship-safe investigate .
npx ship-safe investigate . --all # also detail unresolved and refuted
npx ship-safe investigate . --verify # probe leaked keys against their providers
# Before you open an unfamiliar folder with an agent: what runs on open?
npx ship-safe trust ~/Downloads/take-home
npx ship-safe trust . --json
# What can an AI agent working in this repo actually reach?
npx ship-safe capabilities .
# AI agent red-team scenarios for agent-readable content
npx ship-safe red-team . --gpt-red
# Interactive fix agent: plan, diff, approve, inspect the static rescan
npx ship-safe agent .
npx ship-safe agent . --severity critical # critical findings only
npx ship-safe agent . --branch --pr # fix on a branch + open a PR
# Undo the last fix
npx ship-safe undo
# CI/CD mode — fails on any critical finding
npx ship-safe ci . --sarif results.sarif
npx ship-safe ci . --fail-on high # stricter: critical or high
# Gate on evidence instead of severity: block only what was established
npx ship-safe ci . --fail-on-verdict confirmed
npx ship-safe ci . --ignore-refuted # do not block on what was argued away
Für Pull Requests wird ein vertrauenswürdiger Basis-Scan mit dem Head-Scan verglichen, damit bestehende Repository-Schulden sichtbar bleiben, ohne unabhängige Änderungen zu blockieren:
# On the trusted base revision
npx ship-safe ci . --fail-on none --no-deps \
--write-baseline-report /tmp/ship-safe-base.json
# On the pull request head
npx ship-safe ci . --base-report /tmp/ship-safe-base.json --fail-on high
Das Basisartefakt enthält gehashte Finding-Identitäten, relative Pfade und Regel-Metadaten. Es speichert keine rohen übereinstimmenden Secrets. PR-Ergebnisse klassifizieren Findings als eingeführt, behoben, unverändert oder unsicher; mehrdeutige Übereinstimmungen werden angezeigt, blockieren aber nicht den Pull Request.
Vertrag für maschinenlesbare Berichte
scan --json, audit --json und ci --json enthalten schemaVersion: 1, die Ship Safe-Version und einen UTC-Zeitstempel generatedAt. Finding-Pfade sind standardmäßig projektrelativ, damit Berichte zwischen Workstations und CI verschoben werden können, ohne lokale Verzeichnisnamen preiszugeben. Verwenden Sie --absolute-paths nur, wenn ein Consumer explizit Host-Pfade benötigt. SARIF-Berichte tragen dieselbe Paketversion in ihren Tool-Metadaten.
Was Ship Safe findet
| Bereich | Beispiele |
|---|---|
| KI- und LLM-Sicherheit | Prompt-Injection, Agent-Hijacking, übermäßige Agency, Memory-Poisoning, RAG-Poisoning, unsichere Tool-Aufrufe |
| MCP- und Agent-Konfigurationen | Übermäßig breite Tool-Berechtigungen, vergiftete Registries, nicht vertrauenswürdige Transporte, gefährliche Allowlists |
| Anwendungssicherheit | SQL/NoSQL-Injection, XSS, SSRF, Auth-Bypass, Path Traversal, unsichere API-Routen |
| Secrets und Compliance | API-Schlüssel, Tokens, Anmeldedaten, PII, geleakte Secrets in der Git-Historie |
| Lieferkette | Typosquatting, Dependency Confusion, riskante Install-Skripte, nicht gepinnte KI-Actions |
| CI/CD | Pipeline-Poisoning, nicht gepinnte GitHub Actions, Secret-Logging, unsichere Workflow-Trigger |