Hadmut Danisch

Ansichten eines Informatikers

Ist die Systemsicherheit gescheitert?

Hadmut
7.4.2010 23:46

Eine Überlegung.

Heute war verschiedentlich zu lesen, daß eine Expertin für Rootkits empfohlen hat, durch Virtualisierung verschiedene Instanzen für die verschieden Aufgaben zu verwenden, also normales Websufern mit einer anderen Instanz als Homebanking usw.

Die Idee ist m. E. sehr gut, aber nicht neu. Das wird schon häufig gemacht, daß man sich verschiedene virtuelle Linuxe oder Windowse usw. auch auf dem Desktop einrichtet. Das ist ja auch naheliegend, denn inzwischen sind auch Rechner aus dem Endverbraucherbereich dazu locker in der Lage. (Und das Problem, wie man den Leuten mehr als die 3GB Speicher verkauft, mit denen 32-bit-Windows maximal umgehen kann, muß ja auch noch gelöst werden.) Auch dieses Blog hier wird in Bälde virtualisiert, die Arbeiten laufen schon. Virtualisierung ist der Hype schlechthin.

Man muß sich aber auch Gedanken darüber machen, was die Gründe dafür sind. Denn letztlich ist eine solche Virtualisierung nur eine Brachiallösung.

Ein Grund dürfte sein, daß wir im normalen Betriebssystemumfeld eine Komplexität erreicht haben, die wir kaum noch im Griff haben. Viel zu viele Funktionen, viel zu viele Abhängigkeiten. Mich erinnert das an die Probleme bei der Weiterentwicklung von Prozessoren: Noch höhere Taktraten waren nicht mehr mit vernünftigem Aufwand zu machen, deshalb werden statt schnellerer immer mehr Kerne in den Rechner eingebaut. Ähnlich erscheint es mir mit den Betriebssystemen: Wie hier schon mehrfach angesprochen, weder Microsoft noch die Linux-Szene haben ihre Betriebssysteme und Desktops noch stabil im Griff, die Weiterentwicklung wird immer schwieriger und komplexer. Künftig viele kleine statt eines immer größeren Betriebssystems? Ist die Virtualisierung eine Folge dessen, daß weder Microsoft noch Linux einen ordentlichen Microkernel hinbekommen haben?

Aktuell werden Sicherheitsprobleme als Grund für die Virtualisierung genannt. Ein guter Grund. Aber auch ein schräger. Denn eigentlich ist sowas ein Offenbarungseid, das Eingeständnis, daß wir keine sichere Software mehr hinbekommen. Virtualisierung beruht wesentlich (auch) auf Hardwarefunktionen.

Jahrelang, jahrzehntelang wurde da gepredigt über formale Sicherheitsmodelle, theoretischer, beweisbarer Sicherheit (das an Universitäten so verbreitete schwachsinnige Gerede von der „garantierten Sicherheit”), Bell LaPadula hin, MAC, DAC und RBAC her (was übrigens nicht die klingonischen Namen von Tick, Trick und Track sind). Jede Menge Leute, die nichts weiter als das (wenn überhaupt) konnten, wurden damit Professoren und haben veröffentlicht, doziert usw.

Wie aber sieht es in der Realität aus? Dünn. Sehr dünn.

Das sind alles solche Modelle, die sich schön an die Tafel schreiben lassen, aber deren Aufwand und Komplexität in der Realität in keinem Verhältnis zur Bedrohung und zum möglichen Schaden steht. Schaut Euch mal SELinux an. Welch ein enormer Aufwand es ist, das ordentlich zum Laufen zu bringen (und mehr noch am Laufen zu halten). Wer blickt da wirklich durch alle Regeln so durch, daß er ein normales Linux-System zuverlässig lücken- und fehlerfrei betreiben kann? Geht ja gar nicht, weil man bei den wenigsten Programmen und Bibliotheken klar erkennen kann, was die regulär tun und was nicht. Wie will man beispielsweise RBAC usw. durchsetzen, wenn beispielsweise Zugangspassworte (vgl. den berüchtigten NetworkManager) über den DBUS ausgetauscht werden, der selbst kein RBAC unterstützt? Ich kenne im privaten und im industriellen Bereich niemanden, der das ernsthaft einsetzt. Und im behördlichen und militärischen Bereich kenne ich – soweit ich bisher tätig war – auch niemanden. Selbst die erheblich vereinfachten Systeme wie AppArmor werden kaum eingesetzt. Ich kenne Fälle, in denen die „Härtung” (schon der Begriff ist bescheuert und zeigt die Mangelhaftigkeit des Normalzustandes) von Solaris daran scheiterte, daß man einfach nicht sagen konnte (nicht einmal der Hersteller selbst), wie sich die Serversoftware im Normalbetrieb verhalten werde und ob sie nicht doch irgendwann mal diese oder jede Bibliothek usw. braucht. Eine Herstellerhaftung für stabilen Betrieb wurde nur für den Fall übernommen, daß das System auf einem normal installierten Solaris abläuft. Wie will man da noch Access-Control-Regeln aufstellen, die diesen Namen verdienen?

Vieles von dem, was in der wissenschaftlichen IT-Sicherheit gelehrt wird, stellt sich als unrealisierbarer Hokus-Pokus heraus, nur heiße Luft um wissenschaftliche Tätigkeit vorzugaukeln und massig Papier zu produzieren.

Bei den in der Realität Lebenden und den Pragmatikern sieht es aber auch nicht besser aus. Wie lange kenne wir Pufferüberläufe usw. schon? „With Microscope and Tweezers” war 1988, das ist inzwischen 22 Jahre her. Und trotzdem gibt es praktisch wöchentlich Patche für irgendwelche Pufferüberläufe oder ähnliche Macken. Katastrophal schlechte Funktionen ohne Prüfung der Grenzen wie gets sind noch heute Bestandteil der Standard C Library, und die allermeiste Software wird immer noch in C oder C++ geschrieben, Sprachen ohne Netz und doppelten Boden, mit grenzenloser Pointerarithmetik und anderen Macken. Es gibt bis heute keine geeignete ordentliche Compilersprache, und selbst wenn wir sie hätten, bräuchten wir mindestens 10 bis 20 Jahre, um den ganzen Kram umzuschreiben.

Unter Windows gibt es (zumindest nach meinem nicht aktuellen Wissensstand, korrigiert mich, wenn sich das inzwischen geändert hätte) bis heute keine Versionsverwaltung für Bibliotheken und keinen systematischen Weg, um von einer Datei, die da irgendwo auf dem Rechner herumliegt, zu klären, wo sie herkommt, wozu sie gut ist, was sie macht, und ob sie unverändert ist.

PDF wäre ein wunderbares Dateiformat für Dokumente gewesen, das man komplett von der Außenwelt hätte abschotten können, und über das – wenn nicht gerade Fehler wie Pufferüberläufe vorkommen – zumindest im Normalfall keinerlei Sicherheitsgefahr hätte ausgehen können. Dann aber kamen irgendwelche Idioten bei Adobe auf die Idee, da irgendwelchen Multimedia- und Internetblödsinn einzubauen, und schon war das kein geschlossenes System mehr. Dazu kamen katastrophal fehlerhafte Implementierungen der PDF Reader, und schon war aus einer im Prinzip völlig ungefährlichen Sache eine Sicherheitskatastrophe geworden. Noch schlimmer die Flash-Videos. Sicherheit ist nicht nur nicht Ziel der Softwarebranche, sondern ist geradezu deren Gegner. Wie sonst wäre es möglich, daß sich Malware einfach per E-Mail verbreitet und Mailprogramme von selbst oder bei laienhafter Bedienung irgendwelchen Mist ausführt? Wie lange kann man Windows zuhause ohne Admin-Rechte betreiben? Da bekommt man Krämpfe. Das schlimmste Sicherheitsproblem sind nicht die chinesischen oder russischen Hacker, sondern Softwarehersteller wie Microsoft und Adobe.

Schon auf Hardwareebene stellt sich das Problem: Wie viele Controlerchips usw. für den PC sind im Umlauf, für die es keine offengelegte Dokumentation gibt, damit man ordentliche Treiber oder Treiber für andere Betriebssysteme schreiben kann? Bei vielen Geräten ist man auf Gedeih und Verderb auf die Treiber der Hersteller angewiesen, und die sind meist unglaublich schlecht. Man hätte beispielsweise erhebliche Einfuhrzölle auf PCs und Komponenten erheben können, in denen undokumentierte Chips stecken.

Netzwerksicherheit – eine einzige Katastrophe. Keine einheitliche Strategie. Mehr als über Kinderpornographie zu wettern kommt von der Politik nicht. In jedem Webbrowser stecken dutzende von Root-Zeritikaten – irgendwelche Firmen weit außerhalb des deutschen Rechtssystems und deutscher Haftung erstellen für uns hier für den deutschen Geschäftsverkehr SSL-Zertifikate. Und niemand kümmert sich drum.

Spam. Das Problem ist auch schon über 10 Jahre alt. Wir sind bis heute zu überhaupt keiner Abwehr in der Lage. Der Bundestag hat sich damit beschäftigt, aber herausgekommen ist nichts. Irgendwelche Professoren stellen Forschungsanträge, Geld wird versenkt und das wars.

Da wird mit viel Getöse die Bürger-De-Mail angepriesen. Sicherheitseigenschaften? Wird sich schon irgendwie finden. Statt sicherer Übertragung und sicherem Empfang wird einfach der Provider zum Vormund des Bürgers erklärt und fertig.

Und dann kommen die vom Bundestag auf die Idee da so eine Enquete-Kommission über die Zukunft des Internet einzusetzen, aber nach dem, was ich bisher gesehen habe, ist da kaum Fachwissen über IT-Sicherheit und strukturelle Planung vertreten. Das ist von vornherein zur Luftnummer verurteilt.

Daher halte ich eine solche Virtualisierung für den momentan einzigen gangbaren, wirtschaftlich vertretbaren, kurzfristig umsetzbaren und effektiven Weg, um aus diesem Kuddelmuddel noch eine deutliche sicherheitstechnische Verbesserung hinzukriegen.

Daß damit aber eine Trennung der Systeme für die Aufgaben einhergeht bedeutet nichts anderes, als daß die Systemsicherheit selbst als gescheitert angesehen werden muß – und möglicherweise nicht nur das, was man daraus gemacht hat, sondern sogar das Paradigma selbst. Und damit muß man auch ein Scheitern der etablierten Wissenschaft konstatieren.


14 Kommentare (RSS-Feed)

cypher
8.4.2010 5:33
Kommentarlink

Ein Scheitern der Wissenschaft?
Ob das nich etwas arg hochgegriffen ist?
Du sagst ja selbst das es da viele schöne Thoerien gibt sie aber eben in der Praxis nicht “lebbar” sind. Wenn eben im “realen Leben” etwas nicht umgesetzt wird weil es eben zu viel Aufwand bedeutet, einem also die schnelle Nutzbarkeit die Bequemlichkeit wichtiger ist, so ist ja nicht die Wissenschaft an sich gescheitert. Man entscheidet sich eben lieber für den Weg mit aus eigener Sicht besserem Kosten Nutzen
Verhältnis.
Es wäre natürlich schön wenn die Wissenschaft besseres liefern würde aber das ist es ja immer. Worüber man früher gejubelt hat ob seiner Genialität ist heute Schnee von gestern und schon wieder überholt. Ausserdem gibt es in diesem Feld ja nicht nur eine Forschungsrichtung. Und die Interessen und Mittel auf der Seite “Contra Sicherheit” sind nicht unbedingt sooo klein.

Also ich würd sagen es ist noch einiges offen (mehr als man wohl je dachte) und der derzeitige Stand keineswegs zufriedenstellend aber gescheitert klingt mir zu unpassend endgültig.


100%ige Zustimmung, bis auf “daß ordentlich zum Laufen zu bringen”._;°)
Da fragt einer nach dem Konzept in diesem konzeptlosen Gewurstel; ein Ketzer! Nebenbei, Bluepill ist doch sicher eine Anspielung auf Viagra.

Jetzt meine Theorie: Die Rechner werden zu Borhmaschinen.
Vor vielen Jahren beschwerte sich mein Vater, daß er beim Arbeiten ständig die Anbaugeräte der Borhrmaschine wechseln muß. Sicher war das nervig, aber kein Problem, nur Bohrfutter ab, Kreissäge dran, Kreissäge ab, Bohrfutter dran, Bohrfutter ab, Schleifgerät dran, …
Man kaufte damals eine Bohrmaschine mit Zusatzgeräten. Später wurden dann die Elektromotoren so billig, daß jedes Gerät seinen eigenen Antrieb bekam und der war auch noch optimal angepaßt. Das nannte man dann Mastergeräte — das weiß heute keiner mehr, der einen Elektrohobel kauft.
Wir werden also keine virtuellen Mastergeräte bekommen sondern die Hardware wird bald so billig sein, daß wir für jede Funktion einen Rechner haben, Internet, Banking, Dokumente, Programmieren, Porno, …
Vielleicht kriegen wir auch einen neuen Stick, wie den USB-Stick, der Prozessor, Speicher, Betrübssystem und Anwendung enthält und nur ins Terminal gesteckt wird — also Mastergeräte. “Kann ich mir mal Deinen Pornostick ausleihen?”
Was wir jetzt als Universalrechner haben wird abgelöst und das müssen wir eines Tages genauso verstecken wie jetzt die Waffen.

Carsten

D-Mark zurück
http://ruthe.de/cartoons/strip_0408.jpg


Hadmut
8.4.2010 9:05
Kommentarlink

Solche Effekte gibt’s öfters.

Früher hat man den Autofokus-Motor in die Spiegelreflexkamera eingebaut, weil er sehr teuer war, und die Objektive mechanisch angekoppelt. Heute macht man das nicht mehr und baut den Motor in die Objektive, weil’s billiger und besser ist, und der Motor an das Objektiv angepaßt wird.

Inzwischen gibt es die erste Kamera (bin jetzt nicht sicher, war glaube ich Ricoh), bei der der Bildsensor nicht mehr an der Kamera ist, sondern fest mit dem Objektiv verbaut, und das Objektiv nur noch elektrisch mit der Kamera verbunden ist.

Vielleicht wird man über kurz oder lang nicht mehr den Browser installieren, sondern die virtuelle Webmaschine mit alle dem Nebenzeugs am Stück herunterladen und laufen lassen. Im industriellen Bereich gibt es von den Herstellern ja schon jede Menge fertige virtuelle Maschinen (VMWare-Images), die man sich für Demos usw. runterladen kann.


Peter
8.4.2010 9:49
Kommentarlink

@Carsten Thumulla

Blue Pill ist das Gegenstück zur Red Pill.

Die beiden Pillen zwischen denen sich Neo in Matrix 1 entscheiden musste.


yasar
8.4.2010 11:49
Kommentarlink

Man darf aber nicht vergessen, daß die Virtualisierung nur eine Komplexitätsstufe mehr hinzufügt.

Im Prinzip ist der Hypervisor ja nicht anderes wie ein spezialisiertes OS, daß die Ressourcen (Hardware) den Anwendungen (Virtuelle Maschinen) zur Verfügung stellt. Teilweise läuft da ja noch tatsächlich ein richtiges OS drunter (Windows, Linux, MacOS, etc.). Teilweise ist der Hypervisor eingenständig (VMware ESX u.ä.).

Daher wird man, sofern sich Virtualisierung weit genug durchsetzt, dieselben Probleme bekommen, wie mit den jetzigen Betriebssystemen. Die ersten Tools um aus den virtuellen Umgebungen auszubrechen gibt es ja schon.

Deswegen sehe ich die Virtualisierung nur noch als Mittel zum Ressourcen- und Kostensparen und nicht als Sicherheitsfeature. Ich muß halt keine 10 Rechner vorhalten, um alle meine Anwendungsfälle zum Implementieren, sondern packe die alle in virtuelle Umgebungen.


Hadmut
8.4.2010 11:55
Kommentarlink

Naja, wie ich schon andeutete, eine Art AdHoc-Lösung oder Dirty Workaround. Eine Folge dessen, daß wir Betriebssysteme und Anwendungssoftware einfach nicht sicher kriegen.


pepe
8.4.2010 12:29
Kommentarlink

Ich fass mich mal kurz:

http://www.heise.de/security/news/foren/S-Are-Microkernels-better-Hypervisors/forum-177438/msg-18355652/read/

Diese Expertin hat hier mal dick ins Klo gegriffen, daran sollte man den Stand der Forschung nicht messen. Eine Sicherheitsluecke finden und ein sicheres System bauen sind halt zwei paar Schuhe.

Es gibt durchaus ein paar wenige vernuenftige Konzepte, nur bisher nicht genug Leidensdruck um den kompletten Softwarestack from Kernel bis hoch zum Desktop an einer vernuenftigen Sicherheitsarchitektur auszurichten. Es gibt Prototypen, aber in der Praxis kann man das halt nicht einfach so stemmen, auch nicht in EU-Projekten mit X Millionen Forschungsgeldern. Denn es heisst ja Forschungsgelder, nicht Implementierungsgelder..


yasar
8.4.2010 12:45
Kommentarlink

Ach ja:

Natürlich hilft die Virtualisierung schon einiges Sicherer zu bekommen.

Ich habe dann eine virtuelle Maschine, die nur das Mailgateway mit Content-checker ist, eine die nur der Mailserver, eine die der http-Proxy (mit Content-Prüfung) ist, etc. Dann muß ich bei der jeweiligen “Maschine” mich nicht mit irgendwelchen “Interferenzen” mit anderer Software auseinandersetzen.



Matthias
8.4.2010 20:15
Kommentarlink

“Ist die Virtualisierung eine Folge dessen, daß weder Microsoft noch Linux einen ordentlichen Microkernel hinbekommen haben?” — was ist das fuer eine Aussage? Das erklaerte Ziel von Linus – und daher auch die ganze Diskussion mit Tanenbaum – war ein monolithischer Kern.


Hadmut
8.4.2010 20:34
Kommentarlink

Freilich weiß ich, daß er das will.

Aber erstens halte ich die Entscheidung für langfristig problematisch. Das hat ein paar Jahre gehalten, aber inzwischen wird der Kernel immer komplexer und schwieriger zu warten, was auch die diversen Streitigkeiten mit Herstellern und deren Codebeiträgen belegen. Das Ding gerät außer Kontrolle.

Zweitens hat er das ja so entschieden, weil man sich an einem Microkernel vermutlich verhoben hätte. Nur daß sich einer bewußt für einen monolithischen Kernel entscheidet bedeutet das ja nicht, daß mene Aussage falsch ist. Mit jeder Kernel-Version sammelt sich da mehr Krempel an, mehr Sicherheitslücken. Irgendwo habe ich mal eine Aufstellung gesehen, daß der Kernel mit jeder Version ein paar Prozent langsamer wird, weil immer mehr eingebaut wird. Auf der anderen Seite werden viele wichtige Erweiterungen und treiber aus teils mehr teils weniger nachvollziehbaren Gründen nicht aufgenommen. Ein ordentlicher Microkernel könnte da einiges besser machen.


Matthias
9.4.2010 1:29
Kommentarlink

Ich stimme dir da in allen Punkten zu. Allerdings stoert mich an der Aussage, dass es so klingt, als haetten die Linuxentwickler einen Microkernel versucht zu entwerfen, dann aber daran klaeglich gescheitert waeren. Und das ist nun mal nicht so, weil der Versuch nie unternommen wurde.

Und ich glaube nicht, dass sich der Werte Herr Torvalds an einem Microkernel verhoben haette. Sowohl Tanenbaum als auch – und das wird dir jetzt nicht gefallen, da er ja bis zu seinem Tode in Karlsruhe war – Liedtke haben es mit ihren Studenten/Doktoranden hinbekommen, einigermassen performante Microkernel zu schreiben. Und dass sich nicht immer die vermeintlich besten Systeme durchsetzen, kennt man ja auch seit Betamax und VHS.


Hadmut
9.4.2010 8:56
Kommentarlink

Die Entscheidung, es nie versucht zu haben, betrachte ich als Teil des „nie geschafft”. Man muß nicht aktiv scheitern, sondern kann dies auch aufgrund falscher Entscheidungen. Aus damaliger Sicht mag die Entscheidung nachvollziehbar gewesen sein, aber heute wird der Kernel zu einem unübersehbaren Moloch, und die Streitigkeiten, was man reinnimmt, was wieder rausfliegt, und daß man Hersteller-Treiber nicht reinnimmt, sind legendär. Die haben sich in eine Sackgasse gefahren. Nichts gegen Torvalds, aber das Ergebnis ist, daß sie in dieser Sackgasse drin sind.

Und daß es Leute gab, die Microkernel hinbekommen, ist ja kein Argument gegen, sondern für meinen Standpunkt. Es ist also nicht per se unmöglich oder sinnlos. Allerdings muß man da sehr vorsichtig sein, denn was im Labor läuft (oder als laufend behauptet wird) hat noch lange nichts mit der Realität zu tun. Ich erinnere da nur an die Karlsruher Forschungskatastrophe ROSY (Research Operating System). Ich habe damals an dem Institut ein Praktikum gemacht und darin haben wir völlig chaotische unlösbare und unsinnige Aufgaben bekommen. Als das dann völlig aus dem Ruder lief, wollten wir die Musterlösung sehen und es stellte sich heraus, daß es keine gibt. Sie haben einfach die Probleme, die das Institut selbst nicht gelöst bekam, mal als Praktikum herausgegeben um zu sehen, ob die Studis vielleicht eine Lösung wissen. Insofern muß man schon vorsichtig sein wenn in Karlsruhe behauptet wird, daß da was funktioniert.

Und wenn sie es hinbekommen haben, warum hört man dann nichts davon?

(Im übrigen habe ich von Liedtke – außer der Trauernachricht damals – noch nie etwas gehört. Hätte man den kennen müssen?)


Matthias
9.4.2010 20:43
Kommentarlink

Dich als Sicherheitsforscher muesste Liedtke besonders interessieren. Er war der Kopf hinter L3 und L4, wobei letzteres mittlerweile ein Gemeinschaftsprojekt von UKA und TU Dresden ist und kommerziell von den OK Labs vertrieben wird.

Kurzes Zitat aus der Wikipedia (jaja): “Im Jahre 2009 wurde am Forschungsinstitut NICTA in Zusammenarbeit mit der UNSW mit seL4 erstmals ein für allgemeine Anwendungen tauglicher Betriebssystemkern formal verifiziert, d.h. es wurde mathematisch bewiesen, dass die Implementierung die Spezifikation des Kerns erfüllt und somit funktional korrekt ist.”

Inwieweit das deinen Sicherheitsanforderungen entspricht weiss ich nicht. Und das ROSY-Projekt sagt mir im Moment auch nichts, haben die Verantwortlichen wohl eingestampft.