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. Diverse Stable-Token und andere Vermögenswerte im Wert von etwa 11,6 Millionen US-Dollar wurden von Benutzern gestohlen. Der Angreifer konnte Gelder von Benutzern abziehen, die dem angegriffenen Vertrag unbegrenzte Freigaben (Infinite Approvals) 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 vom LI.FI-Team fünf Tage vor dem Angriff bereitgestellt, um Gas-Refueling für Bridge-Transaktionen zu ermöglichen. Die Funktion depositToGasZipERC20() enthielt ein benutzergesteuertes Argument _swapData, das später an den Funktionsaufruf LibSwap.swap() weitergeleitet wurde. Leider enthielt LibSwap.swap einen Low-Level-Aufruf, der beliebige Funktionen mit dem vom Angreifer gesteuerten Argument _swapData als Aufrufziel und Aufrufdaten ausführen konnte. Der Angreifer nutzte diese "Schwachstelle für willkürliche Aufrufe" (Arbitrary Call Vulnerability), um unbefugte Überweisungen von Benutzern 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, die die Schwachstelle für willkürliche Aufrufe ausnutzten, und transferierte innerhalb von 30 Minuten Stable-Token (USDT, USDC, DAI) im Wert von etwa 11 Millionen US-Dollar an die Adresse 0x8b3c. Fast alle abgezogenen Stable-Token wurden anschließend schnell in den nativen Ethereum-Token ETH getauscht. Die vom Angreifer genutzten DEXs umfassten 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 interagierte. Der Angreifer tauschte die illegal erworbenen 333.258 USDT in 97,16 ETH. Alle Pools und Proxies werden mithilfe von MetaSleuth klar dargestellt.

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

Nachdem die illegalen Gelder auf die nachgelagerten Adressen in einem Hop Entfernung von Adresse 0x8b3c übertragen wurden, begann der Angreifer, die Gelder in Chargen weiter zu bewegen. Der Überweisungs- (Geldwäsche-) Prozess dauerte fast drei Monate. Fast alle illegalen Gelder wurden schließlich zu Tornado Cash (99,9 %) verschoben, ein kleiner Teil wurde zur direkten Auszahlung an die Börse eXch gesendet. Insgesamt gab es 114 Transaktionen, bei denen der Angreifer mit dem Tornado Cash Router interagierte. Beispiele für Transaktionen, die illegale Gewinne zu Tornado Cash bewegten: 0x07de, 0xfe82, 0x6a47, 0x8ea6. Beispiele für Transaktionen, die illegale Gewinne zu eXch bewegten: 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 Charge von Überweisungen erfolgte in 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 Übertragung illegaler Gelder durch den Angreifer wies ausgeprägte Merkmale auf: Er verschob die Gelder auf nachgelagerte Adressen, die weit von der Angriffsadresse (Hochrisiko-Adresse) entfernt waren, und schleuste nach und nach einen Teil zu Tornado Cash. In der ersten Charge 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 verbleibenden illegalen Gelder schrittweise in Überweisungschargen mit denselben Merkmalen zu Tornado Cash übertragen.
Ein Beispiel für eine Überweisungscharge, bei der Gelder von Adresse 0x8e85 (ein Hop von 0x8b3c entfernt) zum Tornado Cash Router bewegt wurden:

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 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äsche-Adressen weitergeleitet wurden. Dieses Aufteilungsmuster war während des gesamten Überweisungsprozesses 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 Vorfallbericht, in dem behauptet wurde, man habe den verwundbaren Vertrags-Facet erfolgreich über alle Ketten hinweg deaktiviert und jeglichen weiteren unbefugten Zugriff verhindert. LI.FI initiierte einen Entschädigungsplan und erstattete den betroffenen Benutzern den vollen Betrag. Zur Wiedererlangung der abgezogenen 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 abgezogenen Gelder aufzuspüren und deren Rückführung zu versuchen. Stand 22. Oktober 2024 wurden fast alle illegalen Gelder zu Tornado Cash transferiert, und Li.Fi hat noch keine Berichte über Nachverfolgungen 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 |
Der Überblick über den Geldfluss:

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



