Programm in VM in Linux gestartet, was kann es nun?



  • Eine Anwendung hat für gewöhnlich wenig Möglichkeiten (wenn überhaupt) aus seinem Adressraum auszubrechen. Erst recht, wenn es mit normalen Benutzerrechten, also nicht mit einer Adminkennung ausgeführt wird. Dabei ist es unerheblich, ob die Anwendung innerhalb einer VM läuft oder nicht.

    Jetzt kommt allerdings das ABER:

    Schadsoftware sucht aber gezielt nach Schwachstellen im System, um aus seinem Adressraum auszubrechen. Dann kann sie die volle Kontrolle erhalten unter Umständen auch auf das Hostsystem.

    VMWare gibt sich beispielsweise auch gar keine Mühe, sich vor dem Gast zu verstecken. Jedes Windowsprogramm kann leicht feststellen, daß "sein" Windows in einer VM läuft.

    Das ist auch OK so, denn die Aufgabe einer VM ist es nicht, eine Sandbox für Schadsoftware zu bieten. Aufgabe ist es, ein Gastsystem möglichst performant ausuführen. Wer Schädlinge analysieren will, hat dafür eigene Hardware, die auch keine Netzwerkverbindung zu anderen Rechnern, die nicht für die Analyse benötigt werden, hat.

    mfg Martin



  • mgaeckler schrieb:

    Dann kann sie die volle Kontrolle erhalten unter Umständen auch auf das Hostsystem.

    Kannste das "unter Umständen" ein wenig erläutern?



  • volkard schrieb:

    mgaeckler schrieb:

    Dann kann sie die volle Kontrolle erhalten unter Umständen auch auf das Hostsystem.

    Kannste das "unter Umständen" ein wenig erläutern?

    Wenn Du Zugriff auf den real existierenden Arbeitsspeicher oder sonstige Hardware hast, hast Du eben mehr oder weniger die volle Kontrolle über das System. Je nachdem wie eventuel vorhandene Schutzmaßnahmen greifen oder nicht. Darüber hinaus muß auch beachtet werden, daß Virtualisierungslösungen wie VMWare eben nicht darauf ausgelegt ist, eine Sandbox zu bauen. Auch finden die Entwickler der Schadsoftware eben irgendwie immer ein Schlupfloch.

    mfg Martin





  • ...



  • mgaeckler schrieb:

    VMWare gibt sich beispielsweise auch gar keine Mühe, sich vor dem Gast zu verstecken. Jedes Windowsprogramm kann leicht feststellen, daß "sein" Windows in einer VM läuft.

    Das ist auch OK so, denn die Aufgabe einer VM ist es nicht, eine Sandbox für Schadsoftware zu bieten.

    Es wäre aber schon sinnvoll, wenn die VM dahingehend konfigurierbar wäre ob sie sich mühe beim verstecken geben soll, oder nicht.



  • Ihr habt den Sinn einer Sandbox/VM nicht ganz verstanden. Meist geht es darum Probleme zu umgehen und nicht um sich vor angriffen zu schützen.

    Man nutzt eine VM z.B. um Software auszuprobieren ohne den Host zuzumüllen. VMs kann man nämlich schön zurücksetzen. Es kommt auch vor, dass die Zurücksetzungsmöglichkeit ein Hauptgrund ist, warum man die VM benutzt, um z.B. Limitierungen zu umgehen. Oder um eine Art Kapsel zu haben, in der man eine spezielle Netzwerkkonfiguration hat, damit z.b. sämtlicher Verkehr nur über einen festgelegten Tor-Proxy läuft. Auch da ist wieder die Zurücksetzungsmöglichkeit ein weiterer Vorteil, weil sämtlicher Cache (Cookies, Fake-Datenbank-Cookies (versteckter Cookie), ...) verschwindet.

    Sollte tatsächlich ein Angriff erfolgt sein, der z.B. einen geheimen Speicherort auf dem Host eingerichtet hat, damit z.B. ein Programm in der VM jedes mall an den geschützten geheimen Speicher kommt, müsste das Programm aber immer in der VM überleben, was es aber nicht schaffen kann, wenn die VM zurück gesetzt wird. Falls doch wäre die Hashsumme der Festplatten-Datei nicht identisch mit der zum Zeitpunkt der Sicherungspunkterstellung.



  • Einspruch schrieb:

    Es wäre aber schon sinnvoll, wenn die VM dahingehend konfigurierbar wäre ob sie sich mühe beim verstecken geben soll, oder nicht.

    Mag sein. Die Frage dürfte aber sein, wie aufwendig zu implementieren so etwas ist und wie hoch dann der potentielle Schutz ist. Ich glaube kaum, daß die Hersteller solcher virtualisierungslösungen diesen Aufwand treiben, um dann doch keine Garantie geben zu können, daß es funktioniert. Wie schon mal geschrieben: Schädlingsprogrammierer finden immer eine Lücke.

    mfg Martin



  • Autist schrieb:

    Ihr habt den Sinn einer Sandbox/VM nicht ganz verstanden. Meist geht es darum Probleme zu umgehen und nicht um sich vor angriffen zu schützen.

    Richtig. Ich mache sehr viel Gebrauch von VMs.

    • Als Testumgebung für neue Software, weil ich die eben leicht zurücksetzen kann.
    • Um die unterschiedlichsten Kundenkonfigurationen als Zielsystem für meine Entwicklungen zu haben.

    Die Analyse von Schadsoftware überlasse ich den Spezialisten.

    mfg Martin



  • Schutz vor run-of-the-mill-Angriffen ist schon ein sehr netter Nebeneffekt von VMs. Im Zweifelsfall plättet man eben die kompromittierte VM und fertig.

    Dass es bei Vorhandensein entsprechender Sicherheitslücken möglich sein kann, aus VMs auszubrechen, bestreitet niemand. Aber in freier Wildbahn sind Angriffe auf Virtualisierungssoftware extrem selten und man hat damit eben ein Stück Software mehr aktuell zu halten.



  • gibt recht einfache Möglichkeiten zu checken, ob man in einer VM läuft.

    Zumindest bei vmware kann ich mich dunkel erinnern, dass die in und out Befehle aus User Mode Programmen aufrufbar sind.
    Auf echter Hardware darf man diese nur im Kernel Mode aufrufen, andernfalls gibts eine Exception.

    Also lies oder schreibe mit in/out auf einen Port und wenns keine Exception gibt dann läuft dein Code wohl in einer vmware Maschine.



  • Es gibt viele Möglichkeiten herauszufinden ob man sich in einer VM befindet oder nicht!



  • -lowbyte- schrieb:

    Es gibt viele Möglichkeiten herauszufinden ob man sich in einer VM befindet oder nicht!

    Das hatten wir doch schon etabliert, schon in den ersten Antworten.


Anmelden zum Antworten