Bedrohungsmodell

Werte von Zugangsdaten außerhalb der Reichweite des Agenten halten

Entwicklerwerkzeuge führen Code Dritter in einem stark vertrauenswürdigen Kontext aus. Bei integriertem HTTP und SSH hält Sallyport die gespeicherten, wiederverwendbaren Zugangsdaten aus diesem allgemeinen Kontext heraus und vermittelt jeden Aufruf lokal.

Wert der Zugangsdaten

Sallyport fügt aufgelöste Zugangsdaten nicht absichtlich Agentenergebnissen, Freigaben, Audit-Ereignissen, Protokollen oder Fehlern hinzu. Executor-Antworten werden nicht geprüft oder verändert und können vertrauliche Zieldaten enthalten.

Autorisierung

Tresorstatus, Freigaben pro Aufruf und die Identität des laufenden Prozesses entscheiden, ob ein Werkzeugaufruf starten darf.

Nachweis

Jeder zugelassene Tool-Aufruf benötigt zuerst einen dauerhaft gespeicherten, verschlüsselten Intent-Eintrag. Die Katalogabfrage nicht.

Warum es Sallyport gibt

Wie eine kompromittierte Abhängigkeit Zugangsdaten erreicht

Ein vertrauenswürdiges Paket oder ein Workflow läuft bereits dort, wo Entwickler und CI wiederverwendbare Zugangsdaten ablegen. Wird dieser Code bösartig, können Lesen und Ausschleusen dieser Daten Teil desselben Ausführungspfads sein.

vertrauenswürdiger CodepfadSammlung allgemein zugänglicher Zugangsdaten
Vertrauenswürdige AbhängigkeitMaintainer oder Release-Pfad kompromittiert
Lifecycle-AusführungInstallations-, Build- oder CI-Schritt
Entwickler- oder CI-KontextCode läuft mit vorhandenen Benutzerrechten
Umgebungsvariablen
Dateien mit Zugangsdaten
Prozessspeicher
Installierte KI-Werkzeuge
Ziel des AngreifersGestohlene Zugangsdaten bleiben wiederverwendbar
Eine kompromittierte, zuvor vertrauenswürdige Abhängigkeit führt ein Lifecycle-Skript in einem Entwickler- oder CI-Prozess aus. Es sammelt Geheimnisse aus Umgebungsvariablen, Dateien, dem Prozessspeicher und installierten KI-Werkzeugen und sendet sie an ein vom Angreifer kontrolliertes Ziel.

Aktuelle Vorfälle nutzten diesen Pfad

Die Kampagnen unterschieden sich im Detail. In jedem Fall lief Schadcode in der Nähe von Zugangsdaten, die andere Systeme später weiterhin akzeptierten.

  1. Mai 2026

    Bösartige TanStack-Pakete

    84 bösartige Versionen in 42 @tanstack-Paketen führten während der Installation eine Payload aus. Sie sammelte Cloud-Zugangsdaten, GitHub-Tokens und SSH-Schlüssel und versuchte anschließend, sich über Pakete zu verbreiten, die das jeweilige Opfer betreute.

    TanStack-Sicherheitshinweis
  2. Ende 2025

    Shai-Hulud-Kampagnen auf npm

    Kompromittierte Pakete nutzten Codeausführung während der Installation, um Geheimnisse zu stehlen und sich mit gestohlenen Zugangsdaten weiterzuverbreiten. Spätere Varianten griffen gezielt CI-Umgebungen und selbst gehostete Runner an.

    GitHub-Analyse der Lieferkette
  3. August 2025

    Nx S1ngularity

    Bösartige Versionen von Nx führten nach der Installation ein Skript aus, das Entwicklersysteme nach vertraulichen Daten durchsuchte, lokale KI-Werkzeuge zu verwenden versuchte und die Ergebnisse über GitHub CLI hochlud.

    Postmortem zum Nx-Vorfall
GitHub Docs: Warum ein kompromittierter Runner referenzierte Geheimnisse sammeln und gezielt ausschleusen kann
Kontrollpunkt

Wiederverwendbare Zugangsdaten aus dem Prozess entfernen

Ein Geheimnis in einer Umgebungsvariablen oder Datei sind Daten, die der Prozess kopieren kann. Von Sallyport verwaltete Zugangsdaten sind stattdessen Eingabe für einen lokalen Vorgang, der Tresorstatus, Freigabe, Zielbindung und Audit unterliegt.

Allgemein zugängliche Zugangsdaten

Integriertes HTTP / SSH

Kompromittierter Code
Liest wiederverwendbaren Wert
Sendet oder speichert ihn
Zugangsdaten kopiert
Kompromittierter Code
Strukturierter Vorgang
Sallyport-GrenzeStatus, Identität, Freigabe, dauerhafter Intent
Authentifizierung anhängen / SSH signieren
Angefordertes / konfiguriertes Ziel
Verschlüsselter Tresor
verweigern oder fragenZugangsdaten nur im Executor- / Empfängerpfadautorisierter Missbrauch oder vertrauliche Ausgabe bleibt möglich
Im allgemeinen Pfad liest kompromittierter Code wiederverwendbare Zugangsdaten und sendet sie an ein beliebiges Ziel. Im integrierten HTTP- und SSH-Pfad von Sallyport stellt der Code einen strukturierten Vorgang. Sallyport kann verweigern oder nachfragen, hängt HTTP-Zugangsdaten an oder signiert eine SSH-Anfrage im Executor und sendet den Vorgang an das angeforderte oder konfigurierte Ziel. Das Zielergebnis wird ohne Inhaltsprüfung oder Umschreibung zurückgegeben und kann vertrauliche Daten enthalten.

Bei integriertem HTTP und SSH kann ein Paket die gespeicherten Zugangsdaten nicht aus der Agentenumgebung lesen. Es muss einen Vorgang anfordern, der verweigert, pro Aufruf freigegeben, auf das angeforderte oder konfigurierte Ziel begrenzt und protokolliert werden kann. Die Zielantwort wird ohne Inhaltsprüfung oder Umschreibung zurückgegeben.

Das stoppt bösartigen Code nicht und beweist nicht, dass eine freigegebene Anfrage harmlos ist. HTTP- und SSH-Ziele können vertrauliche Daten zurückgeben. Entfernte MCP-Server erhalten konfigurierte Authentifizierung, lokale stdio-Server gebundene Zugangsdaten in ihrer Umgebung. Jedes Ziel und jeder Upstream ist als vertrauenswürdiger Empfänger der Zugangsdaten zu behandeln.

Entscheidungskette

Dieselben Prüfungen laufen bei jedem zugelassenen Aufruf

Die einkompilierte Kette gilt für Werkzeugaufrufe. Initialize- und tools/list-Verkehr verwaltet den Katalog außerhalb dieses Pfads und erhält keine Intent-Zeile.

  1. 01

    Tresor ist bereit

    Jeder andere Status verweigert Agentenaktionen.

    deny | next

  2. 02

    Ziel kann aufgelöst werden

    Das erforderliche Ziel und die Metadaten der Zugangsdaten müssen vorhanden sein.

    deny | next

  3. 03

    Prüfung pro Aufruf

    Markierte Schlüssel oder Upstream-Server fragen jedes Mal nach.

    ask | next

  4. 04

    Prozesszulassung

    Den laufenden Prozess per Sitzung, Allowlist, Sitzungskarte oder Beobachtungsmodus zulassen. Das identifiziert weder das geladene Paket noch die Quelle einzelner Bytes.

    ask | next

  5. 05

    Audit-Intent

    Der verschlüsselte Intent muss vor der Ausführung dauerhaft gespeichert sein.

    deny | run

  6. 06

    Ausführen und Ergebnis zurückgeben

    Kanal ausführen, Ergebnis anhängen und das begrenzte Executor-Ergebnis ohne Inhaltsprüfung oder Umschreibung zurückgeben. Ergebnisse können vertrauliche Daten enthalten.

    result

Eine Allowlist mit exaktem cdhash passt nach einem Binärupdate nicht mehr. Ein Publisher-Eintrag kann Updates derselben Identität weiter zulassen; ein kompromittierter Publisher oder Signierpfad bleibt daher vertrauenswürdig. Beide überspringen nur die Sitzungskarte.

Abdeckung

Kontrollen und Restrisiko

Das Modell hat eine klare Grenze. Restrisiken gehören dazu.

BedrohungWas Sallyport ändertWas verbleibt
Bösartige Abhängigkeit liest Dateien oder UmgebungBei integriertem HTTP und SSH legt Sallyport die gespeicherten Zugangsdaten nicht in die Agentenumgebung und fügt sie nicht absichtlich Ergebnissen, Protokollen, Freigaben oder Audit-Ereignissen hinzu. Executor-Ergebnisse werden ohne Inhaltsprüfung oder Umschreibung zurückgegeben.Zugangsdaten außerhalb von Sallyport bleiben offen. Lokale stdio-MCP-Server erhalten gebundene Zugangsdaten und erben Sallyports Umgebung.
Durch Prompt-Injection beeinflusster oder kompromittierter freigegebener AgentSchlüssel mit Freigabe pro Aufruf erfordern weiterhin einen Klick oder Touch ID. Sallyport prüft bei späteren Aufrufen erneut die Identität des laufenden Prozesses.Die Zulassung gilt für den Prozess, nicht für jedes Paket oder Byte. Geladener Code und Schreiber an einem geerbten Socket oder einer Pipe erben diese Zulassung.
Zugangsdaten werden an einen anderen Host umgeleitetHTTP-Zugangsdaten werden nur bei passendem Host und Pfad angehängt. Anfragen mit Zugangsdaten folgen keinen Weiterleitungen; andere bleiben auf demselben Host und Port und dürfen HTTPS nicht herabstufen.Die aktuelle DNS-Prüfung pinnt die geprüfte Adresse nicht bis zum Verbindungsaufbau. Daher bleibt eine Lücke für DNS-Rebinding.
Lokaler Audit-Verlauf wird bearbeitetVerschlüsselte Zeilen und die signierte Chiffretextkette erkennen Änderungen, Umsortierungen, interne Lücken und Signiereraustausch. Ein separater signierter lokaler Prüfpunkt erkennt Rollbacks hinter ihm.Ein Kettenausläufer nach dem Prüfpunkt kann nach einem unsauberen Abbruch verloren gehen. Ein vollständiger lokaler Rollback braucht einen externen Zeugen, um ihn von einer Wiederherstellung zu unterscheiden.
Ein Upstream legt Geheimnisse in MCP-Katalogmetadaten abWählen und prüfen Sie Upstream-Servercode als Teil der Vertrauensgrenze. Sallyport gibt Werkzeugergebnisse, Fehler und authentifizierte Katalogmetadaten ohne Filterung nach Zugangsdaten und unter den dokumentierten Größen- und Beschreibungslimits zurück.Initialize und tools/list liegen außerhalb des Aufruf-Audits. Namen, Beschreibungen und Schemas sind beliebige, vom Upstream kontrollierte Inhalte und können Zugangsdaten oder andere vertrauliche Daten enthalten.
Root oder Codeausführung innerhalb von SallyportSecure Enclave schützt die Verwendung privater Schlüssel und der Tresor bleibt im Ruhezustand verschlüsselt.Root, deaktiviertes SIP oder Codeausführung im Prozess können einen entsperrten Tresor steuern. Sallyport ist weder Host-Sandbox noch Virenschutz.
Harte Grenzen

Was dieses Modell nicht behauptet

Sallyport reduziert die Offenlegung von Zugangsdaten und kontrolliert ihre Verwendung. Es macht feindseligen lokalen Code nicht vertrauenswürdig.

01

Freigabe ist keine Absichtsanalyse

Eine Sitzungskarte identifiziert den Prozess und seine Herkunft. Sie entscheidet nicht, ob jede Anfrage in dieser Sitzung sicher ist.

02

Prozesszulassung ist keine Komponentenisolation

Eine Sitzung identifiziert den laufenden Prozess. Geladener Code oder eine Komponente, die über einen geerbten Socket oder eine Pipe schreibt, erhält dieselbe Zulassung.

03

Der Bediener kann Schaden freigeben

Ein Klick oder Touch ID bestätigt lediglich, dass die Freigabe erfolgt ist. Dadurch wird ein schlecht geprüfter Vorgang nicht harmlos.

04

MCP-Upstreams sind vertrauenswürdige Empfänger

Ein entfernter Server erhält seinen konfigurierten API-Schlüssel oder OAuth-Token. Ein lokaler stdio-Kindprozess erhält gebundene Zugangsdaten und die App-Umgebung. Sallyport isoliert keinen der beiden Server.

05

Katalogmetadaten sind nicht vertrauenswürdige Inhalte

Initialisierung und tools/list umgehen Aufrufkette und Intent-Audit. Werkzeugnamen, Beschreibungen und Schemas bleiben ohne Filterung nach Zugangsdaten beliebige, vom Upstream kontrollierte Inhalte; dokumentierte Größen- und Beschreibungslimits gelten.

06

Datenverkehr außerhalb von Sallyport liegt außerhalb des Geltungsbereichs

Die App kann direkte Netzwerkaufrufe, Shell-Befehle, andere Speicher für Zugangsdaten oder Werkzeuge, die ihre MCP-Schnittstelle umgehen, nicht kontrollieren.

07

Executor-Ergebnisse können vertrauliche Daten enthalten

HTTP-, MCP- und SSH-Ergebnisse und Fehler werden nicht geprüft oder verändert. Ein Ziel kann Zugangsdaten oder andere vertrauliche Daten zurückgeben, und SSH-Aufzeichnungen bewahren die Zielausgabe.

08

Audit-Vorschauen können Aufruferdaten enthalten

Sallyport fügt Freigaben oder Audit-Zeilen keine aufgelösten Zugangsdaten hinzu. Vom Aufrufer gelieferte Befehle und Argumente erscheinen aber in Zusammenfassungen und begrenzten Vorschauen. Behandeln Sie entschlüsselte Audit-Daten als vertraulich.

09

Dies ist ein interaktives Mac-Produkt

Unterstützt wird eine signierte App auf Apple-Silicon-macOS mit lokaler Oberfläche und Touch ID. Es gibt keinen Linux-, Container-, Server-, Cloud-Runner- oder Headless-CI-Modus.

Implementierung prüfen

Der Kern ist Open Source unter Apache-2.0. Lesen Sie die Implementierung und das Vertrauensmodell oder bauen Sie ihn lokal.

Quellcode auf GitHub ansehen
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