Am 08. August 2021 (Peking-Zeit, Blockhöhe 12982491) wurde Zerogoki angegriffen, was zu einem Verlust von 670.000 USD führte. Nach der Untersuchung stellten wir fest, dass dies mit dem kompromittierten Preis-Orakel zusammenhängt. Der Angreifer stellt ein Preis-Orakel zur Verfügung, das mit legitimen privaten Schlüsseln signiert ist und eine manipulierte Anzahl von zu tauschenden Tokens enthält. Der Grund, warum der Angreifer eine gültige Signatur erstellen konnte, ist jedoch noch unbekannt.
Code-Analyse
Wir führten zunächst eine Analyse des angegriffenen Vertrags durch (0x80ecdb90).

Die Swap-Funktion ruft decode_op auf, um die Informationen im Orakel zu erhalten. Nach der Validierung verbrennt der Vertrag ns[0] x.token, prägt ns[1] y.token und zahlt die Swap-Gebühr an den GOV-Vertrag.

Aus der Implementierung von decode_op ergeben sich drei Signaturen im Parameter. Diese Signaturen müssen vor dem Token-Swap (Brennen und Prägen) überprüft (und autorisiert) werden.
Zusammenfassend lässt sich sagen, dass der erste Parameter ns der Swap-Funktion die Anzahl der zu tauschenden Tokens definiert. Der zweite Parameter enthält die zu validierenden Signaturen. Wenn die Validierung erfolgreich ist, wird die Anzahl der getauschten Tokens im ersten Parameter (ns) definiert.
Angriffs-Analyse
In der Angriffstransaktion 0x81e5f715 erstellte der Angreifer eine Nachricht mit gültigen Signaturen und übergab einen manipulierten ns-Parameter (der eine große Menge zUSD enthielt). Infolgedessen verwendete der Angreifer 300 REI, um 700.000 zUSD zu tauschen.

Die drei Adressen, die mit den Signaturen in Verbindung stehen, sind:
0x0d93A21b4A971dF713CfC057e43F5D230E76261C
0x3054e19707447800f0666ba274a249fc9a67aa4a
0x4448993f493b1d8d9ed51f22f1d30b9b4377dfd2
Allerdings haben wir zum jetzigen Zeitpunkt keine Informationen darüber, warum die privaten Schlüssel dieser Adressen kompromittiert wurden.
Fazit
Ein DeFi-Projekt sicher zu machen, ist keine leichte Aufgabe. Neben der Code-Überprüfung denken wir, dass die Community proaktive Maßnahmen ergreifen sollte, um den Projektstatus zu überwachen und den Angriff zu blockieren, bevor er überhaupt stattfindet.
Über BlockSec
BlockSec ist ein wegweisendes Blockchain-Sicherheitsunternehmen, das 2021 von einer Gruppe weltweit angesehener Sicherheitsexperten gegründet wurde. Das Unternehmen engagiert sich für die Verbesserung der Sicherheit und Benutzerfreundlichkeit der aufkommenden Web3-Welt, um deren Massenadoption zu fördern. Zu diesem Zweck bietet BlockSec Dienstleistungen für die Sicherheitsprüfung von Smart Contracts und EVM-Ketten, die Plattform Phalcon für die sichere Entwicklung und proaktive Bedrohungsabwehr, die Plattform MetaSleuth für die Verfolgung und Untersuchung von Geldern sowie die Erweiterung MetaSuites für Web3-Entwickler, um effizient in der Krypto-Welt zu surfen.
Bisher hat das Unternehmen über 300 geschätzte Kunden wie MetaMask, Uniswap Foundation, Compound, Forta und PancakeSwap betreut und in zwei Finanzierungsrunden von renommierten Investoren, darunter Matrix Partners, Vitalbridge Capital und Fenbushi Capital, Dutzende Millionen US-Dollar erhalten.
Offizielle Website: https://blocksec.com/
Offizielles Twitter-Konto: https://twitter.com/BlockSecTeam



