Hallo,
aktuell beschäftige ich mich mit verschiedenen Virtualisierungslösungen für eine Seminararbeit. Nachdem ich die Klassiker wie
VMware und XEN durch hatte bin ich auf Solaris gestoßen. Die Sache mit den Zonen/Container klingt sehr spannend.
Dir ist aber schon klar, dass das Äpfel und Birnen sind? VMware und Xen virtualisieren die Hardware, Zonen virtualisieren das Betriebssystem, ähnlich wie FreeBSD Jails oder Linux VServer.
Eine Sache die mir speziell bei sämtlichen VMware Produkten über den Weg gelaufen ist, ist die Möglichkeit in einer VM zu erkennen, ob ein OS eben in einer VM oder auf nativer Hardware ausgeführt wird. Das Stichwort dazu lautet VM Detect. Es gibt verschiedene Werkzeuge die das ermöglichen.
Meine Frage ist nun, ob es auch solche Techniken für Zonen/Container im Zusammenhang mit Solaris gibt?
Wieso ist das schlimm, wenn eine Software erkennen kann, dass sie in einer Zone oder einer VM läuft? Bei VMware sollte ein Blick ins BIOS oder auf diverse Hardware-Komponenten vom Hersteller "VMware" genügen, um das ziemlich sicher festzustellen. Dazu muss man nicht erst aufwändig das Verhalten von speziellen Befehlen analysieren.
Ziel ist es ja nicht, einer Anwendung oder einem Betriebssystem absolut perfekt vorzugaukeln, dass es in einer virtuellen Umgebung läuft, es reicht wenn diese Illusion "gut genug" ist. Und manchmal will man sogar, dass der Gast dieses Wissen sogar nutzt, siehe VMware Tools, siehe paravirtualisierte Treiber bei Xen. Interessant ist so eine perfekte Illusion vielleicht für Wissenschaftler oder Viren-Programmierer.
Insofern bietet Solaris einen Befehl "zonename", der den Namen der Zone zurück meldet.
Noch schlimmer wäre natürlich, wenn ein Ausbruch (VM Escape) aus einer Zone möglich wäre!?
Bugs gibt es in jeder Software, zumindestens für VMware kann ich mich an Meldungen über Sicherheitslücken dunkel erinnern. Das sind aber erstmal nur implementierungsspezifische Fehler und keine konzeptionellen Probleme, aus denen die Computerbild fette Titelstorys mit Gruseleffekt bauen könnte.