Was ist

Sicherheit von Containern

?

5 Schritte, die Sie unternehmen können, um Ihre Containersicherheit zu verbessern

1. Schneiden Sie das Fett vom Betriebssystem ab

Sie sollten jeglichen Schnickschnack und alle unnötigen Ressourcen aus dem Betriebssystem entfernen, auf dem Ihr Container laufen wird. Obwohl dies wie ein alarmistischer Ansatz erscheinen mag, ist es doch so, dass Cyberkriminelle jeden der verschiedenen Dienste, die von Betriebssystemen ausgeführt werden, als Angriffsflächen nutzen. Selbst wenn Sie ein System in einer privaten oder öffentlichen Cloud gehostet haben, entfernen Sie alle zusätzlichen Funktionen (außer Cloud-Sicherheit Funktionen) können ein kritisches Sicherheitsproblem verhindern.

Daher sollten Sie Folgendes versuchen:

  1. Identifizieren Sie die Systeme, die Ihren Container unterstützen müssen
  2. Alles andere wegwerfen
  3. Testen Sie Ihren Container nach der ersten Löschrunde
  4. Suchen Sie nach unnötigen Funktionen, die Sie beim ersten Mal möglicherweise übersehen haben, und verwerfen Sie diese
  5. Testen Sie den Behälter erneut

Warum Sie überschüssige Funktionen aus dem Betriebssystem Ihres Containers entfernen müssen

Die Begründung, die diesen Ansatz rechtfertigt, ist relativ einfach. Jeder Workload hat seine eigenen Anforderungen. Der Container-Workload beispielsweise hat Aktualisierungszyklen, Stack-Architekturen, Zugriffskontrollparameter, Sicherheitstools und andere wichtige Funktionen von DevOps-Prozessen, die ein Betriebssystem verwalten muss. Dies gilt unabhängig davon, ob Sie virtuelle Maschinen oder traditionelle Umgebungen verwenden.

Jede dieser Funktionen verfügt über Sicherheitsprotokolle, die auf ihre Bedürfnisse zugeschnitten sind. Gleichzeitig hat eine andere App, die auf dem Host-Betriebssystem läuft, ihre eigenen Infrastrukturanforderungen. Diese fremden Apps stehlen Ihren DevOps-Teams nicht nur Ressourcen aus dem Betriebssystem, sondern jede einzelne schafft auch versehentlich eine zusätzliche Angriffsfläche. Dies liegt daran, dass Sicherheitsmaßnahmen für Container ausnahmslos andere Ressourcen benötigen als diejenigen, die zum Schutz der anderen Programme entwickelt wurden. Ihr Betriebssystem ist zwar in der Lage, zusätzlichen Anwendungscode zu schützen, aber Ihre Container könnten dadurch gefährdet werden.

2. Misstrauen Sie der Software, die mit dem Container geliefert wurde

Es ist wichtig zu bedenken, dass Sie, abgesehen von den Behauptungen des Anbieters, keine Ahnung haben, wie stark die Sicherheitsmaßnahmen für Container sind, ganz zu schweigen davon, wie sie funktionieren. Zu einigen wichtigen Fragen gehören:

  • Hat der Anbieter die erforderlichen Sicherheitslücken gescannt?
  • Welche Art von Einbruchspräventionssystem haben sie implementiert?
  • Setzt die Umgebung in Kombination mit Ihren containerisierten Anwendungen diese unerwarteten Risiken aus?

Da Sie die Details der im Container enthaltenen Sicherheitstools nicht kennen, können Sie potenzielle Sicherheitslücken nicht erkennen oder vorhersagen. Bevor Sie also auf die Schutzmaßnahmen vertrauen, die in Ihrem Container-Paket enthalten sind, sollten Sie versuchen, die folgenden bewährten Sicherheitsmethoden zu implementieren:

  • Überprüfe den Inhalt des Containers noch einmal
  • Führen Sie keinen Container aus, wenn er veraltete Software enthält
  • Wenn Sie mit der Software nicht vertraut sind, sollten Sie sich vor der Bereitstellung ein Bild von ihrer Funktionsweise machen
  • Überprüfe jedes Programm und jede Bibliothek, um zu sehen, ob sie tatsächlich den neuesten und besten Schutz bieten

3. Überprüfen Sie die Laufzeit des Containers

Da die Runtimes für den Start und die Verwaltung von Containern verantwortlich sind, müssen Sie deren Sicherheitspatches sorgfältig verfolgen. Es ist bekannt, dass Runtimes deutliche Sicherheitslücken aufweisen. Das ist zwar nicht unbedingt üblich, aber die potenziellen Folgen sind erheblich.

In einigen Fällen kann die Laufzeitkonfiguration dem Container beispielsweise vollen Zugriff auf die Geräte des Hosts sowie auf seine Verzeichnisse gewähren. In diesem Fall könnte der Container, sobald er mit Malware infiziert ist, verwendet werden, um einen Angriff auf den Host zu starten. Außerdem, wenn Sie nicht ausreichend implementiert haben Netzwerksegmentierung, andere Container und Bereiche, die von der Netzwerkkommunikation betroffen sind, könnten ebenfalls infiziert werden.

Sicherheitslücken können in älteren Runtime-Programmen ausgeprägter sein. Obwohl das Programm bei seiner ersten Programmierung noch einwandfrei funktionierte, haben Cyberkriminelle seit seiner Einführung neue Angriffsmethoden entwickelt. Daher steigt die Wahrscheinlichkeit, dass Sicherheitslücken in älteren Runtime-Programmen ausgenutzt werden, von Monat zu Monat. Außerdem kann es in einer Open-Source-Umgebung schwierig sein, vertrauenswürdige von verdächtigen Quellen zu unterscheiden, was die Notwendigkeit der Vorsicht weiter unterstreicht.

4. Sorgen Sie für vollständige Sichtbarkeit

Mit der Einführung von Containern kann die Anzahl der Systeme, die auf Bare-Metal-Workloads virtueller Maschinen ausgeführt werden, exponentiell steigen. Aufgrund der Kapselung von Containern können Sie nicht davon ausgehen, dass die Sichtbarkeit der Arbeitslast, die den Container hostet, einen ausreichenden Überblick über den Container selbst bietet. Es ist wichtig, jeden Container als seine eigene Einheit zu betrachten und entsprechende Maßnahmen für die Sichtbarkeit zu ergreifen. Um eine vollständige Sichtbarkeit zu gewährleisten, sollten Sie:

  • Geben Sie den Standort jedes Containers an
  • Beschreiben Sie, was jeder Container tut
  • Ordnen Sie den Datenfluss zum und vom Container zu
  • Beschreiben Sie die Ressourcen, die jeder Container verbrauchen kann, einschließlich Anwendungen, Dateien und Dateien des Betriebssystems

Diese letzte Maßnahme ist von entscheidender Bedeutung, da der Container selbst zwar sicher sein kann, aber Ressourcen von anderen Orten bezieht. Daher kann es versehentlich zu Sicherheitslücken an anderer Stelle kommen. Darüber hinaus müssen Sie je nach Branche möglicherweise die erforderlichen Compliance-Standards festlegen, die für die Daten der einzelnen Container gelten.

5. Verwenden Sie die Netzwerksegmentierung

Wenn ein Netzwerk sorgfältig segmentiert wird, profitieren Sie von den Vorteilen maßgeschneiderter Sicherheitslösungen für jedes Segment in Kombination mit der verbesserten Kontrolle, die sich aus der Minimierung Ihrer jeweiligen Schutzflächen ergibt.

So schützt Netzwerksegmentierung Ihre Container

Ein nicht segmentiertes Netzwerk ist wie eine Wohnung ohne Wände. Wenn Schädlinge eindringen würden, hätten sie freie Hand und könnten sich in allen Wohnräumen ausbreiten. Ein Netzwerk ohne Segmentierung weist die gleiche Art von Kernschwachstelle auf. Container sind trotz ihres Namens nicht von Natur aus „eingedämmt“ und vor Malware, Viren und anderen Cyberschädlingen geschützt.

Wenn du verwendest Netzwerksegmentierung um Ihr Netzwerk so zu strukturieren, dass die Container ihre eigenen Segmente haben, wirkt sich eine Bedrohung für ein Segment nicht auf die anderen aus. Im Grunde bauen Sie Wände, die vor Schädlingen geschützt sind. Selbst wenn eine Cyberbedrohung eindringen könnte, würde sie in diesem einen Segment stecken bleiben. Dadurch wird eine laterale oder von Ost nach West gerichtete Kontamination verhindert, sodass Ihr Team die Produktivität aufrechterhalten kann — selbst wenn ein Cyberangriff einen Teil des Netzwerks durchdringt.

Durch den Einsatz von Netzwerksegmentierung, die dreifache Überprüfung Ihrer Container-Sicherheit, die Überprüfung von Runtime-Programmen und das Entfernen überschüssiger Apps von Ihrem Betriebssystem sowie die Gewährleistung vollständiger Transparenz können Sie eine sicherere und produktivere Umgebung für Ihre DevOps-Teams schaffen.

Erfahre mehr

Entdecke wie Zero-Trust-Segmentierung sichert Container-Bereitstellungen, einschließlich Kubernetes- und RedHat OpenShift-Plattformen.

Gehen Sie von einem Verstoß aus.
Auswirkungen minimieren.
Erhöhen Sie die Widerstandsfähigkeit.

Sind Sie bereit, mehr über Zero-Trust-Segmentierung zu erfahren?