¿La ACL predeterminada en Linux es una falla de seguridad?

2

Actualmente estoy aprendiendo el sistema Linux y tengo una pregunta sobre la ACL de Linux predeterminada.
En mi máquina virtual, todos los archivos creados se configuran con los permisos predeterminados de la siguiente manera:

-rw- rw- r--

De acuerdo con este nivel de permiso, cualquier otro usuario en el sistema podría ver el archivo recién creado conociendo la ruta y el nombre del archivo . Esto podría llevar a un ataque transversal típico del camino.
Aprovechar este ataque parece aún más fácil en los sistemas multiusuario.
Por ejemplo, un servidor donde todos los estudiantes usan los mismos nombres de carpetas para las mismas lecciones y los mismos nombres de archivo. Uno podría seguir adelante y crear un script que compruebe las creaciones de archivos en este directorio y obtener el contenido tan pronto como se cree.

Otro punto, algunas carpetas son comunes en cada directorio de inicio, generalmente la carpeta "Documentos".
Incluso con un directorio de inicio configurado de la siguiente manera:

-rwx --- ---

Todavía podemos acceder y leer el contenido que adivinamos. Soy consciente de que los ataques de trayectoria no son nuevos, pero mi pregunta es:

  • ¿Por qué los permisos no son más restrictivos?
  • ¿Qué podemos hacer para defendernos de esto, excepto chmoding cada nuevo ¿Creación de archivos incluso antes de agregarle contenido? (si no somos el usuario root)

Gracias por la ayuda

    
pregunta Mike 18.11.2014 - 00:00
fuente

2 respuestas

1

Primero, no hay "ACL estándar de Linux". Los permisos de archivo predeterminados pueden variar según el sistema y la distribución; La mayoría de las distribuciones de parecen tener permisos predeterminados de 644 o 664 , pero eso no es inherente al kernel de Linux, y el umask apropiado depende del sistema.

Más ampliamente: si los archivos se pueden leer de forma predeterminada en todo el mundo es un defecto de seguridad o no depende en gran medida de las amenazas específicas que le preocupan. Si los permisos predeterminados son legibles en todo el mundo, eso significa que todos los usuarios del sistema pueden leer archivos que no están marcados como privados. Eso no es necesariamente un error: en un entorno multiusuario, usted podría declarar de forma plausible que los usuarios normalmente compartirán archivos, y proporcionar un directorio ~/private/ por defecto para los archivos que no quieren compartido; De forma predeterminada, las personas pueden leer cualquier cosa directamente en el directorio de inicio, pero compartir en la otra cara es más fácil. Hay una compensación, que a menudo vale la pena hacer.

Además, los permisos predeterminados en archivos no cambian por carpeta. Si los usuarios desean mantener algunas cosas en privado y compartir otras, y no quieren chmod muchas cosas, tienes para establecer los permisos predeterminados permisivos. Luego, creas que ciertas carpetas que tienen material privado tienen permisos más restrictivos. No puedes hacer lo contrario; Si desea hacer posible que alguien tenga un directorio Public sin aprender chmod , básicamente tiene para implementarlo de esta manera. Es realmente fácil restringir el acceso a un archivo más allá de lo que está en sus permisos; No es posible otorgar el acceso más allá de sus permisos (tiene que cambiar los permisos).

Eso se debe a que estás equivocado cuando dices que un directorio de inicio 0700 no asegura nada. El acceso de una carpeta x bit controla dentro del directorio. Si un usuario no tiene permiso de ejecución en /example/directory/ , no podrá acceder a nada dentro de /example/directory/ . Incluso si saben que /example/directory/a es un archivo. Incluso si tienen permisos de lectura en ese archivo. Incluso si poseen ese archivo: no puede acceder a un archivo a menos que no solo tenga los permisos en ese archivo, sino que también tenga permisos de ejecución en todos directorios principales de ese archivo. La implicación es que puede asegurar un subdirectorio mucho más fácilmente de lo que puede hacer uno especialmente abierto.

En su caso, el directorio Documents es 700 ; Probablemente los otros directorios "fáciles de usar" (este es un término horrible para él, pero me refiero a cosas como Documents , Desktop , Downloads , Music , etc. utilizar para mantener sus archivos normales) son también. Siempre que almacene sus documentos allí y no en los subdirectorios personalizados de su directorio de inicio (o directamente en su directorio de inicio), nadie más tiene acceso. Su directorio de inicio está destinado a contener principalmente archivos de configuración que se espera que estén allí; la mayoría de los archivos personales están destinados a ir en un subdirectorio predeterminado (seguro). Si almacena cosas directamente en un directorio de inicio, son visibles, pero eso no es lo que su sistema operativo le está impulsando a hacer. Si crea un nuevo subdirectorio de ~ y lo quiere privado, establezca sus permisos en 700 ; si lo quiere público, configúrelo en 755 (si desea que las personas puedan acceder a los archivos solo si conocen el nombre, 711 ). Pero la expectativa es que tus cosas privadas no vayan directamente en ~ , y que los lugares a los que vayan tus documentos ya estén asegurados.

    
respondido por el cpast 18.11.2014 - 03:25
fuente
0

El comando umask le permite cambiar la máscara usada para la creación de archivos que cambia los permisos predeterminados.

Más detalles sobre los diferentes modos aquí: <     

respondido por el theterribletrivium 18.11.2014 - 02:34
fuente

Lea otras preguntas en las etiquetas