vablo schrieb:
Wie schaut es eigentlich mit der Sicherheit aus bei diesen Lösungen?
Ja. Ist ein schwieriges Thema, welches man nur mit einem konkreten "Kommt drauf an" beantworten kann. :-)
Bei virtuellen Maschinen, wo von vornherein schon die Grundidee ist das das Gastsystem annehmen soll es läuft auf einem eigenen Computer ist natürlich auch der Grad der Isolation recht groß. Es ist also erst mal nicht vorgesehen das der Gast auf irgendwas außerhalb der VM zugreifen darf oder sogar nur davon was sehen soll.
In der Praxis ergeben sich dann aber trotzdem Probleme. Erstens weil die eigentliche Software (der HyperVisor usw.) relativ komplex sind. Das bedeutet leider auch, das da dann auch gern mal Bugs auftauchen. Auch Bugs die den Ausbruch aus der VM ermöglichen.
Das zweite Ding ist, das Du VMs ja gar nicht unbedingt so isoliert haben willst. Du willst ja zum Beispiel mit ihr interagieren und sie soll auch Geräte benutzen können (Bildschirm, Grafikkarte), man gibt Zugriff auf Datenträger frei für den Datenaustausch usw. Das bohrt natürlich auch alles Löcher in die Isolation.
Bei den Container-Lösungen ist das noch mal ne ganz andere Hausnummer. Weil da das das "Gastsystem" Zugriff auf das Hostsystem hat ein Teil des Konzeptes ist. Auf der anderen Seite ist die Software die hinter Containerlösungen steckt auch einfacher und hat damit potentiell weniger Fehler.
Ansonsten kommt es halt drauf an. Das schon genannte Beispiel
Docker sieht zwar Isolation vor, allerdings war das dort nie als Sicherheitsfeature gedacht.
Docker ist in erster Linie ein Deployment-Technologie. Das heißt, Du packst da Dein Programm plus seine Abhängigkeiten (Bibliotheken etc.) rein und verteilst halt dann den Container und kannst den auch munter durch die Gegend (also auch auf andere Maschinen) schieben (was nützlich ist, wenn Deine Hardware mal kaputt geht; ähnlicher Effekt wie bei Vollvirtualisierung).
Zwar bieten
Docker-Container eine gewisse Ausbruchssicherheit die auch ausgebaut wird (weil halt zunehmend die Anforderung besteht), aber wie gesagt. Ursprünglich gedacht was dafür nicht.
Gibt aber auch andere Beispiele. Bei FreeBSD hast Du für Container-Like-Virtualisierung
Jails. Hier hast Du zwar auch so die Virtualisierung auf Dateisystemebene usw. (was halt so typisch für Containerlösungen ist), aber die haben auch Security als integralen Bestandteil. Die haben halt von Anfang an darauf geachtet, das man die Beschränkungen nicht umgehen kann. Die ist initial auch viel restriktiver. Da ist eher der Ansatz:
"Wenn Du was brauchst, musst Du es explizit freischalten" und nicht "Was Du nicht brauchst, musst Du explizit sperren".
vablo schrieb:
Kann ein Container auf einen anderen Container zugreifen?
Ist letztlich Einstellungssache.
vablo schrieb:
Kann eine VM auf eine andere zugreifen?
Auch das ist Einstellungssache. Wobei es hier ein bisschen Schwieriger ist. Lösungen a-la Docker sind auch explizit dafür gedacht, das Container zusammenarbeiten. Dementsprechend ist es dort natürlich einfacher die Isolation aufzuheben. Im Guten wie im Schlechten.
vablo schrieb:
Ist es ausgeschlossen, dass solche Zugriffe funktionieren?
Das riecht so arg nach 100%iger Sicherheit. An der Stelle lacht der typische ITler, dreht sich um und holt sich nen Kaffee. :-)