Online Dating Security + 🇩🇪 TMC DACH Threat Modeling Feierabend

:us: :uk: English? ⇒ Read next post. :de: Deutsch? ⇒ Lies weiter.

:one: :thunder_cloud_and_rain: :umbrella: :de: :austria: :switzerland: Erstes gemeinsames Threat Modeling von TMC DACH!

Am Dienstag, den 22.04.2025, trafen sich 17 Threat Modeling Begeisterte zum 1. Threat Modeling Feierabend der deutschsprachigen TMC-Zweigstelle für den DACH Raum. Es waren Teilnehmende mit verschiedenstem Hintergrund vertreten: Anfänger:innen, Menschen mit wenig Erfahrung und Profis. Alle hatten gemeinsam, dass ihnen Threat Modeling am Herzen lag. :heart:

Ziel des „Threat Modeling Feierabend“-Formats ist es, in lockerer Runde zusammen ein einfaches System einer Bedrohungsmodellierung zu unterziehen. Dabei trifft eine :hammer_and_pick: Threat-Modeling-Methode ein :computer: Thema.

Da beides leicht zugänglich ist, können auch Personen ohne Threat Modeling Erfahrung sofort mit aufspringen.

Dass Herzen eine Rolle spielten wurde schnell klar: :heart_with_arrow::broken_heart: Das System zur Bedrohungsanalyse war eine Online-Dating-Plattform wie Tinder oder Grindr!

:hammer_and_pick: Methoden des Abends - :airplane_departure: :arrow_forward: startklar in unter 30 Minuten

Was wir nicht wollten ist: Erstmal abendfüllend debattieren, wie wir eigentlich threat-modeln wollen. Stattdessen ließen wir uns von Chris Romeos Regel herausfordern:

“Es ist nicht erlaubt, länger als 30 Minuten über Threat Modeling zu reden, bevor Leute threat-modeln müssen!”

Die Methoden des Abends, ausgewählt und vorgestellt von Hendrik Ewerlin:
(Alle Folien gibt es hier: Threat Modeling Feierabend - Online Dating im Tinder-Stil)

  • 4-Fragen-Rahmen von Adam Shostack
  • ThreatPad Online Editor für :thunder_cloud_and_rain: Gefahren und :umbrella: Maßnahmen - siehe auch Meet ThreatPad und ThreatPad
  • Mitgebrachtes Systemmodell - siehe unten
  • STRIDE
  • Safety
  • NIST Cyber Security Framework


inspiriert von diesem Beitrag von @AppSecSeanner

Systemmodell als Starthilfe

Das grundlegende Systemmodel wurde bereits ausgearbeitet und als Starthilfe mitgegeben. Der Vorteil: voller Fokus auf :thunder_cloud_and_rain: Gefahren und :umbrella: Maßnahmen. Und: Wenig technische Details waren für die Bedrohungsanalyse notwendig, obwohl diese auch in den Bedrohungen später gut zu Buche schlugen. Auch Gefahren aus dem realen Leben waren klar Teil der Betrachtung.

Das erste Modell zeigt den Ablauf, wie zwei Nutzende auf der Plattform in Kontakt kommen. Die einzelnen Stufen ( #AuthN, #Profil, #Standort, #Erkunden, #Swipen, #Matches, #Chat, #Dating ) strukturieren als Schlagworte die Gefahrenermittlung.

Das zweite Modell sortiert die gleichen Themen in eine Architektursicht ein und zeigt eine klassische Nutzer - Client - Dienst - Server - Datenbank -Architektur mit Client-Verteilung über einen App Store. Auch einige wenige naive Gefährder werden vorgestellt und benannt, um Worte für das Gespräch anzubieten.

:thunder_cloud_and_rain: :umbrella: :smiley: :smiley: :smiley: :smiley: :smiley: :smiley: :multiply: :three: Gemeinsame Bedrohungsmodellierung

Dann fanden sich 3 Teams von 5-6 Personen in Brich-Heraus-Räumen zusammen. Sie ermittelten :thunder_cloud_and_rain: Gefahren und :umbrella: Maßnahmen. Lilith, Laura und Hendrik moderierten die Räume.

Teilnehmende sahen einen solchen Bildschirm: Links das ThreatPad, wo interaktiv :thunder_cloud_and_rain: Gefahren und :umbrella: Maßnahmen aus dem angeregten Gespräch mitgeschrieben wurden. Rechts eine Collage aus Systemmodell und Methoden. Weil ThreatPad schmal gebaut ist, nimmt es wenig Raum ein und lässt genug Platz für Kontext während der Bildschirm geteilt wird. Da stets nur die aktuelle Gefahr gezeigt wird, verläuft die Diskussion fokussiert… (naja, mehr oder weniger :wink:)

Alle drei Gespräche verliefen lebendig, sprudelten und brachten spannende Gefahren und Schutzmaßnahmen hervor! Wir danken allen unseren Teilnehmenden für die tolle Begegnung und das anregende Erlebnis und Ergebnis! :kissing_heart: :pray:

Nach einer ersten Runde wurden die wichtigsten Erkenntnisse und Bedrohungen in gemeinsamer Runde vorgestellt. Danach ging es in den Endspurt für die Gegenmaßnahmen. Hier wurde auch noch einmal darauf hingewiesen, dass diese durchaus vielfältig sein können und nicht immer nur vermeiden oder mindern sind. Auch das rechtzeitige Erkennen oder auch die Korrektur, das Wiedergutmachen, spielen eine Rolle. Dabei konnten wir sehen, wie Systemanbieter:innen das Leben ihrer Benutzer:innen auch außerhalb der Software über Zusatzfunktionen oder Informationsangebote sicherer machen können.

:thunder_cloud_and_rain: :umbrella: :checkered_flag: Ergebnisse

Hier seht ihr die Ergebnisse der Untersuchung als ThreatPad PDF-Export im Rohformat ohne Nachverarbeitung :de:
Die Ergebnisse sind besonders beeindruckend eingedenk der begrenzten Zeit: 2x30 Minuten. Bedenke auch, dass hier Menschen mit unterschiedlichen Hintergründen erstmals zusammengearbeitet haben.
Beeindruckend! :star-struck::star2: Ihr seid stark!!! :muscle::brain:
Risikobetrachtung, Gefahren-Rangfolge oder Ermitteln der Essenz war nicht Teil des Abends.
:question: Was sind deine Erkenntnisse?

:speech_balloon: Abschließender Austausch

Im abschließenden Austausch sprach Christoph aus, was alle dachten: Dass klar erkennbar ist, wie wertvoll eine gemeinsame Betrachtung ist und dass das vielfältige Perspektiven aufbringt! :new: Erstaunlich: Trotz intensiver Vorbereitung konnten auch die Veranstaltenden viel Neues lernen.

Eine sehr wichtige Frage kam zum Schluss auf. Diese wird oft gestellt, wenn Teams mit der Bedrohungsanalyse beginnen: „Was muss ich für Werkzeuge haben?“ Rons Antwort: ein Blatt Papier und eine einfache Liste wie Excel. Klar helfen Werkzeuge für Automatisierung und nachträgliche Organisation, aber ein Bild des „Woran arbeiten wir?“, eine Liste mit „Was kann schief gehen?“ und „Was wollen wir dagegen tun?“ wirkt oft schon Wunder. Wir können einfach starten und dann besser werden…

:fast_forward: Nächste Veranstaltung: 20.05. :cloud: Threat Modeling der Wolken mit OWASP Cumulus und Christoph Niehofff

Der Abend verging wie im Flug und wir freuen uns auf das nächste Mal! Nach unserem erfolgreichem Gründungstreffen und dem ersten Threat Modeling Feierabend könnt ihr nun auf die nächste Veranstaltung aus unserer Zweigstelle gespannt sein! TMC DACH: :cloud: OWASP Cumulus und Sicherheitsspiele - Threat Modeling Feierabend mit Christoph Niehoff, dem Schöpfer von OWASP Cumulus, am 20.05.2025 ab 17 Uhr per Zoom.

1 Like

:us: :uk: English? Ahead! :de: Deutsch? Lies hier.

:one: :thunder_cloud_and_rain: :umbrella: :de: :austria: :switzerland: First collaborative Threat Modeling of TMC DACH!

On Tuesday, 22.04.2025, 17 threat modeling enthusiasts met for the 1st Threat Modeling Feierabend (after work) of the German-speaking TMC chapter for the DACH region. There were participants from a wide range of backgrounds: Beginners, people with little experience and professionals. What they all had in common was that Threat Modeling was close to their hearts. :heart:

The aim of the “Threat Modeling Feierabend” format is to subject a simple system to threat modeling in a relaxed atmosphere. In doing so, a :hammer_and_pick: Threat modeling method meets a :computer: topic.

Since both are easily accessible, even people without threat modeling experience can jump right in.

It quickly became clear that hearts played a role: :heart_with_arrow::broken_heart: The threat analysis system was an online dating platform like Tinder or Grindr!

:hammer_and_pick: Methods of the evening - :airplane_departure: :arrow_forward: ready to go in less than 30 minutes

What we didn’t want to do was spend an entire evening debating how we actually want to threat-model. Instead, we let ourselves be challenged by Chris Romeo’s @edgeroute rule:

“It is not allowed to talk about Threat Modeling for more than 30 minutes until people have to threat model”

The methods of the evening, selected and presented by Hendrik Ewerlin @hewerlin :
(All the :de: German slides: Threat Modeling Feierabend - Online Dating im Tinder-Stil)

  • 4 Question Framework by Adam Shostack @adamshostack
  • ThreatPad Online Editor for :thunder_cloud_and_rain: threats and :umbrella: mitigations - see also Meet ThreatPad and ThreatPad
  • Prepared system model - see below
  • STRIDE
  • Safety
  • NIST Cyber Security Framework

This is inspired by this post by @AppSecSeanner

The example threat shows someone worried about forgetting swim suit. Suggested mitigations are :wastebasket: buy new :white_check_mark: packing list :star: go to beach where you can swim naked (and, related, safe money so we can afford to buy new)

Illustrating the NIST strategies:
:locked: make harder / prevent (as part of protect)
:rescue_worker_s_helmet: reduce harm (as part of protect)
:video_camera: detect
:fire_extinguisher: respond
recover (:star_struck: with super beautiful German word wiedergutmachen: make-good-again)

System model as a start-up aid

The system model was already provided as a starting aid. The advantage: full focus on :thunder_cloud_and_rain: threats and :umbrella: measures. And: Few technical details were required for the threat analysis, although these were also well reflected in the threats later on. Real-life threats were clearly part of the analysis.

The first model shows the process of how two users come into contact on the platform. The individual stages ( #AuthN, #Profile = #Profil, #Location = #Standort, #Discovery = #Erkunden, #Swiping = #Swipen, #Matches, #Chat, #Dating ) structure the threat identification as keywords.

The second model sorts the same topics into an architectural view and shows a classic user - client - service - server - database architecture with client distribution via an app store. A few naive threat actors are also introduced and named to offer words for the conversation.

:thunder_cloud_and_rain: :umbrella: :smiley: :smiley: :smiley: :smiley: :smiley: :multiply: :three: Collaborative Threat Modeling

Then 3 teams of 5-6 people got together in break-out rooms. They identified :thunder_cloud_and_rain: threats and :umbrella: mitigations. Lilith, Laura and Hendrik moderated the rooms.

Participants saw a screen like this: On the left, the ThreatPad, where :thunder_cloud_and_rain: threats and :umbrella: mitigations were interactively written down from the lively conversation. On the right, a collage of system model and methods. Because ThreatPad is so slim, it takes up little space and leaves enough room for context while sharing the screen. Since only the current threat is shown, the discussion is focused… (well, more or less :wink:)

All three discussions were lively, bubbly and produced exciting threats and mitigations! We would like to thank all our participants for the great encounter and the stimulating experience and results! :kissing_heart: :pray:

After an initial round, the most important findings and threats were presented in a joint session. Then it was time for the final spurt of countermeasures. It was pointed out once again that these can be quite diverse and are not always just avoidance or mitigation. Timely recognition or correction, making amends, also play a role. We were able to see how system providers can also make their users’ lives safer outside of the software by offering additional functions or information.

:thunder_cloud_and_rain: :umbrella: :checkered_flag: Results

:de: Here is the results als ThreatPad PDF-Export, raw, without post processing :de:

:us: :uk: We have had AI translate our results and were not really satisfied to present you that stuff. Stay tuned, as we will share some more of our insights on the content level… :soon_arrow: (If you can’t wait, you may want process the results yourself.)

The results are particularly impressive considering the limited time: 2x30 minutes. Also bear in mind that people from different backgrounds worked together for the first time.
Impressive! :star2: You guys are awesome!!! :muscle::brain:
Risk assessment, threat ranking or determining the essence was not part of the evening.
:question: What are your findings?

:speech_balloon: Final exchange

In the concluding discussion, Christoph expressed what everyone was thinking: That it is clearly recognizable how valuable it is to look at things together and that this brings up a variety of perspectives! :new: Surprisingly, despite intensive preparation, the organizers were also able to learn a lot of new things.

One very important question came up at the end. This is often asked when teams start out with threat modeling: “What tools do I need?” Ron’s answer: a sheet of paper and a simple list like Excel. Sure, tools for automation and organization help, but a picture of “What are we working on?”, a list of “What can go wrong?” and “What do we want to do about it?” often works wonders. We can start simple and then get better…

:fast_forward: Next event: May 20th :cloud: Threat Modeling the Clouds with OWASP Cumulus and Christoph Niehofff

The evening flew by and we are looking forward to the next one! After our successful founding meeting and the first Threat Modeling Feierabend, you can now look forward to the next event from our chapter! TMC DACH: :cloud: OWASP Cumulus and security games - Threat Modeling Feierabend with Christoph Niehoff, the creator of OWASP Cumulus, on Mai 20th 2025 from 5 pm via Zoom. The event language is German. :de:

3 Likes

Superfun! I’m looking to start a local chapter and I’ll be revisiting this for event inspiration and meta-learnings.

2 Likes

Cool, @steve_gibbons !

Chapter leader / MC perspective:

This format has a simple Learn → Try → Discuss structure with plugin :puzzle_piece: architecture. Method set? Playground?

I believe Chris Romeo’s rule is the key ingredient to make this interactive and engaging. If you deviate, know why.

Methods have different training complexity, gains, pains and their place in a bigger picture. Some can be trained rough idea VS deep dive VS everything in between. What is a good 30 minute set?

We can generate lots of cool sessions with this format.

The next one has same structure. Here’s serious games + cloud threat modeling with OWASP Cumulus. Here’s playground. Now go play! :partying_face: (Bonus: meet the creator or someone who knows what they are talking about.)

Can recommend all the things. Format. Method set. Playground. Method playground combo. Feel free to adopt or vary as you like. :smiley:

2 Likes

What I also really liked was the mix of the attendees. We thought about threats including the provider’s point of view as well as from the user’s of view. And when someone came up with one threat, sometimes another person immediately started suggesting mitigations. And then we had a mitigation, which also brought new potential threats as a consequence.
One example:
Threat: There could be violent users on the platform.
Mitigation: Implement a review system.
→ new threat: unauthorized persons could add or change reviews
→ new mitigation: seperate authorisation for certain activities etc.

I never had such interaction in threat modeling before and really enjoyed the exchange!

1 Like

True @laxarella.
Thanks for sharing your perspective!

Same in my session.
I also saw such lively discussion! One person suggested a particularly impressive number of threats! :smiling_face_with_sunglasses: At the same time, everybody had their say and contributed.

We had a cool chain around
Service provider and server intruder can read chats
→ End-to-end encrypt chats
→ Can’t report nasty conversations
→ Let one side disclose conversation key to moderator when there is something to report + sign messages so that offender/Störenfried can’t deny having sent
→ Repudiation/Non-Repudiation tradeoffs

I believe this is in parts because that’s how awesome threat modeling conversations emerge anyway. :dizzy:

Plus it’s because I explicitly asked for follow-up threats from mitigations and how to mitigate those before folks went plan mitigations. Which was valuable 2 lines on a slide and well spent 7 seconds in words. :wink:

ThreatPad is not super powerful in collecting those. The threat list is flat. The mitigation → threat link is lost.

:slightly_smiling_face: Fortunately ⇆ :slightly_frowning_face: Unfortunately and Attack Defense trees do a better job at this.