Midori nimmt Formen an: Das Ende von Windows ist besiegelt

Um sicher zu gehen, dass keine native Malware eingeschleust wird, muss Midori nativen Code von außen ganz und gar verbieten. Das wird zumindest bei Treibern für PCI-Geräte nicht funktionieren. Bei Geräten, die über USB, Bluetooth, SCSI oder SATA angeschlossen sind, kann man Treiber komplett in Managed Code entwickeln. Bei PCI-Geräte müssen zumindest Interrupthandler und Hardware-I/O mit nativem Code realisiert werden. Die Handler für Deferred Procedure Calls lassen sich auch in Managed Code entwickeln.

Wenn Treiber für USB-Geräte komplett in Managed Code entwickelt werden, hat das natürlich Stabilitätsvorteile. Schlecht programmierte Treiber für Noname-DVB-T-Sticks können nicht mehr den ganzen Computer zum Absturz bringen, so wie das heute oft der Fall ist. Bei PCI-Geräten wird der Anteil von Native Code immerhin stark reduziert, so dass Hoffnung besteht, dass sich Entwickler genug Mühe geben, um den nativen Teil des Codes absturzsicher zu programmieren.

Ungeklärt ist bis jetzt allerdings, ob Microsoft für Anwendungsprogramme weiterhin Native Code erlaubt. Obwohl Managed Code für viele komplexe Anwendungen die richtige Lösung ist, gibt es durchaus performancekritische Routinen, die sich schneller und effektiver mit C oder Assembler lösen lassen. Webanwendungen, die sich häufig ändern und zudem naturgemäß dem Internet ausgesetzt sind, lassen sich in C gar nicht so schnell entwickeln, wie sie sich wieder ändern. Flüchtigkeitsfehler mit möglicherweise fatalen Folgen für die Sicherheit sind vorprogrammiert. Managed Code, beispielsweise in C#, ist in diesem Fall die richtige Lösung.

Im technisch-wissenschaftlichen Umfeld gibt es hingegen sehr rechenintensive Anwendungen, die sich durch immer weitere Optimierungen beschleunigen lassen. Nicht selten arbeiten Programmierer mehrere Jahrzehnte an der Optimierung von mathematischen Algorithmen. Das geschieht meist in C oder in Assembler. Diese hochoptimierten Algorithmen lassen sich nicht in die Beschränkungen von Managed Code zwängen. Für Anwendungen wie Kinofilmeffekte, Windkanalsimulation oder Molekülmodellierung ist Managed Code wenig geeignet. Je näher man direkt am Prozessor programmiert, beispielsweise durch direkten Zugriff auf SSE2-Befehle mittels Compiler Intrinsics, desto schneller wird der Code. An solche Techniken ist bei Managed Code nicht zu denken.

Man sollte nicht der falschen Vorstellung verfallen, dass Managed Code den größten Teil aller Sicherheitsprobleme löst. Managed Code, so wie er in Midori vermutlich zwingend vorgeschrieben ist, geht nur ein Teilaspekt von fehlerhaftem Code an, der immer dann entsteht, wenn Code von Menschen geschrieben wird. Trotz aller Sorgfalt gibt es keine bugfreien Programme.

Page: 1 2 3 4 5 6 7

ZDNet.de Redaktion

Recent Posts

Chrome erlaubt das Ausführen von Befehlen über die die Adressleiste

Die Chrome Actions ersetzen das Aufrufen bestimmter Befehle über das Menü. Per Eingabe in die…

6 Tagen ago

Bericht: Microsoft bringt Android-Apps auf Windows-Desktops

Sie halten angeblich Einzug in den Microsoft Store. Die neue Funktion soll im Lauf des…

6 Tagen ago

AWS-Störung betrifft Tausende Online-Dienste

Ursache ist ein Fehler im AWS-Datendienst Kinesis. Er wirkt sich auch auf interne Systeme von…

6 Tagen ago

Forscher entdeckt zufällig Zero-Day-Lücke in Windows 7 und Server 2008

Sie erlaubt eine nicht autorisierte Ausweitung von Benutzerrechten. Neuere Windows-Versionen sind nicht betroffen. Der Forscher…

6 Tagen ago

Bericht: Frankreich verschickt Bescheide für Digitalsteuer an Amazon und Facebook

Die Briefe gehen offenbar auch an Google, Apple und andere Unternehmen. Frankreich reagiert damit auf…

6 Tagen ago

71 Opfer seit September: Forscher warnen vor Ransomware Egregor

Die Hintermänner sind bisher in 19 Ländern aktiv. Die Mehrheit der Opfer befindet sich jedoch…

6 Tagen ago