Protección y verificación de la integridad de archivos en Oracle® Solaris 11.2

Salir de la Vista de impresión

Actualización: Julio de 2014
 
 

Permisos de archivo especiales mediante setuid, setgid y bit de permanencia

Tres tipos de permisos especiales están disponibles para archivos ejecutables y directorios públicos: setuid, setgid y bit de permanencia. Cuando estos permisos se establecen, cualquier usuario que ejecuta ese archivo ejecutable asume el ID del propietario (o grupo) del archivo ejecutable.

Debe ser extremadamente cuidadoso cuando define permisos especiales, porque los permisos especiales constituyen un riesgo de seguridad. Por ejemplo, un usuario puede obtener capacidades de root mediante la ejecución de un programa que establece el ID de usuario (UID) en 0, que es el UID de root. Además, todos los usuarios pueden establecer permisos especiales para archivos que poseen, lo cual constituye otro problema de seguridad.

Debe supervisar el sistema para detectar cualquier uso no autorizado de los permisos setuid y setgid con intención de obtener capacidades de superusuario root. Un permiso sospechoso concede la propiedad de un programa administrativo a un usuario en lugar de a root o bin. Para buscar y mostrar todos los archivos que utilizan este permiso especial, consulte Cómo buscar archivos con permisos de archivo especiales.

Permiso setuid

Cuando el permiso setuid se establece en un archivo ejecutable, se otorga acceso a un proceso que ejecuta este archivo según el propietario del archivo. El acceso no se basa en el usuario que está ejecutando el archivo ejecutable. Este permiso especial permite a un usuario acceder a los archivos y directorios que, normalmente, están disponibles sólo para el propietario.

Por ejemplo, el permiso setuid del comando passwd hace posible que los usuarios cambien contraseñas. Un comando passwd con permiso setuid sería de la siguiente manera:

-r-sr-sr-x   1 root     sys       56808 Jun 17 12:02 /usr/bin/passwd

Este permiso especial presenta un riesgo de seguridad. Algunos usuarios determinados pueden buscar una manera de mantener los permisos que se les otorgan mediante el proceso setuid, incluso después de que el proceso ha terminado de ejecutarse.


Notas - El uso de permisos setuid con los UID reservados (de 0 a 100) de un programa podría no establecer el UID efectivo correctamente. Utilice una secuencia de comandos de shell o evite el uso de los UID reservados con permisos setuid.

Permiso setgid

El permiso setgid es similar al permiso setuid. Se cambia el ID de grupo (GID) efectivo del proceso al grupo que posee el archivo y se le concede acceso a un usuario según los permisos que se otorgan a ese grupo. El comando /usr/bin/mail tiene permisos setgid:

-r-x--s--x   1 root   mail     71212 Jun 17 12:01 /usr/bin/mail

Cuando el permiso setgid se aplica a un directorio, los archivos que se crearon en ese directorio pertenecen al grupo al que pertenece el directorio. Los archivos no pertenecen al grupo al que pertenece el proceso de creación. Cualquier usuario que tiene permisos de escritura y ejecución en el directorio puede crear un archivo allí. Sin embargo, el archivo pertenece al grupo que posee el directorio, no al grupo al que pertenece el usuario.

Debe supervisar el sistema para detectar cualquier uso no autorizado del permiso setgid con intención de obtener capacidades de root. Un permiso sospechoso otorga acceso de grupo a tal programa a un grupo poco común en lugar de a root o bin. Para buscar y mostrar todos los archivos que utilizan este permiso, consulte Cómo buscar archivos con permisos de archivo especiales.

Bit de permanencia

El bit de permanencia es un bit de permiso que protege los archivos dentro de un directorio. Si el directorio tiene el bit de permanencia establecido, un archivo sólo puede ser suprimido por el propietario del archivo, el propietario del directorio o un usuario con privilegios. El usuario root es un ejemplo de un usuario con privilegios. El bit de permanencia impide que un usuario suprima los archivos de otros usuarios de directorios públicos, como /tmp:

drwxrwxrwt 7  root  sys   400 Sep  3 13:37 tmp

Asegúrese de definir el bit de permanencia manualmente al configurar un directorio público en un sistema de archivos TMPFS. Para obtener instrucciones, consulte el Example 1–5.