stringtranslate.com

Separación de privilegios

En programación y seguridad informática , la separación de privilegios ( privsep ) es una técnica basada en software para implementar el principio del mínimo privilegio . [1] [2] Con la separación de privilegios, un programa se divide en partes que se limitan a los privilegios específicos que requieren para realizar una tarea específica. Esto se utiliza para mitigar el daño potencial de una vulnerabilidad de seguridad informática.

Implementación

Un método común para implementar la separación de privilegios es que un programa informático se bifurque en dos procesos . El programa principal elimina los privilegios y el programa más pequeño los conserva para realizar una determinada tarea. Las dos mitades se comunican a través de un par de sockets . De este modo, cualquier ataque exitoso contra el programa más grande obtendrá un acceso mínimo, aunque el par de programas será capaz de realizar operaciones privilegiadas.

La separación de privilegios se logra tradicionalmente distinguiendo un ID de usuario / grupo real del ID de usuario/grupo efectivo , utilizando setuid (2)/ setgid (2) y llamadas de sistema relacionadas , que fueron especificadas por POSIX . Si estos están ubicados incorrectamente, los espacios pueden permitir una penetración generalizada en la red.

Muchos demonios de servicios de red tienen que realizar una operación privilegiada específica, como abrir un socket sin formato o un socket de Internet en el rango de puertos conocidos . Las utilidades administrativas también pueden requerir privilegios particulares en tiempo de ejecución . Este tipo de software tiende a separar los privilegios revocándolos por completo después de que se realiza la sección crítica y cambia el usuario bajo el que se ejecuta a una cuenta sin privilegios después de hacerlo. Esta acción se conoce como eliminar la raíz en sistemas operativos tipo Unix . La parte sin privilegios generalmente se ejecuta con el usuario " nobody " o una cuenta de usuario separada equivalente.

La separación de privilegios también se puede realizar dividiendo la funcionalidad de un solo programa en varios programas más pequeños y luego asignando los privilegios extendidos a partes específicas mediante permisos del sistema de archivos . De esa manera, los diferentes programas tienen que comunicarse entre sí a través del sistema operativo, por lo que el alcance de las vulnerabilidades potenciales es limitado (ya que una falla en la parte menos privilegiada no se puede explotar para obtener privilegios, sino simplemente para provocar un ataque de denegación de servicio ).

Ejemplos

Palomar

Otro software de servidor de correo electrónico diseñado con la separación de privilegios y la seguridad en mente es Dovecot . [3]

OpenBSD

La separación de privilegios es una de las principales características de seguridad de OpenBSD . [4] [5]

OpenSSH

OpenSSH utiliza separación de privilegios para garantizar que la creación de pseudoterminal ( pty ) ocurra en una parte segura del proceso, lejos de los procesos por conexión con acceso a la red. [6]

Sufijo

La implementación de Postfix se centró en implementar una separación integral de privilegios. [7] [8]

Solaris

Solaris implementa un conjunto separado de funciones para el horquillado de privilegios . [9]

Véase también

Referencias

  1. ^ Provos, Niels; Friedl, Markus; Honeyman, Peter (4 de agosto de 2003). "Prevenir la escalada de privilegios" (PDF) . Archivado (PDF) del original el 25 de marzo de 2023.
  2. ^ "Separación de privilegios". Plataforma de desarrollo de software QNX . 17 de mayo de 2024. Archivado desde el original el 14 de abril de 2024.
  3. ^ "Usuarios del sistema utilizados por Dovecot". doc.dovecot.org . 14 de agosto de 2024. Archivado desde el original el 30 de junio de 2024.
  4. ^ Obser, Florian (19 de febrero de 2023). «Eliminación de privilegios, separación de privilegios y modo operativo de servicio restringido en OpenBSD». sha256.net . Archivado desde el original el 6 de junio de 2024.
  5. ^ de Raadt, Theo (24 de septiembre de 2006). "Técnicas de mitigación de exploits". OpenBSD . Archivado desde el original el 15 de mayo de 2024.
  6. ^ Provos, Niels (9 de agosto de 2003). «Privilege Separated OpenSSH». Centro para la integración de tecnologías de la información . Archivado desde el original el 6 de agosto de 2024.
  7. ^ "Arquitectura Postfix". 2024. Archivado desde el original el 3 de agosto de 2024.
  8. ^ "Separación de privilegios". csail.mit.edu . 2022. Archivado desde el original el 23 de julio de 2024.
  9. ^ "Agrupamiento de privilegios efectivos". Guía confiable para desarrolladores de Solaris . 2010. Archivado desde el original el 14 de agosto de 2024.