13 Februar 2024 / 15 Minuten Lesedauer
Die Schwachstelle:
Wir haben eine kritische Schwachstelle gefunden, auf die jeder Entwickler achten muss: die Möglichkeit, bösartigen Code direkt in der Produktionsumgebung bereitzustellen. Dies war nicht nur hypothetisch; unsere Beurteilung wurde erfolgreich durchgeführt.
Detailangaben:
Fehlkonfigurierter Bereitstellungsworkflow: Der Kern des Problems liegt in der CI/CD-Pipeline (Continuous Integration/Continuous Deployment). Bei diesem entscheidenden Prozess fehlten die erforderlichen Sicherheitsvorkehrungen, um sicherzustellen, dass jeder bereitgestellte Code gründlich überprüft und genehmigt wurde. Das Fehlen dieser Schutzmaßnahmen ist eine Einladung für Angreifer.
Ausnutzung von Schwachstellen:
Unter Nutzung der Lücken in der CI/CD-Pipeline konnten wir eine NodeJS-Webshell, eine Art bösartiger Code, der einem Angreifer eine Remote-Befehlszeilenschnittstelle zum Webserver bietet, in der Produktionsumgebung bereitstellen. Dies war nicht irgendeine Produktionsumgebung, sondern eine, die sich in einem OCP4-Cluster (OpenShift Container Platform 4) befand, der typischerweise für seine robusten Sicherheitsfunktionen bekannt ist.
Warum ist das geschehen?
Es gibt mehrere Faktoren, die zu dieser Verwundbarkeit beigetragen haben:
Abhilfe schaffen:
Um diese klaffende Sicherheitslücke zu schließen, empfehlen wir folgende Schritte:
Dieser Vorfall unterstreicht die Notwendigkeit von Wachsamkeit und strengen Sicherheitsprotokollen in der heutigen digitalen Landschaft. Es ist ein Aufruf zum Handeln für Unternehmen, ihre Cybersicherheitsstrategien neu zu bewerten und zu stärken.
Im Bereich des Quellcode-Managements ist GitHub ein Titan, der Millionen von Code-Repositories hostet. Es ist jedoch wichtig zu wissen, wie man Daten in Repositories speichert. Wir haben eine erhebliche Sicherheitsfehlkonfiguration gefunden und hervorgehoben: das Fehlen eines ordnungsgemäß konfigurierten Secret-Scans. Diese Aufsicht unterstreicht die Bedeutung der Einhaltung von Best Practices bei der Repository-Verwaltung, um die Datenintegrität und -sicherheit zu gewährleisten.
Die Schwachstelle:
Unsere Bewertung hat ergeben, dass das geheime Scannen, eine automatisierte Funktion in GitHub (https://docs.github.com/en/code-security/secret-scanning/about-secret-scanning), die darauf abzielt, sensible Informationen wie Passwörter und private Schlüssel zu erkennen, nicht aktiviert wurde. Darüber hinaus wurde kein Schutz und keine Erkennung gegen das Speichern sensibler Daten in Repositories angewendet. Dadurch sind Repositories anfällig für die versehentliche Offenlegung sensibler Daten.
Detailangaben:
Enthüllte Geheimnisse: Ohne Secret-Scannen können sensible Daten versehentlich in öffentliche oder private Repositories übertragen werden, was ein erhebliches Sicherheitsrisiko darstellt.
Mögliche Auswirkungen:
Warum ist das geschehen?
Die mangelnde Konfiguration des Secret-Scannens kann auf Folgendes zurückzuführen sein:
Abhilfe schaffen:
Um diese Sicherheitsanfälligkeit zu verringern, sollten sofort die folgenden Schritte unternommen werden:
Es ist wichtig zu erkennen, dass die Sicherung von Code-Repositories genauso wichtig ist wie die Sicherung der Infrastruktur, für die sie bereitgestellt werden.
Vor kurzem haben wir einen bekannten Bypass verwendet, um GitHub Actions Branch Protection Rules auszunutzen, eine Funktion, die für die Aufrechterhaltung der Integrität von Code in mehreren Entwicklungsumgebungen von entscheidender Bedeutung ist.
Die Schwachstelle:
Im Wesentlichen dreht sich diese Sicherheitsanfälligkeit um die unbefugte Umgehung von Branch-Schutzmechanismen in Github. Branch-Schutzregeln sind entscheidend, um sicherzustellen, dass Änderungen an wichtigen Filialen ordnungsgemäße Überprüfungen und Genehmigungen erfordern. Ein bekannter Bypass, den wir im System von GitHub verwendet haben, ermöglicht die Ausnutzung von GitHub-Aktionen, um den obligatorischen Überprüfungsprozess zu umgehen. Dieser Verstoß ermöglicht das unbefugte Einfügen von nicht überprüftem Code in einen sicheren Branch. Eine solche Lücke könnte zur unbeabsichtigten Verwendung von schädlichem Code durch andere Benutzer oder zur unbeabsichtigten Integration in die Produktionspipeline führen.
Detailangaben:
Bypass-Mechanismus: Bei der Ausnutzung wurden die Berechtigungen von Github-Aktionen ausgenutzt. Durch die Verwendung von Schreibberechtigungen für den Pull-Requests-API-Endpunkt können wir eine Pull-Request erstellen, um bösartigen Code in einen geschützten Branch zusammenzuführen. Obwohl ein solcher Pull-Request in der Regel nicht ohne Genehmigung zusammengeführt werden kann, könnte der Github-Actions-Bot, der mit dem GITHUB_TOKEN verknüpft ist, ihn genehmigen. Da der Bot kein Organisationsmitglied ist, aber immer noch für Genehmigungszwecke zählt, ermöglicht er es einem Angreifer, die Pull-Anforderung selbst zu genehmigen und die Branch-Schutzmechanismen effektiv zu umgehen. Dieser Verstoß ermöglicht das unbefugte Einfügen von nicht überprüftem Code in einen sicheren Branch. Eine solche Lücke führt uns zu einer nicht autorisierten Code-Integration in die Produktionsumgebung.
Risiken und Bedrohungen:
Warum ist das geschehen?
Dieses Problem ergibt sich aus einer Lücke in den Einstellungen von Github, die es GitHub Actions ermöglichte, Pull-Anfragen zu genehmigen, ein Standard, der in bestehenden Organisationen nicht sicher war.
Abhilfe schaffen:
Um diesem erheblichen Risiko zu begegnen, werden folgende Lösungen vorgeschlagen:
Diese Schwachstelle unterstreicht die entscheidende Bedeutung ständiger Wachsamkeit und regelmäßiger Aktualisierungen der Sicherheitskonfigurationen in allen Aspekten des Entwicklungsbetriebs. Durch die Umsetzung der empfohlenen Änderungen können Unternehmen ihren Code vor solchen Sicherheitslücken schützen und das Vertrauen in ihre Bereitstellungsprozesse stärken.
Die Integrität jeder Entwicklungspipeline hängt von der Sicherheit und dem kontrollierten Zugriff auf ihre Artefakte ab. Bei einer kürzlich durchgeführten Sicherheitsbewertung ist es uns gelungen, eine klaffende Lücke im Artifactory-Dienst zu nutzen, um uns ohne ausdrückliche Genehmigung anzumelden.
Die Schwachstelle:
Artifactory ermöglicht es jedem Domänenbenutzer, sich anzumelden, ohne explizite Berechtigungen zu benötigen. Nach der Anmeldung kann der Benutzer Artefakte anzeigen, herunterladen und Schwachstellenberichte von Xray-Scans überprüfen, die sich auf die Repositories beziehen.
Detailangaben:
Übermäßig zulässige Zugriffskontrollen: Die Standardkonfiguration erlaubte jedem Benutzer innerhalb der Domäne, auf den Artifactory-Dienst zuzugreifen. Diese Art der Konfiguration vernachlässigt das Prinzip der geringsten Privilegien, das für die Sicherung sensibler Daten unerlässlich ist.
Auf diese Weise werden jedem Domänenbenutzer viele sensible Informationen zur Verfügung gestellt. Die Fähigkeit zu erkennen, welche Anwendungen kritische Schwachstellen enthalten, kann von böswilligen Akteuren genutzt werden, um diese Schwachstellen auszunutzen. Darüber hinaus können Artefakte sensible Daten enthalten, da kein vorgeschriebenes Scannen solcher Daten erfolgt.
Risiken und Folgen:
Warum ist das geschehen?
Die Gründe für diese Fehlkonfiguration können sein:
Abhilfe schaffen:
Die Behebung dieser Schwachstelle erfordert eine strategische Überarbeitung der Zugriffsberechtigungen:
Das Risiko einer künstlichen Datenexposition erinnert eindringlich daran, dass selbst die vertrauenswürdigsten Dienste innerhalb der Entwicklungspipeline auf Sicherheitslücken untersucht werden müssen. Durch entschlossene Maßnahmen zur Korrektur dieser Fehlkonfigurationen können Unternehmen ihre Abwehr gegen externe und interne Bedrohungen verstärken.
Die Agilität und Skalierbarkeit von containerisierten Umgebungen kann auch erhebliche Sicherheitsrisiken mit sich bringen, wenn sie nicht ordnungsgemäß verwaltet wird. Eine kürzlich durchgeführte Bewertung hat Aufschluss über eine schwerwiegende Fehlkonfiguration innerhalb eines OpenShift-Clusters gegeben und eine Schwachstelle aufgezeigt, die schwerwiegende Auswirkungen auf die Netzwerksicherheit haben könnte.
Die Schwachstelle:
Im Rampenlicht steht ein Konfigurationsfehler in OpenShift, einer beliebten Container-Orchestrierungsplattform. Diese Fehlkonfiguration ermöglichte es Pods (die kleinsten einsetzbaren Recheneinheiten, die in OpenShift erstellt und verwaltet werden können), die IP-Adresse des Host-Computers und sogar das gesamte Host-Subnetz zu erreichen. Laienhaft ausgedrückt: Wenn ein Pod kompromittiert würde, hätte der Angreifer uneingeschränkten Zugriff auf potenziell sensible interne Netzwerkressourcen.
Detailangaben:
Weitreichende Netzwerksichtbarkeit: Diese Fehlkonfiguration war nicht trivial; sie bedeutete, dass ein bereitgestellter Pod in OpenShift eine Vielzahl interner Systeme sehen und möglicherweise mit ihnen interagieren konnte. Diese Art von Zugang ist vergleichbar damit, jemandem die Schlüssel zum Königreich zu geben, und könnte mit verheerender Wirkung ausgenutzt werden.
Risiken und Folgen:
Warum ist das geschehen?
Die Grundursache für diese Fehlkonfiguration könnte sein:
Abhilfe schaffen:
Um diese gefährliche Aufsicht zu korrigieren, sollten Organisationen die folgenden Maßnahmen ergreifen:
Dieses Beispiel der OpenShift-Fehlkonfiguration dient als Warnung vor der kritischen Notwendigkeit strenger Netzwerksicherheitspraktiken in containerisierten Umgebungen. Durch sorgfältiges Management und ständige Wachsamkeit können Unternehmen ihre Netzwerke vor solchen Schwachstellen schützen.
Die Schwachstelle:
Vor kurzem haben wir ein eklatantes Problem in der Repository-Konfiguration von GitHub hervorgehoben, bei dem Quellcodes von Anwendungen in einer GitHub-Organisation gespeichert wurden, was die Tür zu einer Schwachstelle öffnet, die zu nicht autorisierten und potenziell schädlichen Bereitstellungen führen könnte.
Detailangaben:
Der Kern dieses Problems liegt in der Permissivität der Standard-Repository-Konfigurationen und dem Fehlen strenger Flusskontrollmechanismen. Da es keine Zweigschutzregeln, keine Umgebungen mit Schutzregeln und Geheimnissen gibt, ermöglicht diese Situation jedem, der Schreibzugriff auf das Repository hat, potenziell bösartige Aktivitäten auszuführen, wie das Lesen aller Geheimnisse, das Erstellen von Artefakten (einschließlich bösartiger), das Entfernen statischer Quellcodeanalyseprüfungen in der Pipeline und möglicherweise das Ausnutzen selbst gehosteter Runner.
Risiken und Folgen:
Warum ist das geschehen?
Dieses Problem ergibt sich oft aus:
Abhilfe schaffen:
Um solche unbefugten Einsätze zu verhindern und die Sicherheit zu erhöhen, werden folgende Schritte empfohlen:
Als nächstes ging es darum, eine Schwachstelle in der Art und Weise aufzudecken, wie Artefakte verwaltet und bereitgestellt werden. Dieses Problem könnte, wenn es nicht kontrolliert wird, den Weg für erhebliche Sicherheitsbedrohungen in Produktionsumgebungen ebnen.
Die Schwachstelle:
Während des Bereitstellungsprozesses von Artefakten, die in Artifactory gespeichert sind, haben wir festgestellt, dass Artefakte, auch solche mit kritischen oder hochgradigen Schwachstellen, ohne eine Überprüfung vor der Bereitstellung in Produktionsumgebungen bereitgestellt werden können. Dieser Fehler im Verifizierungsprozess lässt die Produktionsumgebung für potenzielle Sicherheitsverletzungen offen.
Artifactory X-Ray: Node. Js Webshell-Docker-Image mit kritischer Schwachstelle. Später in der Produktion eingesetzt
Wir sind uns bewusst, dass das Blockieren aller anfälligen Artefakte den Build-/Bereitstellungsprozess stören und geschäftliche Auswirkungen haben könnte. Dennoch sollten diese Schwachstellen zumindest vor dem Einsatz überprüft und genehmigt werden, um das Risiko der Einführung von Sicherheitslücken in die Produktionsumgebung zu verringern.
Auswirkung:
Die potenziellen Auswirkungen des Einsatzes gefährdeter Artefakte sind weitreichend und alarmierend:
Die Lösung:
Um diese Risiken zu mindern, werden folgende Maßnahmen dringend empfohlen:
Zusammenfassung:
Unser Ziel war es, alle Sicherheitsmaßnahmen zu umgehen und Schadcode in der Produktionsumgebung mit Wissen und Zugriff auf die OCP4-Konfiguration und die gesamte CI/CD-Pipeline und den zugewiesenen Namespace im Cluster bereitzustellen.
Wir haben festgestellt, dass das Szenario durch Ausnutzung einer Kette von Fehlkonfigurationen und Schwachstellen realisierbar ist, die in den folgenden Abschnitten speziell beschrieben werden:
Am Ende war es uns gelungen, die bösartige Anwendung - NodeJS-Webshell - in einer Produktionsumgebung innerhalb eines OCP4-Clusters bereitzustellen. Wir möchten die Bedeutung der Verantwortung der Entwickler hervorheben und wie eine Kombination kleiner Schwachstellen zu einer kritischen Situation führen kann, in der all die harte Arbeit und die Sicherheit von Unternehmen in Gefahr sein können.
Sind Sie sich bei der Sicherheit Ihres Pipelines nicht sicher? Testen Sie es mit uns.
Melden Sie sich für unseren Newsletter an, um alle wichtigen Neuigkeiten zur Cybersicherheit und zum ethischen Hacking zu erhalten.