Anti Cheat: Así intentan eliminar a los tramposos en los juegos

Los videojuegos están más vivos que nunca, con una industria que a nivel mundial factura más del doble que la música y las películas juntas. Una gran parte de ese mercado son los juegos en línea, los cuales han ganado mucha popularidad en los últimos años, llegando a convertirse en nombres mundialmente conocidos como el Fortnite, League of Legends, Call of Duty…

Pero los juegos de esta modalidad tienen un gran problema, y es que, al formar parte de la vida de tanta gente y en especial en el de las nuevas generaciones, el destacar o conseguir grandes logros en ellos es algo que todo el mundo persigue y atesora. Estar en un rango alto en un videojuego no solo puede servir como muestra de tu dedicación o habilidad, sino que un simple rango puede servir como símbolo de estatus dentro y fuera de la comunidad en los juegos de moda, o incluso como el comienzo de una carrera millonaria en los e-sports.

Esto hace que mucha gente busque formas alternativas de obtener esos logros recurriendo a las trampas, las cuales pueden ayudar a subir de rango incluso a los jugadores más ineptos y generando situaciones injustas para el resto de jugadores. Para combatir esto, las empresas responsables de los videojuegos usan unos programas conocidos como anti-cheats, que tienen como único propósito perseguir y tomar acciones contra los tramposos.

Si no jugamos mucho a videojuegos puede que no entendamos por qué las trampas son tan dañinas para esta industria, al final, trampas hay en todos los juegos, deportes y demás aspectos de la vida. La cosa es que los videojuegos multijugador se desarrollan en un mundo virtual, donde controlar y vigilar lo que pasa es mucho más complicado que en la realidad. Esto crea un entorno idóneo para hacer trampas donde los beneficios son enormes para los que las hacen dentro del juego, mientras que lo peor que nos pueda pasar es que expulsen la cuenta del juego en la que se han hecho trampas y mientras tanto arruinando la experiencia de los demás jugadores. Todo esto posible en muchos casos con tan solo descargar y abrir un programa.

Por eso en este artículo nos meteremos a fondo para ver cómo funcionan y han evolucionado las trampas en los videojuegos y como los programas antitrampas las combaten e intentan solucionar este gran problema.

Modificar los videojuegos es algo que los jugadores llevan haciendo desde prácticamente el nacimiento de la industria, empezando con los “cheat codes”. Estos códigos se introducían en una parte del juego para modificar su comportamiento o desbloquear funciones, de hecho, empezaron con el propósito de probar los videojuegos de forma sencilla antes de lanzarlos al mercado.

Otras trampas más avanzadas llegaron con los ordenadores de 8-bit como modificar variables o partes de los juegos una vez cargados en memoria o incluso usar dispositivos externos como el Multiface para modificar el juego mientras se ejecutaba con códigos POKE que modificaban espacios de memoria para cambiar valores como la vida, daño, dinero... De hecho, aquí empezaron los primeros intentos de combatirlos con algunos juegos que detectaban si este dispositivo estaba presente en el sistema y no se iniciaban.

Las trampas fueron avanzando junto con la tecnología, llegando a un punto donde se empezaba a vender el hacer trampas como un producto, ofreciendo guías y apareciendo incluso en revistas de videojuegos. Otro avance fueron los cartuchos especiales que se conectaban en los juegos de consolas para manipularlos, como en el caso de los Gameshark. Y ahora ya con internet y los sistemas actuales es muy fácil modificar y alterar el comportamiento de un juego, ya sea con cheatcodes, o mismamente con mods, donde en juegos como el Skyrim podemos jugar con cientos o incluso miles de ellos y transformar el juego en uno completamente diferente. De hecho, hay mods tan avanzados que permiten añadir DLSS y Ray tracing a juegos antiguos.

Otro ejemplo de modificaciones, pero ya como producto final son los “RomHacks”, que son versiones modificadas de un juego y que gozan de mucha popularidad en sagas como Pokemon o Mario. De hecho, hacer trampas está tan presente que hay sagas como GTA que permite hacer trampas y comandos simplemente con combinaciones de teclas o accediendo desde los propios menús del juego.

Así pues, modificar un videojuego no tiene por qué ser malo, el problema es cuando esas modificaciones afectan a otras personas que también están jugando al juego y ya si tienen algún efecto en tablas de clasificaciones o hay dinero de por medio ni hablemos. Podríamos desarrollar mucho este tema, pero en este artículo solo entraremos en uno de los casos recientes más importantes, el del Counter Strike.

 

Esta saga consiste en juegos competitivos de disparos en el que equipos de 5 personas compiten pegándose tiros entre ellos para tomar objetivos en el mapa perteneciendo a la categoría de los “shooters”. La experiencia de juego tiene como centro el ir por un escenario apuntando, disparando y cumpliendo objetivos con y contra otros jugadores. La saga ya fue el objetivo de muchas implementaciones de trampas por su popularidad y competitividad, pero el verdadero problema llego cuando en 2012 se lanzó CS:GO, que por primera vez contaba con un sistema de emparejamiento y ranking global. Este juego se lanzó con un sistema antitrampas muy poco avanzado, haciendo que se popularizaran “aimbots” (programas que apuntan automaticamente), “wallhacks” (que permitían ver jugadores a través de paredes) e infinidad de técnicas más para interferir con las partidas. Al final, llegó a tal punto en el que había torneos solo para hackers y jugar en rangos altos era imposible con todo el mundo haciendo trampas. Y al final, tuvieron que ser los propios jugadores los que pusieran una solución creando lanzadores propietarios con su propio anticheat.

Un anti cheat es un programa que tiene como objetivo que los jugadores no realicen trampas en un videojuego y castigarles por hacerlas, pero para entender cómo funcionan hay que entender cómo se hacen las trampas, puesto que estos programas suelen tener una naturaleza reactiva a la hora de atajar los problemas. Las formas de hacer trampas que podemos encontrar actualmente las podríamos catalogar en tres categorías diferentes según como se realizan y, por tanto, como se evitan.

 

El jugador modifica el juego

Esto va más en la línea de lo que hemos hablado en la sección anterior y que se llevan haciendo toda la vida, solo que en vez de hacerse en un juego en el que estás tú solo se hacen en una sala multijugador. Imagínate tener el grado de control para cambiar cualquier cosa en la sesión y controlar hasta a los otros jugadores, pues es básicamente eso. Esta forma de hacer trampas es además la más peligrosa porque significa poder controlar la sesión compartida del juego, abriendo la puerta a incluso controlar o ejecutar código en las sesiones de otros jugadores.

Esta forma se evita con un anticheat muy sencillo, pero que se implementa a nivel de servidor y se conoce como verificación del servidor. Al final, el punto de encuentro para todas las sesiones de los jugadores es el servidor del juego, allí es donde se implementa un programa para controlar lo que pasa en la sesión y verificar la información que envían los jugadores. Por ejemplo, si yo envío un comando para que un disparo de mi personaje haga el doble de daño al servidor y el servidor no lo verifica, entonces tomará esa información como verdadera y se la enviará al otro jugador aplicándole el daño. Pero si al pasar por el servidor este lo verifica y ve que, en efecto, ese disparo no debe hacer 200 sino 100 de daño, corregirá la acción y aplicará 100 de daño en la partida. Así pues, dará igual lo que hagamos que el servidor al tener una “consciencia” de lo que está pasando y es posible que pase en la partida, este irá corrigiendo cualquier acción que se salga de la línea. Esto se hace en la gran mayoría de videojuegos multijugador, pero curiosamente aún en algunos se puede seguir explotando.

Esta forma de protección es muy efectiva, ya que al estar el servidor en manos de la empresa, este no es accesible por los jugadores para poder combatir la protección presente en él. Pero al mismo tiempo, no sirve de mucho por si sola ya que la mayoría de trampas se producen en los sistemas de los jugadores.

Jugador obtiene información extra mientras juega

Acabamos de ver que los servidores se protegen contra las trampas, pero eso no significa que podamos aprovecharnos de ellos y más específicamente de la información que envían. Hay una gran diferencia entre la información que obtenemos del servidor y la que el juego nos muestra, por lo que si podemos acceder a esa información podríamos obtener una ventaja muy grande.

En rojo, las areas sin visión, en amarillo, las partes precargadas en el ordenador que no se muestran

Por ejemplo, aunque tú no veas a los enemigos en el juego, el servidor envía su posición a tu sistema para que en el momento que te sean visibles estos se puedan mostrar, pero si accedemos a esa información con un “cheat” podremos ver la posición de los enemigos, aunque no debieran ser visibles o estén en niebla de guerra. Así es como funcionan los famosos “wallhacks”. Esto también puede significar ver estadísticas de los enemigos que normalmente no podríamos ver o simplemente que nos recuadre la cabeza de los enemigos o nos dé información extra que normalmente estaría oculta. Si este tipo de información la combinamos con las trampas del siguiente grupo podríamos crear un programa que automáticamente apunte a los enemigos aún sin verlos, o que tire habilidades y reaccione a cosas que los enemigos estén realizando incluso fuera de nuestra visión de forma automática.

La forma de combatirlos es usando un programa en los ordenadores que corra con el juego y pueda detectar cuando otro programa accede a información del juego, pero como veremos en la siguiente sección, esto no es nada sencillo.

El programa toma el control de las acciones del jugador

La automatización de acciones se usa mucho a la hora de hacer trampas, dado lo sencillo que es realizarlas y lo difícil que es diferenciar una acción realizada por una máquina o bot, o por el propio jugador. Este tipo de trampas son eso, programas que automatizan algunas funciones del juego que suelen tener una gran dificultad o requerir de reacciones muy rápidas para asegurarte que tú siempre puedas salir lo mejor parado posible.

Estos programas pueden funcionar con información de la sección anterior o con la información que el propio juego nos presenta de forma normal. Además, pueden funcionar o bien ejecutando instrucciones dentro del juego o simplemente moviéndote el ratón o pulsando teclas por ti, esto hace que haya variantes muy difíciles de detectar y que no necesiten modificar el juego o incluso ni estar corriendo en el mismo ordenador que en el que juegas.

Esto significa que, aunque haya un programa intentando evitar estas acciones, su detección sea muy difícil, a no ser que estén interactuando con el juego de forma directa, pero hay muchas implementaciones que se aprovechan de software que incluyen periféricos para automatizar rutinas, o simplemente usan opciones de accesibilidad legítimas del videojuego o sistema, haciendo que distinguir a los tramposos de los jugadores reales con mucha habilidad sea casi imposible.

Los anticheats convencionales son programas normales, lo cual les limita en permisos y permite que las trampas funcionen en niveles más bajos sin ser detectadas, por eso, ahora está de moda usar los anticheats a nivel de Kernel.

Un ordenador tiene varios niveles de permisos en los cuales se agrupan los procesos, cuanto más bajo sea el nivel más permisos tienen y pueden acceder y manipular los procesos que hay en su nivel y superiores. Simplificando un poco, la mayoría de aplicaciones en un sistema operativo funcionan en el nivel más alto que se conoce como el nivel de aplicación, el cual permite acceder a la mayoría de los recursos del sistema, pero tiene limitaciones a la hora de acceder a la memoria o realizar ciertas acciones que puedan interferir con otros programas.

Por debajo de este tenemos otros niveles donde funcionan los procesos críticos del sistema operativo, al igual que los drivers del sistema. El nivel más abajo de ellos es el nivel del Kernel (nucleo del alemán).  En este nivel es donde se solían alojar los programas de trampas, ya que al estar por debajo de la ejecución del juego este no las podía detectar y, por tanto, tenían carta blanca para operar. Por eso, se decidió empezar a meter los anticheats en este nivel para combatirlos.

Seguramente hayamos oído hablar del Valorant y su anticheat, el Vanguard, el cual funciona a nivel de Kernel y se ha labrado una mala reputación por como actúa y “protege” contra las trampas, aunque hay que decir que no es el único en su clase, ya que el Fortnite usa el de Epic Games conocido como Easy Anti Cheat que también funciona en parte a nivel de Kernel y hay otras soluciones de Denuvo o EA que funcionan al mismo nivel. Aunque el Vanguard se lleva la palma por la cantidad de problemas que ha generado y por ser el más agresivo de todos con diferencia, siendo el único por ejemplo que bloquea de forma activa otras aplicaciones y funciona desde que encendemos el ordenador estemos jugando o no al juego.

Que los programas anti trampas funcionen a este nivel implica que estos programas tienen acceso a todo lo que está pasando en el sistema, pudiendo así detectar si hay algún programa accediendo a los valores de memoria del juego o alterándolo de alguna manera. Esto inmediatamente anula cualquier tipo de hack del segundo grupo de la sección anterior al bloquear el acceso a los datos del juego. Pero eso también significa que estos programas podrán acceder y controlar cualquier otra parte del ordenador sin nosotros poder controlarlo. Podemos pensar que estas empresas son buenas y no van a tocar nada, pero lo cierto es que no se sabe hasta qué punto estos programas acceden a nuestros datos personales o modifican el comportamiento del sistema al no poder monitorizarlas ni conocer su código fuente.

Entonces, ¿Por qué estos anticheats crean una falsa sensación de seguridad? Pues porque que el programa esté en un nivel más bajo no significa que no pueda haber trampas, porque tal y como hemos visto en el tercer grupo de trampas, estas no necesitan acceder a los archivos o al funcionamiento del juego para operar, y, por tanto, un anticheat actual no va a poder combatir muchas de esas implementaciones. Y eso ya sin meternos en otras trampas tanto de hardware (que existen) como de software para saltarse el Vanguard o cualquier otro anticheat a nivel de kernel completamente o simplemente aplicar las trampas en niveles aún más bajos para no ser detectadas.

Esta imagen aparece in-game cuando actua el Vanguard

Por eso, estos anticheats han conseguido ofrecer una falsa sensación de seguridad a los jugadores, por ejemplo, cuando se lanzó el Valorant, el Vanguard se vendió como una barrera impenetrable frente a los tramposos, potenciando esa imagen encontramos los mensajes y efectos visuales muy llamativos cada vez que el sistema actúa y quita a un tramposo de una partida, frente al silencio sobre las penalizaciones en otros juegos de la misma empresa. Y sí que es cierto que la diferencia es grande frente al CS:GO, juego contra el que compite en mercado, pero eso no significa que no haya hackers o sean pocos en el juego, lo que pasa es que mientras en otros juegos se llamaría hacker a cualquier persona sospechosa, en este caso lo tachan de Smurf (Cuenta secundaria de alguien bueno) o simplemente un jugador muy bueno al tener la percepción de que el programa anti trampas a nivel de Kernel es la solución definitiva y que no puede haber nadie haciendo trampas en el juego.

Como acabamos de ver en la sección anterior, los anticheat a nivel de Kernel son un gran paso adelante, pero no son una solución definitiva y hay formas de saltárselos para aplicar las trampas en el juego de todas formas, aunque por lo menos si han conseguido reducir en gran medida algunas trampas que recaían de forma directa en el acceso a la memoria del juego y el número de tramposos al hacer el proceso menos accesible.

Dicho esto, si hemos prestado atención al artículo nos habremos dado cuenta de que “hecha la ley, hecha la trampa” y que realmente no hay forma de evitar este problema completamente. Al final, esto no es más que una versión del juego del gato y el ratón, en el cual los desarrolladores intentan perseguir y reaccionar a cada nueva trampa o ventaja injusta que consiguen los jugadores. Y es que ningún juego se escapa, ni en consolas, así que habrá que buscar otras formas de combatir a los tramposos y reducir su número al máximo.