x86 Rechner mit Bochs emulieren = 100 % iger Schutz vor Spectre?



  • Bochs ist ja keine VM, die Gastcode in die echte CPU einblendet, sondern Bochs ist ein Emulator, der eine x86 CPU vollständig in Software emuliert.
    Deswegen kann man mithilfe von Bochs auch x86 Code auf Nicht-x86 Systemen ausführen.

    Wäre Bochs daher ein guter Schutz gegen Spectre?


  • Mod

    computertrolls schrieb:

    Wäre Bochs daher ein guter Schutz gegen Spectre?

    Nein, denn es wäre scheißenlahm. Eine bessere Lösung wäre daher einfach, einen Prozessor ohne das Problem einzusetzen (z.B. ein älterer Intel Atom). Die wären zwar auch scheißenlahm, aber immer noch wesentlich, wesentlich schneller als Bochs.

    Außerdem musst du erst einmal beweisen, dass ein Code nicht mittels Meltdown/Spectre aus Bochs ausbrechen kann. Innerhalb der VM mögen Prozesse ja perfekt voneinander abgeschottet sein, aber es könnte schließlich möglich sein durch ein Programm innerhalb der VM ein Programm auszuführen, das den Kernelspeicher des VM-Prozesses selbst angreift. Das ist mir nicht ersichtlich, dass dies pauschal unmöglich sein sollte.



  • SeppJ schrieb:

    computertrolls schrieb:

    Wäre Bochs daher ein guter Schutz gegen Spectre?

    Nein, denn es wäre scheißenlahm. Eine bessere Lösung wäre daher einfach, einen Prozessor ohne das Problem einzusetzen (z.B. ein älterer Intel Atom). Die wären zwar auch scheißenlahm, aber immer noch wesentlich, wesentlich schneller als Bochs.

    Mir ging es um die Frage, ob es prinzipiell sicher wäre?

    Das es arschlahm ist, ist mir auch klar.

    Außerdem musst du erst einmal beweisen, dass ein Code nicht mittels Meltdown/Spectre aus Bochs ausbrechen kann. Innerhalb der VM mögen Prozesse ja perfekt voneinander abgeschottet sein, aber es könnte schließlich möglich sein durch ein Programm innerhalb der VM ein Programm auszuführen, das den Kernelspeicher des VM-Prozesses selbst angreift. Das ist mir nicht ersichtlich, dass dies pauschal unmöglich sein sollte.

    Der Punkt ist, BOCHS ist keine VM. BOCHS ist ein Emulator. D.h. der emuliert wirklich alles, von den Registern bis zu den Opcodes.
    Eine VM reicht zum Vergleich Code nur an die echte CPU, also echte Hardware weiter.
    Deswegen sind VMs wie qemu, virtualbox und Co auch viel schneller als BOCHs.

    Ein Prozess, der innerhalb der emulierten BOCHS CPU läuft, sieht die echte CPU also nie.
    Da ist so, als würdest du einen Prozess auf einem der vielen Minecraft Prozessoren laufen lassen, die Leute im Spiel Minecraft gebaut haben. Nur um mal eine Vorstellung davon zu bekommen, wie emuliert die CPU in BOCHs ist.


  • Mod

    Bloß weil er etwas nicht sieht, heißt das nichts. Javascript läuft auch in einer VM und trotzdem geht dort Meltdown. Auch in der VM bewirken bestimmte Befehle, dass auf der echten CPU bestimmte andere Befehlsfolgen (eben der Emulationscode) ausgeführt wird. Wenn man dort einen Seitenkanal findet, kann man den nutzen. Das lustige an Seitenkanälen ist ja, dass solch theoretische Überlegungen bezüglich der Prozessorabstraktion nicht den Angriffskanal modellieren. In der Theorie ist die Intel-CPU auch bombensicher.


Log in to reply