Gli hacker hanno sottratto criptovalute e posizioni di trading agli utenti di Polymarket dopo che, il 29 ottobre, un codice malevolo ha sostituito uno script di DebugBear caricato dal sito web del mercato di previsione. Il codice ha preso di mira alcuni trader che avevano già effettuato l’accesso e ha utilizzato le loro sessioni attive per eseguire transazioni non autorizzate.

Polymarket ha dichiarato che rimborserà circa 2,7 milioni di dollari a 726 portafogli colpiti. I registri della blockchain esaminati dai ricercatori hanno mostrato che circa 2,64 milioni di dollari in token POL sono arrivati al portafoglio degli aggressori in meno di un’ora, escludendo il valore delle posizioni sottratte durante l’incidente.

Il file compromesso apparteneva allo strumento di monitoraggio reale degli utenti di DebugBear, che misura le prestazioni di caricamento dei siti web. DebugBear ha dichiarato che i suoi record DNS erano stati compromessi tramite il registrar del dominio e che le sue prime analisi indicavano un attacco contro il sito web di un cliente. L’azienda ha affermato di non aver trovato prove di un’intrusione nei propri sistemi, sebbene l’indagine fosse ancora in corso.

I ricercatori di Hudson Rock hanno scaricato il file malevolo dall’indirizzo utilizzato da Polymarket per caricare lo script di DebugBear. Hanno inoltre individuato una modifica nel codice del sito web di Polymarket che rimuoveva lo script. I ricercatori di Ohey hanno rilevato che un server diverso aveva iniziato a rispondere agli indirizzi web di DebugBear alle 18:13 UTC, mentre il file malevolo era ancora disponibile. Quel giorno, in precedenza, la versione legittima era stata distribuita da Google Cloud Storage.

Ogni cliente di DebugBear carica una propria copia dello script e il file sostituito era la versione utilizzata da Polymarket. Secondo l’analisi di Hudson Rock, il codice ha riutilizzato l’accesso disponibile a un trader che aveva già effettuato l’accesso a una pagina Polymarket aperta. Ha letto le informazioni sull’account memorizzate nel browser, comprese le chiavi API di trading.

Le chiavi API non potevano effettuare ordini autonomamente perché le transazioni di Polymarket richiedono anche la firma di un portafoglio. Hudson Rock ha dichiarato di non aver trovato prove che il codice avesse inviato password, frasi seed, chiavi private o le chiavi API al server contattato. Lo script cercava invece le funzioni di inserimento degli ordini di Polymarket e il firmatario utilizzato per approvare le transazioni.

Per gli utenti che avevano collegato i propri portafogli crypto, il codice poteva trasferire direttamente le posizioni al portafoglio degli aggressori. Per gli account basati sull’e-mail, poteva vendere le posizioni a prezzi progressivamente peggiori prima di trasferire i proventi. In entrambi i casi, il codice chiedeva al firmatario esistente dell’utente di approvare le richieste e le inoltrava al relayer di Polymarket. Hudson Rock ha osservato che la creazione di una richiesta di firma non dimostra di per sé che una transazione sia stata approvata, poiché i provider dei portafogli possono richiedere una conferma, rifiutare la richiesta o applicare regole specifiche della sessione.

L’analisi blockchain di Ohey ha mostrato che il portafoglio incorporato nel codice malevolo ha ricevuto i primi fondi alle 17:10 UTC e gli ultimi alle 18:02 UTC. Durante quel periodo, ha raccolto 28,6 milioni di token POL e posizioni da 33 portafogli. Alle 18:19 UTC, i POL valevano circa 2,64 milioni di dollari sulla base di un prezzo di 0,0922 dollari calcolato da DefiPrime utilizzando dati di DefiLlama. Il portafoglio ha poi inviato i token a tre altri indirizzi tra le 18:28 e le 18:38 UTC.

Polymarket ha pubblicato il primo aggiornamento sull’attività non autorizzata nei portafogli degli utenti alle 17:38 UTC. Alle 18:05 UTC, ha dichiarato che l’exchange era entrato in modalità di sola cancellazione e che le azioni del relayer erano state sospese. L’azienda ha affermato di aver rimosso lo script entro un’ora, svuotato le cache, reimpostato le sessioni di accesso attive e sospeso il trading mentre ripuliva il sito. L’incidente è stato inoltre segnalato alle forze dell’ordine.

Entro il 30 ottobre, Polymarket ha dichiarato che 689 dei 726 portafogli colpiti avevano ricevuto rimborsi completi, mentre i restanti 37 erano in fase di elaborazione dopo una revisione. L’azienda sta pagando separatamente 1,19 milioni di dollari a circa 5.500 portafogli colpiti da perdite durante la sospensione del trading o dalla sottrazione di posizioni. Nel complesso, Polymarket ha dichiarato che restituirà 3,9 milioni di dollari ai trader. Gli utenti non devono presentare una richiesta, sebbene l’azienda metta a disposizione un modulo per chi ritiene che il proprio pagamento sia stato errato o mancante.

DebugBear ha consigliato ai clienti che utilizzano il suo prodotto di monitoraggio di rimuovere il relativo codice incorporato dai propri siti web. L’indirizzo che distribuiva il file malevolo, cdn.debugbear[.]com, non aveva alcun record DNS quando è stato controllato il 1° novembre.

Polymarket ha dichiarato di voler ripristinare gli script di terze parti con ulteriori misure di sicurezza, tra cui una Content Security Policy più rigorosa, versioni fissate e sandboxing. Hudson Rock ha consigliato ai siti web di evitare codice di terze parti non necessario sulle pagine utilizzate per il trading o l’autenticazione, applicare Subresource Integrity quando possibile e verificare quali script nelle pagine con accesso effettuato possano richiedere firme del portafoglio. Ha inoltre consigliato ai trader di rifiutare le richieste di firma che non riconoscono.

Fonti: The Hacker News.