Cómo Setuid permite a los usuarios ejecutar archivos con privilegios escalados

Cuando ejecuta un archivo ejecutable en Linux, generalmente se ejecuta con el usuario actual y el ID de grupo. Sin embargo, hay ocasiones en las que necesita ejecutar ese archivo como otro usuario (como root). En lugar de cambiar su cuenta de usuario, puede utilizar setuid para ejecutar el ejecutable como propietario del archivo y no como usuario actual. Aquí explicaremos cómo funciona setuid y cómo permite a los usuarios ejecutar ejecutables / binarios con privilegios escalados.

¿Cómo funciona setuid?

Setuid significa SET ID de usuario en ejecución. Digamos que tenemos un ejecutable llamado “identidad” creado por el usuario root. Cuando lo ejecute, se ejecutará con su ID de usuario, ID de grupo y privilegios de usuario. Si el bit setuid se establece en el archivo de “identidad”, cuando lo ejecute, se ejecutará como el usuario root y sus privilegios de usuario.

Como ilustración, primero podemos verificar la propiedad del archivo de “identidad” y verificar que sea propiedad del usuario root. La cadena de permisos también muestra los bits ejecutables (x) establecidos para el usuario, el grupo y otros.

Permanente inicial Setuid

El usuario “john1” ejecuta el archivo de “identidad”, que se convierte en un proceso en ejecución. Como se muestra en la lista de procesos, el proceso se crea y se ejecuta con el nombre de usuario y la identificación de usuario “john1”.

Propietario de Setuid John Id

A continuación, como usuario root, establecemos el bit setuid del archivo de “identidad”:

“U” indica que setuid bit (+ s) debe establecerse solo para el usuario.

Conjunto de identidad Setuid

Para el propietario, en la parte ejecutable de la cadena de permisos podemos ver que “x” ha sido reemplazada por “s”. Siempre que encuentre “s” para un ejecutable, significa que el bit setuid se ha establecido en él.

La variante numérica del chmod El comando también se puede utilizar como se muestra a continuación.

La adición de 4 en la cadena de permiso numérico denota la inclusión del bit setuid.

Lo siguiente es lo que sucede cuando “john1” vuelve a ejecutar el archivo de “identidad”. Mirando la lista de procesos en ejecución, ahora podemos ver que el proceso es creado y ejecutado por el usuario “root” en lugar de “john1”.

Setuid John Ids Ownder

Uso importante del bit setuid

La mayoría de las veces escuchará a expertos que no debe ejecutar aplicaciones como usuario root. Sin embargo, hay casos en los que ciertos archivos deben ejecutarse con permiso de root. Por ejemplo, el passwd La utilidad que viene instalada de forma predeterminada en los sistemas Linux tiene el bit setuid configurado.

La razón es simple: la información de la contraseña de un usuario se almacena en archivos “/ etc / passwd” y “/ etc / shadow”, que solo pueden ser modificados por “root”. Cuando “john1” intente cambiar la contraseña por sí mismo, deberá tener permiso para modificar la información de los dos archivos mencionados anteriormente. Tener el bit setuid activado passwd permite que “john1” tenga temporalmente permisos de root para cambiar la contraseña del usuario y también actualizar la información en los dos archivos.

Riesgo de seguridad de Setuid

Si no tiene cuidado, un atacante puede aprovechar los binarios de setuid para controlar su sistema. Los usuarios normalmente no deberían tener instalados programas setuid, especialmente setuid para usuarios que no sean ellos mismos. Lo más importante es que no debe tener ningún binario habilitado con setuid para el usuario raíz en su carpeta de inicio. Suelen ser troyanos o malware.

Conclusión

Setuid solo se puede configurar en archivos ejecutables. Asimismo, el setgid bit también se puede configurar, lo que permite a todos los miembros de un grupo ejecutar un ejecutable con permisos de propietario.

Tenga en cuenta que setuid y setgid Los bits son sensibles a la seguridad y deben ser utilizados únicamente por administradores de sistemas calificados.

Leer siguiente:

¿Es útil este artículo?

¡Compártelo en redes!

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *