Threat Modeling? Davon hab‘ ich doch schon mal gehört … aber: Was ist und wozu dient ein „Threat Modeling Workshop“? Dieser Blogbeitrag soll Entwicklerinnen, Entwicklern und Produktverantwortlichen helfen, das Konzept des „Threat Modeling Workshops“ näher kennenzulernen. Dieses ermöglicht ihnen Softwareentwicklungen sicherheitstechnisch zu prüfen und ggfs. zu optimieren, um insgesamt zu einer besseren, sicheren Lösung zu kommen.

Wir schreiben das Jahr 1979.

Irgendein Tag, vielleicht Montag, der 13. Mai. Eine Filiale. Was ist heute zu tun?
Post öffnen, telefonieren, Kundendaten aufschreiben, lochen, abheften, Akten in den Schrank im 1. Obergeschoß, Zimmer 107 bringen. Der Bote bringt die Akten am Mittwoch in die Zentrale, dort …
… und so weiter. So, wie es immer war.

Wir schreiben das Jahr 2023.

In der Softwareentwicklung arbeiten wir daran Geschäftsprozesse zu automatisieren und damit zu beschleunigen. Vorgänge wie 1979 gibt es immer noch, aber sie stellen eher nicht mehr den Hauptbestandteil der Arbeit dar. Durch Software gibt es viel weniger manuelle Verwaltungstätigkeiten in Vertrieb, Verkauf, etc. Also kommen dadurch auch weniger Fehler zustande – der „menschliche Faktor“ wird kleiner.

Aber wie sieht es mit den Problemen aus, die Software bewirken kann?

Früher suchte jemand Akten heraus, nach denen man fragte. Diese Person wusste meist auch, wem sie etwas aushändigen durfte – jedenfalls nicht jedem alles! Heute leistet Software diese Arbeit: Man startet eine Abfrage, schon sieht man die Daten. Man weist das Programm an bestimmte Dinge zu tun und dies geschieht sofort – nicht erst am nächsten Mittwoch.

Nur: Bekommt jeder alle Daten oder nur die, die er/sie bekommen soll? Hat man daran gedacht, dass die Software prüfen muss, wer was an Daten erzeugen/lesen/ändern und löschen darf?

Sinn und Ziel eines Threat Modeling Workshops

Hier kommen wir zum Sinn von Threat Modeling Workshops (TMW), so, wie SAP sie lehrt und selbst durchführt. (Aber auch viele andere Unternehmen bieten TMWs als Methodik an. Das Prinzip ist also nicht auf SAP-Anwendungen beschränkt.)

Das Ziel ist stets Verfügbarkeit, Verlässlichkeit und Vertraulichkeit des Systems zu wahren. Diese drei Prinzipien dürfen durch keine Softwareentwicklung bzw. Applikation beeinträchtigt werden.

Also muss man neue Applikationen genau daraufhin prüfen, dass sie diese Prinzipien nicht beeinträchtigen.

Softwareentwicklung muss geplant werden und wir wollen mit dem Mittel des TMWs nicht prüfen, ob die Applikation alles tut, was man sich funktional wünscht. Sondern, ob die Planung der Applikation alle relevanten Sicherheitsaspekte berücksichtigt.

Technische Architekturmodelle als Teil des TMWs

Zu dieser Planung gehört deshalb, dass Softwareentwicklerinnen und Softwareentwickler das darstellen, was sie vorhaben oder auch schon begonnen haben. Dazu werden die Intentionen und Abläufe der geplanten Applikation in Form von technischen Architekturmodellen als Diagramme abgebildet.

Diese Modelle nutzen nur relativ wenige „grafische Vokabeln“. Das macht es leicht sie zu verstehen. Hier unten ein Beispiel eines Onlineshops im Blockdiagramm:

Thread Modeling Workshop Architekturmodell

Jeder, der diese 15 bis 20 „Vokabeln“ kennt – einige sind im rechten Bildbereich einzusehen –, kann solche Diagramme lesen. Die Entwicklung wird dadurch transparent. Man betrachtet sie als Ganzes – nicht die einzelnen Codezeilen. Sie bleiben einem Code-Review vorbehalten.

Im Threat Modeling Workshop werden diese technischen Diagramme besprochen, häufig genug zeigen sich, wenn vorhanden, hier schon Schwachpunkte. Wie etwa eine fehlende Berechtigungsprüfung.

Beispiele für Resultate und Erfolge technischer Architekturmodelle

Nach der Besprechung der Diagramme wird ein Katalog von möglichen Sicherheitsproblemen aus verschiedenen Bereichen durchgesprochen.

Einige Beispiele: Die Umsetzung von Berechtigungsprüfungen zählte schon immer zu den wichtigsten Themen. Aber seit Jahren zwingend immer auch die Umsetzung von Schutzmechanismen persönlicher Daten => Stichwort „DSGVO“. Beachtet man dies nicht, können sehr hohe Bußgelder verhängt werden!

Eine Applikation, die mit persönlichen Daten zu tun hat und diese speichert, unterliegt deshalb immer ganz besonders hohen Sicherheitsstandards. Sie muss diese also erfüllen.

Darüber hinaus wird im TMW unter anderem auch geprüft, ob man über die Benutzeroberfläche unberechtigt Daten oder Datenabfragen manipulieren kann, sodass Unberechtigte z. B. den ganzen Kundenstamm herunterladen können. Dies kann durch die Veränderung von unverschlüsselten HTML-Strings erfolgen, z. B. wenn die im HTML-String geschickte Abfrage geändert oder ergänzt wird.

Beispiel: Man fragt nach einem speziellen Kundennamen. Dieser HTML-Abfragestring zeigt:

customerName = ‚Neumann‘

Schickt man die Abfrage ab kommen die Daten zu diesem Kunden.

Hacker oder auch nur jemand mit „erhöhter Neugier“ haben es hier leicht. Sie fügen hinzu:

or customerName like %

Die Abfrage fragt nun nach den Daten von Kunden mit dem Namen Neumann oder irgendeinem Namen. Diese Bedingung ist immer erfüllt – von allen Kunden … und der Hacker erhält alle Daten.

Man stelle sich vor, es wäre hier nun nicht um ein READ, sondern um ein DELETE-Kommando gegangen! (P.S.: Der Fall, genau dieser Fall sogar, ist echt.)

Ebenso soll kurz erwähnt werden, dass die Funktionalität auch immer dahingehend geprüft werden muss, dass sie nicht zu viele Ressourcen verschlingt. Womöglich, wenn eine Abfrage zu breit angelegt und dann zu viele Ergebnissätze findet, kann sie das System beeinträchtigen. Die Antwortzeiten sind dann zu lang oder das System antwortet gar nicht mehr, andere Benutzerinnen und Benutzer werden behindert, zu viel Speicher wird aufgebraucht, etc.

Ergebnisse im Rahmen eines TMWs

Am Ende eines TMW steht ein OK für die Entwicklung oder Liste von Maßnahmen, die als Planungs- und Entwicklungsänderungen durchgeführt und nachkontrolliert werden.

Kurz zusammengefasst: Ein Threat Modeling Workshop in der Softwareentwicklung soll seinen Teil dazu beitragen, die drei wichtigsten Kennzeichen des Systems schützen: Verfügbarkeit, Verlässlichkeit und Vertraulichkeit.

Er tut dies durch die Verfolgung einer Methodik zur übersichtlichen Darstellung der Softwareentwicklung in Diagrammform und ermöglicht die Besprechung von Sicherheitsstandards aus unterschiedlichen Bereichen.

Fragen zum Thema Threat Modeling Workshop?

Sie haben Fragen zu TMWs? Einfach schreiben an sapentwicklung@inwerken.de. Unser Entwicklungs-Team meldet sich bei Ihnen! Leistungen darüber hinaus finden Sie in unserem Portfolio.