2-3-2017 Gedruckt am 30-05-2017 aus www.monitor.co.at/index.cfm/storyid/17150

Gastartikel - Josh Bressers, Red Hat

Nutzung adäquater Tools erhöht Container-Sicherheit

IT-Sicherheit zählt zu den Top-Prioritäten in Unternehmen. Gerade beim Einsatz von Applikations-Containern werden immer wieder Sicherheitsbedenken geäußert, die auf die Schnelle betrachtet auch nicht ganz unbegründet sind. Beim Einsatz adäquater Tools sind sie aber leicht zu entkräften.

Mehr Sicherheit für Applikations-Container (Bild: CC0 Public Domain - pixabay.com)

Immer mehr Unternehmen nutzen die Container-Technologie oder ziehen zumindest einen Einsatz in Betracht. Begünstigt wird diese Entwicklung durch die zahlreichen Vorteile, die die Technologie bietet: etwa die hohe Agilität und Portabilität, der geringe Storage-Bedarf oder das einfache Management. Allerdings müssen bei der Container-Nutzung wie bei jeder neuen Technologie die damit verbundenen Risiken Berücksichtigung finden. Der Vergleich mit zwei physischen Servern verdeutlicht die Herausforderungen in puncto Sicherheit. So ist es bei zwei physischen Maschinen möglich, diese vom Netzwerk zu isolieren; fällt eine aus oder wird sie mit einem Virus infiziert, ist das andere System nicht unmittelbar betroffen. In einer containerisierten Umgebung hingegen wird der Betriebssystem-Kernel auf dem Host-System von allen Containern genutzt. Dadurch ändert sich die Angriffsfläche.
 

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 Bereitstellung einer hohen Sicherheit sollten ausschließlich Images aus einer vertrauenswürdigen Quelle verwendet werden. 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 und auch andere führende IT-Unternehmen arbeiten zudem an der Etablierung von Container-Standards. Solche Standards etwa können zur Sicherstellung beitragen, dass Container-Hosts nicht manipuliert wurden und auf dem neuesten Stand sind, dass Container-Images bezüglich der Plattformkomponenten und -layer keine bekannten Sicherheitslücken aufweisen und dass die Applikations-Container untereinander kompatibel sind und in zertifizierten Host-Umgebungen eingesetzt werden können.
 
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.
 
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 die vorhandene beziehungsweise anstehende Integration von zugrundeliegenden Linux-Sicherheitstechnologien mit Docker, einschließlich Seccomp, Namespaces und SELinux.
 

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

Allerdings sollte das Thema Sicherheit im Container-Umfeld wesentlich weiter und vor allem konkreter gefasst werden. Ausgangspunkt kann hier die nähere Betrachtung der genutzten und auch zusätzlich einsetzbaren Security-Techniken im Kontext der drei Hauptkomponenten einer Container-Umgebung sein: 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 einfach 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, das heißt restriktive Vergabe von User-Namespaces
  • 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 auch die Möglichkeit, Container-Images in der Produktivumgebung in einem Read-Only-Modus zu betreiben.
 

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. Und 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, sofern dies möglich ist. Der Layer existiert auch in der Welt der physischen und virtuellen Server, allerdings typischerweise als reines Administrator-Tool. In Container-Umgebungen hingegen 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
 
Insgesamt können die meisten Tools, die im Umfeld von Informations- und Computer-Sicherheit generell genutzt werden, auch problemlos in containerisierten Umgebungen angewendet werden. Ergänzt durch zusätzliche Security-Techniken kann eine hohe Container-Sicherheit realisiert werden. Voraussetzung für die Realisierung einer durchgängigen End-to-End-Sicherheit ist nur, dass der Informationsfluss auf allen drei Container-Layern – Container-Images, Container-Hosts und Container-Plattform – überwacht wird.
 
Josh Bressers ist Security Strategist bei Red Hat.