Writing
Dockerfile-Sicherheitsprüfungen mit OPA Rego-Richtlinien und Conftest
Sicherheitsrichtlinien für Dockerfiles mit Open Policy Agent und Best Practices.
Table of Contents
Dockerfile-Sicherheitsprüfungen mit OPA Rego-Richtlinien und Conftest
Docker ist allgegenwärtig! In der modernen Entwicklung und im Betrieb verwenden wir Docker-Images und Container zur Ausführung unserer Anwendungen – vom Entwickler-Laptop über Raspberry Pis bis hin zu Staging- und Produktionsumgebungen.
Bei der Verwendung moderner Technologien und Werkzeuge vergessen wir jedoch oft, diese während der Erstellung und Bereitstellung abzusichern. Aus diesem Grund können wir unsere Sicherheitsanforderungen in Richtlinien (Policies) als Code formulieren und diese gegen Dockerfiles (Infrastructure as Code) validieren, um potenzielle Sicherheitsrisiken vor dem Deployment in der Produktion zu identifizieren.
Was ist Conftest?
Conftest ist ein Dienstprogramm, mit dem Sie Tests für strukturierte Konfigurationsdaten schreiben können. Sie können beispielsweise Tests für Ihre Kubernetes-Konfigurationen, Terraform-Code, Serverless-Configs oder beliebige andere strukturierte Daten erstellen. In unserem Kontext nutzen wir es, um Validierungsrichtlinien für veraltete Kubernetes-API-Versionen zu schreiben. Conftest basiert auf der Sprache Rego des Open Policy Agent zur Definition von Assertionen. Weitere Informationen zu Rego finden Sie in der Dokumentation zu Open Policy Agent.
Was ist OPA (Open Policy Agent)?
Der Open Policy Agent (OPA, ausgesprochen „oh-pa“) ist eine universelle Open-Source-Policy-Engine, die die Durchsetzung von Richtlinien über den gesamten Stack hinweg vereinheitlicht. OPA bietet eine deklarative High-Level-Sprache zur Spezifikation von Richtlinien als Code sowie einfache APIs, um Richtlinienentscheidungen aus Ihrer Software auszulagern.
Beispiel Rego Playground: https://play.openpolicyagent.org/p/hSVfocnUgg
Was ist docker-security-checker?
docker-security-checker nutzt die Rego-Richtlinien des Open Policy Agent für Sicherheitsprüfungen von Dockerfiles mithilfe von Conftest.
Weitere Informationen unter https://github.com/madhuakula/docker-security-checker