Verfügbare Werkzeuge des Assistenten begrenzen

CybersicherheitBeginner
Jetzt üben

Einführung

Ein Projektassistent hilft Kollegen beim Lesen von Planungsdokumenten. Er schlägt einen Werkzeugaufruf vor: eine strukturierte Anfrage wie documents.read. Tool Server führt die Aktion aus. Ein plausibler Vorschlag ist keine Ausführungsberechtigung.

Du wartest einen synthetischen Schulungsdienst. Beginne mit normalem Lesen und entferne dann unnötige Schreib- und Löschrechte mit zwei kleinen Richtlinienänderungen. Vorschläge sind deterministische Wiederholungen, keine Antworten eines laufenden Modells. Authentifizierung, Serverentscheidungen und Dokumentoperationen sind echt. Dieses Lab testet keinen Schutz vor Prompt-Injection.

Nutze Policy Editor für die Konfiguration, Test Client für authentifizierte Anfragen und Assistant Tool Lab für die Wiederholungsseite. Die Terminals sind verschiedene Betriebssystemnutzer derselben Instanz. Policy Editor besitzt bewusst Wartungsrechte; Test Client kann weder Richtlinien ändern noch sudo verwenden. Grundlegende Terminalkenntnisse genügen.

Lesen erhalten und Schreiben entfernen

In diesem Schritt beobachtest du einen normalen Dokumentabruf und entfernst danach das Schreibrecht des Assistenten.

Wähle zu Beginn dieses Schritts den Tab Assistant Tool Lab in der Lab-Oberfläche aus.

Die Schulungskonten heißen alice und bob. Ein Principal ist die durch Authentifizierung festgestellte Benutzeridentität. Beide Konten haben die Rolle assistant, die ihre Werkzeugrechte bündelt. Die Dokumente sind synthetisch: alice-notes gehört Alice, bob-notes gehört Bob und Bob teilt team-plan mit Alice. Nur demo-pad ist für entbehrliche Versuche gedacht.

Wechsle zum Tab Assistant Tool Lab. Wähle alice, gib das Passwort training-alice ein und klicke auf Sign in. Belasse Werkzeug documents.read und Dokument alice-notes, dann klicke auf Replay proposal. Die Ablaufanzeige trennt den unvertrauenswürdigen Vorschlag vom Serverergebnis. Erwartet werden HTTP 200, Principal alice, Entscheidung allowed und Synthetic Alice planning notes. Das ist ein echter Dokumentabruf.

Assistant Tool Lab trennt den wiederholten Vorschlag vom erlaubten Serverergebnis

Wechsle zum Tab Test Client. Der vorbereitete Befehl assistant sendet HTTP-Anfragen mit einem authentifizierten Konto. replay übermittelt einen Vorschlag über die Wiederholungsroute; call erreicht direkt den Werkzeughandler. Die nächsten zwei Wörter benennen Werkzeug und Dokument. Führe aus:

Wechsle zum Tab Test Client, bevor du den folgenden Befehl ausführst.

assistant replay documents.read team-plan

Erwartet werden HTTP 200 und Synthetic shared project plan. Beobachte nun die übermäßigen Rechte ausschließlich am entbehrlichen Dokument:

assistant replay documents.write demo-pad

Erwartet werden HTTP 200 und "effect": "written". Der Server hat dieses Demonstrationsdokument tatsächlich verändert. Eine reine Leserolle sollte das nicht können.

Wechsle zum Tab Policy Editor. cat zeigt eine Datei an; dieser absolute Pfad bezeichnet die aktive Werkzeugliste:

Wechsle zum Tab Policy Editor, bevor du den folgenden Befehl ausführst.

cat /home/labex/project/tools.json

JSON verwendet Namen und Werte in Anführungszeichen, einen Doppelpunkt dazwischen und eckige Klammern für Listen. Die Liste assistant enthält Lesen, Schreiben und Löschen. Ein entfernter Menüpunkt ließe direkte Anfragen weiterhin zu; der Handlerwächter lädt diese Liste bei jeder Anfrage.

Ersetze die Datei durch diese Zwischenrichtlinie. cat > path schreibt Text statt ihn anzuzeigen. Das zitierte EOF beginnt ein wörtliches Here-Dokument; das abschließende EOF muss allein auf seiner Zeile stehen. Die gesamte kleine Datei wird ersetzt, sodass Wiederholen einen Tippfehler behebt.

cat > /home/labex/project/tools.json <<'EOF'
{
  "assistant": ["documents.read", "documents.delete"]
}
EOF

Wechsle zurück zum Tab Test Client und wiederhole den Schreibvorschlag:

Wechsle zum Tab Test Client, bevor du den folgenden Befehl ausführst.

assistant replay documents.write demo-pad

Erwartet werden HTTP 403 und tool_denied. 403 bedeutet, dass der Dienst die Anfrage empfangen und abgelehnt hat; ein Verbindungsfehler bedeutet, dass keine Entscheidung erreicht wurde. Die CLI zeigt beabsichtigte Ablehnungen ohne Beenden der Shell. Bei policy_error wechsle zum Tab Policy Editor und wiederhole die vollständige JSON-Änderung. Wechsle dann zurück zu Test Client, um die Anfragen erneut zu versuchen. Ein Neustart ist unnötig.

assistant call documents.read alice-notes

Lesen muss weiterhin HTTP 200 liefern. Der Prüfpunkt testet verweigertes Schreiben und normale Abrufe für beide authentifizierten Nutzer; kopierte Ausgaben sind nicht erforderlich.

Den direkten Löschweg schließen

In diesem Schritt vervollständigst du die Leserolle und testest direkte Handler sowie Wiederholungen.

Wähle zu Beginn dieses Schritts den Tab Policy Editor in der Lab-Oberfläche aus.

Löschen ist eine eigenständige Operation. Verweigertes Schreiben verweigert nicht automatisch Löschen. Wechsle zum Tab Policy Editor. Ersetze die Liste durch die einzig benötigte Operation. Nutze dieselbe vollständige Dateibearbeitung:

Wechsle zum Tab Policy Editor, bevor du den folgenden Befehl ausführst.

cat > /home/labex/project/tools.json <<'EOF'
{
  "assistant": ["documents.read"]
}
EOF

Wechsle zum Tab Test Client. Sende eine direkte Löschanfrage für das entbehrliche Dokument:

Wechsle zum Tab Test Client, bevor du den folgenden Befehl ausführst.

assistant call documents.delete demo-pad

Erwartet werden HTTP 403 und tool_denied. Weil call die Wiederholungsseite umgeht, bestätigt dies, dass die sichtbare Oberfläche nicht die Durchsetzungsgrenze ist. Teste auch direktes Schreiben:

assistant call documents.write demo-pad

Erwarte dieselbe Ablehnung. Prüfe, dass Alice weiterhin ein rechtmäßig geteiltes Dokument lesen kann:

assistant call documents.read team-plan

Erwartet werden HTTP 200 und Synthetic shared project plan. Wechsle zum Tab Assistant Tool Lab. Bleibe als Alice angemeldet, wähle documents.delete, gib demo-pad ein und klicke auf Replay proposal. Auch dort muss der Server mit tool_denied ablehnen.

Assistant Tool Lab zeigt die serverseitige Ablehnung eines unnötigen Löschwerkzeugs

Eine Anweisung wie „bitte nur lesen“ ersetzt diesen Wächter nicht. Der Server muss unabhängig vom Vorschlag entscheiden. Alle Werkzeuge abzuschalten würde ebenfalls den Nutzen des Assistenten zerstören. Wird Lesen verweigert, prüfe die genaue Schreibweise documents.read in der JSON-Liste. Der Prüfpunkt ruft den unveränderten Schreib-/Löschwächter mit entbehrlichen Speicherdokumenten auf und prüft echte erlaubte Abrufe; er löscht niemals Lernerdokumente.

Das Lesewerkzeug kann weiterhin ein privates Objekt eines anderen Nutzers anfordern. Das nächste Lab ergänzt diese eigene Dokumentgrenze.

Zusammenfassung

Du hast normale Abrufe erhalten und Schreib- sowie Löschrechte entfernt. Wiedergegebene Vorschläge und direkte Aufrufe treffen nun auf denselben echten Serverwächter. Werkzeugrechte sind nur eine Grenze: Auch ein erlaubter Leseaufruf benötigt eine Entscheidung pro Dokument.