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 einem kompromittierten Preis-Oracle zusammenhing. Der Angreifer stellt ein Preis-Oracle bereit, das mit legitimen privaten Schlüsseln signiert ist und eine präparierte Anzahl von zu tauschenden Token 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 Oracle 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 Token definiert. Der zweite Parameter enthält die zu validierenden Signaturen. Wenn die Validierung erfolgreich ist, wird die Anzahl der getauschten Token im ersten Parameter (ns) definiert.
Angriffsanalyse
Im Angriffstransaktions (0x81e5f715) hat der Angreifer eine Nachricht mit gültigen Signaturen erstellt und einen präparierten ns-Parameter übergeben (der eine große Anzahl von zUSD enthält). Infolgedessen tauschte der Angreifer 300 REI gegen 700.000 zUSD.
Drei Adressen, die mit den Signaturen in Verbindung gebracht werden, sind:
0x0d93A21b4A971dF713CfC057e43F5D230E76261C
0x3054e19707447800f0666ba274a249fc9a67aa4a
0x4448993f493b1d8d9ed51f22f1d30b9b4377dfd2
Wir haben jedoch derzeit keine Informationen darüber, warum die privaten Schlüssel dieser Adressen kompromittiert wurden.
Fazit
Die Sicherheit eines DeFi-Projekts zu gewährleisten, ist keine leichte Aufgabe. Neben der Code-Prüfung sollten wir unserer Meinung nach proaktiv den Projektstatus überwachen und den Angriff blockieren, bevor er überhaupt stattfindet.
Über BlockSec
BlockSec ist ein wegweisendes Blockchain-Sicherheitsunternehmen, das 2021 von einer Gruppe weltweit renommierter Sicherheitsexperten gegründet wurde. Das Unternehmen hat sich der Verbesserung der Sicherheit und Benutzerfreundlichkeit für die aufstrebende Web3-Welt verschrieben, um deren breite Akzeptanz zu fördern. Zu diesem Zweck bietet BlockSec Dienstleistungen für die Sicherheitsprüfung von Smart Contracts und EVM-Ketten, die Phalcon-Plattform für die Entwicklungssicherheit und die proaktive Abwehr von Bedrohungen, die MetaSleuth-Plattform für die Nachverfolgung und Untersuchung von Geldern sowie die MetaSuites-Erweiterung für Web3-Entwickler, um effizient in der Krypto-Welt zu navigieren.
Bisher hat das Unternehmen über 300 angesehene Kunden wie MetaMask, Uniswap Foundation, Compound, Forta und PancakeSwap betreut und in zwei Finanzierungsrunden von namhaften Investoren wie Matrix Partners, Vitalbridge Capital und Fenbushi Capital zweistellige Millionenbeträge erhalten.
Offizielle Website: https://blocksec.com/
Offizieller Twitter-Account: https://twitter.com/BlockSecTeam



