stringtranslate.com

Separación de privilegios

En programación y seguridad informática , la separación de privilegios es una técnica basada en software para implementar el principio de privilegio mínimo . 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.

Un método común para implementar la separación de privilegios es hacer que un programa de computadora se divida en dos procesos . El programa principal pierde privilegios y el programa más pequeño los mantiene para realizar una determinada tarea. Las dos mitades se comunican entonces a través de un par de enchufes . Por lo tanto, 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 una ID de usuario / ID de grupo real de la ID de usuario/ID de grupo efectiva , utilizando setuid (2)/ setgid (2) y llamadas al sistema relacionadas , que fueron especificadas por POSIX . Si se colocan incorrectamente, las brechas pueden permitir una penetración generalizada de 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 conocido . 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 una vez finalizada la sección crítica y, después de hacerlo, cambia el usuario con el que se ejecuta a una cuenta sin privilegios. Esta acción se conoce como eliminar root en sistemas operativos tipo Unix . La parte sin privilegios generalmente se ejecuta bajo el usuario " nadie " o una cuenta de usuario separada equivalente.

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

La separación de privilegios es una de las principales características de seguridad de OpenBSD . La implementación de Postfix se centró en implementar una separación integral de privilegios. Otro software de servidor de correo electrónico diseñado teniendo en cuenta la separación de privilegios y la seguridad es Dovecot . Solaris implementa un conjunto separado de funciones para el agrupamiento de privilegios .

Ver también

enlaces externos