Login
Login-Name Passwort


 
Newsletter
Werbung

Mo, 11. Oktober 2004, 17:16

Gemeinschaft::Personen

Alan Cox über Softwarequalität

Alan Cox hat sich Gedanken über die derzeitige Qualität der Software und über zukünftige Verbesserungsmöglichkeiten gemacht.

Demnach ist jede Software - verglichen mit Hardware, wo jeder Fehler hohe Kosten verursacht - miserabel. In Computerchips, die auf viel kleinerem Raum gefertigt sind und dennoch komplexe Strukturen aufweisen, gebe es weit weniger Probleme: denn hier sind diese teuer. Während es für Softwareentwickler weniger Aufwand ist, unter Zeitdruck ein halbfertiges Programm zu veröffentlichen und die Behebung von Fehlern auf eine spätere Version zu verschieben, können fehlerhafte Produkte Hardwareherstellern Millionen kosten, weshalb diese ausreichende Prüfungen vornehmen - was auch für Software der Fall sein sollte, so Cox. Die Softwareentwicklung beschäftige sich heutzutage nur noch damit, große schlechte statt kleine gute Programme zu schreiben.

Als einen der Verursacher dieser Probleme sieht Alan auch die Wahl der Programmiersprache: »Wenn Programmierer die Speicherverwaltung falsch machen, warum lassen wir sie sie dann überhaupt machen? Das ist Aufgabe des Computers - die Zeiten seit C und Fortran haben sich geändert.« Indem Programmiersprachen dem Entwickler Aufgaben abnehmen, sinke die Anzahl der Aufgaben, die er eventuell falsch bewältigt - insofern die Sprache selbst zur korrekten Erledigung fähig ist. Dies vergleicht er später mit einer Autowerkstatt, in der eine ganze Serie von Autos fehlerhaft sind, weil ein Angestellter ein Teil falschherum einbaut: die erste Reaktion sollte sein, das Teil so zu verändern, dass es nicht in der verkehrten Richtung passt.

Zudem schlägt er den verstärkten Einsatz der Trennung zwischen ausführbahrem und normalem Speicher vor, wodurch ein Angreifer durch Buffer Overflows keinen schädlichen Code mehr in das Programm schleusen und ausführen könnte. Dieses Paradigma setzt unter anderem AMD mit seiner NX-Technologie um.

Als ein positives Beispiel für Software führt er OpenBSD an: wenn ein Fehler in einem Programm entdeckt wird, sollen Entwickler dieses beheben und sich darüber hinaus vor Augen führen, wo sonst sie dieses Problem noch verursacht haben könnten und mehrere Applikationen nach dem gleichen Bug durchsuchen, wie es bei OpenBSD speziell im Bereich der Sicherheit geschehe. An dieser Stelle bringt er auch vertrauenswürdige Daten ins Spiel: man sollte dem Computer klar machen, welche Daten nicht vertrauenswürdig sind. Auf diesem Wege kann der Entwickler verfolgen, wo die labilen Daten verwendet werden und kann so vermeiden, sich auf sie zu verlassen. Ein solches Vorgehen ermöglicht unter anderem die Programmiersprache Ruby, in der Objekte aus Benutzereingaben je nach Sicherheitsstufe »tainted« und damit in ihren Fähigkeiten eingeschränkt sind.

Mehr Informationen zu Alan Cox' Maßnahmen gegen schlechte Software sind in einem Artikel und einem Video des Vortrages zu beziehen.

Werbung
Pro-Linux
Pro-Linux @Facebook
Neue Nachrichten
Werbung