Systems Engineering Trends

Jede Woche Neuigkeiten aus der Welt des Systems Engineering

MenschenWissen

IT Sicherheit: Ein wichtiger, aber häufig vernachlässigter Aspekt des Software Engineerings

Schlagzeilen über Cyber-Angriffe häufen sich. IT Sicherheit wird viel diskutiert. In der öffentlichen Diskussion dominieren dabei immer noch sichere Infrastrukturen und Spezial-Lösungen. Dabei ist IT Sicherheit in der Softwareentwicklung, insbesondere beim Systementwurf meist effizienter und kostengünstiger umzusetzen.

Dies ist ein Gastbeitrag von Dagmar Moser. Sie ist selbständige IT Beraterin mit Schwerpunkt IT Architektur, IT Security und Requirements Engineering in klassischen IT- Anwendungsentwicklungs-Projekten und IT- Innovations-Initiativen. Sie ist Inhaberin von blueheads, Unternehmensberatung für IT Security.

Unabhängig vom Softwareentwicklungsprozess

In diesem Artikel möchte ich mich explizit auf die Softwareentwicklung beziehen. Die Bedrohungsmodellierung lässt sich aber auch für Hardware bzw. Embedded Systems einsetzen.

IT Sicherheit kann in jedem Softwareentwicklungsprozess berücksichtigt werden. Das Vorgehen muss sich nur dem Prozess anpassen, und IT Sicherheit systematisch integriert werden.

Auch in einem agilen Prozess ist das möglich, es gibt hier sogar einige Vorteile gegenüber einem Phasen-orientierten Prozess:

  • Das Projekt setzt sich bereits frühzeitig mit der Umsetzung von Sicherheitsmaßnahmen auseinander und arbeitet dabei Risiko-orientiert.
  • Sicherheitsmaßnahmen können zusammen mit funktionalen Anforderungen priorisiert, geplant und umgesetzt werden. Dabei können Synergieeffekte erreicht werden.
  • Ein Test von Sicherheitsmaßnahmen erfolgt kontinuierlich.

Das folgende Diagramm zeigt einen SCRUM basierten Prozess, der um wesentliche Security Aktivitäten ergänzt wurde:

  • Das Backlog enthält neben anderen Qualitätsanforderungen auch Sicherheitsanforderungen, die in der Sprint Planung berücksichtigt und im Sprint umgesetzt und getestet werden.
  • Die Definition of Done berücksichtigt wichtige Qualitätsaspekte wie das Review der Sicherheitsarchitektur oder die Dokumentation und Adressierung von identifizierten Bedrohungen.

IT Sicherheit muss im Systementwurf berücksichtigt werden

Bereits beim groben Systementwurf sollte der Sicherheitsaspekt berücksichtigt werden. Spätere Änderungen an der Architektur sind bekanntlich teuer! Dagegen können technische Komponenten, die neben der Funktionalität bereits notwendige Sicherheitseigenschaften mitbringen, viel Geld sparen.

Secure Design Patterns sollte jeder Architekt kennen und anwenden.

Secure Design Patterns sollte jeder Architekt kennen und anwenden. Auch klassische Schwachstellen sind beschrieben und sollten bei Design und Entwicklung beachtet werden. (Z.B. OWASP Top 10)

Ein sehr effizientes Werkzeug, das beim Systementwurf zum Einsatz kommt und der Arbeitsweise von Modellierern und Architekten entgegen kommt, ist die Bedrohungsmodellierung.

Bedrohungsmodellierung als effizientes Werkzeug um Bedrohungen zu identifizieren und zu bewerten

Die Bedrohungsmodellierung lässt sich in folgende Schritte unterteilen:

Aus Präsentation von Dagmar Moser und Sabine Wildgruber Modern RE 2019 “Angriff ist die beste Verteidigung“
  1. Bedrohungsmodell erstellen: Ein Bedrohungsmodell ähnelt einem Datenflussdiagramm, dass um sogenannte Vertrauensgrenzen erweitert wurde. Beispiele für Vertrauensgrenzen sind System- oder Benutzerschnittstellen. Neben den wesentlichen Datenflüssen stellt das Bedrohungsmodell die grobe Architektur (Komponenten und Schnittstellen), sowie die Interaktion mit den Akteuren der Anwendung dar.
  2. Bedrohungen identifizieren: Dem Datenfluss folgend gibt das Bedrohungsmodell einen Ablauf vor, nach dem es durchlaufen und analysiert werden kann. Dabei werden bei jedem Schritt mögliche Bedrohungen identifiziert. Zur Unterstützung können Unternehmens-eigene Listen relevanter Bedrohungen, Dokumentationen bekannter Schwachstellen (z.B. MITRE-CVE) oder auch einfach anzuwendende Verfahren wie STRIDE von Microsoft eingesetzt werden. Am Ende der Identifizierung steht die Dokumentation der Bedrohungen mit eindeutigem Bezug zum Modell.
  3. Bedrohungen bewerten: Für die Bewertung von Bedrohungen in der Softwareentwicklung gibt es einfach anzuwendende Methoden wie DREAD von Microsoft oder OWASP Risk Rating. Sie berücksichtigen unterschiedliche Faktoren, die das Schadensausmaß, die Ausnutzbarkeit der Schwachstelle und mögliche Angreifer (nur OWASP Risk Rating) betreffen.
  4. Gegenmaßnahmen planen: Bevor konkrete Gegenmaßnahmen definiert und geplant werden, muss für jede Bedrohung entschieden werden, ob und mit wie viel Aufwand Gegenmaßnahmen umgesetzt werden sollen. Die Gegenmaßnahmen können in Form von Anforderungen (z.B. Security Stories, Evil Stories) formuliert und eingeplant werden.

Sicherheit in der Softwareentwicklung ist Teamarbeit

Sicherheit in der Softwareentwicklung umzusetzen erfordert Security Awareness und Know-How im ganzen Team. Ein Security Experte alleine kann zwar wertvollen Input geben, eine effiziente Umsetzung muss allerdings in den einzelnen Disziplinen (Projektmanagement, Requirements Engineering, Architektur, Entwicklung und Test) erfolgen.

Fazit

Zu einer modernen und nachhaltigen Produktentwicklung gehört Sicherheit in der Softwareentwicklung. Wir können uns nicht darauf verlassen, dass Betriebssysteme und sichere Infrastrukturen die Sicherheit kompensieren, die man beim Systementwurf verpasst hat.

Photo by vipul uthaiah on Unsplash