¿Cómo puedo reforzar un sistema contra acciones malintencionadas desde dentro?

1

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.

    
pregunta cybermonkey 22.09.2016 - 17:50
fuente

1 respuesta

1

Hay potencialmente información valiosa en libros sobre esto; No es un tema pequeño. Te daré un montón de ideas para comenzar.

Asegúrate de que Windows Update esté funcionando y aplicando actualizaciones.

Asegúrese de que su firewall esté encendido y configurado correctamente. No desea exponer SMB y RDP a través de Internet; Considere tener acceso al puerto RDP solo desde direcciones fijas.

Elimina todo el software que no estés utilizando. Esto incluye controladores propietarios que puede intercambiar de forma segura por los genéricos de Microsoft; a menudo estos están llenos de agujeros de seguridad.

Si está ejecutando un ecosistema de aplicaciones bastante homogéneo, le recomiendo que consulte la Política de restricción de software (SRP) y las soluciones de espacio aislado.

También puede instalar EMET para obtener una protección general contra las vulnerabilidades. Asegúrate de que realmente lo configuras.

Asegúrese de que su política de seguridad local esté configurada para endurecerse contra los ataques de usuarios cruzados (especialmente el endurecimiento de las DACL predeterminadas de los objetos del sistema).

Asegúrese de que los directorios tengan controles de acceso apropiados. Esencialmente desea eliminar todos los casos de permisos de directorio que permiten que los grupos Everyone o Authenticated Users tengan acceso de escritura.

Configure la auditoría en la creación de procesos, para que tenga un mejor seguimiento de lo que los usuarios están haciendo y cuándo. Aplique la auditoría de archivos (crear, escribir) a directorios compartidos y rutas críticas del sistema como C:\Windows . Audite los intentos de inicio de sesión y los éxitos, particularmente sobre RDP.

Sube el nivel de aplicación de UAC al máximo. Hay una gran cantidad de desvíos en UAC, y no desea que lo engañen para que ejecute algo que un usuario ha cargado y termine recibiendo un impulso inesperado. La mayoría de las omisiones requieren que el nivel de aplicación de UAC sea predeterminado.

Asegúrese de que la variable de entorno %PATH% de su sistema no incluya ninguna ruta que puedan escribir los usuarios.

Asegúrese de que los usuarios no tengan acceso RDP. Hay varias formas de endurecer esto.

Siga una guía para bloquear estaciones de trabajo. En el improbable caso de que alguien ingrese al servidor (por ejemplo, RDP en), usted desea que sus cuentas de usuario estén lo más nerificadas posible, sin acceso a la línea de comandos, el editor de registro, el administrador de tareas, la lista de servicios , etc. - esto también puede resolverse hasta cierto punto con SRP.

Cambie los registros de FTP y los registros de eventos del sistema (incluidos los registros de auditoría) fuera del sistema, en tiempo real si es posible. Desea tener copias de seguridad si alguien, de alguna manera, obtiene un administrador local y borra todos los registros.

Considere un sistema de detección de intrusos basado en host (HIDS) como OSSEC .

Mire los tutoriales de escalamiento de privilegios de Windows e implemente medidas de defensa para protegerse contra los trucos que utilizan.

    
respondido por el Polynomial 22.09.2016 - 23:18
fuente

Lea otras preguntas en las etiquetas