Am Puls von Microsoft

Guadec: Wenn sicheres Linux gar nicht so sicher ist

Guadec: Wenn sicheres Linux gar nicht so sicher ist

Sicherheit in der Informationstechnik war schon immer ein heiß diskutiertes Thema, hat in der Vergangenheit durch den zunehmenden Trend zu Ransomware und DDoS-Attacken aber nochmal an Wichtigkeit gewonnen. Vor dem Hintergrund, dass eine erfolgreiche Verteidigung gegen solche Attacken durchaus auch eine existenzielle Frage sein kann, haben Unternehmen wie Microsoft in der letzten Zeit wieder wesentlich mehr in die Sicherheit ihrer Systeme investiert. Das Ergebnis sehen wir bei uns auf Windows 10 unter anderem in den Universal Apps oder den starken Veränderungen rund um den Windows Defender. Geht man noch weiter und schaut in den Enterprise-Bereich, fährt Microsoft hier nochmal ganz andere Geschütze auf.

Auch auf der diesjährigen Guadec, der Konferenz des Gnome-Projekts, wird über die Sicherheit inbesondere von Linux und OpenSource-Software diskutiert. Nun haben wir zwar nicht unbedingt direkt etwas damit zu tun, aber ein Blick auf die Argumentationen der dortigen Vorträge lohnt sich dennoch, lassen sich damit doch auch Rückschlüsse auf die Sicherheit für unser Ökosystem ziehen. Gerade die einzelnen Communities im Linux-Bereich heben ja immer wieder hervor, dass ihr Ökosystem grundsätzlich sicherer ist als Windows. Dass vieles dabei eher auf “Security by obscurity”, also auf Sicherheit aufgrund fehlender Relevanz in der Masse, beruht und einige Sicherheitsexperten auch Windows 10 bereits für viel sicherer als Linux halten, wurde nun auf der Guadec besonders deutlich.

Der Fluch der Altlasten

Dass quelloffener Code zuletzt keine besonders gute Zeit hatte und in vielen Projekten in viel zu alten Fassungen zum Einsatz kommt, ist seit den großen Lücken wie Heartbleed unstrittig. Matthew Garrett, der auch als Sicherheitsforscher arbeitet und sich bei Google um die Unternehmensrechner kümmert, zählt in seinem Vortrag auf der Guadec aber noch weitere Punkte auf. Dazu gehören fehlende Isolierungen, kaputte Parser, vor allem aber jahrzehntealter Code, der heutigen Sicherheitsanforderungen schon lange nicht mehr standhalten kann. Ganz besonders hob er dabei die problematische Programmiersprache C hervor und empfiehlt, wie auch schon Gnome-Mitbegründer Federico Mena Quintero in seinem Vortrag zuvor, den Wechsel zur Programmiersprache Rust.

Tatsächlich ist C und ganz besonders C++, was durch GTK und Qt sehr oft in OpenSource-Projekten zum Einsatz kommt, aufgrund seiner Komplexität und seiner Anfälligkeit für Speicherfehler hoch problematisch, gleichzeitig aber auch ähnlich beliebt bei entsprechenden Entwicklern wie Python oder Java. Ironischerweise hat dabei sogar Java, was auf Windows aufgrund seiner Sicherheitsprobleme in der Vergangenheit bei den normalen Durchschnittsnutzern ziemlich verhasst ist, bessere Defensivmöglichkeiten, da es aufgrund seines Designs eine ganz ordentliche Resistenz gegen beide Varianten der sog. Pufferüberläufe (sowohl den klassischen Buffer Overflow als auch den spezielleren Heap Overflow) aufweist. Das Hauptproblem lag hierbei ja auch immer weniger in der eigentlichen Runtime, sondern vor allem beim Plugin, was über Schnittstellen wie ActiveX oder NPAPI schon immer chronisch anfällig war.

Rust

Rust geht hierbei noch eine ganze Ecke weiter. Mozilla, die die Entwicklung der Sprache fördern und begleiten, bezeichnen dabei die Sprache an sich gerne als “standardmäßig sicher” und nutzen sie unter anderem bei Firefox auch umfangreich als Fundament für zukünftige Entwicklungen. Grundsätzlich hat Rust aber vor allem den Vorteil, dass seine Sicherheitsarchitektur bei Speicherfehlern noch sehr viel weiter geht als bei Java, da sie ein besonderes Typensystem verwendet und im Gegenzug auf eine klassischen Garbage Collection verzichtet. Dadurch werden Speicherzugriffsfehler und Pufferüberläufe weitgehend unmöglich gemacht, sodass entsprechende Sicherheitslücken, sofern vorhanden, wesentlich schwieriger auszunutzen wären. Mittlerweile ist Rust neben Go eine der zwei jungen Sprachen, die sich mehr und mehr auch ihren Weg in die kommerzielle Welt bahnen. Selbst Oracle setzt es mittlerweile in Teilen seiner Enterprise-Produkte ein.

Frustrierend bleibt bis heute aber die Versorgung mit offiziellen Entwicklerwerkzeugen. Während einige Text- und Codeeditoren wie Sublime immerhin schon rudimentäre Unterstützung bieten, ist eine entsprechende IDE aktuell (noch) nicht vorhanden. Den größten Fortschritt macht hier momentan das KDE-Projekt, wo im Rahmen des diesjährigen Google Summer of Code an einer Rust-Integration in die hauseigene IDE KDevelop gearbeitet wird, die mittlerweile auch für Windows verfügbar ist. Bedauerlich bleibt aber, dass gerade von Mozilla, die neben Rust noch an vielen weiteren Sprachen wie Rhyno, XUL und nicht zuletzt JavaScript (durch Brendan Eich) direkt oder indirekt beteiligt waren, in der Hinsicht nie eine eigene IDE oder zumindest ein eigener Support für bestehende IDEs wie Visual Studio oder Eclipse zustande kam.

Der Blick auf uns

Eine Frage, die einem Windows-Entwickler vor dem Hintergrund unweigerlich in den Sinn kommt, ist sicherlich die, wie gut eigentlich C# im Bezug auf eine mögliche Resistenz gegen Speicherfehler abschneidet. Immerhin handelt es sich hierbei um eine der zentralen Programmiersprachen der .NET-Plattform. Grundsätzlich greift C# auch einige Konzepte von C++ mit auf, macht mit seinem Design aber auch einiges besser. Elemente, die unter C++ als problematisch gelten, laufen unter C# grundsätzlich nur mit eingeschränkten Rechten und können ohne die Freigabe weiterer Rechte gar nicht erst ausgeführt werden. In dem Punkt hat Microsoft seine Hausaufgaben also durchaus gemacht.

Unterm Strich kann man also festhalten, dass wir bei Windows 10 durchaus auf einer (relativ) sicheren Plattform unterwegs sind. Zwar haben wir auch immer noch mit diversen Altlasten zu kämpfen, aber durch die schnellere und stärkere Entwicklung und durch Elemente wie die Insiderprogramme, die im Gegensatz zu dem klassischen Modell bei Linux auch restriktiver von Microsoft koordiniert und durchgeführt werden, ist die Chance ungleich größer, dass wir diese in absehbarer Zeit nach und nach abbauen. Selbst anerkannte Sicherheitsexperten wie Matthew Garrett sind sich nämlich sicher, dass das nötige Mehr an Sicherheit bei Linux, wenn überhaupt, erst in vielen Jahren ein entsprechend hohes Niveau erreichen wird, wenn sich nicht einiges ändert.

Über den Autor

Kevin Kozuszek

Kevin Kozuszek

Seit 1999 bin ich Microsoft eng verbunden und habe in diesem Ökosystem meine digitale Heimat gefunden. Bei Dr. Windows halte ich euch seit November 2016 über alle Neuigkeiten auf dem Laufenden, die Microsoft bei seinen Open Source-Projekten und der Entwicklerplattform zu berichten hat. Regelmäßige News zu Mozilla und meinem digitalen Alltag sind auch dabei.

Anzeige