Zum Inhalt springen
Gegr. MMXXVIBd. VI · № 273RSS
Blockchain Breaches

Ein Archiv von Sicherheitsvorfällen im Kryptobereich — Hacks, Exploits, Bridge-Ausfälle und Rug Pulls, dokumentiert mit On-Chain-Belegen.

Dossier № 139Governance-Angriff

Tornado Cash Governance-Übernahme

Tornado Cash DAO wurde gekapert: Angreifer selfdestructte einen Vorschlag und redeployte Schadcode an derselben Adresse — 1,2M Stimmen vs ~70K legitime.

Datum
Chain(s)
Status
Zurückerlangt

Am 20. Mai 2023 wurde die Tornado Cash DAO von einem Angreifer übernommen, der eine subtile Eigenschaft des Vertrags-Redeployments ausnutzte. Der bösartige Vorschlag behauptete, byte-identisch mit einem früheren, community-genehmigten Vorschlag zu sein — also stimmten die Wähler zu. Nachdem er passierte, selfdestructte der Angreifer die Vorschlagslogik und redeployte vollständig anderen bösartigen Code an derselben Adresse und ergriff 1,2 Millionen Stimmen gegen ~70.000 legitime, um die DAO zu leeren. Netto-Diebstahl: rund 2,17 Millionen Dollar (Rekts Leaderboard listet 750.000 $, was eine andere Buchhaltung realisierten Werts widerspiegelt). Der Angreifer gab später die Governance-Kontrolle zurück.

Was geschah

Tornado Cashs DAO führte genehmigte Vorschläge per delegatecall in einen Vorschlagsvertrag aus. Der Angriff missbrauchte die Differenz zwischen dem Zeitpunkt, an dem Wähler einen Vorschlag prüfen, und dem Zeitpunkt, an dem sein Code tatsächlich ausgeführt wird:

  1. Der Angreifer reichte einen Vorschlag mit Logik ein, die identisch mit einem zuvor genehmigten, vertrauenswürdigen Vorschlag erschien. Wähler erkannten den „selben" Code und stimmten zu.
  2. Der Vorschlagsvertrag enthielt eine versteckte emergencyStop()-Funktion mit selfdestruct.
  3. Nachdem der Vorschlag passierte, aber vor/bei Ausführung, rief der Angreifer emergencyStop() auf, zerstörte den Code des Vorschlagsvertrags und — entscheidend — setzte die Deployment-Nonce zurück / gab die Adresse frei.
  4. Der Angreifer redeployte komplett anderen bösartigen Code an dieselbe Adresse (mit der CREATE2-artigen Adresswiederverwendungs-Eigenschaft, die selfdestruct damals ermöglichte).
  5. Als die DAO den „genehmigten" Vorschlag per delegatecall ausführte, lief nun der substituierte bösartige Code des Angreifers — der 10.000 Governance-Stimmen an jede von vielen vom Angreifer kontrollierten Adressen mintete, insgesamt 1,2 Millionen Stimmen gegen die ~70.000 legitimen vorhandenen Stimmen.
  6. Mit Supermajoritätskontrolle entzog der Angreifer die TORN-Bestände der DAO und gesperrte Router-Gebühren.

Nachwirkungen

  • TORN-Token fiel ~40-50 % auf die Nachricht.
  • In einer ungewöhnlichen Wendung — nachdem der Angreifer totale Kontrolle demonstriert hatte — reichte er einen Vorschlag zur Wiederherstellung legitimer Governance ein und gab die Kontrolle ab, gab die DAO an ihre Community zurück. Er behielt die realisierten Token-Erlöse.
  • Der Vorfall wurde zu einer kanonischen Fallstudie über die Gefahr der selfdestruct-ermöglichten Adresswiederverwendung und die Lücke zwischen Vorschlagsprüfung und Vorschlagsausführung.

Warum es zählt

Der Tornado-Cash-Governance-Angriff ist einer der technisch elegantesten Exploits im Katalog, und er lehrt zwei verschiedene Lektionen:

  1. „Der Code, den du geprüft hast, ist nicht notwendigerweise der Code, der ausgeführt wird." Governance-Wähler prüften Code zum Zeitpunkt der Vorschlagseinreichung; der Code, der zum Zeitpunkt der Ausführung lief, war anders, weil selfdestruct + Redeployment dem Angreifer erlaubten, den Bytecode des Vertrags an einer festen Adresse zu tauschen. Dies ist dieselbe strukturelle Lehre wie Swaprum und Hope Finance (deployt ≠ auditiert), verallgemeinert auf Governance.

  2. selfdestruct-ermöglichte Adresswiederverwendung ist eine grundlegende Gefahr. Der Angriff hing von der EVM-Eigenschaft ab (seit EIP-6780 eingeschränkt), dass selfdestruct eine Adresse für Redeployment mit anderem Code freigab. Der Exploit ist einer der prominentesten Gründe, warum die selfdestruct-Semantik der EVM später verschärft wurde.

Die Entscheidung des Angreifers, die Governance-Kontrolle zurückzugeben, ist auch bemerkenswert — einer von mehreren Katalogfällen (Mango Markets, die DODO-Whitehats, dieser), in denen die Beziehung des Täters zu den Mitteln zwischen „Dieb" und „aggressivem Demonstrant" mehrdeutig war. Die rechtliche und ethische Linie — stellt das Ausführen von Logik, die der Vertrag erlaubt, ein Verbrechen dar? — bleibt die ungelöste Frage, die sich durch die gesamte DeFi-Exploit-Ära zieht.

Quellen & On-Chain-Belege

  1. [01]halborn.comhttps://www.halborn.com/blog/post/explained-the-tornado-cash-hack-may-2023
  2. [02]coindesk.comhttps://www.coindesk.com/tech/2023/05/21/attacker-takes-over-tornado-cash-dao-with-vote-fraud-token-slumps-40
  3. [03]medium.comhttps://medium.com/@zan.top/unpacking-the-tornado-cash-governance-attack-15b40691ca2e

Verwandte Einträge