Ausnutzung von Schwachstellen
Mehr Sicherheit für die Software Supply Chain
Angreifer nutzen unterschiedliche Supply Chain-Szenarien, um indirekt Unternehmen und Anwendungen zu kompromittieren. Wie haben derartige Szenarien untersucht und zeigen, was und welche Frameworks wichtig für die Sicherheit der Lieferkette sind.
Angriffe über die Software Supply Chain sind mittlerweile eine der am häufigsten genutzten Methoden zur Kompromittierung von Systemen. Darüber versuchen Angreifer einen ersten Zugang zu den Systemen der Opfer zu erhalten, und ermöglichen es, innerhalb kurzer Zeit eine größere Anzahl von Opfern auf einmal anzugreifen. Um ihre Systeme effektiv vorzubereiten und abzusichern, sollten Unternehmen die relevanten Komponenten und die entsprechenden Angriffe auf diese kennen.
Wir zeigen verschiedene Supply Chain-Szenarien, die Angreifer genutzt haben, um Unternehmen und ihre Anwendungen indirekt zu kompromittieren, und wo möglich korrelieren wir sie mit den Security Frameworks Supply Chain Levels for Software Artifacts (SLSA) und MITRE ATT&CK.
Die SLSA-Spezifikation ist ein End-to-End-Framework, das von Google entwickelt wurde, um die Integrität von Software-Artefakten in der gesamten Supply Chain sicherzustellen. Sie ist in aufeinander aufbauende Stufen gegliedert, wobei jede Stufe eskalierende Sicherheitsgarantien bietet. Das MITRE ATT&CK Framework ist dagegen eine weltweit zugängliche Wissensbasis über die Taktiken und Techniken der Angreifer, die auf realen Beobachtungen der von den Bedrohungsakteuren bei tatsächlichen Angriffen angewandten Methoden beruht
Traditionelle versus Software Supply Chain
Eine herkömmliche Supply Chain ist ein Netzwerk miteinander verbundener Organisationen, Ressourcen, Aktivitäten und Technologien, die Waren oder Dienstleistungen herstellen, vertreiben und an den Endverbraucher liefern. Sie umfasst alle Schritte, die erforderlich sind, um ein Produkt oder einen Service vom anfänglichen Rohmaterialstadium bis zu der Auslieferung an den Endkunden. Je nach Art des Produkts und der Komplexität der Supply Chain können an diesen Stufen Lieferanten, Hersteller, Vertriebsunternehmen, Einzelhändler und andere Zwischenhändler beteiligt sein.
Die Software Supply Chain wiederum ist ein Netzwerk miteinander verbundener Komponenten, Prozesse und Technologien, die zur Erstellung und Verteilung von Software eingesetzt werden. Sie beinhaltet verschiedene Prozesse wie die Entwicklung, das Testen und die Auslieferung von Softwareprodukten an Kunden. Unternehmen können effiziente, sichere und zuverlässige Softwareentwicklungs- und -bereitstellungsprozesse erreichen, indem sie die Komponenten und Prozesse der Software Supply Chain verwalten und optimieren.
Szenarien aus der Praxis
Anhand einer Reihe von Szenarien aus der Praxis kann man sehen, wie der Missbrauch einer Software Supply Chain in unterschiedlichen Stufen aussieht.
SLSA | MITRE ATT&CK |
Submit unauthorized code changes | Unsecured Credentials (T1552) |
Compromise source repo | Valid accounts (T1078) |
Build from a modified source | Supply Chain Compromise: Compromise Software Dependencies and Development Tools (T1195.001) |
Compromise build process | Supply Chain Compromise: Compromise Software Supply Chain (T1195.002) |
Use compromised dependency | Supply Chain Compromise: Compromise Software Dependencies and Development Tools (T1195.001) |
Upload modified package | Malicious Image (T1204.003) |
Compromise package repo | Supply Chain Compromise: Compromise Software Supply Chain (T1195.002) |
Compromise container registry | Implant Internal Image (T1525) |
Deploy compromised container | Malicious Image (T1204.003) |
Attack an exposed or misconfigured cluster | Container Administration Command (T1609) |
Exploit running application | Exploit Public-Facing Application (T1190) |
Tabelle 1. Angriffsszenarien laut SLSA
Es folgen Beispiele aus der Supply Chain-Kompromittierungsliste der Cloud Native Computing Foundation (CNCF) und auch solche aus der Tabelle 1:
- Codecov. Es handelt sich um ein Entwicklertool. Leider konnte ein unbekannter Hacker aufgrund eines Fehlers bei der Erzeugung von Docker-Images auf das Uploader-Skript der Entwickler zugreifen. Dieser Fehler ermöglichte es, die erforderlichen Anmeldeinformationen abzurufen und das Bash-Skript zu ändern.
- SolarWinds. Bei dem ausgeklügelten Supply Chain-Angriff von SolarWinds fügten die Täter während des Build-Prozesses der Software eine bösartige Backdoor, SUNBURST, in die Orion-Softwareplattform von SolarWinds ein. Dieser bösartige Code wurde dann über routinemäßige Software-Updates an die Kunden verteilt. Sobald er installiert und aktiviert war, kommunizierte die Malware mit einem von den Angreifern betriebenen Server und übermittelte Informationen über die infizierten Systeme. Die Angreifer nutzten diese, um hochwertige Ziele zu identifizieren und weiter zu infiltrieren, indem sie Anmeldeinformationen stahlen, ihre Rechte ausweiteten und Daten exfiltrierten.
- PEAR PHP Package Manager. Ist eine Komponente des PHP Entwickler-Ökosystems und wurde über eine Passwort-Resetlücke und eine nicht gepatchte bekannte CVE bei einem Drittanbieter kompromittiert.
- Log4j. Die Log4j Remote Code Execution (RCE)-Schwachstelle ist eine schwerwiegende Sicherheitslücke in der Java-Protokollierungsbibliothek Log4j. Einzelheiten dazu liefert der Originalbeitrag.
- Monero CLI Binaries. Die ausführbaren Dateien der Monero-CLI-Wallet wurden kompromittiert, so dass Benutzern eine infizierte Version einsetzten, die zwei bösartige Funktionen umfasste, um den Seed von jedem zu stehlen, der seine Wallet erstellte oder öffnete.
Der Originalbeitrag enthält weitere mögliche Supply Chain-Angriffsszenarien, über die wir bereits berichteten. Dazu gehören der Einsatz von kubectl Plugins von Drittanbietern, die Verwendung von Artifact, Helm und ArgoCD und exponierte Open Policy-Agent Server.
SLSA und MITRE ATT&CK
Wir können auch die SLSA-Bedrohungen in der Supply Chain mit den entsprechenden ATT&CK-Techniken von MITRE in Beziehung setzen. Abbildung 6 zeigt ein Diagramm der ATT&CK-Techniken und anderer Supply-Chain-Szenarien, die während des Softwareentwicklungszyklus auftreten können:
Weitere Vergleiche beinhaltet der Originalbeitrag.
Fazit
Die Verwaltung einer effizienten und sicheren Software Supply Chain ist nicht einfach. Unternehmen müssen sich viel stärker auf Bibliotheken und Systeme von Drittanbietern verlassen, als ihnen vielleicht bewusst ist. Daher geht es beim Schutz von Anwendungen und Systemen nicht nur um den Schutz des Codes und der internen Assets, sondern auch um einen ganzheitlichen Ansatz für die Software Supply Chain, bei dem alle Komponenten und Prozesse berücksichtigt werden.
Dafür sollten Unternehmen bei der Nutzung von Standard-Frameworks auch die notwendigen Vorkehrungen treffen, um die Angriffsfläche zu verringern und den Explosionsradius im Falle einer Kompromittierung zu minimieren. Ein entscheidender Aspekt dieses Ansatzes besteht darin, den verwendeten Bibliotheken, Tools und Paketen zu vertrauen, sie jedoch stets zu überprüfen und Sicherheitstools und -prozesse in die Anwendungen einzubetten, wann immer dies möglich ist.