RE: Computerclub 2 – Ausgabe 171

01Okt09

Die Herren Wolfgang Back und Wolfgang Rudolph veröffentlichen seit geraumer Zeit Podcasts zu den verschiedensten Bereichen der IT. Als ich das Archiv durchstöberte habe, bin ich auf das interessante Thema “Sichere Betriebssysteme” gestoßen. Leider ist die Episode äußerst oberflächlich und, was noch schwerer wiegt, faktisch an vielen Ecken falsch.

Dem Einstieg wird der normale Computernutzer noch zustimmen, denn es heißt, dass aktuelle Betriebssysteme (ohne Ausnahme Windows, Linux und UNIXe) unsicher seien und jederman von Abstürzen und Viren geplagt ist. Was die Autoren aber verschweigen: Wie oft ist denn das Betriebssystem an der Misere schuld? Es ist in 99 Prozent der Fälle ein Userspace-Programm mit den “Backdoors” und schlampig programmierten Zeigern dafür verantwortlich. Aber der Reihe nach.

Das Problem, was die Herren da identifiziert haben wollen, ist “Shared Memory” also Speicher der von einem oder mehr Prozessen benutzt werden kann. Sie gehen sogar soweit zu behaupten, dass “alle Prozesse den gleichen Speicherbereich benutzen” und Prozesse im “Speicher rumlaufen dürfen” wie es ihnen beliebt. Allen aktuellen Betriebssystemarchitekturen wird attestiert untauglich zu sein.

Das ist so aber erstmal falsch, wenn man von einem Betriebssystem mit virtuellem Speicher ausgeht. In einem solchen System wird jedem Prozess ein 3GB großer virtueller Adressraum gewährt der (in der Regel) in jeweils vier Kilobyte große Seiten aufgeteilt wird. Jede virtuelle Seite die nicht auf die Festplatte ausgelagert ist, hat ein physikalisches Pendant, das Frame im Arbeitsspeicher. Nun ist es allerdings so, dass, aus Sicherheitsgründen und mit Menschenverstand nachvollziehbar, ein physikalisches Frame mit den entsprechenden Daten auch nur in den Adressraum gemappt ist, dessen Prozess die Daten auch gehören. In der Praxis bedeutet dies, dass ein Prozess soviel in seinem Adressraum rumwildern kann, wie er will. Es kann nie auf die Daten eines anderen Prozesses zugegriffen werden, es sei denn es wurde sich darauf geeinigt (und zwar wirklich beiderseitig), dass beide Prozesse auf die Seite zugreifen können – dann und nur dann spricht man auch von Shared Memory.

Eine Sache bleibt noch: Aus Effizienzgründen ist der Adressraum des Kernels fest in das obere Gigabyte jedes virtuellen Adressraums gemappt. Deshalb könnte theoretisch jede Anwendung wichtige Kerndatenstrukturen zerstören, wären da nicht Useflags in den Pagetable-Entries (die bilden in einer verzweigten Tabelle virtuelle Seiten auf physikalische Frames ab), die in Hardware überprüft werden und nur dem Kern erlauben auf seine Seiten zuzugreifen – und das seit über zwanzig Jahren. Der Fakt wird kurz angesprochen, aber unter fadenscheinigen Gründen wieder abgewunken.

Wie geschildert, sind die meisten Betriebssysteme inhärent sicher vor bösartigen Angriffen aus dem Userspace. Was bleibt – und damit haben die Wolfgangs Recht – sind Treiber und die verschiedenen Abstraktionen innerhalb eines monolithischen Kerns, die bei schlechter Programmierung wichtige Kerndatenstrukturen zerstören können. Als Antwort auf das Problem haben diese das “Singularity”-Projekt von Microsoft auserkoren, dass einem “ganz anderen Konzept” nachgeht. Das Betriebssystemforscher nicht gänzlich dumm sind und genau das Mikrokernkonzept seit Jahrzehnten (Mach von der CMU, Minix vom Tanenbaum, L3/4, usw. usf) untersuchen, scheint ihnen nicht klar zu sein oder bewusst verschwiegen zu haben, beides spräche jedenfalls nicht für ihre Kompetenz.

Auf die Frage wie Singularity nun vor “Routinen schützt, die ich selber geschrieben habe”, kommt eine Antwort bei der ich nicht weiß, ob das ein Scherz sein soll und ich ihn nicht verstanden habe: “Das geht halt nicht, da müsste man ein paralleles Betriebssystem installieren”. Fazit der Sendung ist, wenn denn das Ganze mal marktreif wird, dann kann es kein Conficker mehr geben (schön wie unter den Teppich gekehrt wurde, dass da immer noch Lücken in Userspace-Programmen dran schuld sind) und auch keine Abstürze und auch sonst ist alles gut.

In diesem Sinne, ein absturzfreies Wochenende.



No Responses Yet to “RE: Computerclub 2 – Ausgabe 171”

  1. Hinterlasse einen Kommentar

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Log Out / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Log Out / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Log Out / Ändern )

Verbinde mit %s


Follow

Bekomme jeden neuen Artikel in deinen Posteingang.