¿El permiso de desplazamiento en un sistema de archivos Unix es explotable por sí mismo, en ausencia de otros permisos / ACL?

1

Scenario/question:

Un árbol de directorios de Unix tiene NTFv4 ACL configuradas para permitir un recorrido de cuenta sin privilegios en todos los directorios (pero ningún otro ACL otorga más derechos sobre ningún archivo / directorio en cualquier lugar

En tal caso, ¿es completamente seguro otorgar universalmente el derecho de recorrido del directorio a todos ( setfacl everyone@:x:d:allow /path_to_mountpoint o similar), o puede ser explotado de alguna manera incluso a pesar de que no haya ningún otro ACL configurado?

Estoy pensando que en ausencia de cualquier otro permiso / ACL que permita otros derechos, esto debería dar como resultado la ausencia de cualquier derecho a leer, modificar o controlar cualquier objeto atravesado. Por lo tanto, el derecho de recorrido es válido, pero en la práctica es completamente inútil / estéril.

En este contexto, categorizo "explotar" estrictamente, e incluso la capacidad de listar archivos en un directorio (que no tenía otras ACL adicionales configuradas) contaría como "explotar" ya que es más que un simple recorrido. / p>

En ese sentido, ¿se pueden explotar las ACL transversales, o es un derecho "seguro" (incluso en el sentido de la privacidad de los archivos) para proporcionar cuentas no confiables / no privilegiadas / de invitado incluso en rutas que uno no quiere que hagan? uso de?

Explicación/utiliza:

Estoy pensando principalmente en el almacén de datos de un servidor de archivos en FreeBSD ZFS, pero creo que es similar en la mayoría de los Unixes.

El caso de uso es: supongamos que quiero que un usuario sin privilegios específico acceda solo a un directorio anidado específico dentro de mi directorio de datos. En lugar de establecer el recorrido para ese usuario en todos los directorios principales para llegar a ese camino, sería administrativamente más fácil si es seguro,

  1. Conceda derechos de recorrido universales a todos en el completo directorio de datos, heredado de todos los directorios, pero luego
  2. Controle el uso / acceso / escaneo reales configurando las ACL de lectura / escritura / modificación en los archivos + dirs que se les permite usar, mientras no establecen derechos, o deniegan explícitamente los derechos, en todos los demás bandera de ACL en todos los demás directorios / archivos (excepto "x" en los directorios).

Si no se puede explotar el recorrido, entonces el derecho de desplazamiento es estéril e inútil a menos que se combine con una ruta / archivo objetivo para el cual el usuario tenga otras ACL. Pero, ¿es correcto, o es sutilmente un vacío legal?

    
pregunta Stilez 14.04.2018 - 16:49
fuente

1 respuesta

2

La concesión de recorrido solo ( x permiso en directorios, y nada más) no permite que alguien haga mucho, pero crea algunos riesgos.

Con el permiso x en los directorios, un usuario puede verificar si existe un archivo. Sin el permiso r en el directorio, el usuario no puede enumerar los archivos, pero si adivinan un nombre de archivo, pueden probar si hay un archivo con ese nombre. Por lo general, esto no filtra muchos datos, pero puede ser una violación de la privacidad.

Más allá de esto, existe el riesgo de que algún archivo o directorio dentro del árbol no esté protegido. Es bastante común tener archivos legibles alrededor del mundo. Eso es seguro siempre y cuando estén bajo un directorio que los usuarios no autorizados no puedan atravesar. Si le otorga a todo el mundo el permiso de paso, todos podrán acceder a esos archivos legibles para todo el mundo. El mismo riesgo existe con los archivos de escritura mundial o de grupo.

En lugar de otorgar permiso de desplazamiento al directorio de nivel superior, es más seguro exponer los subdirectorios seleccionados. Como es habitual, es más seguro incluir en la lista blanca los datos públicos conocidos que en la lista negra de datos confidenciales conocidos. Puede exponer un subdirectorio de un directorio privado a través de un bind mount . En FreeBSD, puede crear un montaje de enlace con nullfs (incorporado) o bindfs (FUSE).

    
respondido por el Gilles 14.04.2018 - 22:30
fuente

Lea otras preguntas en las etiquetas