Explotación de autenticación de juegos sociales

0

Estamos ejecutando un juego social popular y tenemos un problema de seguridad que se está volviendo más y más popular en estos días.

Tenemos los siguientes requisitos de productos:

  • No debe haber registro en el juego, solo es suficiente con dar permisos de Facebook (es decir, sin contraseña, validación de correo electrónico, etc.)
  • Los jugadores interactúan entre sí utilizando sus ID de Facebook con ámbito
  • Los servidores deben ser altamente escalables y admitir a millones de jugadores y CCU

Desafortunadamente, dado que la ID de Facebook es nuestra única forma de identificar a los jugadores, esto abre la siguiente vulnerabilidad:

  1. Mi amigo hizo algo que me molesta (puedo acceder fácilmente a su ID de Facebook / ID de ámbito)
  2. Creo varios usuarios de Facebook falsos
  3. A pesar de que estas cuentas falsas no son amigas de mi amigo, simplemente puedo enviar la identificación de la víctima al servidor y él lo permitirá, ya que no tenemos forma de saber esto en este momento.

La solución "obvia" sería cargar la lista de amigos del jugador en el servidor al iniciar sesión y almacenarla (de servidor a servidor es un gran no-no para nosotros + almacenar y cargar una gran cantidad de datos duplicados de la base de datos) - o cargar la lista de amigos en cada acción que interactúa con otros jugadores y asegurarse de que sean amigos (lo que provoca muchas, muchas más acciones de servidor a servidor).

Estamos buscando una solución a este problema que, al menos, hará que sea muy difícil utilizar este exploit, sin perjudicar nuestro rendimiento y escala.

    
pregunta Ron 10.05.2015 - 17:58
fuente

0 respuestas

Lea otras preguntas en las etiquetas