Qual è il problema del software anti-cheat nei giochi online?

Nell’ultimo decennio, i grandi giochi online competitivi, in particolare gli sparatutto in prima persona come Call of Duty di Activision-Blizzard e Destiny 2 di Bungie, hanno dovuto aumentare in modo massiccio le loro operazioni per contrastare il boom dei venditori di cheat. Ma un sottoinsieme sempre più vocale di giocatori teme che il software destinato a rilevare e bandire i cheater sia diventato eccessivamente ampio e invasivo, rappresentando una minaccia considerevole per la loro privacy e l’integrità del sistema.

Il problema sono i driver a livello di kernel, un’escalation relativamente nuova contro i creatori di cheat. Il kernel stesso, talvolta chiamato “anello 0”, è una porzione isolata di un computer, dove vengono eseguite le funzionalità principali della macchina. Il software in questa regione comprende il sistema operativo, i driver che dialogano con l’hardware, come tastiere, mouse e schede video, nonché il software che richiede autorizzazioni di alto livello, come le suite antivirus. Mentre il codice difettoso eseguito in modalità utente – il “ring 3”, dove vivono i browser web, gli elaboratori di testi e il resto del software che utilizziamo – provoca il blocco di quel software specifico, un errore nel kernel fa crollare l’intero sistema, di solito con l’onnipresente schermata blu della morte. A causa di questo isolamento, il software in modalità utente ha una visibilità molto limitata su ciò che accade nel kernel.

Non sorprende quindi che alcuni abbiano delle riserve. Ma la realtà è che gli ingegneri della sicurezza, soprattutto quelli che lavorano per stabilire la correttezza nel genere ipercompetitivo degli FPS, non hanno avuto molta scelta. I sistemi anti-cheat si stanno dirigendo verso il kernel, in parte perché è lì che si trovano gli imbroglioni.

“Nell’era del 2008, nessuno utilizzava i driver del kernel, forse il 5% degli sviluppatori di cheat sofisticati”, afferma Paul Chamberlain, un ingegnere della sicurezza che ha lavorato a sistemi anti-cheat per giochi come Valorant, Fortnite e League of Legends. Chamberlain ricorda di aver visto il suo primo exploit di gioco basato sul kernel – il famigerato Glider di World of Warcraft – alla conferenza sulla sicurezza Defcon nel 2007. “Ma dal 2015 circa, praticamente tutte le organizzazioni sofisticate e organizzate per la vendita di truffe utilizzavano i driver del kernel”. Con gli strumenti disponibili, il software anti-cheat non poteva fare molto contro aimbot e wallhack che vivevano nel kernel. Nello stesso periodo, durante una conferenza degli sviluppatori di Steam, Aarni Rautava, un ingegnere di Easy Anti-Cheat – che alla fine sarebbe stata acquistata da Epic Games – ha dichiarato che il mercato complessivo dei cheat era cresciuto fino a circa 100 milioni di dollari.

Tuttavia, gli studi sui giochi erano e sono spesso cauti nell’implementare le proprie soluzioni di driver. Lavorare nel kernel è difficile, è più specializzato e richiede un sacco di test di garanzia della qualità, perché l’impatto potenziale di un codice sbagliato è molto più drastico, il che comporta un aumento delle spese. “Anche alla Riot nessuno voleva che facessimo un driver. All’interno dicevano: “Guarda, è troppo rischioso””, racconta Clint Sereday, un altro ingegnere della sicurezza che ha lavorato a Vanguard, il sistema anti-cheat a livello di kernel di Valorant. “In fin dei conti, non vogliono dover mettere in circolazione un driver per proteggere il loro gioco se non ne hanno bisogno”. Ma nello spazio ipercompetitivo degli FPS, soprattutto in uno sparatutto tattico dove un singolo colpo alla testa può significare morte istantanea, i cheat hanno un impatto eccessivo che può erodere rapidamente la fiducia dei giocatori. Alla fine, Riot ha apparentemente calcolato che qualsiasi contraccolpo prodotto da una soluzione kernel (e ce ne sono stati parecchi) era comunque preferibile all’essere ostacolati nel combattere i cheaters ad armi pari.

Per molti giocatori, però, non è importante chi abbia introdotto per primo il kernel. Temono che un driver del kernel anti-cheat possa spiarli di nascosto o creare vulnerabilità sfruttabili nei loro PC. Come ha detto un utente di Redditor: “Vivrò con gli imbroglioni. La mia privacy è più importante di un cavolo di gioco”.

Un driver del kernel potrebbe certamente introdurre una qualche vulnerabilità. Ma le probabilità che un hacker lo prenda di mira sono scarse, almeno per la stragrande maggioranza delle persone. “Si parla facilmente di centinaia di migliaia di dollari, forse milioni, per un exploit di questo tipo se deve essere eseguibile da remoto”, afferma Adriel Desautels, fondatore della società di penetration testing Netragard. “Gli aggressori preferirebbero spendere il loro tempo e il loro denaro in cose in cui possono colpire una sola cosa e ottenere un sacco di bottino”, come altri attacchi criminali o malware in cui sono state rubate enormi quantità di dati preziosi o sono stati tenuti per un riscatto.

Nella maggior parte dei casi, gli hacker possono ottenere ciò che vogliono senza avvicinarsi a questo livello di sofisticazione. Nell’ambito dei suoi test di penetrazione, Netragard simula il lavoro dei gruppi di ransomware, e “anche quando forniamo il livello più avanzato di quel servizio, non abbiamo bisogno di usare attacchi che scendono così in basso. Non c’è mai stata la necessità o anche solo l’idea di una necessità a quel livello”, afferma Desautels. I dati della carta di credito di un giocatore medio di Arma 3 non varrebbero assolutamente lo sforzo di un lavoro di infiltrazione a livello di Stato nazionale. Sebbene i driver a livello di kernel introducano dei rischi potenziali, Desautels afferma che “se una di queste cose venisse realizzata in modo efficace e dannoso, si tratterebbe di una situazione davvero straordinaria”.

E se questa situazione si fosse mai verificata, probabilmente si sarebbe già verificata nel 2016, quando Capcom ha distribuito un driver del kernel per la versione PC di Street Fighter V . “Aveva una vulnerabilità che permetteva a chiunque di caricare il codice del kernel in modo arbitrario. Quindi si poteva prendere il driver di Capcom e poi caricare il proprio codice”, dice Nemanja Mulasmajic, che si è occupato della sicurezza di Valorant e Overwatch, che permetteva agli utenti di aggirare “tutti i controlli delle firme e tutte le caratteristiche di sicurezza che Windows aveva costruito”. Poco dopo Capcom, imbarazzata, ha ripristinato il codice. Potrebbe sembrare che questa sia un’ulteriore prova del fatto che gli anti-cheat a livello di kernel sono vulnerabilità enormi, e da un certo punto di vista lo sono, ma la maggior parte dei driver del kernel presenta vulnerabilità simili e il loro sfruttamento richiede competenze tecniche e l’accesso fisico al computer con il driver installato.

Un driver del kernel che porta a un attacco esterno potrebbe essere incredibilmente improbabile, ma molti giocatori temono che questo software sia stato progettato, almeno in parte, per fornire alle stesse aziende produttrici di giochi livelli di accesso e informazioni senza precedenti sulle macchine degli utenti. Chamberlain sostiene che non c’è “alcun incentivo” per gli anti-cheat a fare una “spedizione di pesca” per le informazioni personali degli utenti.

Con le aziende tecnologiche accusate di aver raccolto tranche di dati degli utenti, chiunque potrebbe essere perdonato per aver nutrito dei sospetti. Per Desautels, ancora una volta, la questione viene rapidamente contestualizzata da motivazioni puramente finanziarie e di reputazione. “Se [gli hacker] scoprissero che le società di gioco stanno effettivamente compiendo atti di microspionaggio o rubando le informazioni delle persone o altro, lo scriverebbero velocemente, sarebbe fantastico per la loro credibilità”, afferma. “Sarebbe un tesoro per loro”. A questo scopo, alcuni anti-cheat offrono significative ricompense per i bug al tipo di cappelli grigi che potrebbero essere inclini a smontare questo software.

Anche il rischio relativo di programmare nel kernel tende a essere un vantaggio per chi è attento alla privacy. “Le scansioni che cercano i cheat o quelle che analizzano il comportamento del gioco, o qualsiasi cosa che rimanda informazioni ai server degli sviluppatori del gioco, di solito non vengono eseguite nel kernel e non sono attive a meno che il gioco non sia attivo”, afferma Chamberlain. “Il motivo è che la programmazione del kernel è piuttosto difficile da eseguire. Quindi si vuole fare il meno possibile”. Il driver usa principalmente i suoi permessi divini per isolare il gioco, impedendo ad altri processi di entrare e manomettere lo stato del gioco – meno un occhio onniveggente che un buttafuori altamente intimidatorio.