Kennzeichen S(icherheit): Anwendungsentwicklung und Sicherheit

Architektur/Methoden  –  Kommentare

Neu! Kennzeichen S(icherheit)

In der neuen "Kennzeichen S(icherheit)"-Kolumne auf heise Developer setzen sich Martin Kuppinger und seine Kollegen des Analystenunternehmens KuppingerCole in regelmäßigen Abständen mit Themen wie Identity- und Access Management sowie IT-Governance aus Softwareentwicklungsperspektive auseinander. Es geht vor allem um die Frage, wie man Sicherheit für Anwendungen standardisieren und externalisieren kann, um Sicherheit und Nachvollziehbarkeit bei optimiertem Entwicklungsaufwand zu erreichen.

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 sollen 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.

Martin Kuppinger
ist Gründer und Senior Analyst bei Kuppinger Cole, einem auf IAM, GRC, Cloud Computing und verwandten Themen spezialisierten Analystenunternehmen. Er hat langjährige Erfahrung auch in der Softwarearchitektur.


Siehe dazu auch:

  • Martin Kuppinger: Steuermann von Ferne. ASI: sichere Anwendungen mit standardisierten Infrastrukturen, auf heise Developer