SkillGridInformatik durch Machen lernen

Threat Modeling: Was schützt du eigentlich?

Sicherheit beginnt mit einer Liste, nicht mit einem Werkzeug: deine Werte, wer sie will und was schiefgehen kann.

13 Min. · 40 XP

Du weißt schon, wie ein Paket seinen Weg über den Planeten findet und wie das Betriebssystem einen Prozess aus dem Speicher eines anderen heraushält. Sicherheit ist das, was passiert, wenn dieses Wissen gegen dich verwendet wird. Ein Port-Scan ist nur ein TCP-Verbindungsversuch, der höflich scheitert. Ein Rechtefehler ist nur ein Dateimodus, den nie jemand angesehen hat. In dieser Lektion geht es um die Frage, die vor allem anderen kommt: Was schütze ich, und vor wem?

Fang mit den Werten an — mit dem, was wirklich wehtut, wenn es weg ist. Nicht "der Server", sondern: die Kundendatenbank, das Admin-Konto, das Backup, der Ruf des Ladens, die Fähigkeit, überhaupt Bestellungen anzunehmen. Dann frag, wer das jeweils will. Ein gelangweilter Teenager und ein bezahlter Krimineller wollen von derselben Seite verschiedene Dinge, und man wehrt sich gegen beide unterschiedlich. Dann frag, wie es abfließt: nicht theoretisch, sondern indem du den Weg der Daten Schritt für Schritt gehst.

ASSET            WHO WANTS IT          HOW IT LEAKS
---------------  --------------------  ------------------------------
admin account    anyone, really        password reused on a leaked site
customer emails  spammers, scammers     export endpoint with no auth
server CPU       crypto miners         upload form that runs a script
database backup  competitors           backup file left in a public folderEin Wert ist erst dann verteidigenswert, wenn du benannt hast, wer ihn will und wie er ihn bekommen würde.

Eine einfache Checkliste bewahrt dich davor, auf ein leeres Blatt zu starren. Stelle sechs Fragen zu jedem Teil des Systems. Kann sich jemand als anderer Benutzer ausgeben (Spoofing)? Kann jemand Daten ändern, die er nur lesen dürfte (Tampering)? Kann jemand später abstreiten, etwas getan zu haben, ohne Protokoll zum Nachsehen (Repudiation)? Kann jemand Daten lesen, die er nicht sehen dürfte (Information Disclosure)? Kann jemand den Dienst unbenutzbar machen (Denial of Service)? Kann ein normaler Benutzer Rechte erlangen, die er nie bekommen hat (Elevation of Privilege)? Sechs Fragen, sechs Sorten von Fehlern.

UserWeb serverDatabase1. connect to shop.example2. read the order3. order and customer4. page with the ordera threat is any way steps 1-4 go wrongsend my order to another accountno check that the order is minesomeone else sees the order

Praxis

  1. Ordne jedem Wert des Ladens die Person zu, die ihn am ehesten angreifen würde.

    Hinweise
    • Entscheide zuerst, was gestohlen oder kaputt gemacht werden könnte, und frag dann, wen das stören würde.
    • Nimm das, was ein Angreifer zuerst versuchen würde, nicht das Exotischste.

    14 XP

  2. Dein Team veröffentlicht eine neue Seite, die alle Bestellungen auflistet. Sie funktioniert, die Tests laufen durch, und sie ist ohne Anmeldung erreichbar. Was ist das eigentliche Problem?

    Hinweise
    • Liste auf, was du schützt, und frag, was jedes davon wert ist.
    • Eine Funktion, die perfekt funktioniert, ist trotzdem ein Problem, wenn jeder sie benutzen kann.

    13 XP

  3. Bring die Schritte des Threat Modeling in die Reihenfolge, die tatsächlich zu einer Behebung führt.

    Hinweise
    • Fang bei dem an, was du schützt, nicht bei den Tricks des Angreifers.
    • Behoben wird erst, nachdem entschieden ist, welches Risiko wichtig genug ist.

    15 XP