Skip to main content

Erweiterungen beim Snyk IaC-Scanning: Infrastructure as Code für Azure und AWS

Artikel von
blog iac feat

23. Februar 2021

0 Min. Lesezeit

Vor Kurzem habe ich über Infrastructure as Code (IaC) geschrieben und darüber, wie das IaC-Scanning von Snyk Probleme in Ihren Vorlagen erkennen kann, bevor diese bereitgestellt werden. Unser Engineering-Team erweitert kontinuierlich den Umfang unserer IaC-Scanning-Richtlinien, um Ihre Plattformen besser vor Schwachstellen und anderen Problemen zu schützen.

In diesem Beitrag stellen wir das IaC-Scanning-Tool vor, betrachten die jüngsten Ergänzungen – darunter Infrastructure as Code für Azure, GCP und AWS – und zeigen, wie Ihre Teams es aktiv in die DevSecOps-Bemühungen Ihres Unternehmens einbinden können.

Warum sollte ich IaC scannen?

IaC-Vorlagen enthalten den deklarativen Zustand, in dem Ihre Anwendungen in verschiedenen Bereitstellungsumgebungen ausgeführt werden sollen. Ich sehe sie – ebenso wie andere Artefakte wie Dockerfiles – gern als automatisierte Ablaufpläne. Sie halten das gesamte implizite Wissen und die Abläufe fest, die mit manuellen Bereitstellungen verbunden sind, und fassen sie in standardisierten, wiederholbaren Schritten zusammen, die vor ihrer Ausführung überprüft und getestet werden können. Außerdem können Sie damit Prinzipien der Softwareentwicklung wie Code-Reviews und Freigaben auf Ihren Infrastrukturcode anwenden. Die Scanning-Tools von Snyk führen eine automatisierte Überprüfung durch: Sie gleichen Ihre vorhandenen IaC-Vorlagen mit unserem kuratierten Satz an Richtlinien und Best Practices ab und erstellen einen Bericht mit allen gefundenen Problemen, ausführlichen Beschreibungen und Empfehlungen zur Behebung.

Bei IaC geht es meist nicht um „Schwachstellen“ – zumindest nicht im klassischen Sinn. IaC-Anwender machen sich in der Regel keine Sorgen, dass eine Zero-Day-Schwachstelle plötzlich ihre IaC-Definitionen beeinträchtigt. Stattdessen konzentrieren sie sich eher auf die Einhaltung der Richtlinien und Standards von Sicherheits- und Architekturteams. In der Praxis bedeutet das, dass Änderungen am Code fortlaufend getestet werden sollten. Dazu passt es gut, Tests in Pipelines bei einem Push oder Pull Request auszuführen.

Kubernetes kann jedoch selbst die besten Pläne durchkreuzen. Ein Beispiel dafür ist die Man-in-the-Middle-Angriff-Schwachstelle im Kubernetes Service, die sich in allen Kubernetes-Versionen ausnutzen ließ. Sie erhielt die Kennung CVE-2020-8554, wurde am 8. Dezember 2020 öffentlich bekannt gegeben, und während ich diesen Beitrag schreibe, gibt es noch keinen Patch für diese Schwachstelle. Bei allen, die Snyk IaC zur Überwachung nutzten, wurde rasch eine aktualisierte Richtlinie hinzugefügt. Sie erhielten daraufhin automatisch Warnmeldungen über die kontinuierliche Snyk-GitHub-Scanning-Funktion – auch ohne selbst einen Scan gestartet zu haben.

Snyk IaC-Scan-Bericht mit einem Kubernetes-Service, der eine externe IP-Adresse verwendet und ein potenzielles CVE-2020-8554-Risiko aufweist.
Der Snyk-IaC-Scanbericht weist auf ein potenzielles Risiko durch CVE-2020-8554 hin.

Wenn Sie neu bei IaC sind und erfahren möchten, wie das Scanning mit Snyk funktioniert, lesen Sie unseren Beitrag zu Infrastructure-as-Code-Tools für einen ausführlicheren Überblick.

Neue Ergänzungen beim Sicherheits-Scanning für Infrastructure as Code

Zu den anfänglich von Snyk IaC gescannten Problemen gehörten Kubernetes, Helm Charts und Terraform-AWS-Ressourcen. Seit der ersten Veröffentlichung haben Snyk Engineers kontinuierlich neue Richtlinien hinzugefügt und so den Umfang des Scannings erweitert. Zu den jüngsten Ergänzungen gehören:

Terraform-Infrastructure-as-Code für AWS

Über 100 Richtlinien für Bereiche wie:

  • S3-Zugriffskontrolle und Protokollierung

  • Verschiedene Prüfungen auf sensible Daten (z. B. hartcodierte Geheimnisse und unsichere Einstellungen) in Lambda, EC2 und EKS

  • Erkennung fehlender Verschlüsselung gespeicherter Daten bei verschiedenen Diensten

  • Unsichere IAM-Berechtigungspraktiken

Terraform-Infrastructure-as-Code für Azure

Azure wird jetzt ebenfalls unterstützt, unter anderem mit Prüfungen für:

  • Best Practices für die Protokollierung

  • Best Practices für App Services

  • MYSQL: Probleme rund um SSL und Benachrichtigungen

  • Verschiedene Probleme mit PostgreSQL, unter anderem:

    • SSL

    • Drosselung von Verbindungen

    • Protokollierung

  • Probleme mit dem Zugriff auf und der Verschlüsselung von Speicherkonten

Google Cloud Platform (GCP)

Neu sind auch GCP-Ressourcen, darunter:

  • Zuweisung von IAM-Benutzern

  • Probleme rund um GCP Kubernetes

Kubernetes

Die Abdeckung für Kubernetes- und Helm-Ressourcen wird mit neuen Richtlinien kontinuierlich erweitert. Dazu gehören insbesondere:

  • Container-Prüfungen, unter anderem auf:

    • freigegebenen SSH-Port

    • Host-Geräteeinbindungen

    • fehlende Liveness-Probes

    • usw.

  • Dienste mit externer IP-Adresse (das oben erwähnte Scanning für CVE-2020-8554)

  • PSP-Prüfungen, unter anderem auf:

    • zu weit gefasste Berechtigungen für Volume-Einbindungen

    • Seccomp

    • AppArmor-Probleme

    • Zulassen der Root-GID in Container-Prozessen

Den eigenen IaC-Code zu scannen, ist ganz einfach

Bei Snyk sind wir stolz darauf, Sicherheit einfach nutzbar zu machen. Wir sind überzeugt: Wenn Entwickler Tools erhalten, die sich in ihre Workflows einfügen, können sie aktiv dazu beitragen, Schwachstellen und Sicherheitsprobleme direkt an der Quelle zu beseitigen.

Sie können sofort mit dem Scannen Ihrer IaC-Vorlagen beginnen, indem Sie ein kostenloses Konto auf Snyk.io erstellen.

Weitere Informationen zu den Neuigkeiten bei Snyk in diesem Jahr finden Sie in diesem Artikel meiner Kollegen Jim Armstrong und Daniel Berman. Darin gehen sie auf alle Cloud-Native-Funktionen und Ankündigungen ein, die Snyk 2020 vorgestellt hat.

Machen wir 2021 zum bisher sichersten Jahr!

Sichern Sie Ihre Infrastruktur an der Quelle

Snyk automatisiert die IaC-Sicherheit und Compliance in Workflows und erkennt abweichende sowie fehlende Ressourcen.

Gepostet in: