Container-Schwachstellen erkennen
Tipps und Tools für eine sichere Containernutzung
Foto: Maha Heang 245789 - shutterstock.com
Eine Umfrage der Cloud Native Computing Foundation (CNCF) hat gezeigt, dass mittlerweile fast alle Unternehmen Containertechniken wie Kubernetes entweder aktiv nutzen oder sie zumindest in Erwägung ziehen. Container haben den Vorteil, dass sie die Bereitstellung und den Betrieb von Anwendungen vor allem in der Cloud deutlich vereinfachen. Trotzdem birgt die Technik auch Sicherheitsrisiken.
Die Sicherheit von Containern ist komplex und erfordert die richtige Kombination aus Menschen, Prozessen und Technologie. Die im Folgenden beschriebenen Praktiken und Tools können helfen, die Containernutzung sicherer zu gestalten.
Container sind ein integraler Bestandteil der Cloud-Sicherheit
Zunächst ist es wichtig, die Rolle und die Wechselwirkungen von Containern in Cloud-Umgebungen zu verstehen. Das Cloud-native Ökosystem besteht typischerweise aus den vier großen C's: Cloud, Cluster, Container und Code. Jede Schicht baut auf der nächsten auf. Deshalb können sich Sicherheitslücken in einer Schicht auf die nachfolgenden Schichten auswirken, beispielsweise auf Anwendungen, die in unsicheren Containern bereitgestellt werden.
Der Schutz von Containern ist keine triviale Angelegenheit, vor allem wegen der verschiedenen Zustände, die Container annehmen können: Das reicht von laufenden, pausierenden und gestoppten Systemen bis hin zu Zombie-Containern, deren Außerbetreibsetzung aus irgendeinem Grund gescheitert ist Auch die verschiedenen Schichten und der Code, der im Containern platziert wird, beeinflussen die Sicherheit. Das Whitepaper Cloud-Native Security der CNCF ist ein guter Ausgangspunkt für ein besseres Verständnis von Cloud-Native-Anwendungen, Containern und deren Lebenszyklen.
Hüten Sie sich vor den Gefahren der Container-Portabilität
Einer der größten Vorteile von Containern ist ihre Portabilität. Doch das hat auch eine Schattenseite. Wenn Container mit Schwachstellen verteilt werden, dann erhöhen Sie im Grunde mit jedem weiteren Image das Sicherheitsrisiko. Das kann auch großflächig Cloud-Umgebungen betreffen, da Images im Allgemeinen in mandantenfähigen Architekturen ausgeführt werden.
Container werden oft von externen Entwicklern und nicht von den eigenen IT-Teams erstellt. Das heißt, dass Dinge wie sichere Kodierungspraktiken und Best Practices für die Containersicherheit eine entscheidende Rolle spielen.
Scannen Sie Container auf Schwachstellen, bevor Sie sie in die Produktion bringen
Zu den bewährten Schutzmaßnahmen zählen Schritte wie das Scannen von Containern in Continuous Integration/Continuous Deployment (CI/CD)-Pipelines, um zu verhindern, dass Schwachstellen in Produktionsumgebungen Hackern Tür und Tor öffnen. Dafür gibt es Open-Source-Tools wie Anchore, Trivvy und Snyk.
Scannen Sie die Container bevor sie produktiv gesetzt werden. Dies ist effizienter, sicherer und kostengünstiger als später Schwachstellen in der Produktion beseitigen zu müssen.
Da Container in der Regel von Entwicklern gebaut werden, sollten auch ihnen diese Tools zur Verfügung stehen. Damit können sie eventuell auftretende Probleme selbst beheben, anstatt erst ein Sicherheitsteam aktivieren zu müssen, das zudem oft unterbesetzt und überlastet ist.
Es ist wichtig, Container-Images kontinuierlich in allen Umgebungen, in Pipelines wie in Repositorieszu scannen. Da regelmäßig neue Schwachstellen auftauchen, kann es passieren, dass Sicherheitslücken übersehen werden, wenn Anwender ein Image aus einem Repository ziehen und es ohne einen neuen Scan produktiv setzen. Genauso sollten laufende Container in regelmäßigen Abständen auf potenzielle Schwachstellen gecheckt werden. Schon allein deswegen, weil immer wieder Änderungen an Container-Strukturen vorgenommen werden, die neue Lücken in den Sicherheitsschild reißen können.
Signierung von Container-Images verwenden
Eine weitere wichtige Maßnahme zur Sicherung von Container-Workloads ist das Signieren von Images. Der Dreiklang der Cybersicherheit lautet: Vertraulichkeit, Integrität und Verfügbarkeit. Das Signieren von Container-Images ist gleichbedeutend mit der Sicherstellung der Integrität des Container-Images. Es gibt Anwendern die Gewissheit, dass das von Ihnen verwendete Container-Image nicht manipuliert wurde. Das Signieren kann sowohl im Rahmen eines DevOps-Workflows als auch in einer Registry erfolgen.
Für das Signieren von Container-Images stehen mehrere Optionen zur Verfügung. Die Open-Source-Lösung Cosign unterstützt das Signieren, Verifizieren und Speichern von Images. Zudem bietet das Tool weitere Funktionen wie Key Management Services (KMS) beziehungsweise eine Bring-Your-Your-Own-Public-Key-Infrastruktur (PKI).
Erstellen von Software-Stücklisten für Container-Images
Container sind nicht immun gegen Probleme mit der Software-Lieferkette. Unternehmen suchen deshalb nach Tools, die sie bei der Erstellung von Software-Stücklisten (SBOMs) für ihre Container-Images unterstützen. Ein Beispiel ist das Syft-Tool von Anchore. Syft ermöglicht die Erstellung von SBOMs für Ihre Container-Images als Teil von CI/CD-Workflows. Die Lösung versetzt Unternehmen in die Lage, ein tieferes Verständnis der Software zu erlangen, die in ihrem Container-Ökosystem läuft. Das ist entscheidend, um im Falle eines Log4Shell-Szenarios richtig reagieren zu können.
Viele Unternehmen konzentrieren sich zunehmend auf mehr Sicherheit in der Software-Lieferkette und folgen damit den Vorgaben von US-Bundesbehörden, wie zum Beispiel der Cybersecurity Executive Order (EO). Organisationen wie das National Institute of Standards and Technology (NIST) haben ein aktualisiertes Secure Software Development Framework (SSDF) herausgegeben, das die Verwendung von SBOMs bei Aktivitäten wie der Archivierung und dem Schutz von Software-Releases fordert.
Aufbauend auf der Notwendigkeit von SBOMs für Container-Images wird der Einsatz von Bescheinigungen vorangetrieben, die von Unternehmen wie TestifySec sowie vom NIST in seinen Software Supply Chain Security Guidance gefordert werden. Die US-Behörde verlangt eine Bescheinigung für SSDF, in der die Verwendung von SBOMs vorausgesetzt wird. Es gibt auch andere Optionen, um SBOMs durchzusetzen, wie beispielsweise Syft, das die SBOM-Bescheinigung unterstützen kann. Dieser Bescheinigungsansatz ermöglicht es dem Unterzeichner zu bestätigen, dass die SBOM den Inhalt des Containerbildes exakt darstellt. (jm)
Dieser Beitrag basiert auf einem Artikel unserer US-Schwesterpublikation CSO Online.
Lesetipp: Backup von Kubernetes & Co. - Wie Sie Container vor Ransomware schützen