¿Por qué los archivos que no están asignados a un usuario se consideran un riesgo de seguridad? [duplicar]

86

De la Biblia de Linux, edición 9:

  

Los archivos que no están asignados a ningún nombre de usuario se consideran un riesgo de seguridad.

¿Cómo es esto posible y cómo podría ser explotado?

Editar: Mi pregunta no es un duplicado de la pregunta mencionada porque mi pregunta se centra en el proceso de creación del usuario en lugar de centrarse en el principio de privilegio mínimo.

    
pregunta AXANO 04.01.2018 - 02:25
fuente

1 respuesta

121

En un sistema Linux, puede eliminar fácilmente a un usuario sin tener que eliminar ningún archivo que sea propiedad de ese usuario. Dicho archivo permanecerá en su lugar y la ID de usuario del propietario del archivo (que se almacena como un atributo del inode ) permanece sin cambios . De esta manera, un archivo puede convertirse efectivamente en sin propietario.

Si luego creas un usuario con la misma ID, el usuario se convertirá automáticamente en el propietario de los archivos huérfanos anteriores. Así es como un usuario nuevo puede involuntariamente (o con intenciones maliciosas) convertirse en el propietario de archivos que no deberían poseer, lo que obviamente es malo para la seguridad.

Tenga en cuenta que userdel tiene un interruptor adicional para eliminar usuarios junto con sus archivos, pero solo eliminará los archivos de algunas ubicaciones fijas, como el directorio principal:

 -r, --remove
       Files in the user's home directory will be removed along with
       the home directory itself and the user's mail spool. Files
       located in other file systems will have to be searched for
       and deleted manually.

Es posible que desee utilizar find con el interruptor -nouser para descubrir archivos con un propietario inexistente:

 -nouser
    No user corresponds to file's numeric user ID.

Aquí hay una demostración rápida de Arch Linux.

Agreguemos un usuario alice y hagamos que sea el propietario de un archivo foo .

[root@box /]# useradd alice
[root@box /]# touch foo
[root@box /]# chown alice foo
[root@box /]# ls -l foo
-rw-r--r-- 1 alice root 0 Jan  5 02:59 foo

Ahora vamos a eliminar alice .

[root@box /]# userdel alice
[root@box /]# ls -l foo
-rw-r--r-- 1 1001 root 0 Jan  5 02:59 foo

ls no puede determinar el nombre del propietario y solo muestra el ID numérico del propietario 1001 . Ahora agreguemos un nuevo usuario bob .

[root@box /]# useradd bob
[root@box /]# ls -l foo
-rw-r--r-- 1 bob root 0 Jan  5 02:59 foo

Dado que a bob se le ha asignado el siguiente ID de usuario gratuito, ahora es automáticamente el propietario del archivo.

    
respondido por el Arminius 04.01.2018 - 02:41
fuente

Lea otras preguntas en las etiquetas