Categorías
Universitario Videojuego

Detección de anomalías

Esta lección es importante porque la detección de datos que no encajan bien en el patrón habitual es algo que se usa mucho en ciberseguridad, también en la seguridad de los videojuego para, por ejemplo, detectar las trampas de los jugadores.

Anomalías

¿Qué es una anomalía? Pues un patrón o una simple observación en los datos que no se amolda a la noción definida de «comportamiento normal» para los mismos. Se distinguen distintos tipos de anomalías:

  • Puntuales: Un único registro completamente fuera de la norma (ej. un jugador suma 1 millón de monedas de oro a su marcador en un solo segundo).
  • Contextuales: El dato es normal aisladamente, pero anómalo en un contexto dado (ej. hacer 500 puntos de daño en un ataque estando el personaje recién creado, todavía a nivel 1).
  • Colectivas: Un conjunto de datos que juntos indican anomalía aunque individualmente no lo sean (ej. la secuencia exacta de clics que hacen falta para «farmear» recursos en un juego y que son características de cierto tipo de bots que conocemos).

Métodos estadísticos y basados en proximidad

Como enfoques estadísticos o basados en distancia tenemos Z-Score o IQR. Consiste en asumir distribuciones teóricas o en medir desviaciones respecto al centro. Son métodos eficaces pero limitados ante datos de alta dimensión.

k-NN para Anomalías, por otro lado, evalua la densidad local. Si un punto está muy alejado de sus k vecinos más cercanos, entonces se considera una anomalía.

LOF (Local Outlier Factor) mide la densidad local de un punto comparada con la densidad de sus vecinos. Es un método excelente para encontrar anomalías en conjuntos de datos con regiones de densidades variadas.

Métodos basados en árboles y aislamiento

Según el «principio de aislamiento», en lugar de modelar los puntos normales para buscar aquello que queda fuera, debemos centrarnos en aislar directamente las anomalías.

El funcionamiento del algoritmo Isolation Forest consiste en construir árboles de decisión aleatorios. Como las anomalías son «pocas y diferentes», requieren menos divisiones (cuts) para quedar aisladas en las hojas del árbol. Este algoritmo es extremadamente rápido, muy escalable y no requiere calcular distancias costosas entre pares de puntos.

Métodos basados en reconstrucción

Pensando en un sistema que haga reducción de dimensionalidad pero que luego pueda hacer reconstrucción de la información «perdida» surge esta idea: entrenar un modelo (como un PCA, o un autoencoder -de los que hablaremos en Aprendizaje Automático-) hasta que aprenda a comprimir y reconstruir únicamente el comportamiento normal. ¡De esa manera las anomalías quedan automáticamente descartadas!

Se habla de error de reconstrucción (reconstruction error) cuando a este modelo le pasamos una entrada anómala y este no sabe cómo comprimirla/reconstruirla adecuadamente… sólo el hecho de que se dispare este error de reconstrucción ya estaría delatando el hecho de que estamos ante una anomalía.

Aplicaciones en videojuegos

Dentro de las cuestiones de ciberseguridad el caso más típicos es usar la detección de anomalías en la lucha contra las trampas (anti-cheat), cosa que puede hacerse detectando aimbots, speedhacks o modificación de paquetes de red mediante análisis de trayectorias o reconociendo casos de hipervelocidad en las entradas del jugador.

La economía in-game y el fraude es otra de las áreas de aplicación más claras: se pueden identificar duplicaciones de objetos (dupes), granjas de bots o transacciones fraudulentas con tarjetas de crédito.

Finalmente el mundo de la telemetría y la monitorización de servidores también se puede beneficiar de estas técnicas, detectando caídas de rendimiento, memory leaks o picos inusuales de latencia en la infraestructura multijugador, por ejemplo.

Más información

Para complementar es recomendable consultar otros documentos.