Fallstudie zu illegalen Kapitalflüssen: LI.FI-Angriff
Hintergrund des Falls
Am 16. Juli 2024 erlebte Li.Fi, eine Cross-Chain-Bridge und ein DEX-Aggregator, eine erhebliche Sicherheitsverletzung, bei der der Li.Fi Diamond Contract ausgenutzt wurde. Verschiedene Stable-Token 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 unendliche Genehmigungen erteilt hatten.
- Adresse des Angreifers: 0x8b3cb6bf982798fba233bca56749e22eec42dcf3
- Anfälliger Vertrag: 0x1231deb6f5749ef6ce6943a275a1d3e7486f4eae
- Beispiele für Angriffstransaktionen: 0xd82f, 0x86fe, 0x606a
Die Schwachstelle lag in der Funktion depositToGasZipERC20() des GasZipFacet-Vertrags. Der GasZipFacet-Vertrag wurde fünf Tage vor dem Angriff vom LI.FI-Team bereitgestellt, um das Nachfüllen von Gas für Bridging-Transaktionen zu ermöglichen. Die Funktion depositToGasZipERC20() enthielt ein vom Benutzer kontrolliertes Argument _swapData, das später an den Funktionsaufruf LibSwap.swap() übergeben wurde. Leider enthielt LibSwap.swap einen Low-Level-Aufruf, der beliebige Funktionen mit dem vom Angreifer kontrollierten Argument _swapData angegebenen Ziel und Aufrufdaten ausführen konnte. Der Angreifer nutzte diese "beliebige Aufruf-Schwachstelle" aus, um nicht autorisierte Überweisungen von Nutzern auszuführen, die dem Li.Fi Diamond Contract eine unendliche Genehmigung erteilt hatten.
Analyse des Geldflusses
Am 16. Juli 2024 initiierte der Angreifer fast hundert Transaktionen, bei denen die Schwachstelle des beliebigen Aufrufs ausgenutzt wurde, und transferierte innerhalb von 30 Minuten etwa 11 Millionen US-Dollar in Stable-Token (USDT, USDC, DAI) an die Adresse 0x8b3c. Fast alle abgezweigten Stable-Token wurden anschließend schnell gegen den nativen Ethereum-Token ETH getauscht. Zu den vom Angreifer genutzten DEXs gehörten Uniswap, Metamask Swap und andere. Beispiele für Swap-Transaktionen: 0xdf9b, 0x11d, 0xb4a4.
Ein Beispiel für den Geldfluss innerhalb einer Swap-Transaktion 0x8e27, die mit Metamask Swap Spender interagiert. Der Angreifer tauschte die illegal erworbenen 333.258 USDT in 97,16 ETH. Alle Pools und Proxys sind mit MetaSleuth klar dargestellt.

Innerhalb von zwei Stunden nach dem Angriff wurden alle gestohlenen Vermögenswerte an nachgelagerte Adressen des Angreifers transferiert, und auf der ursprünglichen Angreiferadresse war nichts mehr übrig. Es gibt insgesamt 32 nachgelagerte Adressen, die direkt mit der Adresse 0x8b3c verbunden sind (d.h. eine Hop-Entfernung von der ursprünglichen Angreiferadresse). Davon erhielten 15 Adressen nur 0,1 ETH von der Angreiferadresse. Bis zum 22. Oktober 2024 wurden die von diesen 15 Adressen gehaltenen ETH nicht mehr transferiert. Die übrigen Adressen haben die restlichen großen illegalen Gelder verarbeitet.
Ein Teil der Geldflüsse von den Opferadressen zu den vom Angreifer kontrollierten nachgelagerten Adressen:

Nachdem die illegalen Gelder an die nachgelagerten Adressen eine Hop-Entfernung von der Adresse 0x8b3c transferiert wurden, begann der Angreifer mit der weiteren Aufteilung der Gelder in Batches. Der Geldwäscheprozess dauerte fast drei Monate. Fast alle illegalen Gelder wurden schließlich zu Tornado Cash transferiert (99,9 %), und ein kleiner Teil wurde an die Börse eXch zum direkten Bargeldbezug gesendet. Insgesamt 114 Transaktionen nutzte der Angreifer, um mit dem Tornado Cash Router zu interagieren. Beispiele für Transaktionen, bei denen illegale Gewinne an Tornado Cash transferiert wurden: 0x07de, 0xfe82, 0x6a47, 0x8ea6. Beispiele für Transaktionen, bei denen illegale Gewinne an eXch transferiert wurden: 0xaa89, 0x7e65, 0x8572, 0x625c, 0x2dd2, 0xda71.
Ein Teil der Geldflüsse von Layer-2-Adressen (2 Hop-Entfernungen von der ursprünglichen Angreiferadresse 0x8b3c) zu Layer-4-Adressen:

Der erste großangelegte Batch von Überweisungen fand in der ersten Woche nach dem Angriff statt, zwischen dem 16. und 22. Juli. Der Angreifer transferierte illegale Vermögenswerte im Wert von rund 500.000 US-Dollar von der Adresse 0x6a6d an Tornado Cash. Die Überweisung von illegalen Geldern durch den Angreifer zeigte deutliche Merkmale: Er verlagerte die Gelder zu nachgelagerten Adressen, die weit von der Angreiferadresse entfernt waren (Hochrisikoadresse), und leitete schrittweise einen Teil an Tornado Cash. Im ersten Batch erreichte der längste Überweisungspfad bis zu 20 Hops. Der Angreifer nutzte extrem tiefe Geldwäschepfade, um die illegalen Geldflüsse zu verschleiern. Zwischen August und Oktober wurden die restlichen illegalen Gelder schrittweise in Transfer-Batches mit denselben Merkmalen an Tornado Cash transferiert.
Ein Beispiel für einen Transfer-Batch, der Gelder von Adresse 0x8e85 (eine Hop-Entfernung von 0x8b3c) zum Tornado Cash Router transferiert:

Wie die Abbildung zeigt, transferierte der Angreifer zwischen dem 13. und 16. August 2024 schrittweise 206 ETH über einen 12-Hop-Pfad nach 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 war während des gesamten Transferprozesses konsistent. Das heißt, der Angreifer verwendete bei jeder Interaktion mit Tornado Cash eine neue, tiefere Adresse.
Gegenmaßnahmen
Zwei Tage nach dem Angriff veröffentlichte LI.FI offiziell einen Bericht über den Vorfall und erklärte, dass der anfällige Contract-Facet auf allen Chains erfolgreich deaktiviert und weiterer unbefugter Zugriff verhindert worden sei. LI.FI startete einen Entschädigungsplan und erstattete den betroffenen Nutzern die vollen Beträge. Für die Wiederbeschaffung der abgezweigten Vermögenswerte gaben sie an, weiterhin mit Strafverfolgungsbehörden und relevanten Dritten, einschließlich Sicherheitsteams aus der Branche, zusammenzuarbeiten, um die abgezweigten Gelder zu verfolgen und zu versuchen, sie wiederherzustellen. Bis zum 22. Oktober 2024 wurden fast alle illegalen Gelder nach Tornado Cash transferiert, und Li.Fi hat noch keine Tracking-Berichte 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



