Skip to main content
Xcapit
Blog
·11 Min. Lesezeit·Fernando BoieroFernando Boiero·CTO & Mitgründer

Threat Modeling für Web3: OWASP für dApps anpassen

cybersecurityweb3owasp

Threat Modeling ist eine der effektivsten Sicherheitspraktiken im Software-Engineering -- und eine der am wenigsten genutzten in Web3. Traditionelle Anwendungen profitieren von Jahrzehnten reifer Threat-Modeling-Frameworks, wobei OWASPs STRIDE-Modell am weitesten verbreitet ist. Aber dezentralisierte Anwendungen führen Angriffsflächen ein, für die diese Frameworks nie designt wurden. Smart Contracts sind unveränderlich. Transaktionen sind vor Bestätigung öffentlich. Wert fließt durch komponierbare Protokolle, wo eine Schwachstelle in einer Komponente über das gesamte Ökosystem kaskadieren kann. Die Frage ist nicht, ob Sie Threat Modeling für Ihre dApp benötigen -- es ist, wie man es richtig macht.

Web3-Threat-Modeling-Framework basierend auf OWASP
Anpassung der OWASP-Threat-Modeling-Methodik für dezentralisierte Anwendungen

Bei Xcapit bauen wir seit 2018 Blockchain-Anwendungen und führen Sicherheitsbewertungen für DeFi-Protokolle, Wallets und Enterprise-Blockchain-Lösungen durch. Über die Jahre haben wir ein angepasstes Threat-Modeling-Framework entwickelt, das die Lücke zwischen etablierten Sicherheitsmethodologien und den Realitäten dezentralisierter Architektur überbrückt. Dieser Artikel teilt den Ansatz, den wir mit unseren Kunden und internen Projekten verwenden.

Warum traditionelles Threat Modeling in Web3 zu kurz greift

Threat Modeling in traditioneller Software nimmt eine Reihe von Bedingungen an, die in dezentralisierten Systemen nicht gelten. Der Anwendungsbesitzer kontrolliert den Server. Patches können sofort deployt werden, wenn Schwachstellen gefunden werden. Netzwerkverkehr ist privat, bis er sein Ziel erreicht. Zugriffskontrolle wird durch Infrastrukturschichten erzwungen -- Firewalls, Netzwerksegmentierung, Authentifizierungsserver -- die außerhalb der Anwendung selbst sitzen.

Web3 kehrt diese Annahmen um. Smart Contracts sind selbstausführend und können, sobald deployt, nicht modifiziert werden, es sei denn, ein Upgrade-Mechanismus wurde im Voraus designt. Jede Transaktion sitzt in einem öffentlichen Mempool vor Bestätigung, sichtbar für jeden, der das Netzwerk überwacht. Es gibt keine serverseitige Zugriffskontrolle -- der Smart Contract muss seine eigenen Berechtigungen vollständig durch Code erzwingen. Und die Komponierbarkeit, die DeFi mächtig macht, bedeutet auch, dass die Sicherheit Ihres Protokolls von jedem anderen Protokoll abhängt, mit dem es interagiert.

Dies bedeutet nicht, dass traditionelle Frameworks nutzlos sind. OWASPs STRIDE-Modell -- das Bedrohungen in Spoofing, Tampering, Repudiation, Information Disclosure, Denial of Service und Elevation of Privilege kategorisiert -- bietet eine solide Grundlage. Aber es muss mit Web3-spezifischen Bedrohungskategorien erweitert werden, die die einzigartigen Eigenschaften von Blockchain-Systemen adressieren.

STRIDE in der dezentralisierten Welt: Was übersetzt und was nicht

Einige STRIDE-Kategorien mappen direkt auf Web3-Bedenken. Spoofing gilt für Wallet-Impersonation, Phishing-Angriffe, die Benutzer dazu verleiten, böswillige Transaktionen zu signieren, und Frontend-Hijacking, bei dem eine kompromittierte Schnittstelle Benutzer anweist, mit Angreifer-kontrollierten Contracts zu interagieren. Denial of Service manifestiert sich als Gas-Griefing, unbegrenzte Loop-Angriffe und Block-Stuffing, das zeitkritische Transaktionen an der Bestätigung hindert. Elevation of Privilege mappt auf Zugriffskontrollfehler in Smart Contracts -- ungeschützte Admin-Funktionen, fehlende Rollenprüfungen und Proxy-Initialisierungsschwachstellen.

Andere Kategorien erfordern Neuinterpretation. Information Disclosure in traditionellen Systemen bedeutet unauthorisierten Datenzugriff, aber in Web3 sind alle On-Chain-Daten durch Design öffentlich -- die Bedrohung verschiebt sich zu Metadaten-Leakage und Transaktionsmusteranalyse. Repudiation ist fundamental anders, weil Blockchain einen unveränderlichen Audit-Trail bietet, aber die Bedrohung erscheint durch Governance-Angriffe neu, bei denen On-Chain-Stimmen durch Off-Chain-Zwang beeinflusst werden.

Und dann gibt es ganze Bedrohungskategorien, die STRIDE einfach nicht abdeckt: Oracle-Manipulation, MEV-Extraktion, Flash-Loan-ökonomische Angriffe, Cross-Chain-Bridge-Exploits und Governance-Token-Manipulation. Diese erfordern neue Kategorien in unserem angepassten Framework.

Web3-spezifische Bedrohungskategorien

Basierend auf unserer Erfahrung beim Auditieren und Bauen dezentralisierter Anwendungen haben wir sechs Web3-spezifische Bedrohungskategorien identifiziert, die zu jedem Threat-Modell für eine dApp hinzugefügt werden müssen:

  • Smart-Contract-Logikschwachstellen: Reentrancy, Integer-Overflow, nicht initialisierter Speicher und Geschäftslogikfehler, die nach Deployment nicht gepatcht werden können. Die Unveränderlichkeit von Smart Contracts bedeutet, dass diese Schwachstellen persistieren, bis der Contract aufgegeben oder migriert wird -- und Migration selbst führt neue Angriffsfläche ein.
  • Oracle-Manipulation: Angriffe, die die externen Datenfeeds korrumpieren, auf die Smart Contracts für Preise, Zufälligkeit oder reale Ereignisse angewiesen sind. Flash-Loan-finanzierte Preismanipulation auf DEX-basierten Oracles bleibt der einzeln finanziell verheerendste Angriffsvektor in DeFi, verantwortlich für Milliarden an kumulativen Verlusten.
  • MEV und Frontrunning: Maximal Extractable Value-Angriffe, bei denen Miner, Validators oder Searcher Transaktionen für Profit neu anordnen, einfügen oder zensieren. Sandwich-Angriffe auf DEX-Trades, Liquidations-Sniping und Backrunning großer Oracle-Updates sind alle Formen von MEV, die Protokollökonomie und Benutzererfahrung beeinflussen.
  • Cross-Chain-Bridge-Angriffe: Bridges sind die höchstwertigen Ziele in Web3 und halten gesperrte Assets, die gewrappte Tokens auf Ziel-Chains sichern. Validator-Kompromittierung, Nachrichten-Spoofing und Replay-Angriffe über Chains hinweg haben zu den größten individuellen Exploits in der Blockchain-Geschichte geführt -- die Ronin Bridge (625M$), Wormhole (320M$) und Nomad (190M$) Hacks.
  • Governance-Angriffe: Manipulation von On-Chain-Voting durch Flash-Loan-finanzierte Governance-Tokens, Vote-Buying auf Sekundärmärkten, Proposal-Injection durch ausgenutzte Delegation und Time-Lock-Bypass. Governance-Angriffe sind besonders heimtückisch, weil sie dem Angreifer legitime Protokollautorität gewähren können.
  • Flash-Loan-ökonomische Exploits: Angriffe, die unbesicherte Flash Loans verwenden, um vorübergehend massives Kapital zu kommandieren, Marktbedingungen zu verzerren und Wert aus Protokollen zu extrahieren, deren Logik annimmt, dass kein einzelner Akteur so viel Kapital in einer einzelnen Transaktion kontrollieren kann. Diese Angriffe sind risikofrei für den Angreifer -- wenn ein Schritt fehlschlägt, revertiert die gesamte Transaktion.

Die Angriffsfläche einer typischen dApp

Bevor Bedrohungskategorien angewendet werden, benötigen Sie eine klare Karte der Angriffsfläche. Eine typische dApp hat sieben unterschiedliche Schichten, jede mit ihrem eigenen Bedrohungsprofil:

  • Frontend: Die Web-Schnittstelle, mit der Benutzer interagieren. Anfällig für DNS-Hijacking, CDN-Kompromittierung, Supply-Chain-Angriffe durch kompromittierte npm-Pakete und Phishing durch geklonte Schnittstellen. Ein kompromittiertes Frontend kann Contract-Adressen ersetzen, Transaktionsparameter modifizieren oder Approval-Transaktionen für Angreifer-kontrollierte Tokens injizieren.
  • Wallet-Verbindung: Die Schnittstelle zwischen dem Wallet des Benutzers und der dApp. Anfällig für Blind-Signing-Angriffe, bei denen Benutzer Transaktionen genehmigen, die sie nicht verstehen, Permission-Eskalation durch unbegrenzte Token-Approvals und Session-Hijacking in Wallet-Connect-Protokollen.
  • RPC- und Node-Infrastruktur: Die Verbindung zwischen Frontend und Blockchain. Zentralisierte RPC-Anbieter schaffen einen Single Point of Failure und können Transaktionen zensieren oder neu anordnen. Man-in-the-Middle-Angriffe auf RPC-Verbindungen können Transaktionsdaten modifizieren, bevor es den Mempool erreicht.
  • Smart Contracts: Die On-Chain-Logik, die Wert hält und bewegt. Die am meisten unter die Lupe genommene Schicht, aber auch die folgenreichste, wenn Schwachstellen gefunden werden. Deckt alle Standard-Smart-Contract-Schwachstellenklassen plus protokollspezifische Geschäftslogik ab.
  • Oracles und externe Daten: Jede externe Datenquelle, von der die Smart Contracts abhängen. Beinhaltet Preisfeeds, Zufälligkeitsanbieter, Cross-Chain-Nachrichten-Relayer und Off-Chain-Berechnungsergebnisse. Jedes Oracle führt eine Vertrauensannahme ein, die explizit modelliert werden muss.
  • Cross-Chain-Bridges: Infrastruktur, die Assets und Nachrichten zwischen Blockchains bewegt. Bridges kombinieren Smart-Contract-Risiko auf mehreren Chains mit Validator-Set-Sicherheit, Nachrichtenverifizierung und oft zentralisierten Komponenten, die asymmetrisches Risiko schaffen.
  • Governance: On-Chain und Off-Chain-Entscheidungsmechanismen. Beinhaltet Token-gewichtetes Voting, Multi-Sig-Operationen, zeitverzögerte Vorschläge und Notfall-Response-Verfahren. Governance kontrolliert den Upgrade-Pfad und Parameter-Einstellungen für das gesamte Protokoll.

STRIDE auf jede dApp-Schicht anwenden

Die Kraft unseres angepassten Frameworks kommt davon, sowohl traditionelle STRIDE-Kategorien als auch Web3-spezifische Kategorien systematisch auf jede Schicht der dApp anzuwenden. Dies erzeugt eine Matrix, bei der jede Zelle ein spezifisches Bedrohungsszenario repräsentiert, das bewertet werden muss.

Für die Frontend-Schicht manifestiert sich Spoofing als DNS-Hijacking und Phishing-Sites, Tampering als kompromittierte Build-Pipelines und Information Disclosure als Wallet-Adressen-Leakage durch Analytics-Skripte. Für die Smart-Contract-Schicht bedeutet Spoofing Contract-Impersonation, Tampering übersetzt zu Proxy-Upgrade-Angriffen und Elevation of Privilege mappt auf ungeschützte Admin-Funktionen.

Für die Oracle-Schicht dominieren die Web3-spezifischen Kategorien. Oracle-Manipulation beinhaltet Flash-Loan-Preisverzerrung und Stale-Data-Exploitation. MEV gilt durch Oracle-Update-Frontrunning -- Searcher, die eine Preisupdate-Transaktion im Mempool sehen und Trades ausführen, bevor der neue Preis wirksam wird. Für Bridges decken Cross-Chain-Angriffe Validator-Kollusion, Nachrichten-Replay über Chains und unvollständige Finalitätsannahmen ab.

Durcharbeiten dieser Matrix für eine echte dApp produziert typischerweise 40 bis 80 spezifische Bedrohungsszenarien. Nicht alle sind gleichermaßen wahrscheinlich oder folgenreich, weshalb Risiko-Scoring kritisch wird.

Wie wir Threat-Modeling-Sitzungen durchführen

Eine Threat-Modeling-Sitzung ist nur so gut wie die Menschen im Raum und der Prozess, dem sie folgen. Wir führen strukturierte Sitzungen durch, die typischerweise drei bis vier Stunden für ein einzelnes Protokoll dauern und drei Gruppen von Teilnehmern involvieren.

Die erste Gruppe ist das Entwicklungsteam -- Ingenieure, die das beabsichtigte Verhalten und Design-Entscheidungen des Protokolls verstehen. Die zweite ist das Sicherheitsteam -- Spezialisten mit Kenntnissen von Angriffsmustern und adversarialem Denken. Die dritte sind Domänenexperten -- Menschen, die das ökonomische Modell und Geschäftslogik auf einem Level verstehen, das reine Technologen verpassen könnten.

Der Prozess folgt vier Phasen. Erstens, Architekturzerlegung: Kartieren des Systems in Schichten und Datenflüsse, Identifizieren von Vertrauensgrenzen. Zweitens, Bedrohungsidentifikation: Systematisches Durcharbeiten der STRIDE-plus-Web3-Matrix. Drittens, Risikobewertung: Bewertung jeder Bedrohung mit unserer angepassten Formel. Viertens, Mitigationsplanung: Definieren von Gegenmaßnahmen für jedes hohe und kritische Risiko, Zuweisen von Eigentümerschaft und Setzen von Zeitplänen.

Die Ausgabe ist ein strukturiertes Threat-Model-Dokument, das sowohl als Sicherheits-Blueprint als auch als lebende Referenz dient. Es beinhaltet das Architekturdiagramm mit Vertrauensgrenzen, das vollständige Bedrohungsinventar mit Risiko-Scores, eine priorisierte Liste von Mitigationen und eine Reihe von Sicherheitsanforderungen, die aus den identifizierten Bedrohungen abgeleitet sind.

Risiko-Scoring angepasst für Web3

Traditionelles Risiko-Scoring verwendet die Formel: Risiko = Wahrscheinlichkeit x Auswirkung. Dies funktioniert gut für patchbare Software, bei der eine entdeckte Schwachstelle schnell behoben werden kann. In Web3 fügen wir einen dritten Faktor hinzu, der die Berechnung fundamental ändert: den Unveränderlichkeitsfaktor.

Unsere angepasste Formel lautet: Risiko = Wahrscheinlichkeit x Auswirkung x Unveränderlichkeitsfaktor. Der Unveränderlichkeitsfaktor reicht von 1,0 bis 3,0 und reflektiert, wie schwierig es ist, die Schwachstelle zu beheben, sobald sie entdeckt wurde. Eine Frontend-Schwachstelle erhält 1,0 (leicht neu deploybar). Ein aufgerüstbarer Smart Contract hinter einem zeitverzögerten Multi-Sig erhält 1,5. Ein unveränderlicher Contract ohne Upgrade-Pfad erhält 3,0 -- die einzige Behebung ist Migration, die Benutzeraktion erfordert und möglicherweise nicht alle betroffenen Parteien erreicht.

Dieses Bewertungsmodell priorisiert Bedrohungen in unveränderlichen Komponenten korrekt. Eine mittlere-Wahrscheinlichkeit, mittlere-Auswirkung-Schwachstelle in einem unveränderlichen Contract bewertet höher als eine hohe-Wahrscheinlichkeit, hohe-Auswirkung-Schwachstelle im Frontend, weil das Frontend in Minuten gepatcht werden kann, während die Contract-Schwachstelle unbegrenzt persistiert. Dies stimmt mit der Realität überein, dass die katastrophalsten Exploits in der Web3-Geschichte unveränderliche oder quasi-unveränderliche Komponenten zielten.

Vom Threat Model zu Sicherheitsanforderungen

Ein Threat Model, das in einem Dokument sitzt und nie die Entwicklung beeinflusst, ist Zeitverschwendung. Der kritische Schritt ist, identifizierte Bedrohungen in konkrete, testbare Sicherheitsanforderungen zu übersetzen, die Teil der Entwicklungsspezifikation werden.

Jede hohe und kritische Risiko-Bedrohung sollte eine oder mehrere Sicherheitsanforderungen produzieren. Die Bedrohung der Oracle-Manipulation produziert zum Beispiel Anforderungen wie: Verwenden Sie TWAP mit einem Minimum-30-Minuten-Fenster für preisabhängige Operationen; lösen Sie einen Circuit Breaker bei Preisabweichungen über 10% aus; verlangen Sie, dass mindestens zwei unabhängige Oracle-Quellen innerhalb von 2% übereinstimmen. Diese sind spezifisch, testbar und auditierbar.

Für Smart-Contract-Bedrohungen übersetzen Anforderungen direkt in Code-Muster und Testfälle. Die Bedrohung der Reentrancy produziert Anforderungen für Checks-Effects-Interactions-Reihenfolge, Reentrancy-Guards auf allen zustandsändernden Funktionen und Angriffssimulationstests. Zugriffskontroll-Bypass-Bedrohungen produzieren Anforderungen für rollenbasierte Zugriffskontrolle, Zwei-Schritt-Eigentümertransfers und unauthorisierte-Zugriffs-Testfälle für jede eingeschränkte Funktion.

Wir organisieren Sicherheitsanforderungen in einer Rückverfolgbarkeitsmatrix, die jede Anforderung zurück zur Bedrohung, die sie mitigiert, und vorwärts zur Code-Implementierung und zum Testfall, der sie validiert, verlinkt. Dies erzeugt eine auditierbare Kette von Bedrohung zu Mitigation, die sowohl Sicherheitsprüfer als auch Compliance-Frameworks zufriedenstellt.

Integration mit dem Entwicklungsworkflow

Threat Modeling ist keine einmalige Aktivität. Die Bedrohungslandschaft entwickelt sich, wenn neue Angriffstechniken entstehen, und das Protokoll selbst ändert sich, wenn Features hinzugefügt oder Integrationen aktualisiert werden. Die Frage, wann Threat Modeling durchzuführen ist, hat eine klare Antwort: früh, oft und bei jeder signifikanten Änderung.

Das initiale Threat Model sollte während der Design-Phase erstellt werden, bevor Code geschrieben wird. Dies ist, wenn architektonische Entscheidungen noch von Sicherheitsüberlegungen beeinflusst werden können -- Wahl eines aufgerüstbaren Proxy-Musters, Auswahl von Oracle-Anbietern, Design des Governance-Mechanismus. Threat Modeling nach dem Schreiben des Codes ist retroaktiv und teuer; Änderungen auf Architekturebene erfordern Umschreibungen statt Anpassungen.

Nach dem initialen Modell sollten inkrementelle Updates bei drei Auslösern stattfinden: wenn neue Features neue Angriffsfläche einführen, wenn ein signifikanter Exploit ein Protokoll mit ähnlicher Architektur trifft, und vor jedem großen Release oder Audit-Engagement. Jeder Auslöser bedeutet, dass das Threat Model möglicherweise nicht mehr genau das System repräsentiert.

Wir empfehlen, das Threat Model neben der Codebasis in Versionskontrolle zu speichern, es zu einem lebenden Dokument zu machen, das in Pull Requests neben dem Code, auf den es sich bezieht, überprüft wird. Sicherheitsanforderungen, die aus dem Modell abgeleitet sind, sollten im Issue-Tracker markiert werden, sodass ihr Status für das gesamte Team sichtbar ist.

Alles zusammenfügen

Web3-Sicherheit wird oft auf Smart-Contract-Audits reduziert -- wichtig, aber unzureichend. Ein Audit untersucht den Code, wie er zu einem Zeitpunkt existiert. Ein Threat Model untersucht das System als Ganzes, betrachtet, wie es angegriffen werden könnte, und produziert Anforderungen, die verhindern, dass Schwachstellen überhaupt eingeführt werden. Die sichersten Protokolle, mit denen wir gearbeitet haben, sind diejenigen, die in Threat Modeling investierten, bevor sie ihre erste Zeile Solidity schrieben.

Das Framework, das wir skizziert haben -- Erweiterung von STRIDE mit Web3-spezifischen Bedrohungskategorien, Kartierung der vollständigen dApp-Angriffsfläche, Bewertung von Risiken mit einem Unveränderlichkeitsfaktor und Übersetzung von Befunden in testbare Anforderungen -- ist der Ansatz, den wir bei Xcapit für jedes Blockchain-Projekt verwenden, das wir bauen oder auditieren. Es ist nicht theoretisch; es ist kampferprobt über DeFi-Protokolle, Enterprise-Blockchain-Lösungen und unsere eigenen Produkte, die über vier Millionen Benutzer bedient haben.

Threat Modeling Web3 Framework

Bei Xcapit kombiniert unsere Cybersecurity-Praxis ISO 27001-Zertifizierung mit tiefer Web3-Expertise -- von Threat Modeling und Smart-Contract-Audits bis zu Penetrationstests und Sicherheitsarchitektur-Design. Egal, ob Sie ein DeFi-Protokoll oder eine Enterprise-Blockchain-Lösung bauen, wir können Ihnen helfen, Bedrohungen zu identifizieren und zu mitigieren, bevor sie zu Exploits werden. Kontaktieren Sie uns, um die Sicherheitsbedürfnisse Ihres Projekts zu besprechen.

Share
Fernando Boiero

Fernando Boiero

CTO & Mitgründer

Über 20 Jahre in der Technologiebranche. Gründer und Direktor des Blockchain Lab, Universitätsprofessor und zertifizierter PMP. Experte und Vordenker für Cybersecurity, Blockchain und künstliche Intelligenz.

Lassen Sie uns Großes bauen

KI, Blockchain & maßgeschneiderte Software — für Ihr Unternehmen.

Kontakt aufnehmen

Brauchen Sie einen vertrauenswürdigen Sicherheitspartner?

Pentesting, ISO 27001, SOC 2 — wir sichern Ihre Systeme.

Verwandte Artikel

·11 min

LLM-Sicherheit: Verteidigung gegen Prompt-Injection-Angriffe

Ein technischer Deep Dive in direktes und indirektes Prompt Injection, Jailbreaking und Datenexfiltration bei großen Sprachmodellen — mit praktischen, mehrschichtigen Verteidigungsstrategien für Teams, die KI-Systeme in der Produktion einsetzen.

·11 min

Zero-Trust-Architektur: Praktischer Implementierungsleitfaden

Ein umfassender Implementierungsleitfaden für Zero-Trust-Architektur — vom Verständnis des Scheiterns perimeterbasierter Sicherheit bis zum Deployment identitätszentrierter Sicherheit, Mikrosegmentierung und kontinuierlicher Verifikation in der gesamten Organisation, entsprechend dem NIST 800-207 Framework.