Sicherheit ist für viele Anwendungsentwickler ein ungeliebtes Stiefkind. Das hat unterschiedliche Gründe: Gute Sicherheitskonzepte und -implementierungen können komplex sein. Auftraggeber sehen vor allem die funktionalen Anforderungen. Vorgaben und Schnittstellen für die Sicherheit fehlen. Neue Ansätze könnten hier helfen.
Zwei der Schlagwörter sind "Externalisierung der Sicherheit" und "ABAC" (Attribute Based Access Control). Beide stehen in engem Zusammenhang, weil ABAC ein Ansatz ist, um Sicherheit zu nach außen zu verlagern. Bevor man sich mit der Frage beschäftigt, wie man die Herausforderung Anwendungssicherheit besser positioniert, lohnt sich ein Blick auf die Anforderungen, die dahinter stehen.Bei ihnen geht es vor allem um zwei Punkte. Auf der einen Seite will man unnötigen administrativen Aufwand (oder Aufwand in der Implementierung administrativer Werkzeuge) vermeiden. Auf der anderen Seite soll die Steuerbarkeit und Nachvollziehbarkeit der Sicherheit verbessert werden. Der zweite Punkt gewinnt immer mehr an Bedeutung. Wachsende rechtliche Anforderungen für Sicherheit und Datenschutz (Compliance) sowie die generelle Ausrichtung der Unternehmen und damit der IT auf die ordnungsgemäße Durchführung (Governance) beziehungsweise die Reduktion von Risiken (Risk Management) zählen heute zu den wichtigsten Treibern für IT-Investitionen.
Standardisierte Ansätze für die Sicherheit in Anwendungen vereinfachen die Umsetzung solcher Anforderungen. Fehlende, proprietäre oder hart codierte Sicherheitsmechanismen sind dagegen ein Problem. Wenn man eine zentrale Verwaltung und Nachvollziehbarkeit der Sicherheit möchte, braucht man ein einheitliches Konzept und "Eingriffsmöglichkeiten" in die Anwendungen. Das können Schnittstellen sein, das kann aber auch dadurch erfolgen, dass man Sicherheitsfunktionen auslagert.
Die Externalisierung ist besonders interessant, weil Entwickler in diesem Fall sicherheitsrelevante Informationen konsumieren können, sie also die Informationen von externen Systemen in der
benötigten Form erhalten und nur noch "benutzen", sich aber nicht selbst um die Programmierung kümmern müssen. Das mögen Informationen zu aktuellen Benutzern sein, das können Aussagen über die korrekte Authentifizierung, aber auch Autorisierungsentscheidungen sein. Statt Benutzerinformationen zu speichern, einen Authentifizierungsmechanismus zu implementieren und Autorisierungsentscheidungen durchzuführen, können sie die Aufgaben auch externen Dienstleistern überlassen. Wenn die Schnittstellen ausreichend einfach und durchdacht sind, erspart das viel Entwicklungsaufwand und führt gleichzeitig dazu, dass man eine effiziente, zentralisierte Sicherheitsinfrastruktur für viele Anwendungen aufbauen kann.
Konzepte wie Microsofts Geneva, Claims und ABAC, in Konsortien entwickelte Standards wie SAML (Security Assertion Markup Language), Autorisierungsstandards wie XACML (eXtensible Access Control Markup Language) sowie Techniken wie virtuelle Verzeichnisdienste sind Bausteine für solche "Anwendungssicherheitsinfrastrukturen" (ASI) und die Externalisierung der Sicherheit. Was heute geht und was noch nicht beziehungsweise wie die unterschiedlichen Elemente zusammenwirken können und müssen, um Sicherheit als standardisierten Dienst für Anwendungen zu erhalten, wird das Thema dieser Kolumne sein.