/dev: Antitrampas a nivel núcleo

Protegeremos algunos de los próximos juegos de Riot con nuevos sistemas antitrampas.

Advertencia: esta publicación es bastante técnica y refiere a herramientas antitrampas que no son exclusivas de League of Legends. Otros juegos (como Proyecto A) contarán con esta protección antes que LoL.

En un estudio asociado que duró alrededor de 8 años y que contó con un respaldo de 20 millones de dólares provenientes de fondos federales, los científicos más importantes del mundo lograron ubicar de forma cronológica la invención de las trampas en algún punto entre 3500 millones de años atrás y el 20 de noviembre de 1985. Aunque su origen preciso sigue siendo un misterio, se aceptó esta realidad como un hecho establecido: los tramposos siempre harán trampa.

En las últimas dos décadas, el desarrollo de las trampas y la tecnología para evitarlas pasaron de la honorable lucha por el control de la memoria del cliente del juego a métodos que intentan modificar el sistema operativo subyacente (o incluso el hardware) del dispositivo de un tramposo. Estas técnicas pueden comprometer la capacidad de un sistema antitrampas de recuperar datos valiosos y ese efecto se agrava si dicho sistema debe ejecutarse en modo usuario.

¿Qué es el modo usuario?

Es un nivel de privilegio dentro de un sistema operativo, en específico, es el nivel más restrictivo en el que se puede ejecutar un software. Tu navegador web, tu copia legítima de WinRAR y tus juegos favoritos se ejecutan en este modo usuario. Dentro de él, las aplicaciones no pueden ''ver fuera'' de sí mismas de forma directa y, en su lugar, su código depende de las API nativas del sistema operativo para leer o escribir en la memoria fuera de sus procesos propios. Para resumirlo en una metáfora medianamente comprensible: nosotros (en modo usuario) debemos preguntarle a la cocina (Microsoft Windows) qué le añadieron a nuestro guisado de carne (League of Legends). 

For_Loc_Kernel_Drivers_spa-MX.jpg

Si alguna vez oíste a algún genio que dijo ''Mi trampa es anillo 0 indetectable, ¡ja, ja!'', esto es a lo que se refería justo antes de ser suspendido.'

En los últimos años, los desarrolladores de trampas comenzaron a aprovechar las vulnerabilidades o a corromper la verificación de firmas de Windows para ejecutar sus aplicaciones (o parte de ellas) a nivel del núcleo. El problema surge porque el código que se ejecuta en modo núcleo puede generar las mismas llamadas de sistema en las que confiaríamos para recuperar nuestros datos. Así, modificarían los resultados para que parecieran legítimos de una forma que nos sería difícil de detectar. Incluso hemos visto hardware especializado que utiliza acceso directo a la memoria o DMA(por sus siglas en inglés) para leer y procesar la memoria del sistema. Este es un método que, si se ejecuta de forma perfecta, podría ser indetectable2 desde el modo usuario.

Si bien la mayoría de los jugadores creen que la idea de instalar un Windows corrupto es inaceptable, existe un inquietante número de tramposos que ha demostrado interés en la oportunidad de saltar a la red de bots de alguien a cambio de la habilidad de alternar movimientos y autoataques a velocidades sobrehumanas. Por lo tanto, existe una gran cantidad de trampas que se ejecutan en un nivel de privilegio más alto del que tiene nuestro sistema antitrampas. Para explicarlo con nuestra clarísima analogía de la cocina: cuando le preguntamos al chef si los ingredientes de nuestro guisado de verdad son frescos, un tipo con gorro de cocinero que nadie sabe de dónde salió convence a la gerencia del restaurante de que ''él se encargará de todo'' y responde a nuestra pregunta con un: ''Claro, camarada. ¡Disfruta!''.

1DMA se refiere al ''acceso directo a la memoria'', un método por el cual un hardware podría, como ya debes sospechar, acceder directamente a la memoria, sin necesidad de una API de Windows. Algunas de las comunidades de trampas más avanzadas han utilizado esta técnica (en inglés) para retransmitir la memoria a una computadora separada para procesarla y realizar ESP (percepción extrasensorial, por sus siglas en inglés).

2Contratamos directamente al individuo que desarrolló esa técnica para que la detecte.

¿Por qué me cuentan esto?

Bueno, históricamente, tu equipo antitrampas favorito se vio obligado a jugar este juego desde el nivel usuario, lo que nos permitió darles a los tramposos una tarjeta roja muy necesaria. Aún no hemos tenido que desplegar todo nuestro arsenal, ya que contamos con la ventaja de tener sueldos estables y una falta de horarios fijos para dormir. Pero por mucho que nos guste la idea de una guerra de seguridad de aplicaciones cada vez más intensa contra adolescentes, entramos a un universo de juegos múltiples donde el tiempo lineal y la falta de sueño hacen que esta estrategia particular sea insostenible. 

Por eso es que algunos de los futuros títulos de Riot estarán protegidos por un controlador de núcleo.

¿Debería asustarme?

Hay muchas razones por las que no deberías hacerlo.

  1. El estrés puede producir un exceso de pérdida del cabello y no queremos que tu cabecita se enfríe.
  2. Esto no nos da ninguna capacidad de vigilancia que no tuviéramos anteriormente. Si quisiéramos la receta secreta de la cena perfecta de Navidad de tu abuelita, no tendríamos ningún problema en obtenerla desde el modo usuario y luego vendérsela al mejor postor. El propósito de esta actualización es monitorizar el estado del sistema para comprobar su integridad (y así poder confiar en nuestros datos) y hacer que los tramposos no manipulen nuestros juegos con facilidad (para que no culpes a las trampas para apuntar por tus fracasos personales). 
  3. Esto ni siquiera es nuevo. Varios sistemas antitrampas de terceros como EasyAntiCheat, Battleye y Xigncode3 ya utilizan controladores de núcleo para proteger tus juegos AAA favoritos. Solo instalaremos nuestro propio sous chef en la cocina de Windows, de modo que cuando preguntemos ''¿de dónde viene la carne?'', sepamos que obtendremos una respuesta honesta.
  4. Será bastante más difícil crear trampas no detectables, lo que te protegerá de las trampas para apuntar, nos protegerá a nosotros de miles de publicaciones en foros, y protegerá a los tramposos de ellos mismos.

Creemos que la lucha contra las trampas es uno de los componentes más importantes de un juego multijugador en línea, y queremos que juegues en un mundo en el que no tengas dudas de las habilidades de tu oponente. Es imposible evitar las trampas de forma definitiva, pero trabajaremos de manera constante para asegurar que tengas la mejor experiencia competitiva posible.

Transmisión completa, pero volveré en alrededor de cuatro megasegundos para contarte sobre los bots en tus partidas de ARAM, la continuación de nuestra galardonada novela ''Eliminando a los tramposos de LoL''.