Sicherheit in der Container-Registry
Michael Komraz
21. Februar 2019
0 Min. LesezeitEines der zentralen Prinzipien von Snyk nennen wir „Developer First“. In unserer Produktvision bedeutet das, dass wir uns mit leistungsstarken Produktintegrationen in die bestehenden Workflows und Tools von Entwicklerinnen und Entwicklern einfügen, damit sie Sicherheitsverantwortung möglichst nahtlos übernehmen können.
Mit anderen Worten: Wir möchten die Möglichkeit bieten, Sicherheit dort anzugehen, wo sich Entwicklerinnen und Entwickler ohnehin aufhalten, zum Beispiel:
In der IDE, zum Beispiel mit unserem IntelliJ-Plugin, das Ende 2018 eingeführt wurde
Auf Git-Ebene, wo Entwicklerinnen und Entwickler Pull Requests öffnen können, um bestehende Probleme zu beheben und zukünftige zu verhindern
In der Build-Phase, die als Gate eine eher DevOps-orientierte Ergänzung zu Git darstellt
In PaaS und zur Laufzeit, zum Beispiel mit unserenPivotal-Integrationen für Droplet, Buildpack und Broker
In Projektmanagement- und Messaging-Tools wie JIRA, Slack und anderen
Container-Ebenen und verborgene Risiken
Container (weit gefasst) zählen zu den bedeutendsten Entwicklungen in der IT-Branche und bringen neue Sicherheitsherausforderungen mit sich – sowohl in der Entwicklung als auch im Betrieb. In der „alten“ Welt der Server und virtuellen Maschinen verwenden viele Unternehmensteams beispielsweise eine „Golden-Image“-Methode, um die Kontrolle des Betriebsteams über die Basis-Ebene (Betriebssystem und Pakete) ihrer Anwendungen zu gewährleisten. Die Art und Weise, wie Docker-Images erstellt, verteilt und verwendet werden, macht es für cloudbasierte Teams unrealistisch, nach dieser Methode zu arbeiten, da Container-Images viele Ebenen haben, deren Herkunft und Zuverlässigkeit nicht unbedingt klar sind.
Snyks Container-Schwachstellenmanagement scannt Docker-Images, indem es sowohl Betriebssystempakete als auch wichtige Binärdateien im Image untersucht und die Ergebnisse mit unserer proprietären Vulnerability DB abgleicht. So erhalten Sie Einblick in direkte und indirekte Abhängigkeiten, die in den Image-Ebenen verborgen sind. Im folgenden Screenshot sehen Sie, wie Snyk fünf Ebenen tief scannt und ein Problem mit hohem Schweregrad erkennt:

Risiken zu finden, ist nur der erste Schritt: Die nächste Herausforderung besteht darin, sie direkt im Workflow zu beheben. Deshalb stellen wir im Tool Empfehlungen zur Behebung bereit. Wichtig ist außerdem, dass all dies auf zuverlässigen Informationen basiert und falsch positive Ergebnisse minimiert werden – genau das bietet Snyks branchenführende Vulnerability DB.
Doch damit sollte die sichere Entwicklung noch nicht abgeschlossen sein. Der nächste Schritt birgt eine weitere Sicherheitsherausforderung: Sie übertragen möglicherweise manipulierte Images in Ihre Container-Registry. Dies manuell und unter strenger Sicherheitsaufsicht zu erledigen, kann ineffizient sein. Wird der Schritt ohne die nötigen Leitplanken automatisiert, lassen sich Betriebskontrolle und Audits deutlich schwerer umsetzen. Snyks Ansatz setzt auf Automatisierung nach bewährten Sicherheitspraktiken, wie das folgende Beispiel zeigt.
Hello-ACR-world
Wir habendiese Demo-App entwickelt, um alle Docker-Images zu scannen, die in die Azure Container Registry (ACR) übertragen werden. Statt den Entwicklungszyklus zu verlangsamen, integrieren wir den Scan und die Empfehlungen zur Behebung in diesem Fall in den ACR-Tasks-Workflow. In der folgenden .yaml-Datei sehen Sie, dass wir zwischen den standardmäßigen ACR-Tasks BUILD und PUSH ein Skript eingefügt haben, das auf Schwachstellen im Image und in der Anwendung (Binärdateien) scannt:

Der Prozess ist so konfiguriert, dass PUSH fehlschlägt, wenn Schwachstellen im Betriebssystem mit hohem Schweregrad und/oder Schwachstellen in der Anwendung mit mittlerem bis hohem Schweregrad gefunden werden. In diesem Fall schlägt der Scan fehl, und der Vorgang wird nicht mit PUSH fortgesetzt. Im kurzen Video sehen Sie den Prozess etwas genauer:
Das Wichtigste auf einen Blick
Das Container-Modell birgt zusätzliche Sicherheits- und Compliance-Risiken. Mit Snyks Container-Schwachstellenmanagement können wir direkte und – in diesem Fall noch wichtiger – indirekte Schwachstellen in unserem Container-Image finden und beheben. Darüber hinaus können wir unsere DevOps-Prozesse weiter automatisieren, indem wir Snyk als Gate einsetzen, bevor ein nicht behobenes Image in unsere Container-Registry übertragen wird. Zusammen mit Snyks Funktionen für Quellcodeverwaltung, CI/CD und PaaS ergeben diese Schritte einen überzeugenden End-to-End-Anwendungsfall für Container.
Lassen Sie uns wissen, welche Container-Registrys Sie bereits nutzen und wie Ihre Automatisierung aussieht, wenn es darum geht, Effizienz und Sicherheit in Einklang zu bringen!
Container-Sicherheit mit Fokus auf Entwickler
Snyk findet und behebt automatisch Schwachstellen in Container-Images und Kubernetes-Workloads.
