No estaba seguro del título, así que edítalo si crees que se puede mejorar.
Ejecuto una red de juegos multijugador (el sistema backend que maneja las cuentas y las listas de jugadores, y quiero expandir mi servicio para incluir un panel de control basado en la web. Este panel de control permitirá a los usuarios alquilar servidores de juegos que son completamente compatible con mi red.
Los servidores de juegos se ejecutarán en un servidor dedicado separado. Por lo tanto, esto significa que los usuarios tendrán acceso a los archivos ejecutables de su servidor y podrán cambiarlos.
Eso presenta el problema obvio: archivos y acciones ejecutables maliciosos. Con eso quiero decir:
- El juego que admite el servicio tiene un archivo
autoexec.cfg
que se puede completar con la línea de comandos de Windows (que puede ejecutar el servidor); - El juego tiene modificaciones de servidor que en su mayoría requieren una DLL personalizada (otro ejecutable) para funcionar correctamente;
- Una cierta modificación del servidor requiere incluso que se cambie el propio ejecutable del servidor de juegos.
Debe tenerse en cuenta que el único acceso que tendrá el usuario es a través del panel de control web y FTP (que será su directorio de usuario, como user1 > server1
). No tendrán acceso a escritorio remoto.
¿Cómo puedo evitar daños causados por modificaciones de software / servidor malintencionados que los usuarios cargan? Tenga en cuenta que esto es diferente a un servidor web, ya que la superficie de ataque es más pequeña (solo se limita a los servidores de juegos que se ejecutan en la máquina y que hay un máximo de 20 servidores por máquina).
Esto es lo que puedo pensar, pero ¿hay algo más que pueda hacer?
- Una cuenta de usuario para cada usuario: permitirá la separación de los procesos del servidor de juegos para cada usuario (es fácil rastrear el proceso de un problema hasta un usuario);
- Limitando la cantidad de PID que cada usuario puede ejecutar : cada servidor de juegos debe tener un solo PID, por lo que, lógicamente, podemos limitar la cantidad de PID a la cantidad de servidores de juegos que tiene el usuario. Obviamente, esto no soluciona el problema de 'reemplazar con copia maliciosa';
- Permitir que el usuario solo acceda a los archivos en su carpeta;
- Requieren la aprobación manual de todos los ejecutables antes de que se apliquen;
- Escaneo de virus / malware en cada archivo cargado por el usuario
El sistema operativo será Windows Server 2008 (o 2012), cada servidor de juegos tendrá su propia dirección IP, ninguna otra aplicación se ejecutará en la máquina.