Seguridad de o = rwx con permisos Unix clásicos

8

¿Es de alguna manera inseguro ir o=rw o o=rwx en archivos y directorios ¿Se limita a los directorios marcados como o= ?

En otras palabras, dado el directorio de inicio privado ( g=,o= ), ¿es perfectamente seguro escribir todo con o=rw o o=rwx siempre y cuando todos los archivos sean confiables dentro de mi hogar?

(No estoy intentando configurar umask 0000 - Me doy cuenta de que eso abriría mis archivos /tmp , etc., pero estoy escribiendo un programa que quiere hacer esto, así que me gustaría saber si estoy haciendo algo estúpido.)

    
pregunta PSkocik 19.06.2016 - 16:07
fuente

2 respuestas

5

Esto no es directamente inseguro, siempre que estos archivos y directorios tengan el mismo propietario que el directorio principal, que no haya un enlace fijo que permita omitir los permisos del directorio principal y que no haya una excepción en el directorio principal permisos (como algunos ACL por ejemplo).

Sin embargo, todavía clasificaría esto como no prudente y no limpio, ya que esto es jugar con fuego. En algún momento en el futuro, probablemente debido a una modificación no relacionada vinculada a un software o proyecto no relacionado, las condiciones anteriores ya no se cumplirán, lo que abrirá la vulnerabilidad de la seguridad (y gracias a la ley de Murphy, puede suponer que esto sucederá en el peor de los casos). momento).

Al escribir software, nunca debe escribir código no seguro basándose en la suposición de que permanecerá protegido por capas de protección externas y, por lo tanto, nunca será explotable porque está "fuera de alcance". La seguridad debe concebirse como un todo en el que cada componente debe desempeñar su papel para garantizar una buena postura de seguridad general.

Entonces, mi respuesta es:

  • Para algunas pruebas ocasionales, lo más probable es que esto esté bien y no habrá ningún problema con esto,
  • ¡Para un desarrollo real, no hagas esto y utilices los derechos adecuados!
respondido por el WhiteWinterWolf 19.06.2016 - 16:52
fuente
3

Linux respeta el permiso del archivo en los sockets de dominio, pero hay implementaciones de Unix que ignorar permisos en el archivo de socket (por ejemplo, BSD, HP-UX). Un programa portátil que depende del permiso del sistema de archivos para la seguridad debe crear el socket en un directorio con el permiso deseado en lugar de establecer el permiso en el archivo socket.

También hay una serie de situaciones en las que las personas podrían acceder a un archivo (y, por lo tanto, a un socket de dominio) sin poder acceder a la carpeta principal. Estos generalmente requieren privilegios para la configuración inicial, pero pueden acceder a ellos sin privilegios posteriormente. Por ejemplo, si alguien tiene acceso a un montaje de enlace en una carpeta dentro de su directorio de inicio, entonces podría pasar por alto el permiso de su directorio de inicio ya que accederían a su carpeta a través de su ruta de montaje de enlace. Otro ejemplo es si el sistema está configurado con un mecanismo de permisos alternativo (por ejemplo, ACL), entonces otros usuarios pueden tener acceso a ese archivo a través de ese mecanismo de permisos alternativo, a pesar de un permiso de Unix restrictivo.

    
respondido por el Lie Ryan 19.06.2016 - 17:01
fuente

Lea otras preguntas en las etiquetas