Web

Report: Java ist sicher, Beispielcode nicht

08.03.2007
Nach einem Bericht von Fortify Software ist die Programmiersprache Java sicherer und zuverlässiger als etwa C oder C++. Mitgelieferter Beispielcode hingegen sei mit Vorsicht zu genießen, so die Experten.

Im Dezember vergangenen Jahres haben Fortify Software und das auf Qualitätschecks spezialisierte Projekt FindBugs einen kostenlosen Scan-Service an den Start geschickt, der quelloffene Java-Applikationen auf Sicherheitslücken untersucht. Ziel der auf den Namen "Java Open Review" (JOR) getauften Initiative ist es, Open-Source-Projekten zu ermöglichen, ihren Java-Quellcode auf Lecks und Bugs überprüfen zu lassen.

Ein erster Bericht zum JOR-Projekt bestätigt die verbreitete These, dass Java anderen Programmiersprachen wie C und C++ in Sachen Sicherheit und Zuverlässigkeit überlegen ist. "Java ist eine gute Sprache, um sichere Software zu programmieren", kommentiert Brian Chess, einer der Autoren und leitender Forscher bei Fortify, die Ergebnisse des Reports. Die Analyse habe ergeben, dass einige der am häufigsten genutzten Open-Source-Java-Projekte vergleichsweise wenig Fehlerquellen aufwiesen. Für den Report wurden viel verwendete Java-Packages wie "Spring", "Struts", "Hibernate" und "Tomcat" analysiert. Dabei handelt es sich um Bausteine, die Programmierer zur Entwicklung eigener, insbesondere Web-basierender Applikationen nutzen.

Trotz der positiven Analyseergebnisse warnt Fortify davor, die Open-Source-Pakete als "absolut sicher" einzustufen. Ein Problem sei der mit den Packages gelieferte Beispielcode, der mitunter weitaus mehr Sicherheitslecks aufweise. Da dieser häufig ohne weitere Überprüfung eingesetzt werde, bestehe die Gefahr, dass Entwickler bei der Open-Source-Nutzung Sicherheitslöcher generieren. Laut Barmak Meftah, Vice President Produkte und Services bei Fortify, schenken Programmierer bei der Entwicklung ihrer Frameworks dem Beispielcode häufig zu wenig Aufmerksamkeit. Die Anwender der Frameworks wiederum nutzten diese Samples aber üblicherweise als Basis für ihre eigenen Applikationen.

Dem Bericht zufolge enthalten geprüfte Packages mitunter aber auch ungeschützte Schnittstellen, die ebenfalls zur Codierung von Schwachstellen führen können. In den analysierten Komponenten wurden am häufigsten Cross-Site-Scripting-Lücken (XSS) entdeckt. Diese ermöglichen es Angreifern, beliebige Java-Skripts im Browser des Anwenders auszuführen, um dessen persönliche Daten abzugreifen, Sicherheitsabfragen zu umgehen oder andere Computer im Opfernetz zu attackieren.

Nach Analysen des CyLab Sustainable Computing Consortium der Carnergie Mellon University weist gängige Software im Entwicklungsprozess zwischen 20 und 30 Sicherheits- beziehungsweise Qualitätsmängel pro Tausend Code-Zeilen auf. Demgegenüber hat JOR bei den bisher untersuchten, zahlreichen Open-Source-Projekten eine durchschnittliche Fehlerrate von 0,07 festgestellt. Die "Open Source Vulnerability Database" schätzt den Schwachstellenanstieg zwischen 2005 und 2006 auf 20 Prozent. Entsprechend wichtig sei es, den Code möglichst früh im Entwicklungsprozess abzusichern, mahnen die Autoren des Reports. Mehr zum Thema Sicherheit finden Sie im Security-Expertenrat der COMPUTERWOCHE. (kf)