Assine a nossa newsletter | Receba insights sobre Transformação Digital

Como funcionam os anti-cheats em jogos?

Como funcionam os anti-cheats em jogos

Não é incomum em jogos multiplayer encontrar um jogador utilizando algum software que dá a ele vantagens injustas em relação aos outros, os famosos hacks ou cheats, estragando a experiência de quem está jogando. Isso também pode arruinar a economia do jogo se o cheater conseguir in-game items e vendê-los no mercado interno, ou até mesmo trocá-los por dinheiro real (há relatórios da Ásia sobre prisioneiros sendo forçados a jogar World of Warcraft para ganhar ouro e vendê-lo por dinheiro real¹).

Além disso, hoje em dia muitos torneios têm prêmios que variam de dezenas de milhares a milhões de dólares, e por isso é cada vez mais necessário garantir a justiça nessas competições. Visto isso, há o esforço crescente de desenvolvedores em lidar com estas práticas para dar a todos os participantes as mesmas chances. Surgem, assim, os anti-cheats. Neste artigo falaremos um pouco sobre como certos cheats funcionam e alguns dos métodos anti-cheats que lidam com eles.

Quais são os principais tipos de cheats?

Os cheats se dividem em duas categorias: soft cheats e hard cheats.

Soft cheats

Os soft cheats utilizam mecânicas que não foram pretendidas pelos desenvolvedores (bugs) a fim de obter uma vantagem injusta sobre outros jogadores. Os End-User License Agreements (EULA) geralmente contêm uma cláusula que não permite o uso injusto de mecânicas do jogo (veja o EULA da Blizzard²).

A principal maneira de combater os soft cheats é testando extensivamente o jogo antes de lançá-lo no mercado. Se encaixam dessa categoria:

  • Exploração de bugs/glitches;
  • Uso de dinheiro real para conseguir bens e serviços in-game não permitidos pelo EULA do jogo, como comprar uma conta de outro usuário.

Hard chetas

Os hard chetas são os principais alvos de anti-cheats. Muitas vezes, quando o cheat é discutido no cotidiano, são essas abordagens que estão em questão. Podem ser, por exemplo, programas que editam o cliente do jogo ou modificam os pacotes que o cliente do jogo envia.

Programas de cheat externos também podem injetar-se no espaço de memória do jogo e criar novas funcionalidades. Temos, aqui:

  • Bots: programas que automatizam jogar certas partes do jogo;
  • Utilização de dados secretos do jogo: usar dados do cliente que não são feitos para serem vistos ou acessados pelo jogador;
  • Modificação de pacotes: edição dos dados nos pacotes enviados do cliente para o servidor do jogo, ou recebidos pelo ciente do servidor;
  • Spoofing: neste contexto de videogames significa impersonar outra pessoa e se aproveitar disto socialmente ou com mecânicas do próprio jogo.

Tipos de anti-cheat

Os métodos de anti-cheats também se dividem em duas categorias: server-side e client-side.

Server-side

Funcionam apenas no próprio servidor, como verificar pacotes recebidos e garantir que os dados e o estado sejam tratados corretamente. Nessa categoria temos:

  • Política de 0 confiança no cliente: na verdade, verificar dados do cliente é essencial para qualquer design de serviços cloud;
  • Projetar um protocolo de aplicativo resistente a adulterações: implementação correta de User Datagram Protocol (UDP), Transmission Control Protocol (TCP) e outros;
  • Ofuscar o tráfego de rede: utilização de técnicas de criptografia de dados;
  • Métodos estatísticos: tem como principal função selecionar jogadores suspeitos para investigação humana posterior. É difícil contornar a identificação por métodos estatísticos, pois modificar o código do cliente não ajudará a evitar o anti-cheat.

Client-side

Operam na máquina do usuário e enviam dados de volta para o servidor. Métodos que se encaixam nessa categoria são:

  • Criptografia de código: processo não invasivo de criptografar sessões de código. Introduz uma certa quantidade de sobrecarga dependendo da frequência que é utilizada e de quão grandes partes do código são criptografadas ou descriptografadas;
  • Verificação de arquivos por hashing: é um método que tenta garantir que os arquivos do jogo não tenham sido modificados. Apesar de fácil implementação e pouca sobrecarga, esses benefícios são desperdiçados pela facilidade de se contornar;
  • Detecção de cheating softwares conhecidos: um bom anti-cheat deve ter uma maneira de escanear o disco e Process Ids do usuário para cheating softwares conhecidos;
  • Ofuscação da memória: entre as variáveis dinamicamente alocadas pelo jogo, pode haver dados que não devem ser vistos pelo jogador, apenas processados pelo próprio jogo. Isso pode ser facilmente explorada por cheaters. Ofuscar a memória é uma das técnicas mais poderosas de client-side e faz parte de todo anti-cheat sério;
  • Drivers anti-cheat baseados em kernel: muitos sistemas anti-cheat operam apenas no espaço de usuário. Isso significa que eles são limitados em sua capacidade de proteger o jogo. Eles também são mais fáceis para os cheaters contornarem. A alternativa proposta é construir o sistema anti-cheat como um driver de kernel que age no espaço do kernel.

A tabela abaixo compara em uma escala de 1 a 4 (sendo 1 pouco e 4 muito) vários aspectos dos métodos de anti-cheat³.

Tabela comparativa de Ant-cheats

Anti-cheats mais conhecidos e suas características

PunkBuster

Logo PunkBuster

O primeiro grande anti-cheat foi o PunkBuster, desenvolvido pela EvenBalance. Alguns anos após o lançamento em 2000, ele foi usado em cerca de 80% das partidas nos jogos de tiro populares. PunkBuster está integrado tanto no cliente do jogo quanto no servidor do jogo. O cliente PunkBuster executa várias funções, como a verificação em tempo real da memória. O cliente tenta encontrar fraudes na memória e compará-las com assinaturas de um banco de dados.

Valve Anti-Cheat (VAC)

Logo Valve

A ideia básica do Valve Anti-Cheat é muito semelhante ao sistema PunkBuster, podendo detectar fraudes como hacks gráficos que são frequentemente usados para implementar wallhacks (cheat que permite o jogador ver através da parede).

Warden

Logo Warden Defender

World of Warcraft foi lançado pela Blizzard e é hoje o MMORPG mais popular de todos, tornando-se um grande alvo de cheaters. O sistema anti-cheat usado no jogo é chamado Warden e é usado em outros jogos da Blizzard. Assim como muitos outros anti-cheats, Warden teve seus escândalos de privacidade. Em 2006 foi acusado de verificar o histórico e cookies do navegador dos jogadores.

Easy Anti-cheat

Logo Easy Anti-cheat

Existem empresas externas que oferecem tipos de sistemas anti-cheat baseados em dados como um serviço para empresas de jogos. Um desses sistemas anti-cheat é o Easy Anti-Cheat, que foi recentemente adquirido pela Epic Games e é utilizado em diversos jogos como Fortnite, Apex Legends, Dead by Daylight e muitos outros.

Conclusão

As empresas de jogos devem sempre garantir a melhor experiência para seus jogadores, e para isso lutam contra os cheating softwares, que são implementados de maneira cada vez mais complexa. Foram desenvolvidos métodos, com o passar dos anos, que dificultam (ou impossibilitam) o trabalho desses programas. Apesar disso, novas maneiras de explorar vulnerabilidades estão sempre sendo descobertas, e por isso as empresas sempre devem estar atentas e atualizar seus anti-cheats para terem uma maior eficácia.

Este artigo se baseou em um estudo feito por Lehtonen, S. J. na Universidade de Helsinki e mostrou uma visão superficial sobre o assunto. Se você quiser saber mais sobre a comparação dos métodos anti-cheating, refira-se no link da referência³.

Referências

¹TOSSI, Paul. Chinese Prisoners Forced to Farm World of Warcraft Gold. 2013. Disponível em: <https://www.forbes.com/sites/insertcoin/2011/06/02/chinese-prisoners-forced-to-farm-world-of-warcraft-gold>. Acessado em 15/06/2021.

²Licença de uso da Blizzard. Disponível em <https://www.blizzard.com/en-gb/legal/fba4d00f-c7e4-4883-b8b9-1b4500a402ea/blizzard-end-user-license-agreement>. Acessado em 15/06/2021.

³LEHTONEN, Samuli Johannes. Comparative Study of Anti-cheat Methods in Video Games. 2020. Disponível em: <https://helda.helsinki.fi/bitstream/handle/10138/313587/Anti_cheat_for_video_games_final_07_03_2020.pdf>. Acessado em 15/06/2021.