pattilabelle - Fotolia
Tipps zur Verringerung von Sicherheitsrisiken bei Containern
Container sind komplexe Umgebungen, die aber immer wieder unterschätzt werden. In drei Tipps zeigen wir, wie Sie die Sicherheit Ihrer Container-Umgebung verbessern können.
Ein Container kann viele verschiedene Komponenten und Images enthalten. Aber je mehr Komponenten er hat, desto mehr mögliche Schwachstellen gibt es, die ein Angreifer ausnutzen kann. Befolgen Sie deshalb die im Folgenden vorgestellten Tipps, um die Risiken in Ihrer Container-Umgebung zu verringern.
Reduzieren Sie die Angriffsfläche in den Container-Images
Überlegen Sie sich, eventuell noch vorhandene Debugging-Tools aus den Images Ihrer Container zu entfernen. Diese Werkzeuge benötigen in den meisten Fällen erweiterte Rechte. Außerdem versuchen viele Angreifer die meist nur mangelhaften Sicherheitsvorkehrungen dieser Tools und die häufig in ihnen vorhandenen Sicherheitslücken für ihre Zwecke zu missbrauchen.
Es ist außerdem ratsam, während der Erstellung und der Vorbereitung zur produktiven Nutzung eines Containers immer wieder gezielt nach Schwachstellen in der dabei verwendeten Registry zu scannen. Container-Registries werden zur Verwaltung von Images eingesetzt. Diese Plattformen enthalten oft bereits integrierte Fähigkeiten, um nach Schwachstellen zu scannen. So lassen sich potentielle Sicherheitslücken in einem Image direkt erkennen, nachdem es zur Registry hochgeladen wurde. In der Regel werden auch weitere Scans durchgeführt, wenn die Datenbank einer Registry mit Informationen über bekannte Schwachstellen aktualisiert wurde.
Vermeiden Sie die Nutzung von Images aus öffentlichen Quellen
Es ist eine häufig anzutreffende Vorgehensweise, auf öffentlich verfügbare Images zurückzugreifen, wenn es um Basis-Images wie Debian, Alpine, CentOS oder andere Linux-Systeme geht. Auf dieser Grundlage werden dann weitere Anwendungen hinzugefügt, bis der Container für seine eigentliche Aufgabe bereit ist. Bei dieser Methode gibt es aber eine Reihe von Problemen, die mit den öffentlich verfügbaren Images zusammenhängen.
So haben Unternehmen zum Beispiel keine Kontrolle über die Inhalte oder noch enthaltene Schwachstellen eines aus einer öffentlichen Quelle heruntergeladenen Images. Möglicherweise wurde sogar bewusst Schadcode darin verborgen. Dazu kommt, dass öffentlich freigegebene Images immer wieder unterschiedliche Betriebssystemversionen verwenden, so dass es zu Inkompatibilitäten aufgrund der verschiedenen Kernel kommen kann. Außerdem haben die Nutzer keine Kontrolle über Updates und über die generelle Verfügbarkeit der Images. Sie sind komplett abhängig von dem jeweiligen Anbieter der Images und müssen darauf hoffen, dass er die Abbilder auch in Zukunft weiter pflegt. Aus den genannten Gründen ist es empfehlenswert, auf öffentlich verfügbare Images zu verzichten.
Beschränken Sie die Rechte der Images
Oft wird auch die Tatsache unterschätzt, dass sich mehrere Container etwa den Kernel des zugrundeliegenden Betriebssystems teilen. Diese Eigenschaft führt dazu, dass ein Angreifer, der sich aufgrund einer Schwachstelle in einem Container Zugang zu ihm verschaffen konnte, darüber eventuell auch den Container-Host erreichen kann. Das Einschränken der verfügbaren Rechte in einem Container kann jedoch zum Beispiel verhindern, dass ein Angreifer nur dem Nutzer Root zur Verfügung stehende Dateien des lokalen Paket-Managers „apk“ manipulieren kann.
Eine Möglichkeit, um die Sicherheit in Ihrer Container-Umgebung weiter zu verbessern ist, keine Prozesse innerhalb der Images als Root mehr laufen zu lassen. Mit Hilfe einer Plattform wie Kubernetes ist es beispielsweise möglich, für die in einem Container genutzten Prozesse jeweils einen bestimmten Linux-User zu definieren. Alternativ kann ein Container damit auch so eingerichtet werden, dass er als ein unbekannter Nutzer ohne erweiterte Rechte läuft. Eine weitere nützliche Taktik, mit der die Sicherheit Ihrer Container verbessert werden kann, ist sie nur ohne Schreibrechte zu starten. So kann kein Nutzer oder Prozess ihre Inhalte verändern oder überschreiben.