Hacker stahlen Kryptowährungen und Handelspositionen von Polymarket-Nutzern, nachdem schädlicher Code am 29. Oktober ein von der Website des Prognosemarktes geladenes DebugBear-Skript ersetzt hatte. Der Code zielte auf einige Händler ab, die bereits angemeldet waren, und nutzte deren aktive Sitzungen, um nicht autorisierte Transaktionen durchzuführen.

Polymarket erklärte, etwa 2,7 Millionen US-Dollar an 726 betroffene Wallets zu erstatten. Von Forschern überprüfte Blockchain-Aufzeichnungen zeigten, dass innerhalb von weniger als einer Stunde ungefähr 2,64 Millionen US-Dollar in POL-Token in das Wallet der Angreifer gelangten, ohne den Wert der während des Vorfalls übernommenen Positionen einzurechnen.

Die kompromittierte Datei gehörte zum Real-User-Monitoring-Tool von DebugBear, das die Ladeleistung von Websites misst. DebugBear erklärte, seine DNS-Einträge seien über seinen Domain-Registrar kompromittiert worden. Die ersten Untersuchungsergebnisse deuteten auf einen Angriff gegen die Website eines Kunden hin. Das Unternehmen erklärte, es habe keine Hinweise auf einen Eindringling in seine eigenen Systeme gefunden, obwohl die Untersuchung noch andauerte.

Forscher von Hudson Rock luden die schädliche Datei von der Adresse herunter, über die Polymarket das DebugBear-Skript lud. Sie identifizierten außerdem eine Änderung im Website-Code von Polymarket, durch die das Skript entfernt wurde. Forscher von Ohey stellten fest, dass ab 18:13 UTC ein anderer Server auf Anfragen an die Webadressen von DebugBear antwortete, während die schädliche Datei noch verfügbar war. Früher an diesem Tag war die legitime Version aus Google Cloud Storage ausgeliefert worden.

Jeder DebugBear-Kunde lädt seine eigene Kopie des Skripts, und die ersetzte Datei war die von Polymarket verwendete Version. Laut der Analyse von Hudson Rock nutzte der Code den Zugriff, der einem Händler zur Verfügung stand, der bereits auf einer geöffneten Polymarket-Seite angemeldet war. Er las im Browser gespeicherte Kontoinformationen, darunter Trading-API-Schlüssel.

Die API-Schlüssel konnten nicht eigenständig Orders platzieren, da Polymarket-Transaktionen zusätzlich eine Wallet-Signatur erfordern. Hudson Rock erklärte, keine Hinweise darauf gefunden zu haben, dass der Code Passwörter, Seed-Phrases, private Schlüssel oder die API-Schlüssel an den von ihm kontaktierten Server übermittelte. Stattdessen suchte das Skript nach Polymarkets Funktionen zur Platzierung von Orders und nach dem Signierer, der zur Genehmigung von Transaktionen verwendet wurde.

Bei Nutzern, die ihre eigenen Krypto-Wallets verbunden hatten, konnte der Code Positionen direkt in das Wallet der Angreifer transferieren. Bei kontobasierten E-Mail-Zugängen konnte er Positionen zu schrittweise schlechteren Preisen verkaufen und anschließend die Erlöse transferieren. In beiden Fällen forderte der Code den bestehenden Signierer des Nutzers auf, Anfragen zu genehmigen, und leitete sie an Polymarkets Relayer weiter. Hudson Rock wies darauf hin, dass das Erstellen einer Signaturanfrage allein nicht beweist, dass eine Transaktion genehmigt wurde, da Wallet-Anbieter eine Bestätigung verlangen, die Anfrage ablehnen oder sitzungsspezifische Regeln anwenden können.

Oheys Blockchain-Analyse zeigte, dass das in den schädlichen Code eingebettete Wallet seine ersten Gelder um 17:10 UTC und seine letzten um 18:02 UTC erhielt. In diesem Zeitraum sammelte es 28,6 Millionen POL-Token und Positionen aus 33 Wallets. Um 18:19 UTC waren die POL-Token auf Grundlage eines von DefiPrime unter Verwendung von DefiLlama-Daten berechneten Preises von 0,0922 US-Dollar etwa 2,64 Millionen US-Dollar wert. Das Wallet überwies die Token später zwischen 18:28 und 18:38 UTC an drei weitere Adressen.

Polymarket veröffentlichte um 17:38 UTC sein erstes Update zu nicht autorisierten Aktivitäten in Nutzer-Wallets. Um 18:05 UTC erklärte das Unternehmen, die Börse befinde sich im Nur-Stornieren-Modus und Relayer-Aktionen seien pausiert. Das Unternehmen erklärte, es habe das Skript innerhalb einer Stunde entfernt, seine Caches geleert, aktive Anmeldesitzungen zurückgesetzt und den Handel pausiert, während es die Website bereinigte. Der Vorfall wurde außerdem den Strafverfolgungsbehörden gemeldet.

Bis zum 30. Oktober erklärte Polymarket, dass 689 der 726 betroffenen Wallets vollständige Erstattungen erhalten hätten. Die verbleibenden 37 würden nach einer Prüfung bearbeitet. Das Unternehmen zahlt außerdem separat 1,19 Millionen US-Dollar an etwa 5.500 Wallets, die durch Verluste während der Handelspause oder durch die Übernahme von Positionen betroffen waren. Insgesamt erklärte Polymarket, 3,9 Millionen US-Dollar an Händler zurückzuzahlen. Nutzer müssen keinen Antrag einreichen, obwohl das Unternehmen ein Formular für Personen bereitstellt, die glauben, dass ihre Zahlung falsch berechnet wurde oder fehlt.

DebugBear riet Kunden, die sein Monitoring-Produkt verwenden, den Einbettungscode von ihren Websites zu entfernen. Die Adresse, von der die schädliche Datei ausgeliefert wurde, cdn.debugbear[.]com, hatte bei einer Überprüfung am 1. November keinen DNS-Eintrag.

Polymarket erklärte, künftig Skripte von Drittanbietern mit zusätzlichen Sicherheitsvorkehrungen wiederherzustellen, darunter eine strengere Content Security Policy, festgelegte Versionen und Sandboxing. Hudson Rock riet Websites, unnötigen Code von Drittanbietern auf Seiten zu vermeiden, die für den Handel oder die Authentifizierung verwendet werden, wenn möglich Subresource Integrity einzusetzen und zu überprüfen, welche Skripte auf angemeldeten Seiten Wallet-Signaturen anfordern können. Außerdem riet das Unternehmen Händlern, Signaturanfragen abzulehnen, die sie nicht erkennen.

Quellen: The Hacker News.