Recomendaciones para cambiar el Shell predeterminado para las cuentas de servicio

14

Parece que la mayoría de los sistemas Linux usan /sbin/nologin o /bin/false como shell predeterminado para las cuentas de servicio. Muchas guías de fortalecimiento, como los puntos de referencia de CIS, recomiendan cambiar el shell predeterminado para estas cuentas a /dev/null . Si bien muchas recomendaciones tienen un anslysis adjunto, esta es una que nunca he visto justificada. ¿Qué preocupaciones están impulsando estas recomendaciones y qué amenaza intenta mitigar?

    
pregunta Scott Pack 27.07.2011 - 15:03
fuente

4 respuestas

14

La única razón técnica verdadera que conozco es la posibilidad de una sustitución de archivos maliciosa. Considere un atacante que encuentra una manera de escribir en archivos arbitrarios. Si pueden sobrescribir / sbin / nologin o / bin / false con una copia de / bin / bash, entonces es probable que puedan encontrar una manera de iniciar sesión como usuario del servicio y continuar elevando su privilegio desde allí.

Sin embargo, / dev / null no se puede reemplazar de forma trivial de esta manera, por varias razones:

  • Es un dispositivo, no un archivo plano
  • Todo lo que se escriba en él desaparecerá, por lo que una simple sobrescritura no funcionará
  • Si alguien lo reemplazó con / bin / bash, a su vez podría ser sobrescrito por uno de los muchos programas que usan / dev / null como un poco de hundimiento, lo que frustrará al atacante
  • Si alguien lo reemplazó, podría romper alguna funcionalidad del sistema de manera que alertará a los administradores de que algo está mal, mucho más que reemplazar 'nologin' o incluso 'false'.

También hay una razón no técnica, que es que muchos administradores están obligados por la tradición y / o los hábitos que aprendieron hace mucho tiempo, y / dev / null fue una vez una opción más común para este uso (soy bastante seguro / sbin / nologin no existía hace 20 años). Haz de eso lo que quieras.

    
respondido por el gowenfawr 27.07.2011 - 15:38
fuente
4

No soy un gurú de Linux, pero si comparo esto con las recomendaciones para cuentas de servicio en Windows, creo que esto es comparable a eliminar todos los privilegios, incluida la posibilidad de un inicio de sesión interactivo.
Probablemente sea solo una cuestión de minimizar la superficie de ataque / privilegio mínimo ...:

  

Si no lo necesita, apáguelo.

    
respondido por el AviD 27.07.2011 - 23:01
fuente
4

¡Gran pregunta! Que yo sepa, no hay justificación para este consejo. Por lo que yo sé, es un mal consejo; /bin/false o /sbin/nologin está bien. (Si me he perdido algo, espero saber qué es lo que he pasado por alto).

    
respondido por el D.W. 03.08.2011 - 09:12
fuente
3

El uso de / dev / null no generaría un registro de auditoría de seguridad de un intento de inicio de sesión interactivo no autorizado.

    
respondido por el Rodney Beede 06.06.2013 - 19:15
fuente

Lea otras preguntas en las etiquetas