Inteligência Artificial para detectar fraude em Counter Strike

| Introdução

Esse texto foi baseado no artigo “Using an Artificial Neural Network to detect aim assistance in Counter-Strike: Global Offensive”, escrito por Kasey Maberry, Steven Paustian e Sheikh Bakir da instituição New Mexico Tech.

Counter-Strike: Global Offensive é um jogo online, competitivo e baseado em equipes. As partidas são disputadas em rodadas, onde cada equipe tem 5 jogadores cada. O objetivo em cada rodada é matar todos os jogadores do time adversário. São realizadas 30 rodadas, onde quem vencer a maioria das rodadas, ganha o jogo.

Por ser um jogo online, onde gamers de todo o mundo disputam entre si, existe uma grande necessidade de identificar todo tipo possível de trapaças, já que ninguém gosta de jogar contra alguém que tenha uma vantagem injusta. Para os jogadores casuais, isso é importante para que o jogo não perca a graça e se torna motivo de frustração, e para os profissionais, é essencial que não existam trapaças, principalmente em competições, pois faz parte da profissão deles. Para qualquer tipo de jogador, um jogo com muitos cheaters à solta perde completamente a credibilidade.

 

| Detectando Trapaças

No geral, existem quatro formas atuais de se detectar trapaceiros:
1) Anti-cheat baseado em assinatura: esse método verifica a memória e os arquivos do computador de um usuário para tentar compará-los com assinaturas típicas de fraude. O problema, é que a verificação é realizada em todo o computador do usuário, havendo necessidade de privilégios elevados, como por exemplo de administrador, o que é um problema pela invasão de privacidade da pessoa. O Sistema Anti-Trapaça da Valve (VAC) é uma forma de análise de assinatura, mas ela se limita apenas aos arquivos do jogo.
2) Através de estatística: é comparado se os padrões de estatística do jogador se encaixa nos limites de um jogador real. Se não se encaixar, ele pode ser banido. Alguns exemplos das análises: precisão, tiro na cabeça, tempo de reação, entre outros. O CS:GO não implementa esse tipo de detecção.
3) Existe a revisão por pares, em que um dos jogadores é observado por outros jogadores e tentam decidir se ele está ou não trapaceando. Este é um sistema bom em detectar cheats óbvios, mas o problema desse critério é que pode acontecer de jogadores muito bons serem banidos, como ocorreu com ScreaM que era conhecido por sua ótima precisão, ou que trapaceiros experientes possam passar despercebidos.
4) Vários tipos de limitações são implementadas no jogo para que os jogadores não consigam explorá-los, como o fato de jogadores não poderem enxergar oponentes atrás de paredes. Assim, o jogo consegue detectar algumas anomalias quando um jogador consegue superar essas limitações facilmente.

 

| O artigo

O artigo base se propõe a usar inteligência artificial para detecção de fraudes do tipo “aim-assist”, em que um software ajusta automaticamente a mira do jogador para sempre acertar o oponente. Para isso, é coletado as posições do cursor do jogador antes do abate, a velocidade e aceleração do movimento do cursor. A ideia é que trapaceiros vão ter movimentos antinaturais. Para isso, eles coletaram informações do cursor de diversas mortes separadas em 4 casos, com cada caso contendo cerca de 600 mortes, totalizando 2400 análises. Esses 4 casos foram separados em:
1. Jogador legítimo de nível médio.
2. Jogador legítimo de alto nível de habilidade.
3. Jogador de trapaça óbvio de nível médio de habilidade.
4. Jogador de trapaça sutil de nível médio de habilidade.
Utilizar jogadores de diferentes níveis de habilidade é importante, pois um jogador profissional terá um tempo de reação e precisão muito superiores a de um jogador casual, o que poderia ser detectado como uma trapaça em um algoritmo menos robusto. Pelos mesmos motivos, o dado a ser analisado é o movimento e aceleração do mouse, pois um profissional que acerta a grande maioria de seus tiros, ou mata um oponente em questão de milissegundos, é algo relativamente comum. Mas, o movimento do mouse de um programa e de um ser humano é diferente, independente do nível de habilidade.
A título de curiosidade, os algoritmos de inteligência artificial usados no artigo são chamados de Learning Vector Quantization (LVQ) e Multilayer Perceptron(MLP, também conhecido como Backpropagation).
Com os dados de abate, velocidade e aceleração do movimento do mouse, os pesquisadores treinaram esses algoritmos para que eles pudessem aprender como um jogador normal se comporta e como um trapaceiro se comporta, para depois conseguir distinguir um do outro. Com o uso do LVQ o acerto em situações de cheat foram de:
  • 97% usando 20 posições anteriores do cursor.
  • 94% usando 10 posições anteriores do cursor.
  • 91% usando 5 posições anteriores do cursor.

Já com o uso do MLP:

  • 98% usando 20 posições anteriores do cursor.
  • 97,1% usando 10 posições anteriores do cursor.
  • 93,9% usando 5 posições anteriores do cursor.

O MLP seria ótimo para o mundo real, pois além de apresentar um excelente resultado, as vezes que o algoritmo não acertou foram sempre falsos negativos, isto é, jogadores que deveriam ser penalizados e não foram. Isso é menos pior do que falsos positivos, em que jogadores seriam penalizados por parecerem estar trapaceando. Como CS é um jogo com jogadores profissionais, se estes fossem punidos sem motivo, seria um grande problema.

| Conclusão

Ninguém gosta de jogar contra cheaters, e combatê-los é algo que desenvolvedores de jogos online gastam bastante tempo, dinheiro e energia. Uma inteligência artificial que consegue detectar trapaceiros sem precisar escanear os arquivos no seu computador, e que consiga diferenciar um jogador muito bom de um cheater, é algo valioso e importante para a indústria. Mas apenas um algoritmo pode não ser o suficiente, pois a pesquisa nas diferentes formas de se contornar esses sistemas anti-trapaça continua avançando, e novos Cheats são inventados constantemente. Leva tempo e criatividade para identificá-los e contra-atacar, mas, no final, os justos prevalecerão, e os cheaters banidos.
Comentários