Prompt-Injection über Issues

Prompt-Injection über Issues

Jeder konnte einen Bug melden. Der Bot hat ihn gemergt.

Was ist Prompt-Injection über Issues?

Ein automatischer Triage-Bot liest neue Issues und eröffnet Pull Requests. Ein Fehlerbericht enthält eine versteckte Anweisung, und weil der Bot Schreibzugriff hat und auf der Auto-Merge-Allowlist steht, wird daraus ein gemergter Workflow, der ein Secret an einen externen Host sendet. Sie verfolgen den Pull Request bis zu dem Issue zurück, dem der Bot gefolgt ist, stellen das Token des Bots auf Lesezugriff um, nehmen ihn aus dem Auto-Merge, verlangen ein Review für jede Änderung an der CI und rotieren das geleakte Token. Die Lehre daraus: Begrenzen Sie das Token des Agenten, nicht die Texte, die er liest.

Was Sie lernen in Prompt-Injection über Issues

Prompt-Injection über Issues — Trainingsschritte

  1. Ein Fehlerbericht mit verstecktem Auftrag

    Bob braucht kein Konto bei Crowvale, um an die Automatisierung des Unternehmens heranzukommen. Er erstellt einen öffentlichen Fehlerbericht im Repository checkout-api. Der Anfang liest sich wie ein gewöhnlicher Timeout-Fehler. In einem Block mit Umgebungsdetails steckt jedoch eine Anweisung, nicht für einen Menschen, sondern für den Triage-Bot, der jedes neue Issue liest, bevor es irgendjemand sonst tut.

  2. Das Token trifft ein

    Über Nacht hat der Triage-Bot das Issue gelesen und einen Pull Request als Entwurf eröffnet, der den Workflow hinzufügt. Der Auto-Merge hat den PR durchgewunken. Beim ersten Lauf hat der Workflow genau das getan, was im Issue verlangt wurde. Bob sieht in seinem Collector nach.

  3. Als Crowvale deployen

    Ein Deploy-Token ist ein Schlüssel zur Produktion. Bob richtet den API Tester auf den Deployment-Service von Crowvale und schickt das gestohlene Token im Authorization -Header mit.

  4. Ein nächtliches Deployment, das niemand gestartet hat

    Gleich heute Morgen hat Soraya, die Leiterin des Sicherheitsteams, in Jotvane, dem Issue-Tracker des Teams, ein Issue erstellt. Über Nacht hat ein Workflow-Lauf eines der Secrets des Repositorys an einen Host außerhalb von Crowvale gesendet, und danach folgte ein Deployment in Produktion, das niemand im Team gestartet hat.

  5. Der Pull Request, den der Bot gemergt hat

    Diese Änderung stammt nicht von Ihnen. Öffnen Sie den Pull Request, den Soraya verlinkt hat, und sehen Sie nach, was er hinzufügt und wie er in den Standard-Branch gelangt ist.

  6. Was der Lauf getan hat

    Ein gemergter Workflow wird ausgeführt. Öffnen Sie unter „Aktionen“ die Workflow-Läufe und sehen Sie sich den Lauf an, den der Pull Request des Bots ausgelöst hat.

  7. Die Sitzung des Bots abspielen

    Der Triage-Bot von Crowvale nutzt denselben Assistenten, und seine Sitzung wird aufgezeichnet. Die Workflow-Datei, die er geschrieben hat, ist geöffnet, und sein Durchlauf zu Issue #217 ist geladen: was er gelesen hat, welche Schritte er unternommen hat und welche Zeilen er geschrieben hat.

  8. Issue rein, Workflow raus

    Das Sitzungsprotokoll zeigt den Sprung: Der Bot hat ein neues Issue abgerufen und danach eine Workflow-Datei bearbeitet. Ein neues Issue ist eine nicht vertrauenswürdige Eingabe, denn jeder im Internet kann eines erstellen. Suchen Sie im Sitzungsprotokoll die Bearbeitung, bei der die Workflow-Datei geschrieben wurde.

  9. Die versteckte Anweisung

    Gehen Sie zurück zu dem Issue, das der Bot gelesen hat, und suchen Sie die Zeile, der er gefolgt ist.

  10. Warum das möglich war

Abdeckung der Sicherheits-Frameworks

OWASP Top 10

  • A08:2025 Software or Data Integrity Failures

CWE

  • CWE-1427 Improper Neutralization of Input Used for LLM Prompting

CIS Controls

  • CIS 16 Application Software Security
  • CIS 6 Access Control Management

NIST CSF

  • PR.AT-02 Individuals in specialized roles are provided with awareness and training so that they possess the knowledge and skills to perform relevant tasks with cybersecurity risks in mind
  • PR.PS Platform Security
  • PR.AA Identity Management, Authentication, and Access Control