84 npm-Pakete wurden bei einem einzigen Angriff im Mai bösartig

Lassen Sie Ihren Agenten an die Produktion.Behalten Sie die Schlüssel.

Sallyport bewahrt Ihre Zugangsdaten in einem lokalen Tresor auf und führt API-Aufrufe und SSH-Befehle für den Agenten aus. Sie geben Läufe per Klick oder Touch ID frei. Es gibt keinen Befehl, der einen gespeicherten Schlüssel offenlegt, und auch keinen Export-Button.

$brew install --cask olegsotnikov/tap/sallyport

macOS 14+ · Apple Silicon · Apache-2.0 · Kostenlos · kein Konto · keine Cloud

Gebaut für Entwickler, die Claude Code, Cursor oder Codex an echte Infrastruktur lassen

Claude CodeCodexCursorWindsurfClineLangChainCrewAIOpenHandsGooseZed
Probieren Sie es selbst aus

Freigabe dort, wo Sie ohnehin sind

Dieser Schlüssel erfordert bei jeder Verwendung eine Freigabe. Der Aufruf wartet auf Ihre Entscheidung.

claude · ~/infra

sallyport · http.request

PATCH api.cloudflare.com/client/v4/zones/…/dns_records

key cloudflare · flagged approval per call

warte auf Freigabe …

Freigabe erforderlich

http.request → api.cloudflare.com

Developer ID Application: Anthropic PBC

claude node zsh

Schlüssel:cloudflarepro Aufruf
Klicken Sie auf „Freigeben“, um den Aufruf durchzulassen.oder drücken Sie A/D
Das Problem

Ihr Agent kann Ihre Schlüssel jetzt gerade lesen

API-Tokens in .env, SSH-Schlüssel auf der Festplatte, OAuth-Berechtigungen in Konfigurationsdateien. Der Agent und jedes Paket, das er hereinzieht, können sie alle lesen, und eine einzige vergiftete README trägt sie zur Tür hinaus.

Geheimnisse offen sichtbar

Tokens in .env und Shell-Variablen, SSH-Schlüssel auf der Festplatte, OAuth-Tokens in Konfigurationsdateien. Lesbar für den Agenten, seine Unterprozesse und alles, was npm heute installiert hat.

Prompt-Injection wird zum Diebstahl

Eine schädliche Webseite oder README weist den Agenten an, ein Token an ein neues Ziel zu senden, und der Agent gehorcht. Er wurde dafür gebaut, Anweisungen zu befolgen.

Sie erfahren es von der Rechnung

Ohne Gateway gibt es keine Aufzeichnung darüber, welche Aufrufe der Agent getätigt hat, wohin er sie gesendet hat oder was sie transportierten. Gestohlene Schlüssel tauchen Wochen später auf, nach dem Zeitplan eines anderen.

Das ist nicht hypothetisch

Mai 2026

TanStack npm-Angriff

84 bösartige Versionen in 42 Paketen sammelten beim Installieren Cloud-Zugangsdaten, GitHub-Tokens und SSH-Schlüssel ab und verbreiteten sich dann über die eigenen Pakete ihrer Opfer.

Ende 2025

Shai-Hulud-Wurm

Kompromittierte npm-Pakete stahlen beim Installieren Geheimnisse und nutzten die erbeuteten Zugangsdaten, um die nächste Runde von Paketen zu infizieren.

Aug. 2025

Nx S1ngularity

Ein vergiftetes Build-Tool durchsuchte Entwicklerrechner nach Geheimnissen, probierte lokale KI-Tools aus und schleuste die Beute über die GitHub-CLI hinaus.

Alle drei ernteten Schlüssel aus Umgebungsvariablen und Dateien auf der Festplatte. Sallyport hält nutzbare Schlüssel aus beiden heraus.

Ihr Agent braucht die Schlüssel nicht

Der Agent sendet eine Anfrage: rufe diese API auf, führe diesen Befehl auf jenem Host aus. Sallyport hängt die Zugangsdaten innerhalb der App an, führt den Aufruf aus und gibt das Ergebnis zurück. Der Schlüssel taucht nie in der Umgebung des Agenten auf, und ein versiegeltes Journal zeigt, was lief und wer es freigegeben hat.

Das Vertrauensmodell

Feste Entscheidungskette

Jede Aktion durchläuft dieselbe einkompilierte Entscheidungskette. Es gibt keine Richtliniensprache, die man falsch konfigurieren kann, und keine Regel-Engine, die verrottet; eine optionale Allowlist kann die Sitzungsabfrage für Code-Identitäten überspringen, denen Sie vertrauen.

Das Vertrauensmodell

1

Tresor-Schleuse

Der Tresor ist absolut

Der Tresor startet gesperrt. Secure Enclave und Touch ID schützen den Zugriff auf seine Daten. Bis zur Entsperrung verweigert Sallyport alle Aktionen.

2

Schlüssel pro Aufruf

Markierte Schlüssel fragen jedes Mal

Ein mit "Approval per call" markierter Schlüssel erfordert bei jeder Verwendung einen Klick oder Touch ID, auch in einer freigegebenen Sitzung.

3

Sitzungs-Schleuse

Eine Freigabe pro Agenten-Lauf

Ein neuer Agentenprozess zeigt eine Karte mit seiner Code-Signing-Autorität. Die Freigabe gilt, bis der Prozess endet, Sie sie widerrufen oder der Tresor gesperrt wird.

4

Beobachten

Laufen lassen und aufzeichnen

Wenn die Sitzungsfreigabe ausgeschaltet ist, laufen Aktionen ohne Sitzungskarten und bleiben im Journal.

Tresorsperre, Schlüssel pro Aufruf, Sitzungssperre, Beobachtung.

Was drinsteckt

Alles steckt in einer signierten App

Eine signierte Mac-App enthält den Tresor, die Freigaben und das Journal. Es gibt kein Konto anzulegen und keinen Cloud-Dienst dahinter.

Absolute Tresor-Schleuse

Solange der Tresor gesperrt ist, verweigert Sallyport jede Agentenaktion und alle Verwaltungsanfragen außer Status.

Verschlüsselt gespeichert

Der Tresor verschlüsselt Schlüsselnamen, Anbieter, Hostbindungen, SSH-Inventar, Einstellungen und geheime Werte.

Prozessherkunft

Jede Karte zeigt die Code-Signing-Autorität des Aufrufers und die Kette der Elternprozesse, einschließlich unsignierter Prozesse.

Touch ID für Änderungen

Konfigurationsänderungen können Touch ID erfordern. Ein synthetischer Klick kann die biometrische Abfrage nicht bestätigen.

Schreibblindes Journal

Sallyport verschlüsselt Agentenläufe und Aktivitäten beim Schreiben und verbindet den Chiffretext durch eine Hash-Kette.

SSH, das den Befehl sieht

Sallyport sieht den vollständigen SSH-Befehl, prüft den Hostschlüssel und versiegelt eine Sitzungsaufzeichnung. Der private Schlüssel bleibt in der App.

Beobachtungsmodus

Der Beobachtungsmodus entfernt Sitzungskarten, behält aber die Tresorsperre, Freigaben pro Aufruf und das Journal bei.

Keine Wiederherstellung

Der Tresor bietet keinen Export, keine Anzeige und keinen Wiederherstellungsschlüssel. Bei Verlust müssen Sie die gespeicherten Zugangsdaten bei den Anbietern neu ausstellen.

Kanäle

HTTP, SSH und MCP

Ihr Agent verbindet sich mit Sallyport als ganz normaler MCP-Server. Alles, was er tut, durchläuft dieselbe Leiter in dasselbe Journal.

HTTP-APIs

http.request → api.github.com

Die App führt den HTTPS-Aufruf aus und fügt die Zugangsdaten erst bei der Ausführung ein. Hostübergreifende Weiterleitungen übertragen sie nicht.

SSH

ssh.exec → deploy@prod-03

Ein zustandsloser Helfer öffnet die Verbindung. Die App signiert SSH-Anfragen, pinnt Host-Schlüssel und versiegelt eine Sitzungsaufzeichnung; der private Schlüssel erreicht den Helfer nicht.

MCP-Server

github.create_issue

Leiten Sie lokale stdio- oder entfernte MCP-Server durch dieselbe Schleuse. Sallyport versiegelt und erneuert OAuth-2.1-Tokens.

In Zahlen

Was auf dem Spiel steht

84

bösartige Paketversionen bei einem einzigen npm-Angriff, der Zugangsdaten jagte

0

Konten, Cloud-Dienste oder Telemetrie: Sallyport läuft vollständig auf Ihrem Mac

1 Fingertipp

Touch ID gibt einen markierten Aufruf frei; ein synthetischer Klick kann das nicht vortäuschen

~2 min

von brew install bis zu Ihrem ersten kontrollierten Aufruf

Grenzen

Was Sallyport nicht verspricht

Sicherheitstools versprechen gern zu viel, deshalb halten wir unsere Grenze schriftlich fest.

Grenzen

Eine freigegebene Sitzung kann sich trotzdem fehlverhalten

Eine Sitzungsfreigabe autorisiert den Prozess, nicht die Bedeutung jeder Anfrage. Verwenden Sie für Schlüssel, die einzeln geprüft werden müssen, die Freigabe pro Aufruf.

Es kann nativen Code, der als Sie läuft, nicht aufhalten

Sallyport ist kein Virenschutz. Code mit Ihren Benutzerrechten kann weiterhin die App oder das Betriebssystem angreifen.

Es kann nicht für Sie lesen

Karten zeigen die Code-Signing-Autorität und Prozesskette des Aufrufers. Sie müssen die Anfrage weiterhin selbst prüfen.

FAQ

Häufig gestellte Fragen

Wie ist Sallyport lizenziert?
Sallyport ist kostenlos zum Herunterladen und Nutzen. Der Kern ist Open Source unter Apache-2.0. Geplante Enterprise-Komponenten erhalten eine kommerzielle Lizenz.
Wo liegen meine Geheimnisse?
In einem lokalen Tresor auf Ihrem Mac. Secure Enclave und Touch ID schützen den Zugriff auf den Tresorverschlüsselungsschlüssel. Sallyport verschlüsselt geheime Werte und Metadaten und lädt keine Tresordaten hoch.
Funkt es nach Hause?
Nein. Es gibt keinen Cloud-Dienst, kein Konto und keine Telemetrie. Sallyport funktioniert offline, abgesehen von den Diensten, auf die Sie es richten, und dem Update-Feed.
Was sind die Systemvoraussetzungen?
Ein Mac mit Apple Silicon und macOS 14 oder neuer. Intel-Macs werden nicht unterstützt.
Was passiert, während der Tresor gesperrt ist?
Agentenaktionen stoppen. Verwaltungsanfragen liefern nur den Status; alle anderen Vorgänge werden verweigert. Das Entsperren erfordert Touch ID. Sperren löscht Sitzungen und ausstehende Freigaben.
Funktioniert es mit Claude Code und anderen Agenten?
Jeder MCP-Client kann mit dem mitgelieferten sp mcp-Shim auf http.request, ssh.exec und konfigurierte Upstream-MCP-Server zugreifen.
Kann der Agent meine Schlüssel jemals sehen?
Nein. Es gibt keinen Befehl, der gespeicherte Zugangsdaten offenlegt, und auch keinen Export- oder Wiederherstellungsweg. Ein ehrlicher Vorbehalt: Sallyport gibt Serverantworten so zurück, wie sie eintreffen. Wenn ein Zieldienst also ein Geheimnis in seiner Antwort zurückspiegelt, sieht der Agent diese Antwort.
Was, wenn ich den Zugriff auf meinen Mac verliere?
Es gibt keinen Wiederherstellungsschlüssel. Initialisieren Sie den Tresor neu und stellen Sie die Zugangsdaten bei ihren Anbietern neu aus.

Ihr Agent ist nur eine Prompt-Injection von Ihren Schlüsseln entfernt.

Kostenloser Download. Apple Silicon, macOS 14 oder neuer. Kein Konto, niemals.

$brew install --cask olegsotnikov/tap/sallyport

macOS 14+ · Apple Silicon

Sallyport

Sallyport führt API-Aufrufe und SSH-Befehle für Ihren KI-Agenten aus. Die Schlüssel bleiben in einem lokalen Tresor auf Ihrem Mac; Sie geben jeden Lauf frei, und jede Aktion landet in einem versiegelten Journal.

© 2026 Sallyport · Open Source unter Apache-2.0 · Oleg Sotnikov