Unix: ¿es seguro dar acceso a un nuevo usuario a ssh y estar seguro de que no puede alterar el sistema?

1

Al crear un nuevo usuario en un sistema NetBSD nuevo (asumiendo que todos los scripts / programas / directorios tienen los permisos correctos), ¿puedo estar seguro de que el usuario no puede alterar el sistema de ninguna manera?

¿Es la producción lista como estándar? Con esto quiero decir que puedo crear un nuevo usuario con acceso SSH y estar seguro de que, de forma predeterminada, no pueden estropear el sistema (suponiendo que no haya días, o un exploit conocido).

Gracias por cualquier idea. Estoy realmente interesado en saber cómo proporcionar cuentas seguras en un sistema, ya que planeo crear un juego de piratería que requiera que el usuario tenga acceso a través de SSH.

    
pregunta BugHunterUK 05.05.2017 - 20:23
fuente

1 respuesta

2

Esto depende de lo que el usuario pueda hacer con el acceso SSH. Si está limitado a acciones específicas como scp / sftp, el reenvío de puerto seleccionado o la ejecución de comandos seleccionados, el riesgo puede ser pequeño. Si, en cambio, el usuario tiene acceso total a la shell, puede usar ataques locales de escalamiento de privilegios para elevar sus privilegios de un usuario normal a un usuario del sistema. Los errores que permiten que tales ataques sean detectados regularmente y algunos de ellos se esconden durante muchos años sin ser conocidos y reparados públicamente.

Además de estas escaladas de privilegios directas, un usuario con acceso de shell también puede conectarse a los servicios de red que están restringidos explícitamente al acceso externo y es posible que no estén bien protegidos debido a que el riesgo se considera bajo. Esto podría ser, por ejemplo, instalaciones de bases de datos locales con contraseñas inseguras y fáciles de forzar. Y, aparte de los sistemas locales, el usuario puede obtener acceso a los sistemas internos en la misma red que normalmente están protegidos desde el exterior mediante un firewall.

Y, por supuesto, un usuario con un shell de inicio de sesión podría agotar los recursos del sistema, como memoria, tiempo de CPU, E / S o espacio en disco, a menos que se establezcan límites específicos en la cuenta.

Estos son solo los problemas más obvios. Pero tenga en cuenta que la mayoría de estos también podrían hacerse desde un script PHP o un código del lado del servidor similar en control del usuario.

En resumen: si hay datos confidenciales en el sistema o en sistemas conectados y accesibles, no se proporciona una forma para que un usuario no confiable ejecute código arbitrario como un usuario sin privilegios. Esto implica acceso a la shell, pero también puede implicar el uso de sus propios scripts PHP o similares. Si se necesita dicha ejecución de código, puede intentar mitigar el riesgo agregando capas de seguridad adicionales, como cajas de arena, contenedores o similares, pero tenga en cuenta que estas restricciones tampoco son inquebrantables.

    
respondido por el Steffen Ullrich 05.05.2017 - 20:40
fuente

Lea otras preguntas en las etiquetas