<img height="1" width="1" style="display:none" src="https://www.facebook.com/tr?id=664062317274151&amp;ev=PageView&amp;noscript=1">

Nehmen Sie Koktakt auf

Security

Docker - Segen und Fluch zugleich

In Ihrem Netzwerk teilen:
   

Erstellt: 30.08.2019

Docker - Segen und Fluch zugleich

Seit mitunter 6 Jahren mischt Docker nun die ganze IT-Welt durcheinander. Entwickler lieben es, Serveradministratoren müssen sich nicht mehr um Abhängigkeiten sowie deren Versionen kümmern und dank Open-Source kann man sich auch die teuren Virtualisierungskosten sparen. Doch hat man auch an alles gedacht?


Der Segen

Thommy arbeitet in einer international operierenden Bank mit Sitz in Zürich in einem kleinen Team als Software-Entwickler. Die Aufgabe des Teams besteht darin, den Anmeldemechanismus des E-Banking zu programmieren und zu warten. Natürlich, wie heutzutage üblich, um auch den nötigen Sicherheitsbestimmungen Tribut zu zollen, mit 2-Factor-Authentication.

In der Vergangenheit musste sich Thommy immer wieder Diskussionen mit den internen Serveradministratoren stellen. Denn Thommy und sein Team greifen auf eine bekannte Open-Source-Library namens OpenSSL zurück, um die Daten verschlüsselt zwischen dem Benutzer und dem Server zu übermitteln. Da der Anmeldemechanismus abhängig von einer bestimmten Version dieser «Bibliothek» ist, müssen die Serveradministratoren mit chirurgischer Präzision ihre Systeme überwachen. Die dazugehörigen Updates sind nicht ohne weitere Abklärungen mit den Entwicklern möglich. In der Regel musste Thommy bis zu einer Woche warten, bis Serveradministrator, Quality Assurance und Security bestätigten, dass alles in Ordnung ist. Doch neuerdings hat das Unternehmen Docker, eine Plattform für das Applikations-Deployment innerhalb von virtualisierten Containern, eingeführt.

Alle Entwickler und Serveradmins wurden in einem Workshop geschult und sind nun bereit für den Einsatz von Docker, so auch Thommy. Mit seinem neuen Wissen verpackt er nun den Anmeldemechanismus in einen Container, inkl. Abhängigkeiten. Freundlicherweise hat ein Docker-Community User namens «frapilisoft» schon ein Image mit OpenSSL auf Docker Hub, einem öffentlichen zentralen Cloudspeicher für Docker Images, geladen. Dieses verwendet Thommy als Basis und fügt dem Image zusätzlich seinen Code zur Anmeldung bei.

Nach nur 10 Minuten sind alle Parameter definiert und das neue Image für die Anmeldung ist fertig. Thommy lädt das Image auf Docker Hub und schickt dem Serveradministrator den Link zum Image und eine Anweisung für Docker wie etwa Offene Ports, Userrechte oder Fileshares.

Nach weiteren 10 Minuten bekommt Thommy eine Mail vom Serveradminstrator:

> Hey Thommy
>
> Cool, der Container wurde gestartet. Hat alles einwandfrei geklappt, keine Probleme mit den Abhängigkeiten wie früher, keine neuen VM aufsetzen, keine Kosten für Lizenzen. > Docker rockt!
>
> Grüsse Magnus
> Dein Serveradministrator

Thommy prüft nun mit seinem Team und den vorgeschriebenen Tests, ob das Anmelden am E- Banking wie gewohnt funktioniert. Die Quality Assurance prüft seinerseits, ob tatsächlich alle Tests erfolgreich waren und danach Ende-zu-Ende, damit das E-Banking wie gewohnt abgewickelt werden kann. Am Schluss untersucht die Security-Abteilung, ob auch nur die definierten Ports verwendet werden, und, ob die Verschlüsselung «State-of-the-Art» ist. Alle Checks sind gut verlaufen und somit wird dieses Image freigegeben. Dank der agilen Prozesse dauert es jetzt nur noch 15 Minuten, bis die Produktionsumgebung die neuen Images auf den Server verteilt und alle Kunden mit der neuen Anmeldeseite begrüsst werden.

Auch wenn es nun den Anschein hat, dass durch Docker die Aufwände, die sich von der Entwicklung bis zur Bereitstellung von Software, drastisch reduziert werden konnten, eröffnet sich somit ein riesiges Sicherheitsrisiko.

Der Fluch

Docker wurde entwickelt, um Software und deren Abhängigkeiten zu teilen, ohne dass sich die Infrastrukturbetreiber um die Konfiguration kümmern müssen und genau hier beginnt oder besser: der Fluch:

1. Flaches virtuelles Netzwerk

Bei der Installation von Docker legt die Plattform/das System ein flaches virtuelles Netzwerk auf dem Server an. Jeder Container der auf diesem Server gestartet wird und nicht explizit anders angeben wird diesem Netzwerk angeschlossen. Die daraus resultierende Container-zu-Container Kommunikation läuft dabei Serverintern ab und ist ohne nötige Sicherheitsmassnahmen nicht transparenteinsehbar.

Hier empfiehlt es sich mit SDN bzw. Micro Segmentierungen für jeden Container ein separates Netz zu erstellen.

2. Docker Hub - Docker Images für alle

Docker Hub ist eine Sharing Plattform für User Images. Das Problem dabei ist, das die Images dabei nicht überprüft werden und so auch möglicherweise Malware in den Images enthalten sein kann. In der Vergangenheit trat dieser Fall bereits bei mehreren Images ein. Insbesondere OpenSSL ist eine beliebte Library oder: «Bibliothek», um Malware einzuschleusen, da diese bevorzugt eingesetzt wird, um Verbindungen zu verschlüsseln.

Abhilfe schaffen kann ein eigenes Image Repository, das speziell hierfür aufgebaut wird. Wichtig dabei ist, dass lediglich die Entwickler oder die Serveradministratoren der Zugriff auf dieses Repository gewährt wird.

3. Docker Container haben ROOT-Access

Bis zur Docker Version 1.10 verfügte jeder Container über einen Root-Access auf dem Server. Auch muss bei der Installation von Docker darauf geachtet werden, dass der Service nicht als Root ausgeführt wird. Docker bietet keine Virtualisierung der Hardware wie es bei herkömmlicher Virtualisierung üblich ist. Somit hat ein Docker Container mit Root-Access Zugriff auf das Operating System und auf die Hardware.

Mithilfe von Vulnerability Scannern können Docker Container überprüft werden, ob bei diesen ein Root-Access vorliegt. Ist dem so, besteht die Möglichkeit einer Ausnahme und diese auf speziell dafür vorgesehen Server zu hinterlegen.

4. Docker ist Open-Source

Auch wenn Docker kontinuierlich weiterentwickelt wird u.a. wird ein Grossteil von Microsoft, Google, Amazon und auch von Huawei mitentwickelt, ist Docker nicht fehlerfrei. Es werden immer wieder Bugs entdeckt.

Aus diesem Grund sollte Docker regelmässig gewartet werden. 

5. Monitoring

Moderne Monitoring Systeme bieten zwar Docker-Support an, dies aber meist nur auf der Container Ebene. Was tatsächlich im Container selbst passiert ist, wird nicht abgebildet.

Mithilfe eines SIEM Systems können hier Log-Informationen auch von innerhalb des Containers auf Malware analysiert werden und weitere Massnahmen eingeleitet werden.

Das Fazit

Auch wenn eine Docker-Lösung einfach zu installieren und betreiben ist, darf der Security-Aspekt nicht «unter den Teppich gekehrt» werden. Dank moderner Securitylösungen können zwar bestimmte Angriffe, welche via Docker eingeschleust und auch erkannt werden - beispielsweise Command&Control Angriffe. Jedoch bedarf es einiges mehr, um eine sichere Docker-Infrastruktur zu betreiben.

  

 

Kontakt
{}}
Security Advisor bei T-Systems Schweiz

Security Awareness  Mit IT-Sicherheit spielt man nicht – oder doch? Der Security Parcours ist ein  spielerisches Training, das anhand konkreter Gefahren angemessene  Verhaltensregeln vermittelt, wie sich jeder schützen kann. Mehr erfahren

Andreas Broger

Kontakt: Andreas Broger

Security Advisor bei T-Systems Schweiz