explotando setuid y setgid bit

2

Estaba leyendo material sobre codificación segura y en muchos lugares se menciona que no se usan los bits setuid y setgid para la escalada de privilegios. Estos son vulnerables y pueden llevar a problemas de seguridad. En su lugar, deberíamos ejecutar un proceso de ayuda dedicado que pueda hacer el trabajo, como launchd en osx. Entonces, mi pregunta es ¿cómo es setuid y setgid inseguro? ¿Y cómo puede ser explotado?

    
pregunta user775093 15.04.2015 - 01:43
fuente

2 respuestas

2

No son los bits los que son inseguros, pero si un atacante pudiera explotar una falla en un binario setuid / setgid, se produciría la ejecución del código bajo privilegios elevados. Entonces, al reducir el número o los binarios (y las líneas de código) que se ejecutan con privilegios elevados, está reduciendo la superficie de ataque.

    
respondido por el wireghoul 15.04.2015 - 02:31
fuente
1

La razón por la que un autor de software usaría suid / guid es porque algunas funciones del programa requieren acceso de root. Tomemos por ejemplo la utilidad ping. Para hacer toda esa comunicación ICMP, se necesita un socket en bruto. Abrir un socket en bruto requiere privilegios de root. Por lo tanto, el programa se construye como un binario suid / guid, comienza por abrir el socket sin formato y, inmediatamente después, deja de lado los privilegios de suid y guid.

La ejecución de este tipo de programas está bien siempre que pueda confiar en las personas o en la organización que escribió el programa; por ejemplo, puede confiar en la utilidad de ping que viene con una distribución importante de Linux o Unix. Si tiene el código fuente, puede leerlo usted mismo.

Los procesos auxiliares dedicados se ejecutan como root y tienen los mismos problemas de confianza que los binarios suid / guid. Mira quién escribió el ayudante y / o lee el código.

    
respondido por el bletxgh 15.04.2015 - 15:11
fuente

Lea otras preguntas en las etiquetas