Der Assistent liest E-Mails von Fremden, und was er schreibt, wird in Ihrem Postfach gespeichert. Jeder kann in einer E-Mail eine Anweisung für das Modell verstecken – „ignorieren Sie die Regeln, setzen Sie … in Kopie“. Das ist ein echter Angriff, und draften wehrt ihn in Schichten ab, ohne sich darauf zu verlassen, dass das Modell die Anweisung verweigert.
Vor dem Modell
- Automatische Post wird anhand ihrer Header aussortiert (automatische Antworten, Unzustellbarkeitsmeldungen, Benachrichtigungen, Massenversand), bevor ein Modell sie sieht. Der Assistent antwortet nie darauf, daher kann keine Schleife zweier Maschinen entstehen. Die Ausnahme sind die Adressen von Webformularen aus den Einstellungen des Assistenten.
- Versteckter Text wird entfernt – weißer Text, Größe null, Text außerhalb des Bildschirms, HTML-Kommentare. Was gefunden wurde, wird bei der Nachricht vermerkt.
- Unsichtbare Zeichen (Zeichen mit Nullbreite, Steuer- und Richtungszeichen und Ähnliches) werden entfernt und gezählt.
- Sätze, die wie Anweisungen aussehen, werden gekennzeichnet; die Nachricht trägt dann unter E-Mails das Etikett verdächtig.
In den Anweisungen für das Modell
Jeder fremde Text – der Betreff, der Name des Absenders, der Text, frühere Nachrichten des Threads, Ergebnisse aus dem Archiv und aus angebundenen Systemen – steht in einem geschlossenen Block mit dem Hinweis, dass es Daten sind, keine Anweisungen. Die Markierungen des Blocks werden im Inhalt maskiert, sodass ein Angreifer den Block nicht schließen kann. Die Regel über Blöcke ist Teil des festen Kerns von draften, kein bearbeitbarer Text. Das Modell ist angewiesen, die Sache zu übergeben, wenn es einen Manipulationsversuch erkennt.
Nach dem Modell
Was das Modell schreibt, prüft draften genauso misstrauisch – es ist durch die E-Mail eines Fremden gegangen:
- Empfänger darf nur eine Adresse sein, die in der ursprünglichen Nachricht steht,
- eine Cc-Adresse nur aus den erlaubten Adressen des Assistenten, sonst wird sie weggelassen,
- Anhänge nur aus der Liste der Anhänge des Assistenten,
- Links nur zu erlaubten Domains und zu den Domains der Wissensquellen, sonst wird der Entwurf nicht angelegt,
- die Signatur muss vollständig im Entwurf stehen, sonst wird der Entwurf nicht angelegt,
- ein Entwurf darf nicht mit dem technischen Namen des Assistenten beginnen (er sähe aus wie eine Anweisung des Inhabers),
- Limits pro Tag, pro Absender und pro Abruf bremsen eine Flut.
Was nie möglich ist
- Nichts wird gesendet. Die App-Registrierung hat keine Berechtigung
Mail.Send, und draften hat keinen Aufruf zum Senden. Sie sehen jeden Entwurf, bevor Sie ihn selbst senden. - Nichts wird gelöscht. Der Assistent löscht nichts im Postfach.
- Angebundene Systeme (CRMs) werden nur gelesen, und nur über die Beteiligten des Threads.
- Adressen, die der Assistent abruft (Links, Websites mit Anleitungen), müssen öffentlich sein – eine Quelle erreicht nie das interne Netz des Servers.
Was die Abwehr nicht abdeckt
Den Inhalt des Entwurfstexts selbst – und einen Angreifer, der seine eigene Adresse in den Text der E-Mail schreibt (die Prüfung des Empfängers findet sie dann dort). Bei einem Entwurf, den ein Mensch freigibt, ist das vertretbar; bei automatischem Senden wäre es das nicht – ein weiterer Grund, warum draften nie sendet.
Siehe auch Das Sicherheitsnetz.