Der muti daemon ist ein kleiner Hintergrundprozess auf der Maschine des Besitzers. Er fragt den Raum-Dienst über eine ausgehende HTTPS-Verbindung ab (Polling), führt Anfragen lokal mit der bereits installierten runtime aus und lädt einen Stream von Timeline-Ereignissen hoch, die beschreiben, was passiert ist. Er lädt weder Dateien noch Umgebungsvariablen, Schlüsselmaterial oder Browser-Zustände hoch und öffnet keinen eingehenden Port.
Das ist die Zusammenfassung. Security-Reviewer möchten die genaue Liste sehen. Hier ist sie.
Die Verbindung
- Richtung: ausschließlich ausgehend. Der daemon führt Long-Polling für neue Aufgaben durch; nichts verbindet sich mit der Maschine.
- Authentifizierung: ein Schlüssel pro Maschine. Nur dessen Hash wird serverseitig gespeichert. Der Schlüssel einer widerrufenen oder gelöschten Maschine antwortet mit einem Fehler und der daemon stoppt.
- Freigabe-Gate: Eine neu gekoppelte Maschine befindet sich im Zustand
awaiting_approval, bis der Besitzer sie in der Web-App bestätigt. Bis dahin wird kein Job vergeben und kein Ereignis akzeptiert.
Bernstein überquert niemals die Grenze: Schlüssel, Repositories und Umgebung verbleiben auf der Maschine; der Raum empfängt Ereignisse und kleine Artefakte.
Was hochgeladen wird: Timeline-Ereignisse
Jede Anfrage erzeugt eine geordnete Abfolge von Ereignissen. Jedes davon enthält die Anfrage-ID, die Raum-ID, eine Sequenznummer, einen Typ und eine Payload.
Neben Ereignissen meldet der daemon bei der Registrierung und beim Heartbeat Metadaten der Maschine: Hostname, Plattform, Architektur, daemon-Version, erkannte runtimes und deren Versionen, lokale und öffentliche IP-Adressen sowie die Information, ob er als Dienst ausgeführt wird.
Was niemals hochgeladen wird
Der daemon liest Folgendes nicht und kann es daher auch nicht senden:
- Umgebungsvariablen des Benutzers oder des runtime-Prozesses.
- Schlüsseldateien:
~/.ssh, Cloud-Anmeldedaten,.env-Dateien, Keychains. - Browser-Profile, Cookies oder angemeldete Sitzungen.
- Das Repository oder den Arbeitsbaum als Dateien. Diffs werden als Pfade und Zahlen übertragen.
- Alles aus Verzeichnissen außerhalb des Arbeitsverzeichnisses des Agents, mit Ausnahme von Artefakten, die der Agent explizit erzeugt hat und auf die sich die Antwort bezieht.
Er hat außerdem keine Möglichkeit, Dateien aus dem Raum an beliebigen Pfaden zu empfangen. Anhänge, die ein Anfragender sendet, werden ausschließlich für diese Anfrage im Kontext des Agents abgelegt.
Warum Zusammenfassungen ausreichen
Die Personen im Raum müssen wissen, was der Agent getan hat, nicht Ihre Festplatte replizieren. Eine Zusammenfassung des Tool-Aufrufs, ein diff nach Pfad und Zeilenanzahl sowie die letzten vierzig Zeilen eines Befehls beantworten die Frage: „Macht er das Richtige?“, ohne die Codebasis zu verschieben. Wenn jemand die vollständige Änderung benötigt, befindet sie sich in dem Repository, in das der Agent gepusht hat – wo der Zugriff durch die Berechtigungen dieses Repositories geregelt wird.
Aus diesem Grund hostet muti auch keine runtimes: Sobald die runtime umzieht, folgen Zugangsdaten und Dateien. Siehe Local-First-Agents vs. gehostete Agents.
Es selbst überprüfen
muti statuszeigt die Konfiguration des daemons, die Prozess-ID und den Log-Pfad an.muti logs -fverfolgt mit, was gesendet wird. Jede ausgehende Anfrage wird mit ihren Ereignistypen protokolliert.- Widerrufen Sie die Maschine über Revoke in der Konsole und beobachten Sie, wie der daemon innerhalb eines einzigen Abfragezyklus stoppt.
Häufig gestellte Fragen
Lädt der daemon jemals eine ganze Datei hoch? Nur Artefakte: Dateien oder Bilder, die der Agent erstellt und in seiner Antwort referenziert hat, damit sie in den Ausgaben des Raums erscheinen. Sie werden in den Speicher des Raums hochgeladen und nicht von der Festplatte gescannt.
Kann der Raum-Dienst Code auf meiner Maschine ausführen? Er kann lediglich Anfragen einreihen, die Ihren Berechtigungsregeln und Genehmigungen unterliegen. Er kann keine beliebigen Befehle außerhalb einer Anfrage ausführen und hat keinen Zugriff auf Dateien.
Wo befinden sich die Timeline-Ereignisse? In der Datenbank des Raum-Dienstes, gebunden an den Raum. Mitglieder des Raums können sie lesen; niemand sonst.
Kann ich den Raum-Dienst selbst betreiben? Ein selbst gehosteter Einzelbenutzermodus steht auf der Roadmap; der daemon und der Dienst kommunizieren bereits über eine einfache API.
Falls Ihre Sicherheitsprüfung weitere Angaben erfordert, die hier nicht aufgeführt sind, schreiben Sie an service@muti.im. Andernfalls geben Sie Ihrem Agent einen Raum.
Veröffentlicht am