Aikido

Und noch eine. GitHub führt den Break-Glass-Anmeldeinformationsentzug ein

Verfasst von
Dania Durnas

Letzte Woche hat GitHub den Self-Service-Widerruf von Anmeldeinformationen für Enterprise veröffentlicht. Die Funktion ermöglicht es Organisationsinhabern, kompromittierte Anmeldeinformationen in der gesamten Organisation mit einer einzigen Aktion zu sperren, anstatt zu versuchen, einzelne Tokens während eines aktiven Vorfalls aufzuspüren. 

Diese Behebung war längst überfällig, da die letzten Monate gezeigt haben, was passiert, wenn der Widerruf langsam oder unvollständig ist. Die Trivy-Kompromittierung im März wiederholte sich, weil bei der ersten Bereinigung mindestens eine Anmeldeinformation aktiv blieb, und diese Kaskade erreichte Checkmarx Tage später. Im Juni wurden Microsofts eigene durabletask-Repositories über ein Konto angegriffen, das nach einem früheren Angriff nie vollständig bereinigt wurde.

Microsoft hat in letzter Zeit eine beeindruckende Serie von Sicherheits-Fixes hingelegt. Nur wenige Tage zuvor führten sie Veröffentlichungs-Cooldowns nach Kontoänderungen ein, und Anfang Juni aktualisierten sie auch npm, um automatische Postinstall-Skripte zu stoppen. Wir werden beobachten, was sie sonst noch veröffentlichen und wie sich dies auf Angriffe auf Open-Source-Software auswirkt.

Was GitHub bereitgestellt hat

Enterprise-Inhaber mit der Berechtigung „Manage enterprise credentials“ können nun Anmeldeinformationen für alle Benutzer in der Organisation massenhaft widerrufen oder löschen oder ein bestimmtes Konto ansprechen. Dies umfasst SSO-Autorisierungen für Personal Access Tokens (PATs), SSH-Schlüssel und OAuth-Tokens. Eine Option zum vollständigen Löschen ist für Enterprise Managed Users (EMU)-Organisationen verfügbar, und REST-APIs auf Organisationsebene ermöglichen einen granulareren Widerruf pro Organisation. Jede Aktion erstellt einen Audit-Log-Eintrag und sendet E-Mail-Benachrichtigungen an betroffene Benutzer. 

Einzelne Mitglieder erhalten eine neue Ansicht unter Einstellungen > Anmeldeinformationen, die alle mit ihrem Konto verknüpften Anmeldeinformationen anzeigt, sowohl SSO-autorisierte als auch persönliche. Von dort aus entfernt eine einzige Aktion den Zugriff all dieser Anmeldeinformationen auf SSO-geschützte Unternehmensressourcen in einem Schritt, wodurch der zeitaufwändige Prozess des schrittweisen Durchgehens einer Token-Liste entfällt. Mitglieder von EMU-Organisationen erhalten außerdem eine separate Option, um alle ihre Tokens und SSH-Schlüssel dauerhaft zu löschen.

Vor dieser Break-Glass-Funktion musste man mit verschiedenen Tools arbeiten, um die Anmeldeinformationen eines Kontos zu sperren. Fein granulierte PATs konnten über den Token-Bildschirm der Organisation widerrufen werden. Klassische Tokens konnten nur durch den Widerruf der SSO-Autorisierung pro Token gesperrt werden, und nur wenn SAML SSO aktiviert war. Die API zum Widerruf von Anmeldeinformationen konnte einen Token deaktivieren, aber nur wenn man den Token-String bereits zur Hand hatte, was im Fall eines geleakten Secrets funktioniert, nicht aber im Fall eines kompromittierten Kontos (dies kratzt nur an der Oberfläche der Komplexität, aber wir belassen es dabei). Der Punkt ist, dies führte zu einem ziemlich unübersichtlichen Versuch, Änderungen an den Anmeldeinformationen zu koordinieren. 

Hinweis: GitHub Actions-Tokens fallen hier nicht in den Geltungsbereich, da sie pro Job erstellt werden und mit dem Ende des Jobs ablaufen, sodass es nichts zu widerrufen gibt. Die Möglichkeit, den Schaden während eines Vorfalls zu begrenzen, besteht darin, Actions im Repository zu deaktivieren.

Warum jetzt?

Jüngste Malware-Angriffe haben Microsoft direkt betroffen. 

Am 19. Mai nutzten Angreifer zuvor gestohlene Anmeldeinformationen, um drei bösartige Versionen von Microsofts durabletask Paket auf PyPI, als Teil der Miasma-Wurm-Kampagne. Microsoft zog die Pakete innerhalb weniger Stunden zurück. Am 5. Juni jedoch pushte dasselbe Konto einen bösartigen Commit in das GitHub-Repository `Azure/durabletask` und pflanzte den Wurm erneut ein. GitHub reagierte, indem es 73 Repositories in vier von Microsofts GitHub-Organisationen deaktivierte. Dies umfasste die Azure Functions-Tooling, das viele Teams für ihre Bereitstellungen nutzen, und unterbrach CI/CD-Pipelines über Microsoft hinaus. Forscher listen einige mögliche Erklärungen für die Wiederholung auf, aber die führende ist, dass die Anmeldeinformationen vom Mai nie vollständig rotiert wurden. Eine Überwachungsfirma fand später die GitHub-Anmeldeinformationen des Kontos in Infostealer-Logs, die bis in den April zurückreichten. Unabhängig vom genauen Mechanismus wurde dasselbe Konto bei beiden Kompromittierungen verwendet.

Aber das ist nicht neu, und das Problem ist in diesem Jahr bereits mehrfach aufgetreten. Ende Februar 2026 nutzte ein bösartiger AI-Bot eine falsch konfigurierte pull_request_target GitHub Actions-Workflow im Trivy-Repository, wodurch der Angreifer einen PAT mit Schreibzugriff auf mehr als 33 Workflows in der Aqua Security GitHub-Organisation stehlen konnte. Aqua Security entdeckte die Sicherheitslücke und rotierte die Anmeldeinformationen. Doch leider war die Rotation nicht vollständig, und die Anmeldeinformationen wurden nicht alle gleichzeitig widerrufen.

Am 19. März nutzten die Angreifer Anmeldeinformationen, die die unvollständige Rotation überlebt hatten, um 75 von 76 Versionstags in aquasecurity/trivy-action auf bösartige Commits zu force-pushen. Die Payload wurde vor dem eigentlichen Trivy-Scan in jeder Pipeline ausgeführt, sodass jeder Workflow normal abgeschlossen zu sein schien. CI/CD-Pipelines, die Trivy ausführten, sammelten Anmeldeinformationen von ihren eigenen Runnern, wie SSH-Schlüssel, Cloud-Anmeldeinformationen, Kubernetes-Tokens und GitHub PATs.

Vier Tage später wurden gestohlene Anmeldeinformationen aus diesen Pipelines verwendet, um die GitHub Actions von Checkmarx mit einer identischen Stealer-Payload zu infizieren. Checkmarx bestätigte, dass die Aktivität des Bedrohungsakteurs bis zum 22. April in ihrer Umgebung fortbestand, wobei ihre exfiltrierten Daten am 25. April im Darknet veröffentlicht wurden.

Diese gesamte Kette von Trivy zu Checkmarx lässt sich auf eine unvollständige Rotation zurückführen. Hätte Aqua Security nach der Sicherheitslücke im Februar alle Anmeldeinformationen für das kompromittierte Dienstkonto sofort sperren können, wäre der Angriff dort gestoppt worden. 

Atomare Rotation – was bedeutet das?

Atomare Rotation bedeutet, eine Anmeldeinformation als eine einzige Alles-oder-Nichts-Operation auszutauschen, sodass es keinen Moment gibt, in dem sowohl die neuen als auch die alten Anmeldeinformationen funktionieren. Ziel ist es, Systemausfallzeiten zu vermeiden. Das ist theoretisch gut. In einem verteilten System funktioniert das einfach nicht so. Es ist einfach zu viel Koordination erforderlich. Im Maßstab einer Organisation wie GitHub ist atomare Rotation unsinnig. 

Echte Rotation wählt also einen von zwei Wegen, beide unvollkommen. Die routinemäßige Rotation hält beide Anmeldeinformationen für ein Zeitfenster gültig, damit nichts kaputtgeht, was in Ordnung ist, wenn nichts falsch ist, aber die alten Anmeldeinformationen aktiv lässt. Die Reaktion auf Vorfälle tut das Gegenteil: Sie sperrt die alten Anmeldeinformationen sofort und akzeptiert, dass Dinge kaputtgehen, bis sie neu ausgestellt werden.

Ein Break-Glass-Button ermöglicht die einzige wirklich atomare Aktion: alle Anmeldeinformationen im Geltungsbereich auf einmal zu deaktivieren. Sicher, das unterbricht CI/CD. Aber einen Angreifer aus Ihrer Infrastruktur zu entfernen, ist viel wichtiger und ein paar Stunden oder Tage kaputter Builds wert.

Bisher war es einfach schwierig, alle Anmeldeinformationen auf einmal zu kappen. Dieser neue Ein-Aktions-Cutoff macht es unter Druck ausführbar, und obwohl eine vollständige atomare Rotation noch recht schwer fassbar ist, bringt uns dies der idealen Welt näher. 

Was zu tun ist

Bestätigen Sie in Ihrer GitHub-Organisation, dass die Berechtigung „Manage enterprise credentials“ jemandem zugewiesen ist, der sofort handeln kann, und tun Sie dies bevor ein Vorfall eintritt. Überprüfen Sie jetzt Einstellungen > Anmeldeinformationen, um zu verstehen, was im Geltungsbereich liegt.

Während Sie Ihre Sicherheitseinstellungen aktualisieren, pinnen Sie Ihre GitHub Actions an vollständige Commit-SHAs statt an Versionstags. Tags können per Force-Push auf völlig anderen Code zeigen, was die Kerntechnik hinter der Trivy-Kompromittierung ist. Ein gepinnter Commit-SHA kann nicht verschoben werden.

Aikido Security überwacht Ihre Anwendungen in Echtzeit auf kompromittierte Pakete. Wenn etwas in Ihrer Pipeline vergiftet wird, erhalten Sie eine Warnung, bevor der Credential Harvester ausgeführt wird. Dies wird von Aikido Intel unterstützt, das neue Paketversionen analysiert, sobald sie live sind.

Vielen Dank für all die Updates, Microsoft. Bitte halten Sie uns auf dem Laufenden. 🙏

Teilen:

https://www.aikido.dev/blog/github-break-glass-credential-revocation

Nachrichten abonnieren

4.7/5
Falschpositive Ergebnisse leid?

Probieren Sie Aikido, wie 100.000 andere.
Jetzt starten
Erhalten Sie eine personalisierte Führung

Von über 100.000 Teams vertraut

Jetzt buchen
Scannen Sie Ihre App nach IDORs und realen Angriffspfaden

Von über 100.000 Teams vertraut

Scan starten
Erfahren Sie, wie KI-Penetrationstests Ihre App testen

Von über 100.000 Teams vertraut

Testen starten

Sicherheit jetzt implementieren

Sichern Sie Ihren Code, Ihre Cloud und Ihre Laufzeit in einem zentralen System.
Finden und beheben Sie Schwachstellen schnell und automatisch.

Keine Kreditkarte erforderlich | Scan-Ergebnisse in 32 Sek.