Codequalität

Mit schlechten Beispielen zu höherer Sicherheit

24.06.2015
Von 


Matthias Reinwarth ist Senior Analyst bei KuppingerCole und steuert als Lead Advisor das Beratungsgeschäft. Als Director Practice für das Identity & Access Management koordiniert er dieses Thema für alle Tätigkeitsbereiche des Unternehmens. Er veröffentlicht regelmäßig Blogbeiträge und Researchpaper zu IAM, Governance, Cybersecurity, aber auch darüber hinaus.

Offen heisst nicht zwangsläufig besser

Seit Anfang Mai läuft eine Attacke auf Computer des Bundestages. Umfang und Art sind bislang nicht publiziert und die beauftragten Behörden, das Bundesamt für Sicherheit in der Informationstechnik und das Bundesamt für Verfassungsschutz, ermitteln. Im Zuge der derzeit noch immer unklaren Ermittlungen ist der Ruf nach Umstellung der Anwendungen und Betriebssysteme auf Open Source-Systeme nur eine Frage der Zeit und aus einzelnen Fraktionen auch schon erfolgt.

Das Beispiel Venom zeigt aber, dass die reine Tatsache, dass Software Open Source-lizenziert ist, noch keinerlei Aussage über deren Sicherheit impliziert. Nur dass man eine Kontrolle des Codes (Code inspection) durchführen könnte, weil der Quelltext verfügbar ist, bedeutet nicht, dass das auch jemand unternimmt. Viel zu einfach ist es, sich auf bestehende Bibliotheken zu verlassen, diese als Blackbox zu betrachten und ihre Funktion implizit als validiert und sicher zu betrachten.

Nur falls die notwendigen Analysen auch durchgeführt werden, kann quelloffene Software diese sonst nur vermeintliche Stärke auch tatsächlich ausspielen. Nur dann kann offene Software durch den Rückfluss der Analyseergebnisse in neue Versionen kontinuierlich verbessert werden.

Es geht nicht um Closed Source gegen Open Source: Unabhängig vom verwendeten Lizenzmodell und der damit verbundenen ideologischen und kommerziellen Interessenlage lenken beide aktuellen Ereignisse das Augenmerk auf hier wie dort gerne konsequent vernachlässigte Eigenschaften von IT-Systemen: Die Codequalität und die Gesamtsicherheit von Anwendungssystemen.

Kritische Infrastruktur Software

Software ist heute mehr denn je eine kritische Infrastruktur. Ihre Qualität, Sicherheit und Verfügbarkeit sind essentielle und überlebensnotwendige Faktoren für jedes moderne Unternehmen. Um diese Faktoren zu gewährleisten, müssen Softwaresysteme mehr denn je angemessen erstellt, getestet und analysiert werden. Das gilt für die einzelnen Komponenten, wie etwa Softwarebibliotheken, und für das Gesamtsystem im Verbund.

Viele Ansätze sind hier möglich und die meisten auch nötig. Diese beginnen bei angemessenen Strukturen für moderne Entwicklungsteams, die auch hochaktuelle Cybersecurity-Skills integrieren müssen. Kontinuierliches Training und Weiterbildung sind unabdingbar. Neben traditionellen Softwaretests im Entwicklungszyklus sind heute leistungsfähige Werkzeuge zur Code-Analyse in der Lage, beim Test und dem Härten von Softwaresystemen zu unterstützen.

Code-Qualität und "Security by Design" sind nicht weit oben auf der Liste der Anforderungen an Unternehmenssoftware. Dies ist um so mehr im aktuellen Trend der "schneller mehr Funktionalität liefern"-Mentalität der DevOps-Evangelisten der Fall.

Aktuelle Fehlentwicklungen wie die genannten bedrohten Virtualisierungsplattformen und die gefährdete Regierungs-IT, aber auch unsichere SSL-Kommunikation in Webservern und kompromittierbare Funktionen in Router-Firmware belegen jedoch nachdrücklich, dass hier bislang kurzsichtig priorisiert wird.

Die strategische Verankerung von angemessen hohen Sicherheitsanforderungen in jeder Softwarespezifikation ist nicht zuletzt auch eine Managementaufgabe, denn sie erfordert Geld, Zeit und Ressourcen jenseits von "Time to Market". Die genannten Beispiele sollten helfen können, hier die notwendige Bereitschaft zu schaffen.

(bw)