Risolto un pericolosissimo bug di Steam.

Steam

Avete presente quando armeggiate in modo talmente quotidiano con un qualcosa che esso stesso diventa simile alla vostra casa?
Al giorno d’oggi moltissimi di noi, nati e cresciuti con il pc gaming, potremmo dire la stessa cosa pensando al buon vecchio Steam, il marketplace Valve che da dieci anni a questa parte ha cambiato radicalmente il modo che abbiamo di fruire il mondo dei videogiochi su PC.

Avete presente il concetto di lampada magica?
Un oggetto in grado di esaurire un numero finito di desideri, cercando di restringere questi ultimi all’ambito computer gaming, potrebbe semplicemente portare alla formulazione delle seguente frase: “Voglio poter ottenere le chiavi di attivazione di qualsiasi titolo Steam, passato presente e futuro, in qualsiasi quantità da me richiesta”

Ora, fermo restando che le lampade magiche non esistono, abbiamo a che fare con qualcosa di molto simile per risultato finale: un bug scoperto (e corretto) rendeva possibile la creazione di codici d’attivazione per qualsiasi gioco in modo completamente gratuito.

Lo scopritore di tale bug è stato poi adeguatamente ricompensato da Valve stessa attraverso una somma di denaro salvando l’azienda da problemi di incredibile portata.

Vediamo insieme cosa è successo.

Un bug di Steam da ventimila dollari.

Steam righe di codice

Il prezzo con cui Valve ha valutato la scoperta di questo bug ammonta a ventimila bigliettoni verdi, consegnati al ricercatore specializzato in sicurezza informatica Artem Moskowsky. Il bug incriminato è stato segnalato (privatamente, dopo vedremo che significa) all’azienda di Gabe Newell il 7 Agosto 2018 ed è stato reso pubblico solo il 31 Ottobre 2018.

La notizia della presenza di questo bug è stata resa pubblica attraverso un piccolo report sul portale HackerOne, punto di riferimento per programmatori e esperti di sicurezza, dando anche una piccola spiegazione tecnica riguardante la natura e il funzionamento dell’errore di programmazione.

Il bug che è stato corretto permettevva attraverso il controllo di un singolo parametro di generare migliaia di codici di attivazione per qualsiasi videogioco esistente all’interno della piattaforma; considerando che secondo vecchie dichiarazioni di Arstechnica il markeplace ha circa 500 milioni di giochi abbiamo a che fare con un bug di proprorzioni incredibili; sullo stesso HackerOne il problema era stato segnalato come di importanza 9/10, ovvero di importanza critica.

Il ricercatore ha spiegato più nei dettagli al magazine “The Register” i retroscena riguardanti la scoperta e la risoluzione del problema.

Bachi da programmatori.

Il lavoratore di ricercatore di sicurezza assomiglia in un certo senso al cercatore di tesori, soltanto che è necessario sostituire righe di codice particolari ai bauli e agli scrigni incastonati nell’immaginario proprio di Lara Croft e Nathan Drake.

Nel corso della sua carriera Artem Moskowsky ha scovato diverse decine di problemi informatici ricevendo poi ricompense in base alla gravità della situazione.

Il problematico bug che riguardava Steam è stato trovato dal ricercatore navigando all’interno della sezione Developer del sito, ovvero quel frangente di Steam che è dedicato alle software house/programmatori indipendenti che hanno intenzione di pubblicare il proprio titolo sul marketplace.

Durante la navigazione il ricercatore ha potuto osservare come fosse semplice cambiare determinati parametri all’interno delle richieste che era possibile fare all’API (L’interfaccia del programma) ed era anche possibile ottenere delle key per attivare un videogioco ben specifico.

Le key in questione, chiamate comunemente CD Keys, potevano poi venire utilizzare all’interno del più banale programma per pc sotto la sezione “Attiva un prodotto su Steam” per ottenere una copia di un videogioco ben specifico.

“Ho scoperto il bug casualmente mentre esploravo le funzionalità della web app developer di Steam, era abbastanza semplice da utilizzare e poteva essere sfruttato da qualsiasi malintenzionato che aveva accesso al portale per sviluppatori. Praticamente chiunque avesse a disposizione un account sul portale per sviluppatori poteva accedere alle CD-Key necessarie per attivare un qualsiasi titolo di steam in modo praticamente illimitato; in questo modo sarebbe stato possibile vendere o distribuire le stesse a malintenzionati o semplicemente ad altri pirati informatici.

Per attivare il bug è semplicemente necessario utilizzare 0 nel numero di chiavi richieste quando si utilizzava il comando /partnercdkeys/assignkeys/ per ottenere valori completamente sballati; io sono riuscito a bypassare la verifica di identità legata all’account developer semplicemente modificando un’ altro parametro all’interno dell’API e di conseguenza ho potuto accedere all’intera libreria di Steam: basta modificare l’ID del gioco di cui richiedere la Key per ottenerla.

La sostanza è semplice: avrei potuto ottenere qualsiasi numero di chiavi d’attivazione per qualsiasi tipo di gioco; per etstare la cosa ho provato ad inserire una stringa random all’interno delle richieste dell’API e per tutta risposta ho ricevuto 36000 chiavi di Portal 2, un videogioco che si trova su Steam per 9.99€.”

Una specie di guanto dell’infinito in versione markeplace virtuale videoludico, davvero impressionante per potenza e duttilità.
Fortunatamente questo Thanos era di una differente levatura morale ed ha preferito puntare a qualcosa di eticamente differente.

Un lavoro pagato.

Valve, dopo aver ricevuto la segnalazione della presenza di tale bug durante i primi giorni di Agosto ha ricompensato il ricercatore con 15,000$ aggiungendo anche altri 5000$ legati alla rivelazione in completa segretezza del bug.

È lecito pensare che un ricercatore con intenzioni diverse avrebbe potuto rivelare il bug dietro compensi ben più alti a differenti entità, magari intenzionate ad abbattere il colosso Valve creando disagi alla piattaforma.

In ogni caso, per onor di cronaca, lo stesso Moskowsky ha già lavorato altre volte con l’azienda sulla sicurezza della sua piattaforma; già a Luglio ha ricevuto qualcosa come 25,000$ per aver scoperto risolto un bug riguardante una SQL Injection potenzialmente pericolosissima.

Quanti giochi si possono acquistare con ventimila dollari?
Quanti sviluppatori di videogiochi possono essere pagati con questa cifra?
Fateci sapere nei commenti cosa avreste fatto al posto del ricercatore incriminato.