Ich habe gehört, dass (von einem Forscher, der an einem konkurrierenden Mikrokernel-Verfahren arbeitet ) behauptet wurde, dass nur sehr wenig darüber bekannt ist, wie die Sicherheit von Systemen bewertet werden kann, die durch verwalteten Code erweiterbar sind.
Das Problem ist, dass die Arten von Fehlern, die eine Sicherheitslücke verursachen könnten, sich stark von den Sicherheitsforschern unterscheiden, an die sie gewöhnt sind. In einem herkömmlichen Mikrokernel werden alle Treiber und andere Unterteile des Kernels voneinander isoliert, indem sie in verschiedenen Adressräumen ausgeführt werden. In einem Mikrokernel, in dem die Isolation durch verwalteten Code mit Typprüfung implementiert wird, vermeiden Sie den enormen Overhead beim Wechseln des Adressraums jedes Mal, wenn Sie einen Unterdienst verwenden müssen. Der Kompromiss besteht jedoch darin, dass die Bewertung des Isolationsmechanismus jetzt schwieriger ist.
Jeder bestimmte Teil des Kernels (z. B. ein Gerätetreiber), der in der verwalteten Sprache geschrieben ist, ist nur dann sicher, wenn die Typprüfung angibt, dass der Treiber sicher ist und die Typprüfung keine Fehler aufweist. Die Typprüfung ist also Teil des Kernels. In der Praxis scheinen die Typprüfer erheblich größer und komplizierter zu sein als herkömmliche Mikrokernkerne. Das bedeutet, dass die Angriffsfläche möglicherweise größer ist.
Ich weiß nicht, ob herkömmliche Mikrokernel-Isolationstechniken oder auf verwaltetem Code basierende Isolationstechniken wirklich mehr oder weniger zuverlässig sind. Hier liegt ein Bootstrapping-Problem vor: Solange keine Isolationstechniken für verwalteten Code weit verbreitet sind, wissen wir nicht, wie oft sie unsicher sind. Ohne zu wissen, wie unsicher sie sind, ist es jedoch schwierig, sie in sicherheitskritischen Situationen bereitzustellen.