Login
Login-Name Passwort


 
Newsletter
Werbung

Mo, 29. März 2004, 00:00

Sicherer Code

Die Frage, ob freie Software sicherer ist als proprietäre, erhitzt immer wieder die Gemüter. Die eine oder andere Studie von Microsoft, die die eigenen Programme als sicherer einstuft als freie Programme, wird von der Tatsache ad absurdum geführt, daß die meisten Viren und Würmer unter Windows ihr Unwesen treiben und in letzter Zeit Milliardenschäden verursachen.

Doch während viele Hersteller von proprietärer Software oder Appliances Sicherheitsaspekte in unverantwortlicher Weise ignorieren, hat der größte Gegner freier Software, Microsoft, reagiert. Alle Softwareentwickler der Firma wurden drei Monate lang im Schreiben sicherer Software geschult. Angeblich wurde die Weiterentwicklung der Produkte während dieser drei Monate gestoppt. Somit sollte der Code von Microsoft künftig sicherer werden. Daß diese Sicherheit durch vom Marketing geforderte unsichere Standardeinstellungen wieder ausgehöhlt wird, steht auf einem anderen Blatt.

Demgegenüber ist freie Software nicht inhärent sicherer. Die vielen Sicherheitsmeldungen der Distributoren beweisen dies. Es ist eher so, daß Probleme früher gefunden und beseitigt werden und generell weniger Schaden anrichten können. Aber welcher Open-Source-Programmierer kann von sich schon behaupten, eine dreimonatige Schulung zum Schreiben sicherer Software absolviert zu haben? Es gibt zwar das Writing Secure Code HOWTO von David A. Wheeler, dessen Lektüre Pflicht ist, doch wird dies von zu vielen Entwicklern vernachlässigt, vermute ich. In dieser Beziehung muß sich etwas tun, vielleicht sogar eine Zertifizierung. LPI bietet erst auf Level 3 etwas in Richtung Sicherheit an, doch all diese Zertifizierungen richten sich an Administratoren. Für Programmierer müßte parallel dazu noch etwas geschaffen werden.

Wie man hört, wird die nächste Version von Windows zudem einen Stackschutz (bereits in Windows 2003 Server integriert) und das komplette Sicherheitsmodell von OpenBSD enthalten. Konkretes konnte ich dazu aber nicht finden. Was das bedeuten könnte, kann man abschätzen, wenn man sich OpenBSD genauer ansieht. Es bietet in der kommenden Version non-executable Heap (erschwert das Ausführen von eingeschleustem Code bei einem Pufferüberlauf auf dem Heap), non-executable Stack (erschwert das Ausführen von eingeschleustem Code bei einem Pufferüberlauf auf dem Stack), W^X (Ausführbare Seiten oder Segmente dürfen nicht verändert werden), Zufällige (d.h. nicht vorhersagbare) Prozess-IDs, zufällige Anfangsadressen für Stack, Heap, mmap (erschweren Exploits) usw. Wer sehen möchte, was heute unter Linux schon alles möglich ist, findet unter grsecurity einen Einstiegspunkt.

Ein anderes Feature von Longhorn ist dagegen bereits etwas bekannter. Unter dem Sicherheitssystem Nexus werden vertrauenswürdige Applikationen von nicht vertrauenswürdigen getrennt ablaufen. Dumm daran ist, daß Nexus selbst keineswegs eine vertrauenswürdige Software darstellt: Es ist so umfangreich und komplex, daß es sich jeder Verifikation entzieht. Dazu kommt noch die wohl nicht grundlose Vermutung, der einzige Grund für Nexus sei die zwangsweise Einführung von DRM, das von Microsoft und der Medienindustrie als Lizenz zum Absahnen angesehen wird. Die Tendenz, Tauschbörsenbenutzer zu kriminalisieren, paßt da ins Bild.

Einem Artikel von Internet News zufolge wird eine weitere »Innovation« darin bestehen, daß der Server Rechner aufspürt, die nicht die aktuellen Sicherheistpatches haben, und abhängig von den gefundenen Lücken bestimmte Ports blockiert und die Benutzer warnt. Weitere Details findet man bei Yahoo.

Dümmer und sinnloser kann man Sicherheitsprobleme nicht angehen. Statt die fundamentalen Probleme zu beseitigen, wird ein Intrusion Detection System eingebaut, darum herum eine Überwachungssoftware gestrickt, die geeignet sein könnte, die User massiv zu behindern, und die eigentlich jeder User inakzeptabel finden sollte.

Linux kann es bereits jetzt wesentlich besser. Mit trivialen Skripten kann man ermitteln, welche Patches auf allen Rechnern im Netz installiert sind. Ein guter Admin wird diese aber nicht benötigen, da er mit ähnlich trivialen Skripten ein automatisches Einspielen der Patches realisieren kann.

Es wird an der Zeit, dies ganz deutlich ins Bewußtsein der Noch-Windows-User zu rücken. Das derzeitige Problem von Linux ist aber, daß noch nicht alle Sicherheitsmechanismen, die möglich wären, genutzt werden. Dinge wie LIDS oder das oben genannte grsecurity werden nicht genutzt, weil sie nicht vorinstalliert und nicht einfach zu installieren sind. Ich fordere hiermit, daß jede Distribution in der nächsten Version einen »gehärteten« Kernel standardmäßig installieren sollte, selbst wenn dies einige Prozent an Performance kostet. Es kann ja durchaus ein alternativer Kernel angeboten werden, der all dies nicht enthält, so daß die freie Wahl der Anwender nicht eingeschränkt ist (auch ein Gegensatz zu Windows, den man betonen sollte). Doch die Benutzer sollten gezwungen sein, den weniger sicheren Kernel in einer bewußten Entscheidung zu wählen.

Zeit bleibt noch genug für diese Maßnahmen, da das über-komplexe Longhorn sicher nicht vor 2006 erscheinen wird.

  • Dieses Werk wurde unter der GNU General Public License veröffentlicht. Kopieren, Verbreiten und/oder Modifizieren ist erlaubt unter den Bedingungen der GNU GPL, veröffentlicht von der Free Software Foundation.

    - Weitere Informationen
Kommentare (Insgesamt: 0 || Kommentieren )
Pro-Linux
Pro-Linux @Facebook
Neue Nachrichten
Werbung