1 pontos por GN⁺ 2024-10-18 | 1 comentários | Compartilhar no WhatsApp
  • O mundo da administração de servidores de CSGO

    • Eu administrava o InvexGaming, uma rede de servidores comunitários de CSGO baseada na Austrália e na Nova Zelândia. Esses servidores ganharam popularidade graças à comunidade, ao conteúdo, aos torneios e aos plugins personalizados de jogo.
    • Administrar os servidores incluía tarefas como manter o fórum da comunidade e a infraestrutura dos servidores, gerenciar custos, adicionar conteúdo, automatizar o sistema VIP, escrever plugins personalizados, corrigir bugs do jogo, proteger contra ataques DDOS e lidar com jogadores que violavam as regras.
    • A tarefa mais trabalhosa era identificar e banir trapaceiros.
  • Um jogo de gato e rato

    • Sempre existem trapaceiros nos jogos, e administradores de servidores podem usar várias técnicas para detectá-los.
    • É possível aproveitar código do lado do servidor, o sistema Valve Anti-Cheat (VAC) e anticheats no nível do kernel.
    • No entanto, esses métodos não conseguem detectar automaticamente todos os cheats, e como último recurso é preciso analisar manualmente as demos de CSGO.
    • Quando um trapaceiro é pego, ele deve ser permanentemente banido do servidor. Porém, trapaceiros sempre tentam voltar a trapacear, e jogadores tecnicamente experientes conseguem contornar banimentos.
  • A arte de contornar banimentos

    • O contorno de banimentos é feito alterando informações de identificação, como endereço IP e Steam ID.
    • Usar um novo Steam ID ou um novo endereço IP pode evitar o banimento, mas o sistema detectava essas mudanças e associava a nova informação de identificação ao banimento já existente.
    • É possível mudar o endereço IP usando uma VPN, mas se o Steam ID estiver banido, o jogador será banido novamente.
    • Se as duas informações de identificação forem alteradas ao mesmo tempo, o sistema passa a reconhecer o jogador como alguém novo, permitindo contornar o banimento.
  • Os problemas da identificação por endereço IP

    • O Steam ID identifica um jogador de forma única, mas o endereço IP não.
    • Isso pode causar problemas em redes compartilhadas, como entre irmãos ou em redes universitárias.
    • Para esses casos, foi criado um sistema de exceções, mas ainda assim era recomendado não jogar em redes não confiáveis.
  • IdentityLogger

    • Trapaceiros sempre causavam problemas no jogo, e no começo de 2017 a questão de contornar banimentos tinha se tornado séria.
    • Para resolver o problema de quem mudava simultaneamente o Steam ID e o endereço IP, foi criada uma abordagem que usava o navegador VGUI para armazenar um cookie.
    • Esse cookie permanecia mesmo depois de fechar e reabrir o jogo, e era salvo no diretório de instalação da Steam, onde os trapaceiros não conseguiam apagá-lo com facilidade.
    • Isso permitiu criar um identificador adicional, o Tracking ID, para identificar jogadores.
  • A grande onda de banimentos de 2017

    • Em fevereiro de 2017, esse sistema foi implantado em todos os servidores de CSGO da Invex Gaming, e muitos trapaceiros foram banidos.
    • A comunidade ganhou fama de ter servidores “difíceis de trapacear”, e os relatos relacionados a trapaceiros caíram drasticamente.
    • Esse método funcionou bem até a Valve remover o navegador VGUI; depois disso, a técnica foi compartilhada publicamente e o plugin foi disponibilizado como open source.

Resumo do GN⁺

  • Este texto apresenta um caso interessante sobre como identificar e banir trapaceiros durante a administração de servidores de CSGO.
  • O método de identificação baseado em cookies usando o navegador VGUI foi criativo e eficaz, reduzindo bastante o problema de trapaceiros na comunidade.
  • Embora esse método não possa mais ser usado por causa de uma atualização da Valve, ele propõe uma nova abordagem para segurança em jogos.
  • Projetos com funções semelhantes incluem o sistema VAC e outros softwares anticheat.

1 comentários

 
GN⁺ 2024-10-18
Comentários do Hacker News
  • No UT2004, usava-se GUID ou IP para banir jogadores. Mas, quando a Epic abandonou o jogo, surgiram keygens e o banimento por GUID se tornou inútil. O banimento por IP tem limitações por causa do uso de VPN
    • A solução atualmente possível é combinar banimento por IP com bloqueio de VPN, adicionando sub-redes de VPN conhecidas ao firewall, e usar técnicas de fingerprinting que escaneiam estruturas específicas de pastas do sistema
  • Parabéns ao autor por usar o endereço RFC5737 TEST-NET-2
  • Jogadores de países grandes muitas vezes perdem o senso de comunidade que existe em países pequenos. Quando você passa a conhecer as pessoas que jogam todos os dias em poucos servidores, isso acrescenta conversa e diversão
  • Um sistema anti-cheat que funciona apenas no lado do servidor é uma área de problema pela qual eu gostaria muito de passar pelo menos uma vez na carreira. Esse tipo de confronto fica mais interessante quanto mais se pensa nele
  • Se você quiser ler o artigo quando o site estiver fora do ar ou lento, há um screenshot da página inteira disponível
  • O tema é impedir cheaters recorrentes, não detectar cheats. Detectar cheats é um problema completamente diferente, especialmente no caso de cheats de hardware
    • Pessoalmente, o método mais eficaz, na minha opinião, é cobrar pelo jogo
  • Tráfego criptografado com HTTPS não permite encontrar tokens brutos com ferramentas como o Wireshark. Mas com ferramentas como Fiddler ou Burp Suite é fácil descriptografar HTTPS
  • Compartilhei a solução e as técnicas apenas com administradores de servidor confiáveis. Usar VGUI foi eficaz, mas foi uma pena o navegador web ter sido removido por volta de 2018
  • Respeito a criatividade e a eficácia da solução. Mas teria sido melhor se o VGUI nem existisse desde o começo
    • Esse tipo de rastreamento é tão disseminado na web que é quase impossível evitá-lo. É atraente usar falhas lógicas para obter resultados melhores
  • Banir novos Steam IDs a partir de um IP bloqueado é rigoroso demais. Alguns ISPs usam CG-NAT ou rotacionam IPs, então um único usuário mal-intencionado pode acabar prejudicando muitos jogadores inocentes