Anforderungen an Container Security Container-Sicherheit braucht passende Tools

Autor / Redakteur: Mike Bursell / Peter Schmitz |

Beim Einsatz von Container-Technologien für Applikationsentwicklung und -betrieb werden immer wieder Sicherheitsbedenken geltend gemacht. Für die weitere Verbreitung ist deshalb eine hohe IT-Sicherheit erforderlich. Mit dem Einsatz adäquater Tools ist sie aber mit vertretbarem Aufwand realisierbar.

Anbieter zum Thema

Die drei Layer einer Container-Umgebung: Container-Images, Container-Hosts und Container-Plattform.
Die drei Layer einer Container-Umgebung: Container-Images, Container-Hosts und Container-Plattform.
(Bild: Red Hat)

Die Nutzung der Container-Technologie liegt im Trend. Grund hierfür sind die zahlreichen Vorteile, die mit dieser Technologie verbunden sind: Zu nennen sind beispielsweise die hohe Agilität und Portabilität, der geringe Platzbedarf oder das einfache Management. Bei der Container-Nutzung müssen aber auch – wie bei jeder neuen Technologie – die damit eventuell einhergehenden Risiken berücksichtigt werden.

Die bei Containern zu beachtenden besonderen Anforderungen kann ein Vergleich mit der physischen Welt aufzeigen. Bei zwei physischen Maschinen können diese vom Netzwerk isoliert werden, das heißt, wenn eine ausfällt oder mit einem Schadprogramm infiziert ist, ist das andere System nicht unmittelbar betroffen. In einer containerisierten Umgebung wird der Kernel des Betriebssystems von allen Containern genutzt und dies verändert natürlich auch die Angriffsfläche.

Bildergalerie

Basis-Sicherheitsvorkehrungen sind Pflicht

Zu den grundlegenden Sicherheitsmaßnahmen sollten die ausschließliche Nutzung vertrauenswürdiger Quellen für den Container-Inhalt zählen, die Überprüfung der Applikations-Container-Inhalte und die Multi-Tenant-Isolierung.

Zur Gewährleistung einer hohen Sicherheit sollten ausschließlich Images aus einer vertrauenswürdigen Quelle verwendet werden. Eine Maßnahme wie eine digitale Signatur kann das Sicherheitsniveau zusätzlich erhöhen, da sie bestätigt, dass ein Applikations-Container nicht durch einen Dritten verändert wurde. Red Hat zum Beispiel hat vor Kurzem einen Container Health Index vorgestellt, ein einfaches Bewertungssystem von A bis F für die Container-Sicherheit. Es zeigt, wie Images für Produktivumgebungen genutzt und evaluiert werden sollten. Die Bewertung basiert unter anderem auf dem Alter von Container-Images und den Auswirkungen nicht behobener Sicherheitsprobleme bei den Komponenten eines Containers.

Ebenso wichtig wie die Verifizierung der Herkunft eines Applikations-Containers ist die Überprüfung der Inhalte. Ähnlich wie Deep Packet Inspection Netzwerkpakete im Hinblick auf gefährliche Inhalte analysiert, untersucht Deep Container Inspection (DCI) den Content von Containern. Diese Funktionalität ist unerlässlich, denn die Überprüfung des Programmcodes hinsichtlich Sicherheitslücken ist ein wesentlicher Erfolgsfaktor bei der Entwicklung, Implementierung und dem Betrieb vertrauenswürdiger Applikationen, die auf Container-Technologien basieren. Für die einfache Überprüfung von Container-Inhalten empfiehlt sich zum Beispiel die Nutzung von Container-Scannern, wie sie durch OpenSCAP oder Black Duck angeboten werden. Solche Scans sollten standardmäßig in Produktivumgebungen eingesetzt werden, zudem passen sie perfekt zu Ansätzen wie DevOps.

Eine unverzichtbare Maßnahme ist nicht zuletzt die Multi-Tenant-Isolierung. Dadurch erhalten Container keinen Zugriff auf die Ressourcen anderer Container oder auf die Ressourcen des zugrundeliegenden Hosts. Unterstützt wird die Multi-Tenant-Isolierung durch viele zugrundeliegende, integrierte – oder sich im Integrationsprozess befindliche – Linux-Sicherheitstechnologien mit verschiedenen Container-Runtime-Technologien, einschließlich Seccomp, Namespaces und SELinux.

End-to-End-Sicherheit umfasst alle drei Container-Layer

Es gibt drei Bereiche, in denen Unternehmen vorhandene und neue Security-Techniken einsetzen können: Container-Images, Container-Hosts und Container-Plattform.

1. Container-Images

Die Basis der Container-Images bilden unter anderem Betriebssystem-Libraries, Laufzeitabhängigkeiten (Java, PHP, Ruby), Middleware und Datenbanken.

Die Kontroll- und Überwachungsmechanismen in diesen Bereichen sind bereits aus der Verwaltung von physischen und virtuellen Server-Umgebungen bekannt. Sie können genauso bei Container-Images angewendet werden.

Nutzbar sind etwa Techniken wie:

  • Security-Scans
  • Remediation und Patching
  • CVE (Common Vulnerabilities and Exposures)-Datenbanken
  • Begrenzung von Root-Zugriffsmöglichkeiten
  • Begrenzung von User-Zugriffen

Darüber hinaus besteht im Container-Umfeld aber auch die Möglichkeit, zusätzliche Techniken anzuwenden. Das betrifft vor allem die beiden Bereiche Image-Signing und Read-Only-Container. So besteht die Möglichkeit des Container-Image-Signings, das heißt der Anwender kann einem Image einen digitalen Fingerabdruck hinzufügen. Nutzer können so die Quelle, Integrität und Authentizität eines Container-Images verifizieren. Zudem besteht die Möglichkeit, Container-Images in der Produktivumgebung in einem Read-Only-Modus zu betreiben, auch bekannt als „Immutable-Runtime-Container“.

2. Container-Hosts

Auf dem Container-Host-Layer sind gängige Techniken zur Gewährleistung einer hohen Sicherheit: SELinux, Secure computing mode (Seccomp), Namespaces und Capabilities. Mit der sVirt-Technologie steht auf Basis prozessbasierter Mechanismen und Restriktionen ein zusätzlicher Sicherheitslayer zur Verfügung.

3. Container-Plattform

Auf dem Container-Plattform-Layer schließlich geht es um die Zugriffskontrolle für Enduser und auch Administratoren. Der Layer existiert auch in der Welt der physischen und virtuellen Server, allerdings typischerweise als reines Administrationstool. In Container-Umgebungen ist es üblich, Zugriffsberechtigungen selektiv zu delegieren: an Entwickler, Architekten oder Applikationsverantwortliche.

Die Techniken im Überblick:

  • Rollenbasierte Autorisierung
  • Authentifizierung (zum Beispiel unter LDAP-Nutzung)
  • Isolierung von Entwicklungs-, Test- und Produktivumgebungen
  • Netzwerksegmentierung

Zusammengefasst ist festzuhalten, dass sich die Implementierung von Sicherheit für Container von vorhandenen Techniken nicht in einem Maße unterscheidet, wie es scheinen mag. Viele existierende Tools sind anwendbar und mit der Ergänzung einiger spezifischer Techniken kann eine hohe Container-Sicherheit erreicht werden. Der zentrale Unterschied zu vorhandenen Umgebungen und eine elementare Anforderung für die erfolgreiche Container-Bereitstellung ist die Umsetzung einer durchgängigen End-to-End-Sicherheit mit einer Überwachung des Informationsflusses auf allen drei Container-Layern: Container-Images, Container-Hosts und Container-Plattform.

Über den Autor: Mike Bursell ist Chief Security Architect bei Red Hat.

(ID:44767001)