kompromittierte Lieferkette: die Injektion in GitHub-Aktionen, die eine PR in eine schädliche Freigabe von Elementardaten verwandelt

Veröffentlicht 4 min de lectura 90 Lesen

Ein sehr gebrauchtes Paket im dbt-Ökosystem, Elementardaten, wurde in PyPI und in den Containerrekord des Projekts nach einem schädlichen Schauspieler injiziert Code in den GitHub Actions-Workflow des Projekts. Die betroffene Version ist 0,23,3, die ein böswilliges Elementar enthalten. pth-Datei entwickelt, um zu Beginn des Python-Interpreters laufen und lokale Geheimnisse, Cloud-Berechtigungen, Kryptomoneda-Wandet-Dateien und andere sensible Daten zu extrahieren. Das Projektteam hat schnell eine saubere Version veröffentlicht, Element aber diejenigen, die bereits die 0.23.3 installiert haben oder kompromittierte Bilder verwendet haben, bleiben gefährdet.

Nach der verfügbaren technischen Analyse musste der Angreifer die Wartungskonten nicht kompromittieren: a Injektionsverwundbarkeit in einer Kopie-Anforderung Kommentar, die erlaubt, die angreifergesteuerte Shell innerhalb einer GitHub Aktion ausgeführt werden. Diese Ausführung durchlief die GITHUB _ TOKEN aus dem Workflow, zwang eine unterzeichnete Kommission und Label (v0.23.3) und feuerte die legitime Veröffentlichung Pipeline, die sowohl das Paket zu PyPI und ein bösartiges Bild zu GitHub Container Registry gebaut und hochgeladen, so dass es das Aussehen der offiziellen Start. Eine detaillierte technische Analyse ist im StepSecurity-Bericht verfügbar: StepSecurity - Vorfallanalyse.

kompromittierte Lieferkette: die Injektion in GitHub-Aktionen, die eine PR in eine schädliche Freigabe von Elementardaten verwandelt
Bild generiert mit IA.

Die Implikationen sind vielfältig und ernst für Projekte, die Datenpipeline betreiben oder Container bereitstellen: die Software-Versorgungskette kann verletzt werden, ohne menschliche Anmeldeinformationen zu brechen, einfach unter Ausnutzung schlecht konfigurierter Automatisierungsströme. In diesem Fall war die Gefahr, die in Produktionsumgebungen verbrauchten Artefakte automatisch zu klettern, was die Belichtungsfläche erhöht und die Eindämmung erschwert, wenn nicht bald erkannt wird.

Wenn Sie Umgebungen verwalten, die Elementardaten verwenden, handeln Container, die vom Projekt veröffentlicht werden oder Abhängigkeiten, die nicht explizit auf Versionen gesetzt werden, mit Priorität. Drehen Sie alle potenziell exponierten Anmeldeinformationen und Schlüssel (Repository-Token, SSH-Schlüssel, Cloud-Anmeldeinformationen, API-Schlüssel und Billet-Phrasen / Dateien), verlassen Sie aus Service oder widerrufen Sie Bilder mit ghcr.io / elementar-data / elementar: 0.23.3 und ghcr.io / elementar-data / elementar: neuste, um Integrität zu überprüfen und Systeme aus gesunden bekannten Punkten wiederherzustellen. Darüber hinaus inspiziert es Maschinen und Rohrleitungen für ungewöhnliche Aktivitäten und sucht nach Dateien wie z.B. elementar. pth in Paketen, die in virtuellen Umgebungen und Containern installiert sind; es hält Protokolle und Geräte für forensische Analyse vor der Beweisaufnahme.

Um zukünftiges Risiko in Ihren Projekten zu reduzieren, überprüfen und festigen, wie Ihre Projektarchive GitHub-Aktionen verwenden: vermeiden Sie unzuverlässigen Quellcode ohne Mediation, verwenden Sie nicht Pull _ Anfrage _ Ziel, wenn der Job Zugriff auf Anmeldeinformationen benötigt, begrenzen GITHUB _ TOKEN's Berechtigungen auf das Minimum erforderlich und deaktivieren Sie Token Persistenz in Aktionen / Checkout ( Dauer) gegebenenfalls. Es wertet die Verwendung von signierten Releases, Signaturen und Verifikationstools wie Sigstore / Cosign und Richtlinien, die eine Überprüfung der Workflow-Änderungen erfordern, bevor sie akzeptiert werden. GitHub veröffentlicht Action Hardening Guides, die verfolgt werden sollten: Sicherheitsschande für GitHub Aktionen.

kompromittierte Lieferkette: die Injektion in GitHub-Aktionen, die eine PR in eine schädliche Freigabe von Elementardaten verwandelt
Bild generiert mit IA.

Zusätzliche Hygienetechniken, die angenommen werden sollten, sind die Einstellung von Versionen und die Überprüfung von Hashen in Rohranlagen (z.B. Dateien von Anforderungen mit Hashes erfordern), das Scannen von Einheiten und Behältern vor dem Einsatz und die Verwendung von kurzfristigen oder eingeschränkten Token für automatisierte Ströme. Wenn Sie nicht in der Lage waren, zu bestätigen, dass Ihre installierte Version 0,21.4 oder später ist, nehmen Sie Engagement und handeln, als ob Ihre Geheimnisse ausgefiltert worden wären.

Auf Gemeinschaftsebene unterstreicht diese Intrusion, dass die Sicherheit der Lieferkette sowohl Betreuer als auch Verbraucher beinhaltet: die Aufrechterhaltung guter Praktiken in CI / CD, die Überprüfung von Kommentaren und PRs, wenn Workflows Code ausführen können und die Einführung automatischer Kontrollen für Workflows fördern, sind Maßnahmen, die das gesamte Ökosystem schützen. Sicherheits- und Entwicklungsteams sollten Antwortverfahren koordinieren, die Erkennung, Eindämmung, Tilgung und Berichterstattung an betroffene Dritte beinhalten.

Wenn Sie schnelle Betriebsschritte benötigen: es bestätigt die Version des Pakets (Pipe-Show oder Pipe-Liste), Suche nach Elementar. pth in den betroffenen Umgebungen, revoke and reissue engagierte Anmeldeinformationen, rekonstruieren Container aus verifizierten Quellen und aktualisieren Abhängigkeiten zu sicheren Versionen. Für mehr Kontext und Metriken der Nutzung des Pakets können Sie die öffentlichen Statistiken in PyPI Statistiken sehen: PyPI-Staaten - elementare Daten. Die Reaktionsgeschwindigkeit der Gemeinschaft war in diesem Fall entscheidend, aber die Lektion ist klar: um sicher zu automatisieren und davon auszugehen, dass Bauwerkzeuge Angriffsvektoren werden können, wenn sie nicht richtig kontrolliert werden.

Deckung

Verwandte Artikel

Weitere Neuigkeiten zum selben Thema.