Immer noch werden Sicherheitskonzepte zu einem späten Zeitpunkt der Entwicklung erstellt. Dabei ist es so einfach. Entwickler müssen nur danach suchen, was andere bereits dokumentiert haben.

Kürzlich durfte der Autor in einem – leider immer noch typischen – Softwareprojekt für die Cloud ein Sicherheitskonzept entwickeln. Warum leider? Oder warum typisches Softwareprojekt? Ein Sicherheitskonzept ist doch ein tolle Sache, und wenn es nicht "vergessen" wurde – umso besser?

Das "leider" bezieht sich auf den Zeitpunkt – hier nach etwa vier Fünftel der angestrebten Entwicklungs-Sprints, also "im Nachgang" und nicht bevor überhaupt entwickelt wurde. Da drängt sich der Verdacht auf, dass die Methoden der agilen Softwareentwicklung besonders anfällig sind für die drei großen V: Vergessen, Verdrängen, Vermeiden – insbesondere wenn es um die Sicherheit der Applikation und des Entwicklungsumfelds geht.

Dabei ist es so einfach: Sobald man die Idee für ein neues Projekt im Kopf hat, findet man über die Suchmaschine des Vertrauens eine Vielzahl an Hinweisen und Beispielen, eventuell sogar ganze Vorlagen für Sicherheitskonzepte. Nutzt der Entwickler die professionellen Werkzeuge eines Herstellers, bieten dessen Foren und Portale zahlreiche Code-Snippets und Beispiele. Ist man der "freien Software" zugetan, bietet eine Community eine vergleichbare Hilfestellung – oft mit einem direkten Ansprechpartner, der schnell auf spezielle Anfragen reagiert.

Herangezogen sei beispielhaft Microsofts Cloud-Plattform Windows Azure. Auch wenn deren Techniken teilweise noch recht neu sind, gibt es dennoch reichhaltige Informationen rund um die Sicherheitsmerkmale und Funktionen in der Online-Dokumentation. Dargestellt sei das beispielhaft am Identity Management: Wer heute ein Web-2.0-Portal oder eine Applikation für große Benutzerzahlen aufbaut und dabei seine Benutzerverwaltung, Authentisierung und das Rechte-Management selbst programmiert, muss für die letzten 24 Monate auf einer Insel ohne Internet gewohnt haben. Gerade zu dem Thema hat Vittorio Bertocci, seines Zeichens selbst Entwickler und Principal Program Manager für Identity Management bei Microsoft, eine Reihe unterhaltsamer Videos samt Code-Snippets und Integrationsanleitungen erstellt. Von der einfachen Anbindung einer Webapplikation an das Active Directory eines Kundenunternehmens bis hin zur feingranularen Verwaltung der Zugriffe mit Claims kann man sich hier alles "ausborgen", was man für Identitäten und Berechtigungen braucht.

Dabei spart man nicht nur als Entwickler Zeit, sondern reduziert gleichzeitig sein eigenes Fehlerpotenzial. Wenn der Entwickler sich auf die wirklichen Fachaufgaben in seiner Applikation kümmern kann und nicht das 23. Mal eine individuelle Benutzerverwaltung baut, erleichtert er auch den Kollegen aus der Infrastruktur und dem Application Management ihre Tätigkeiten, da man auf standardisierte und dokumentierte Schnittstellen statt auf "self-made" Interfaces verweisen kann. Von der einfacheren Anbindung Dritter ganz zu schweigen. Man sollte jedoch nicht darauf verfallen, alles einfach blind zu kopieren – auch Beispiele aus den bekannten Foren können durchaus Bugs aufweisen. Ein gerüttelt Maß an Skepsis und Kontrolle ist auf jeden Fall geboten.

Bei einer leidigen Aufgabe helfen alle diese Beispiele und Vorlagen nicht: bei der detaillierten Dokumentation des eigenen Werks. Es bleibt eine der vornehmsten Aufgaben jedes Entwicklers, die ihm gestellten Aufgaben, die passende Lösungsarchitektur und die Umsetzung sauber zu dokumentieren und auch auf die Herkunft "extern erworbener" Passagen und Lines of Code an entsprechender Stelle zu verweisen. Nur so lässt sich ein später gefundener Fehler an die Quelle zurückgeben, um dort eine Korrektur zu veranlassen. Ein selbstverständlicher Dienst an der Community, wenn man sich den Code schon "ausgeborgt" hat.