Fallstudie zu illegalen Geldflüssen: LI.FI-Angriff
Hintergrund des Falls
Am 16. Juli 2024 erlitt Li.Fi, ein Cross-Chain-Bridge- und DEX-Aggregator, eine schwerwiegende Sicherheitsverletzung, bei der der Li.Fi Diamond Contract ausgenutzt wurde. Verschiedene Stable-Tokens und andere Vermögenswerte im Wert von rund 11,6 Millionen US-Dollar wurden von Nutzern gestohlen. Der Angreifer konnte Gelder von Nutzern abziehen, die dem angegriffenen Vertrag unbegrenzte Freigaben erteilt hatten.
- Adresse des Angreifers: 0x8b3cb6bf982798fba233bca56749e22eec42dcf3
- Verwundbarer Vertrag: 0x1231deb6f5749ef6ce6943a275a1d3e7486f4eae
- Beispiele für Angriffstransaktionen: 0xd82f, 0x86fe, 0x606a
Die Schwachstelle befand sich in der Funktion depositToGasZipERC20() des GasZipFacet-Vertrags. Der GasZipFacet-Vertrag wurde fünf Tage vor dem Angriff vom LI.FI-Team bereitgestellt, um Gas-Refueling für Bridge-Transaktionen zu ermöglichen. Die Funktion depositToGasZipERC20() enthielt ein vom Benutzer kontrollierbares Argument _swapData, das später an den Funktionsaufruf LibSwap.swap() weitergegeben wurde. Unglücklicherweise enthielt LibSwap.swap einen Low-Level-Aufruf, der beliebige Funktionen mit dem vom Angreifer gesteuerten Ziel und den von ihm spezifizierten Daten ausführen konnte. Der Angreifer nutzte diese "Schwachstelle für beliebige Aufrufe" (Arbitrary Call Vulnerability), um unautorisierte Überweisungen von Nutzern durchzuführen, die dem Li.Fi Diamond-Vertrag unbegrenzte Freigaben erteilt hatten.
Analyse des Geldflusses
Am 16. Juli 2024 initiierte der Angreifer fast einhundert Transaktionen, um die Schwachstelle auszunutzen, und transferierte innerhalb von 30 Minuten Stable-Tokens (USDT, USDC, DAI) im Wert von etwa 11 Millionen US-Dollar an die Adresse 0x8b3c. Fast alle abgezogenen Stable-Tokens wurden daraufhin schnell in den nativen Ethereum-Token ETH umgetauscht. Zu den vom Angreifer genutzten DEXs gehörten unter anderem Uniswap und Metamask Swap. Beispiele für Tauschtransaktionen: 0xdf9b, 0x11d, 0xb4a4.
Ein Beispiel für den Geldfluss innerhalb einer Tauschtransaktion 0x8e27, die mit dem Metamask Swap Spender interagiert. Der Angreifer tauschte die illegal erworbenen 333.258 USDT in 97,16 ETH um. Alle Pools und Proxys werden unter Verwendung von MetaSleuth klar dargestellt.

Innerhalb von zwei Stunden nach dem Angriff wurden alle gestohlenen Vermögenswerte an nachgelagerte Adressen transferiert, die vom Angreifer kontrolliert werden; die ursprüngliche Angriffsadresse enthielt nichts mehr. Es gibt insgesamt 32 nachgelagerte Adressen, die direkt mit der Adresse 0x8b3c verbunden sind (d. h. einen Hop von der ursprünglichen Angriffsadresse entfernt). Unter diesen erhielten 15 Adressen lediglich 0,1 ETH von der Angriffsadresse. Stand 22. Oktober 2024 wurde das von diesen 15 Adressen gehaltene ETH nicht weitergeleitet. Die verbleibenden Adressen haben den Rest der großen Mengen an illegalen Geldern verarbeitet.
Ein Teil der Geldflüsse von den Opferadressen zu den vom Angreifer kontrollierten nachgelagerten Adressen:

Nachdem die illegalen Gelder an die nachgelagerten Adressen einen Hop entfernt von der Adresse 0x8b3c übertragen wurden, begann der Angreifer, die Gelder schrittweise in Tranchen weiterzuleiten. Der Transferprozess (Geldwäsche) dauerte fast drei Monate. Fast alle illegalen Gelder wurden schließlich zu Tornado Cash verschoben (99,9 %), ein kleiner Teil wurde an die Börse eXch zur direkten Auszahlung gesendet. Es gab insgesamt 114 Transaktionen, die der Angreifer zur Interaktion mit dem Tornado Cash Router nutzte. Beispiele für Transaktionen, die illegale Gewinne zu Tornado Cash verschieben: 0x07de, 0xfe82, 0x6a47, 0x8ea6. Beispiele für Transaktionen, die illegale Gewinne zu eXch verschieben: 0xaa89, 0x7e65, 0x8572, 0x625c, 0x2dd2, 0xda71.
Ein Teil der Geldflüsse von Layer-2-Adressen (2 Hops von der ursprünglichen Angriffsadresse 0x8b3c entfernt) zu Layer-4-Adressen:

Die erste groß angelegte Tranche von Überweisungen erfolgte innerhalb der ersten Woche nach dem Angriff, zwischen dem 16. und 22. Juli. Der Angreifer transferierte illegale Vermögenswerte im Wert von etwa 500.000 US-Dollar von der Adresse 0x6a6d zu Tornado Cash. Die Übertragungen der illegalen Gelder durch den Angreifer wiesen ausgeprägte Merkmale auf: Sie leiteten die Gelder an nachgelagerte Adressen um, die weit von der Angriffsadresse (Hochrisiko-Adresse) entfernt waren, und schleusten einen Teil schrittweise an Tornado Cash vorbei. In der ersten Charge erreichte der längste Transferpfad bis zu 20 Hops. Der Angreifer nutzte einen extrem tiefen Geldwäschepfad, um die illegalen Geldflüsse zu verschleiern. Zwischen August und Oktober wurden die verbleibenden illegalen Gelder schrittweise in weiteren Chargen mit denselben Merkmalen zu Tornado Cash transferiert.
Ein Beispiel für eine Transfercharge, die Gelder von der Adresse 0x8e85 (ein Hop von 0x8b3c entfernt) zum Tornado Cash Router verschiebt:

Wie die Abbildung veranschaulicht, transferierte der Angreifer zwischen dem 13. und 16. August 2024 schrittweise 206 ETH über einen 12-Hop-Pfad zu Tornado Cash. An der Adresse 0xe9f7 teilte der Angreifer 204 ETH in zwei Transaktionen auf: 100 ETH wurden an Tornado Cash gesendet, während 104 ETH an weitere Geldwäscheadressen weitergeleitet wurden. Dieses Aufteilungsmuster zog sich durch den gesamten Transferprozess. Das bedeutet, der Angreifer nutzte bei jeder Interaktion mit Tornado Cash eine neue, tiefere Adresse.
Gegenmaßnahmen
Zwei Tage nach dem Angriff veröffentlichte LI.FI offiziell einen Vorfallbericht, in dem behauptet wurde, dass sie das verwundbare Vertrags-Facet über alle Ketten hinweg erfolgreich deaktiviert und jeden weiteren unbefugten Zugriff verhindert hätten. LI.FI initiierte einen Entschädigungsplan und erstattete den betroffenen Nutzern den vollen Betrag. Zur Wiedererlangung der entzogenen Vermögenswerte erklärten sie, dass sie weiterhin mit den Strafverfolgungsbehörden und relevanten Dritten, einschließlich Sicherheitsteams aus der Branche, zusammenarbeiten würden, um die Gelder zu verfolgen und eine Wiederbeschaffung zu versuchen. Stand 22. Oktober 2024 wurden fast alle illegalen Gelder zu Tornado Cash transferiert, und Li.Fi hat noch keine Berichte über die Nachverfolgung veröffentlicht.
Einige relevante Adressen und Transaktionen
| Adressen | Transaktionen | Illegale Geldflüsse |
|---|---|---|
| 0x8e85eace2fa757c1d97c5ebfb8b0622e5f23c5a1 | 0xe237, 0x0d23 | 206,49 ETH |
| 0xcb7c341dc6172b642dcf4a14015be70a27e5b31e | 0x050c, 0x37d4 | 873.568 USDT + 36,48 ETH |
| 0x7b93fa16c04cdcf91949d4f5f893f740992ae57e | 0x57ea, 0x52ac | 332,02 ETH |
| 0x3462d2523cded523ad47c14111aa1dcbe7773675 | 0xc66d, 0xc0ff | 120,55 ETH |
| 0xd0be9c4c84068a9964c3781f540f703c300db268 | 0x0c3b, 0x1670 | 275,38 ETH |
Übersicht über den Geldfluss:

Mehr erfahren in MetaSleuth: https://metasleuth.io/result/eth/0x14c1597cc833783ed8ac08ecc9b704b0a398201d?source=c8cd3609-0402-45eb-bb9e-2f710bd66554



