Riceviamo quotidianamente molti contatti in cui ci chiedono come hackerare giochi online, tipo Clash of Clans, Candy crash etc.
Questo articolo spiega perchè i giochi lato server “generalmente” non possono essere hackerati.

Panoramica

– Il server: è il responsabile adibito a fornire i contenuti e ospitare le partite fra più giocatori.
– Il client: è l’applicativo che richiede i contenuti dal server e li mostra all’utente.

Codice lato server

Le logiche applicative sono salvate sottoforma di codice sorgente su un server.
Per ogni richiesta da un client, il codice è eseguito e il risultato inviato indietro al client in un formato ben preciso.
I client non possono vedere la logica, la fisica e i codici che girano al sicuro sui server.

Codice lato client

Il codice lato client è potenzialmente “visibile” all’utente. Può essere intercettato e modificato. Sebbene talvolta sia tutto ben occultato con tecniche all’avanguardia, con un pò d’effort e competenze adeguate è possibile capirne il funzionamento.

Un gioco client-server è un sistema abbastanza complesso da realizzare. Questo significa che per certo ha delle vulnerabilità. Ma se le protezioni su più livello vengono fatte in modo professionale e testate per bene, ci vorrà tempo e sforzi non indifferenti per trovare vulnerabilità e riuscire a sfruttarle a proprio vantaggio. Per non parlare delle competenze tecniche necessarie.

Le difese

Gli sviluppatori di videogame professionisti son ben preparati all’evenienza che il loro sistema venga hackerato nonostante tutte le protezioni.
Questo vuol dire che i sistemi più critici possono essere ulteriormente protetti. Ad esempio possono essere costantemente supervisionati e dunque un tentativo di modifica o forzatura verrebbe rilevato.
Dunque la risposta breve è: si, possono essere hackerati, ma succede molto di rado in giochi commerciali di qualità.

Ci sono talvolta anche imperfezioni intrinseche che possono essere classificati come bug, e che permettono ai giocatori magari di clonare oggetti o velocizzare alcune procedure. Questi trucchi o “bug” sono falle di progettazione più che veri hack e di fatti possono distruggere l’economia del gioco o gli equilibri nei combattimenti, costringendo gli sviluppatori a spulciare i log, ripristinare database da backup e altre operazioni.
Questi non possono considerarsi veri e propri hack e possono solitamente venir scoperti per caso da giocatori fortunati e incalliti. Questa tipologia di problemi è molto più frequente e costringe gli sviluppatori a monitorare certe metriche di gioco.

Un buon sviluppatore anticiperà le mosse degli utenti, ed è consapevole che qualcuno proverà a forzare il suo sistema. Si scrive il codice server-side assumendo che qualunque messaggio ricevuto dai client di gioco non sia genuino. Sta al server decidere quanto un messaggio può esser considerato plausibile, eseguendo tutta una serie di calcoli.

A meno che un hacker abbia accesso al server, qualunque server assume che i client possano inviare traffico malevolo finchè questo non viene confutato. Fintanto che i dati son salvati sul server e validati sul server stesso, il client rimane un’entità passiva atta solamente a mostrare informazioni e inviare comandi.