Esto surgió en un comentario a otra pregunta y me encantaría que alguien me explicara los motivos.
Sugerí que Apache registrara los errores de un VHost determinado en el directorio de inicio de un usuario. Esto fue derribado porque era inseguro. ¿Por qué?
Pedí una aclaración en un comentario de respuesta, pero todo lo que obtuve fue que no es seguro tener la escritura raíz en una carpeta que no es propiedad de la raíz. De nuevo, ¿alguien podría explicarlo?
Gracias,
Bart
linux
security
permissions
Bart B
fuente
fuente
Respuestas:
Debido a que un usuario malintencionado puede intentar señalar maliciosamente que el archivo
root
está escribiendo en una ubicación diferente . Esto no es tan simple, pero realmente posible.Como ejemplo, si un usuario encontrara la manera de hacer un enlace simbólico desde el supuesto registro de Apache a, por ejemplo, / etc / shadow , de repente tendrá un sistema inutilizable. Apache (
root
) sobrescribiría las credenciales de sus usuarios haciendo que el sistema sea defectuoso.Si el usuario no puede escribir el archivo access.log , puede ser difícil secuestrarlo, ¡pero evitar la posibilidad es mejor!
Una posibilidad podría ser usar logrotate para hacer el trabajo , creando el enlace a un archivo que aún no existe, pero ese logrotate se sobrescribirá tan pronto como crezcan los registros:
Nota :
El método de enlace simbólico es solo uno de los posibles ataques, dado como prueba de concepto.
La seguridad debe hacerse con la mente de la Lista Blanca , no en la lista negra de lo que sabemos que es un problema.
fuente
+t
bit fijo), incluso si no tienen permiso de escritura en los archivos mismos (porque unlink () es una escritura en el directorio, no el archivo). Incluso si la raíz crea el archivo con anticipación, el propietario del directorio aún podría eliminarlo y reemplazarlo con un enlace simbólico a otra cosa.El principio general de no hacer que los procesos escriban en un directorio que no es de su propiedad o en el que no confía es bueno. Pero en este caso particular, es razonable confiar en que el código de Apache abre el registro con
O_NOFOLLOW
etc: iniciar sesión en el directorio de inicio de un usuario es una configuración común.fuente