Desarrollo: Controlador antitrampas del núcleo
Aviso: está publicación está muy centrada en el ámbito tecnológico y trata sobre herramientas antitrampas que no serán exclusivas de League of Legends. Otros juegos (como Project A) estarán protegidos por la actualización en cuestión antes que el LoL.
Gracias a un estudio colaborativo que duró aproximadamente 8 años y que contó con 20 millones de euros de fondos gubernamentales, los científicos más brillantes consiguieron ubicar cronológicamente la invención de las trampas en algún momento entre hace 3,5 mil millones de años a. de C. y el 20 de noviembre de 1985. Aunque el origen concreto sigue siendo incierto, se ha aceptado que la siguiente premisa es un hecho irrefutable: los tramposos hacen trampas.
Durante las últimas dos décadas, el desarrollo de las trampas y de la tecnología para evitarlas ha pasado de ser una honorable lucha por el control de la memoria del cliente de los juegos a métodos que intentan modificar el sistema operativo subyacente (o incluso el hardware) de los dispositivos de los tramposos. Dichas técnicas pueden poner en riesgo la capacidad de los antitrampas de recuperar los datos correctos, y ese efecto se ve agravado si el antitrampas tiene que ser ejecutado desde el modo de usuario.
¿Qué es el modo de usuario?
Describe el nivel de privilegios dentro de un sistema operativo. En concreto, se refiere al nivel más restrictivo al que puede operar el software. Vuestro navegador, vuestra copia legítima de WinRaR y vuestros juegos favoritos funcionan en el modo de usuario. Dentro de dicho modo, una aplicación no puede "ver fuera" de sí misma directamente. En lugar de eso, el código normalmente tiene que depender de las API nativas del sistema operativo para poder leer o escribir en la memoria fuera de su propio proceso. También podemos resumirlo en una metáfora algo más inteligible: nosotros (en modo de usuario) le tenemos que preguntar a la cocina (Microsoft Windows) qué lleva nuestro estofado (League of Legends).
![For_Loc_Kernel_Drivers-spa.jpg](https://cmsassets.rgpub.io/sanity/images/dsfx7636/news_live/b7e3983438f474cb4cfad0ada9ad46f65ae5da5e-1220x870.jpg)
Si algún genio os ha dicho alguna vez "mis trampas no se pueden detectar, están en el anillo 0", esto es a lo que se refería justo antes de que le bloqueáramos la cuenta.
En los últimos años, los desarrolladores de trampas han comenzado a aprovecharse de las vulnerabilidades o de la verificación de los Windows corruptos para ejecutar sus aplicaciones (o parte de ellas) a nivel del núcleo. El problema reside en el hecho de que ejecutar código a nivel del núcleo puede interferir con las mismas llamadas del sistema que utilizamos para obtener información y modificar los resultados para que parezcan legítimos de forma que nos sea más difícil detectarlos. Incluso nos hemos topado con hardware especializado que puede acceder a la memoria directamente (DMA)1 para leer y procesar la memoria del sistema. Si este vector se ejecuta a la perfección, podría llegar a ser indetectable2 desde el modo de usuario.
Aunque a la mayoría de jugadores la idea de una instalación corrupta de Windows les parece cuestionable, un alarmante número de tramposos se ha mostrado bastante entusiasta respecto a la oportunidad de formar parte de la botnet de alguien a cambio de la capacidad para reducir el tiempo de inactividad entre autoataques. Así pues, un gran número de trampas funcionan a un nivel de privilegios superior al de nuestro antitrampas. Si lo ponemos en términos de nuestra increíble analogía de la cocina: al preguntarle al cocinero si los ingredientes de nuestro estofado son frescos, alguien aleatorio con un gorro de chef convence a la dirección del restaurante de que "lo tiene todo controlado" y, después, contesta a nuestra pregunta con un "claro, come".
1DMA o "acceso directo a la memoria" es un método por el cual una parte del hardware podría, como ya sospecharéis, acceder a la memoria directamente sin necesitar las API de Windows. Algunas de las comunidades más antiguas de tramposos lo han utilizado para retransmitir la memoria a otro ordenador con el objetivo de procesarla más tarde y llevar a cabo la ESP.
2Hemos contratado directamente al que desarrolló dicha tecnología para detectarla.
¿Por qué nos contáis esto?
Históricamente, vuestro equipo antitrampas favorito siempre ha tenido que jugar a nivel de usuario, dando a los tramposos una gran ventaja (que les hacía mucha falta). Todavía no habíamos necesitado utilizar las dos manos, principalmente porque tenemos la ventaja de cobrar un sueldo y no tener que irnos a la cama a nuestra hora. No obstante, por mucho que nos atraiga la idea de librar una guerra cada vez mayor por la seguridad de las aplicaciones contra un grupo de adolescentes, estamos entrando en un universo con múltiples juegos[1] en el que la falta de tiempo y sueño harán que esta estrategia sea inviable.
Por ello, algunos de los próximos títulos de Riot estarán protegidos por un controlador del núcleo.
Creo que me está dando algo...
Hay varios motivos por los que mantener la calma:
- El estrés puede llevar a una pérdida capilar excesiva, y no queremos que paséis frío en la cabeza.
- Esto no nos va a dar ninguna capacidad de vigilancia que no tuviésemos ya. Si quisiésemos la receta secreta de vuestra abuela para hacer el cocido perfecto, no tendríamos ningún problema para obtenerla desde el modo de usuario y, después, vendérsela a Arguiñano. El propósito de esta mejora es monitorizar la integridad del estado del sistema (para saber que podemos fiarnos de nuestros datos) y hacer que los tramposos lo tengan más difícil para alterar nuestros juegos (para que no podáis echarle la culpa a los bots de puntería de vuestros fallos).
- No es algo nuevo. Muchos de los sistemas antitrampas de terceros, como EasyAntiCheat, Battleye y Xigncode3, ya utilizan controladores del núcleo para proteger vuestros juegos triple A favoritos. Solo vamos a instalar nuestro propio chef adjunto a la cocina de Windows para que, cuando les preguntemos "si el pan tiene gluten", sepamos que la respuesta es sincera.
- Será mucho más difícil crear trampas indetectables, lo que os protegerá de los bots de puntería, a nosotros de Reddit y a los tramposos de sí mismos.
Creemos que el sistema antitrampas es uno de los componentes más importantes de un juego multijugador online, y queremos que podáis jugar en un mundo en el que nunca tengáis que poner en duda las habilidades de vuestros oponentes. No hay cura para la fiebre de las trampas, pero seguiremos haciendo todo lo que esté en nuestra mano para daros la mejor experiencia competitiva posible.
Transmisión finalizada; sin embargo, volveremos en aproximadamente cuatro megasegundos para hablaros sobre los bots de ARAM en la secuela de nuestra aclamada novela: "Eliminar a los tramposos de LoL".