/dev/null: Driver kernel anti-cheat
Attenzione: questo articolo è molto tecnico e tratta di strumenti di contrasto ai cheat che non riguardano esclusivamente League of Legends. Altri titoli (come Project A) verranno protetti con questi sistemi aggiornati prima di LoL.
Nel corso di uno studio collaborativo durato circa 8 anni e che ha beneficiato di 20 milioni di dollari in fondi federali, i più grandi nomi della scienza sono riusciti a posizionare cronologicamente l'invenzione dei cheat in un periodo che va da 3,5 milioni di anni fa al 20 novembre 1985. Nonostante la loro data d'origine rimanga a oggi sconosciuta, questo ha permesso di stabilire un'importante verità come dato di fatto: i cheater sono sempre esistiti e sempre esisteranno.
Negli ultimi 20 anni, la battaglia fra lo sviluppo di cheat e le tecnologie atte a prevenirli è passata dall'essere uno scontro onorevole per il controllo della memoria del client a una corsa alla scoperta di metodi per modificare il sistema operativo (o a volte persino l'hardware) della postazione dei cheater stessi. Queste tecniche possono compromettere la capacità di un sistema anti-cheat di ottenere dati utili, cosa che si aggrava se tale sistema dev'essere eseguito in modalità utente.
Cos'è la modalità utente?
È un livello di privilegi all'interno di un sistema operativo: nello specifico, quello più restrittivo entro il quale un software può essere avviato. Il vostro browser, la vostra copia regolarmente acquistata di WinRAR e tutti i vostri giochi preferiti girano in modalità utente. In tale modalità, un'applicazione non può "vedere" direttamente all'esterno di se stessa, quindi il codice generalmente deve appoggiarsi alle API native del sistema operativo per leggere o scrivere memoria che non faccia parte del suo processo interno. Per usare una metafora più comprensibile: noi (in modalità utente) dobbiamo chiedere alla cucina (Microsoft Windows) per sapere cosa c'è nella nostra insalata mista (League of Legends).
Se avete mai incontrato qualche furbetto che si vantava dicendo cose come "lol, i miei cheat sono invisibili al ring 0", probabilmente quelle sono state le sue ultime parole prima di finire bannato.
Negli ultimi anni, gli sviluppatori di cheat hanno iniziato a sfruttare le vulnerabilità di Windows o ad attaccare la sua verifica d'accesso per far funzionare le loro applicazioni (o parte di esse) a livello kernel. Il problema, in questo caso, sorge dal fatto che il codice eseguito in modalità kernel può agganciarsi alle chiamate di sistema a cui ci affidiamo per recuperare i nostri dati, facendoli apparire legittimi con un metodo a volte difficile da smascherare. Abbiamo visto persino hardware specializzati usare il DMA1 per leggere ed elaborare la memoria dei processi di sistema, un metodo che (se eseguito perfettamente) può risultare invisibile2 in modalità utente.
Anche se la maggior parte dei giocatori troverebbe quantomeno discutibile installare una versione danneggiata di Windows, esiste un numero impressionante di cheater che si sono dimostrati entusiasti davanti all'idea di affidarsi alla botnet di uno sconosciuto pur di avere un vantaggio nel gioco. Per questo motivo, al momento un gran numero di cheat funziona a un livello di privilegi più elevato rispetto al nostro sistema anti-cheat. Per riprendere l'analogia con la cucina: quando chiediamo allo chef se gli ingredienti della nostra insalata arrivano davvero dal produttore al consumatore, improvvisamente arriva un tipo ben vestito che convince la direzione del ristorante di "lasciar fare a lui" e subito dopo risponde alla nostra domanda con un semplice "Assolutamente sì. Buon appetito."
1 DMA sta per "Direct Memory Access", un metodo che permette a un hardware di accedere alla memoria senza (come ormai avrete capito) coinvolgere le API di Windows. Alcune delle community di cheat più esperte l'hanno usato per ritrasmettere memoria a un altro terminale per elaborarla e studiarla in un secondo momento.
2 Per rilevarlo, abbiamo assunto chi l'ha sviluppato.
Perché ci state dicendo tutto questo?
In passato, il vostro caro team anti-cheat è stato costretto a partecipare a questa guerra di tasti a livello utente, dando praticamente a chi sviluppa cheat un piccolo vantaggio. Finora, non è stato necessario tirare fuori le armi pesanti, soprattutto grazie al fatto che siamo stipendiati e abituati a orari di riposo non regolari. Tuttavia, per quanto l'idea di una guerra virtuale sempre più estesa contro dei ragazzini ci alletti, ora stiamo per entrare in un universo composto da più titoli[1] in cui il tempo ridotto e la mancanza di sonno renderanno la nostra strategia insostenibile.
Ecco perché alcuni dei prossimi titoli di Riot verranno protetti con un driver kernel.
Dobbiamo andare in panico?
Assolutamente no, e per diversi validi motivi.
- Innanzitutto, lo stress può comportare la perdita dei capelli, e noi non vogliamo che prendiate freddo alla testa.
- Questo cambiamento non ci fornirà capacità di sorveglianza più elevate di quelle che già abbiamo. Se puntassimo alla ricetta segreta dello stufato di vostra nonna, non avremmo avuto problemi a prendercela in modalità utente per poi rivenderla al Gambero Rosso. Lo scopo di questo aggiornamento è permetterci di monitorare l'integrità dello stato del sistema (in modo da sapere che i nostri dati sono affidabili) e rendere più difficile per i cheater manipolare i nostri giochi (in modo che non possiate dare la colpa agli aimbot quando perdete).
- Non si tratta di niente di nuovo. Diversi sistemi anti-cheat di terze parti (come EasyAntiCheat, BattlEye e Xigncode3) usano già driver kernel per proteggere i vostri giochi AAA preferiti. Noi ci limiteremo a inserire nella cucina di Windows il nostro sous-chef, così sapremo che chiedendo "questa pizza (=sistema) è senza glutine (=cheat)?" avremo una risposta onesta.
- Creare cheat non identificabili diventerà molto più complicato, così potremo proteggere i giocatori dagli aimbot, noi da Reddit e i cheater da loro stessi.
Riteniamo che un buon sistema anti-cheat sia uno dei componenti più importanti di un gioco multigiocatore online, e vogliamo che tutti voi possiate giocare senza mai avere dubbi sulle reali capacità del vostro avversario. Non esiste cura per la febbre da cheat, ma continueremo a fare del nostro meglio per offrirvi la miglior esperienza di gioco competitivo possibile.
Fine della trasmissione. Tornerò fra circa quattro megasecondi per parlarvi di "Bot nel vostro ARAM", il sequel del nostro romanzo bestseller "Rimozione dei cheater da LoL".