¿Existe algún riesgo de seguridad que permita a los usuarios regulares de Linux ejecutar código arbitrario?

6

Me gustaría permitir que los usuarios que no son de confianza ejecuten aplicaciones de Node arbitrarias. Si utilizo iptables para bloquear todo excepto los servidores de confianza, hago que la carpeta de inicio de cada usuario solo sea visible para ellos, y use runuser para iniciar su servidor, ¿existe algún riesgo de que accedan a los datos de los demás?

Básicamente, solo crearé un nuevo usuario para la instancia, copiaré la aplicación en el directorio de inicio, lo chown / chmod it, y luego lo haré:

runuser -l their-user-name -c /usr/local/bin/node /users/their-user-name/server.js

Me doy cuenta de que pueden inundar la memoria / cpu / io. Y, obviamente, pueden abrir sus propios datos, pero aparte de eso ... ¿hay algún riesgo de seguridad que me falte?

Mi plan es usar iptables para permitir que cada usuario específico abra un servidor en un puerto específico, que solo puede recibir conexiones entrantes desde mi servidor nginx. Y luego permitir conexiones salientes a un servidor de base de datos de confianza.

    
pregunta Erik Pukinskis 11.01.2016 - 11:59
fuente

1 respuesta

4

Siempre existe algún riesgo y, en este caso, si el sistema no está endurecido internamente, puede ser trivial que un "usuario que sabe" o un mal actor acceda a los datos de otros usuarios en cuestión de minutos, si no de segundos.

En este caso, todavía tiene todos los problemas de escalamiento de privilegios locales y problemas de fortalecimiento de la seguridad local que podrían permitir que los usuarios locales se conviertan en root o ejecuten cosas como root o simplemente les den acceso completo a los datos de otros usuarios. En muchos sentidos, esto es mucho más difícil de proteger que intentar proteger un sistema desde el exterior. Dicho esto, no es que no pueda agregar muchos controles de seguridad para protegerse de los usuarios o que no se pueda hacer, pero requiere mucho más trabajo.

Puede ser conveniente considerar la configuración de un entorno chroot teniendo en cuenta que todavía es necesario fortalecer el sistema a partir de ataques internos. Del mismo modo, sería aconsejable enviar todos sus registros a un sistema remoto en caso de que el usuario aumente los privilegios, por lo que será más difícil para ellos ocultar esto.

Tenga en cuenta que puede haber formas más fáciles de resolver su objetivo final y que a veces vale la pena dar un paso atrás para ver dónde están todas las compensaciones de seguridad y lo que realmente está tratando de lograr.

Las siguientes guías de Linux Security Hardening pueden ser útiles. También es posible que desee ejecutar una herramienta similar a Nessus para analizar sus riesgos locales.

Puntos de referencia de seguridad CIS enlace

Guías de configuración de seguridad de los sistemas operativos NSA enlace

NIST sp800-123 Guía para la seguridad general del servidor enlace

Matt Brock Security Hardening en Ubuntu Server 14.04 enlace

Endurecimiento de la configuración de IPTables con tasas límite enlace

Fortalecimiento de la seguridad del servidor Linux enlace

Refuerzo de su pila TCP / IP contra las inundaciones de SYN enlace

Guía de IBM para el fortalecimiento de Linux enlace

    
respondido por el Trey Blalock 11.01.2016 - 15:42
fuente

Lea otras preguntas en las etiquetas