Angriffe verwenden gestohlene Anmeldeinformationen, um einen geheimen Steler in GitHub Actions einzufügen

Autor: Veröffentlicht 6 min de lectura 7 Lesen

Die Bilder in diesem Artikel wurden mit künstlicher Intelligenz erstellt. So veröffentlichen wir

Seit Dienstag haben Angreifer mit gestohlenen Anmeldeinformationen von 4,837 GitHub-Konten eine geheime stehlen in der kontinuierlichen Integration (CI) von Repositorien, zu denen diese Konten schreiben könnten, nach der technischen Analyse der Firma Aikido Security. Der schädliche Code wurde entworfen, um jedes Geheimnis oder Anmeldeinformationen im Rahmen von GitHub Actions-Ausführungen auszufiltern und in Cloud-Konten mit OIDC-Token und anderen Anmeldeinformationen zu schwenken, die er vom Läufer erholte.

Die von Aikido und anderen Unternehmen bestätigten Tatsachen, die komplementäre Analysen veröffentlicht haben, sind auf mehrere Punkte klar: Der Angreifer hat erste Tests mit den "Doktoren: Abhängigkeits-Auditnoten" von Zweigen mit dem Namen wfx-docs in mindestens 61.764 sichtbaren öffentlichen Repositories für Aikido eröffnet; in 1.806 dieser Repositories kam der Steler hingerichtet und vermutlich ausgefilterte Daten; und wurden insgesamt 4,837 Konten verwendet. SafeDep, der einen unabhängigen Sweep machte, zählte 8,093 Repositories, die schädliche Verpflichtungen in dem von ihnen analysierten Fenster erhielten, was darauf hindeutete, dass die tatsächliche Reichweite größer sein kann, weil beide zählt nur betrachten Standardzweige und öffentliche Repositories für jeden Forscher sichtbar.

Angriffe verwenden gestohlene Anmeldeinformationen, um einen geheimen Steler in GitHub Actions einzufügen
Bild generiert mit IA.

Technisch verfolgte der Angriff ein repetitives Muster: eine PR von wfx-docs zu öffnen, um zu überprüfen, ob das angegriffene Konto eine schriftliche Genehmigung hatte; wenn die Prüfung positiv war, wurde ein Schritt (Workflow) oder ein Post-Installations-Hook in npm hinzugefügt, der ein Skript ausgeführt, dessen Summe SHA-256, 89695abb392d5cfd49726761e644b46b46b46b46ba988b986a98a98a98a98a98c Dieses binäre / Skript versucht, Schlüssel und Token aus mehreren lokalen Quellen des Läufers - Variablen und Geheimnis von Actions, GITHUB _ TOKEN, Token in Laufzeit, Beispiel Metadaten in selbst gehosteten Läufern, AWS / Azure / GCP Konfigurationsdateien, SSH-Tasten, Workflow-Geräte und sogar Restgeheimnisse im Prozessspeicher - und dann exfiltert HTTP POST zu beobachteten Servern (e).

Sobald der Stealer gültige OIDC- oder Token-Anmeldeinformationen erhalten hat, könnte er sie für AWS / GCP / Azure-Sessions austauschen und im Falle von AWS langfristige Zugangsschlüssel erstellen und die Vertrauenspolitik ändern, um Zugriff auf externe Konten zu ermöglichen. In Azure wurde die Erstellung von föderierten Anmeldeinformationen mit Präfixen wie wfx-ci- beobachtet, die eine dauerhafte föderierte Authentifizierung von Workflows ermöglichen. Mehrere dieser Operationen sind darauf ausgelegt, Schlüsseldrehungen zu widerstehen.

Die technischen Indikatoren von Aikido - Zweignamen (wfx-docs, chore / [a-z0-9] {8}, ci-check- [0-9] {4}), spezifischer PR-Titel, häufige Commit-Nachrichten (z.B. "ci: Fresh Build cache", "chore: add ci helper", "chore: add Abhängigkeit audit workflow") und der SHA-256 Druck der Payload - erlauben. Aikido betont auch, jedes Konto, das zur Eröffnung einer dieser PRs verwendet wird, sollte als beeinträchtigt angesehen werden selbst wenn der Steler nicht hingerichtet wurde, weil der Besitz von Anmeldeinformationen durch die Fähigkeit gezeigt wurde, Zweige und PRs von ihnen zu schaffen.

Praktische Auswirkungen und Anwendungsbereich: Neben den einzelnen Repositorys erreichte der Angreifer automatisierte Publikationspipelines und Pakete. Aikido identifiziert eine bösartige Version in Packagist (digitalelvis / neuronai-studio v3.14.3) und zwei Versionen eines Go-Moduls, die den Steler in seinem Workflow enthalten (github.com / onuragtas / docker-env v1.0.278 und v1.0.280). In einigen Fällen wurden der Quellcode oder die Binaries nicht geändert; das Risiko kam aus dem Vorhandensein der Nutzlast in Workflow-Dateien oder aus den Haken von npm Postinstall, die auf Entwicklermaschinen ausgeführt worden wäre. Diejenigen, die Pakete mit dieser Post-Installation oder ausgeführten npm-Installation in betroffenen Repositories installiert haben, müssen sich an der Maschine beteiligen und entsprechend handeln.

Ungewissheit ist bekannt: Die Analysen haben nicht öffentlich festgestellt, wie die Anmeldeinformationen der 4,837 Konten zunächst erhalten wurden; noch gibt es eine abschließende Zuschreibung des Schauspielers. Aikido weist auf eine Überschneidung mit Konten hin, die in der im Oktober als GhostAction bekannten Welle betroffen sind, aber die beiden Ereignisse nicht automatisch dem gleichen Betreiber zuordnen, weil die Infrastrukturen und Methoden Unterschiede zeigen und weil gestohlene Anmeldeinformationen unter mehreren Angreifern geteilt werden können.

Reale Folgen, die die Verantwortlichen annehmen müssen, sind Verlust von Geheimnissen und mögliche Eskalation in ganze Cloud-Umgebungen (Schlüssel-Erstellung, politische Änderung, Föderalisierung). In Repositories, in denen der Stealer geführt wurde, alles, was der Workflow lesen konnte, muss als kompromittiert betrachtet werden einschließlich Geheimaktionen, Variablen, Tokens OIDC und Rollen / Anmeldeinformationen in AWS / Azure / GCP.

Spezifische Maßnahmen und Priorisierung: Behandeln Sie zunächst jedes Konto, das einen Test als begangen eröffnete. Überprüfen Sie sofort persönlichen Zugriff Tokens, OAuth Stipendien, SSH Schlüssel und Sitzungen. Aktivieren Sie die Authentifizierung von zwei Faktoren (2FA) in Konten mit Schreibberechtigungen. In betroffenen Repositorien drehen und ersetzen alle die Geheimnisse und Variablen, die der Workflow lesen und betrachten könnte, alle zugänglichen API-Schlüssel aus dem Lauf zu regenerieren.

Zur Suche nach Hintertüren in der Cloud-Bewertung der folgenden Ereignisse und Objekte (vorgeschlagene Erkennungsformulare): in Azure AD, suchen Sie föderierte Anmeldeinformationen mit wfx-ci- * Präfix; in AWS CloudTrail suchen Sie nach AssumeRoleWithWebIdentity oder Sitzungen, deren Name wfx- * enthält, gefolgt von CreateAccessKey oder UpdateAssumeRolePolicy; Inspizieren Sie auch das Vault-Log für JWT-Login vom GitHub OIDC-Emitter. Diese Suchanfragen entsprechen den Signalen, die Aikido und SafeDep hervorgehoben haben.

Wenn Ihr Repository den böswilligen Commit erhalten hat, aber der Workflow nicht ausgeführt werden konnte, erhebt es immer noch die Anmeldeinformationen des Autors und löst Geheimnisse: Aikido erklärt, dass die bloße Möglichkeit, Commits zu drücken, die Kontokontrolle bestätigt. Wenn Sie eine npm-Installation in einer Kopie, die den schädlichen Haken enthält, behandeln Sie die Maschine als Kompromisse: machen Sie eine Neuinstallation von Kratzern, widerrufen lokal gespeicherte Anmeldeinformationen und rotieren API und Token von dieser Umgebung verwendet.

Angriffe verwenden gestohlene Anmeldeinformationen, um einen geheimen Steler in GitHub Actions einzufügen
Bild generiert mit IA.

Um die Oberfläche in Zukunft zu reduzieren, wenden Sie die Härtungspraktiken für GitHub-Aktionen an: gewähren Sie so wenig Privileg wie möglich für Token, begrenzen GITHUB _ TOKEN's Berechtigungen und ermöglichen OIDC-Authentifizierung mit Audit; verwenden Sie selbstgehostete Läufer mit Isolation und ohne zugängliche Metadaten, wenn nicht erforderlich; und setzen Sie Regeln, um Verpflichtungen oder PRs von verdächtigen Zweigen oder Nachrichten zu blockieren. GitHub hält Dokumentation über Härten und OIDC, die als praktische Anleitung dienen können: GitHub - Sicherheitshärten mit OpenID Connect und GitHub - Sicherheitshärten für GitHub Actions.

Darüber hinaus werden Audit-STS- und OIDC-Aktivitäten in Cloud-Lieferanten, beispielsweise die AWS-API für AssumeRoleWithWebIdentity und ihre Verwendung dokumentiert: AWS STS - AssumeRoleWithWebIdentity. Diese Suchvorgänge helfen, Versuche zu erkennen, Token auszutauschen und Schlüssel zu erstellen, die der Stealer nutzt.

Abstract: Die Kampagne hat ein automatisiertes und effektives Muster gezeigt: Verwendung von gestohlenen Anmeldeinformationen, um einen Stealer in Workflows und Haken einzufügen, die Geheimnisse ausfiltern und in Cloud-Umgebungen klettern. Wenn Ihre Organisation GitHub-Aktionen verwendet, sollte jedes Repository, in dem ein Konto die Test-PR geöffnet hat, bis zum Widerruf von Anmeldeinformationen, die Rotation von Geheimnissen und das Audit von Cloud und Läufern als gefährdet angesehen werden. Das Fehlen einer klaren Zuschreibung und die Möglichkeit, dass der Schauspieler durch die Föderation fortbesteht, bedeuten, dass die Antwort breit und schnell sein muss.

Deckung

Verwandte Artikel

Weitere Neuigkeiten zum selben Thema.