Reentrancy-Angriff
Was ist Reentrancy-Angriff?
Reentrancy-AngriffSmart-Contract-Exploit, bei dem ein externer Aufruf den Angreifer in die aufrufende Funktion zurueckkehren laesst, bevor der Zustand aktualisiert ist, und Mittel rekursiv leert.
Reentrancy tritt auf, wenn ein Contract ETH oder Tokens an eine externe Adresse sendet (zum Beispiel uber call, transfer oder einen ERC-777-Hook), bevor er die interne Buchhaltung aktualisiert. Der Angreifer kontrolliert diese Adresse und ruft im Callback erneut die Abhebungsfunktion auf, sodass sich der Zyklus wiederholt, bis der Contract leer ist. Varianten umfassen Single-Function-, Cross-Function-, Cross-Contract- und Read-Only-Reentrancy. Gegenmassnahmen sind das Checks-Effects-Interactions-Muster, der ReentrancyGuard von OpenZeppelin, Pull-Payment-Designs und der Verzicht auf Low-Level-Calls an unsichere Contracts. Der Angriff auf The DAO 2016 ist das kanonische Beispiel und fuehrte zum Hard Fork von Ethereum und Ethereum Classic.
● Beispiele
- 01
Der DAO-Hack (Juni 2016) zog uber rekursive splitDAO-Aufrufe rund 3,6 Millionen ETH ab.
- 02
Der Cream-Finance-Vorfall 2021 nutzte Cross-Function-Reentrancy uber ERC-777-Callbacks aus.
● Häufige Fragen
Was ist Reentrancy-Angriff?
Smart-Contract-Exploit, bei dem ein externer Aufruf den Angreifer in die aufrufende Funktion zurueckkehren laesst, bevor der Zustand aktualisiert ist, und Mittel rekursiv leert. Es gehört zur Kategorie Web3 und Blockchain der Cybersicherheit.
Was bedeutet Reentrancy-Angriff?
Smart-Contract-Exploit, bei dem ein externer Aufruf den Angreifer in die aufrufende Funktion zurueckkehren laesst, bevor der Zustand aktualisiert ist, und Mittel rekursiv leert.
Wie funktioniert Reentrancy-Angriff?
Reentrancy tritt auf, wenn ein Contract ETH oder Tokens an eine externe Adresse sendet (zum Beispiel uber call, transfer oder einen ERC-777-Hook), bevor er die interne Buchhaltung aktualisiert. Der Angreifer kontrolliert diese Adresse und ruft im Callback erneut die Abhebungsfunktion auf, sodass sich der Zyklus wiederholt, bis der Contract leer ist. Varianten umfassen Single-Function-, Cross-Function-, Cross-Contract- und Read-Only-Reentrancy. Gegenmassnahmen sind das Checks-Effects-Interactions-Muster, der ReentrancyGuard von OpenZeppelin, Pull-Payment-Designs und der Verzicht auf Low-Level-Calls an unsichere Contracts. Der Angriff auf The DAO 2016 ist das kanonische Beispiel und fuehrte zum Hard Fork von Ethereum und Ethereum Classic.
Wie schützt man sich gegen Reentrancy-Angriff?
Schutzmaßnahmen gegen Reentrancy-Angriff kombinieren typischerweise technische Kontrollen und operative Praktiken, wie in der Definition oben beschrieben.
Welche anderen Bezeichnungen gibt es für Reentrancy-Angriff?
Übliche alternative Bezeichnungen: Rekursiver Aufrufangriff.
● Verwandte Begriffe
- web3№ 1056
Smart-Contract-Sicherheit
Praxis, On-Chain-Programme so zu entwerfen, zu prufen und zu betreiben, dass sie nicht ausgenutzt werden konnen, um Mittel zu stehlen oder Geschaftsregeln zu verletzen.
- web3№ 1055
Smart-Contract-Audit
Unabhangige Sicherheitsuberprufung von Smart-Contract-Quellcode, Deployment-Konfiguration und okonomischem Design vor Launch oder Upgrade.
- web3№ 424
Flash-Loan-Angriff
DeFi-Exploit, der einen riesigen unbesicherten Flash-Loan in einer Transaktion aufnimmt, um Preise oder Governance zu manipulieren und Mittel vor Ruckzahlung zu stehlen.
- web3№ 106
Blockchain-Sicherheit
Disziplin zum Schutz verteilter Ledger, ihrer Konsensmechanismen, Smart Contracts und der umgebenden Infrastruktur vor Kompromittierung, Betrug und Diebstahl.
- vulnerabilities№ 895
Race Condition
Defekt, bei dem Sicherheit oder Korrektheit eines Systems vom Timing oder von der Reihenfolge nebenläufiger Operationen abhängt – Angreifer können Aktionen verschränken und Prüfungen umgehen.
- web3№ 765
Oracle-Manipulation
Angriff, der den vom Smart Contract genutzten Preis oder Datenfeed verzerrt, sodass der Contract massiv falsche Entscheidungen zu Lending, Liquidationen oder Settlement trifft.