Anti-trampas: ¿Cómo protegen los juegos tu experiencia?

Fuentes: How Kernel Anti-Cheats Work: A Deep Dive into Modern Game Protection

Los sistemas anti-trampas (anti-cheats) modernos para videojuegos han evolucionado significativamente para combatir técnicas cada vez más sofisticadas. Inicialmente, las soluciones se basaban en el modo de usuario (usermode), pero estas eran vulnerables porque los procesos en usermode operan con menos privilegios que el kernel del sistema operativo. Esto permitía a los tramposos, a través de drivers o incluso programas que se ejecutan a un nivel más bajo, manipular la información que los anti-cheats usermode veían, como la memoria del juego o la lista de módulos cargados. Para contrarrestar esto, los anti-cheats se han movido al kernel, el nivel más privilegiado del sistema, donde tienen acceso directo a la memoria y pueden interceptar llamadas al sistema.

Esta migración ha provocado una “carrera armamentista” constante. Los tramposos responden explotando vulnerabilidades en drivers legítimos o incluso virtualizando todo el sistema operativo (hypervisors) para evadir la detección. Los anti-cheats, a su vez, desarrollan nuevas técnicas como listas de drivers permitidos, detección de hypervisors y, más recientemente, medidas para contrarrestar dispositivos DMA PCIe que leen la memoria del juego directamente desde el hardware.

Actualmente, cuatro sistemas anti-trampas dominan el panorama competitivo: BattlEye (usado en PUBG, Rainbow Six Siege), EasyAntiCheat (Fortnite, Apex Legends), Vanguard (Valorant, League of Legends) y FACEIT AC (plataforma FACEIT para Counter-Strike). Estos sistemas comparten una arquitectura de tres capas: un driver de kernel que opera a nivel privilegiado, un servicio en modo usuario con privilegios de sistema para la comunicación con servidores y la aplicación de sanciones, y una DLL inyectada en el juego para realizar comprobaciones específicas. La comunicación entre estas capas se realiza a través de IOCTLs (I/O Control Codes), que son solicitudes enviadas desde el modo usuario al driver de kernel.

Un aspecto importante es que, debido a la naturaleza de las herramientas que necesitan para detectar trampas, los anti-cheats de kernel inevitablemente se asemejan a rootkits, un tipo de software malicioso que también opera a nivel de kernel y tiene acceso a información sensible del sistema. Esta similitud es una consecuencia de la necesidad de acceder a los mismos recursos del sistema operativo para realizar sus funciones, y no necesariamente indica una intención maliciosa. La complejidad de estos sistemas y la constante carrera armamentista elevan la barrera de entrada para los tramposos, haciendo que el engaño sea más costoso y requiera un mayor nivel de conocimiento técnico.