stringtranslate.com

Principio de privilegio mínimo

En seguridad de la información , informática y otros campos, el principio de privilegio mínimo ( PoLP ), también conocido como principio de privilegio mínimo ( PoMP ) o principio de autoridad mínima ( PoLA ), requiere que en una capa de abstracción particular de un En un entorno informático, cada módulo (como un proceso, un usuario o un programa, según el tema) debe poder acceder únicamente a la información y los recursos necesarios para su propósito legítimo. [1]

Detalles

El principio significa otorgar a cualquier usuario cuentas o procesos solo aquellos privilegios que son esencialmente vitales para realizar las funciones previstas. Por ejemplo, una cuenta de usuario con el único propósito de crear copias de seguridad no necesita instalar software: por lo tanto, solo tiene derechos para ejecutar copias de seguridad y aplicaciones relacionadas. Cualquier otro privilegio, como la instalación de software nuevo, está bloqueado. El principio se aplica también a un usuario de computadora personal que normalmente trabaja en una cuenta de usuario normal y abre una cuenta privilegiada protegida con contraseña sólo cuando la situación lo exige absolutamente.

Cuando se aplica a los usuarios , también se utilizan los términos acceso de usuario mínimo o cuenta de usuario con privilegios mínimos (LUA), en referencia al concepto de que todas las cuentas de usuario deben ejecutarse con la menor cantidad de privilegios posible y también iniciar aplicaciones con la menor cantidad de privilegios posible. posible.

El principio de (privilegio mínimo) es ampliamente reconocido como una consideración de diseño importante para mejorar y dar un "impulso" muy necesario a la protección de los datos y la funcionalidad contra fallas ( tolerancia a fallas ) y comportamiento malicioso .

Los beneficios del principio incluyen:

En la práctica, existen múltiples definiciones competitivas de verdadero (privilegio mínimo). A medida que la complejidad del programa aumenta rápidamente, también aumenta el número de problemas potenciales, lo que hace que un enfoque predictivo resulte poco práctico. Los ejemplos incluyen los valores de las variables que puede procesar, las direcciones que necesitará o el momento preciso en que se requerirán dichas cosas. Los sistemas de capacidad de objetos permiten, por ejemplo, diferir la concesión de un privilegio de un solo uso hasta el momento en que se utilizará. Actualmente, el enfoque práctico más cercano es eliminar los privilegios que pueden evaluarse manualmente como innecesarios o una opción que vale la pena mencionar y brindar el máximo razonamiento basado en la seguridad. Considere esto, en un entorno potencialmente malicioso, los infractores (hackers) necesitan tanto acceso a su infraestructura como sea posible. Por lo tanto, es lógico que en un caso dañino, si nos mantenemos alejados de nuestros dispositivos, corremos el riesgo de "declarar lo obvio", cuanto menos use su dispositivo, mayor riesgo correrá el usuario. El conjunto de privilegios resultante generalmente excede los verdaderos privilegios mínimos requeridos para el proceso.

Otra limitación es la granularidad del control que tiene el entorno operativo sobre los privilegios de un proceso individual. [4] En la práctica, rara vez es posible controlar el acceso de un proceso a la memoria, el tiempo de procesamiento, las direcciones de los dispositivos de E/S o los modos con la precisión necesaria para facilitar sólo el conjunto preciso de privilegios que requerirá un proceso.

La formulación original es de Jerome Saltzer : [5]

Cada programa y cada usuario privilegiado del sistema debe funcionar utilizando la menor cantidad de privilegios necesarios para completar el trabajo.

Peter J. Denning , en su artículo "Sistemas operativos tolerantes a fallos", lo sitúa en una perspectiva más amplia entre "Los cuatro principios fundamentales de la tolerancia a fallos".

Roger Needham analizó anteriormente las "asignaciones dinámicas de privilegios" en 1972. [6] [7]

Históricamente, la instancia más antigua de (menor privilegio) es probablemente el código fuente de login.c , que comienza la ejecución con permisos de superusuario y, en el instante en que ya no son necesarios, los descarta mediante setuid() con un argumento distinto de cero. como se demuestra en el código fuente de la versión 6 de Unix .

Implementación

El kernel siempre se ejecuta con privilegios máximos ya que es el núcleo del sistema operativo y tiene acceso al hardware. Una de las principales responsabilidades de un sistema operativo, particularmente un sistema operativo multiusuario, es la gestión de la disponibilidad del hardware y las solicitudes de acceso a él desde procesos en ejecución . Cuando el núcleo falla, los mecanismos mediante los cuales mantiene el estado también fallan. Por lo tanto, incluso si hay una manera de que la CPU se recupere sin un reinicio completo , se continúa aplicando la seguridad, pero el sistema operativo no puede responder adecuadamente al fallo porque no fue posible detectarlo. Esto se debe a que la ejecución del kernel se detuvo o el contador del programa reanudó la ejecución desde algún lugar de un bucle interminable y, generalmente, no funcional . [ cita necesaria ] Esto sería similar a experimentar amnesia (fallo en la ejecución del kernel) o estar atrapado en un laberinto cerrado que siempre regresa al punto de partida (bucles cerrados).

El principio de privilegio mínimo demostrado por los anillos de privilegios para Intel x86

Si la ejecución se recupera después del fallo al cargar y ejecutar código troyano , el autor del código troyano puede usurpar el control de todos los procesos. El principio de privilegio mínimo obliga al código a ejecutarse con el nivel de privilegio/permiso más bajo posible. Esto significa que el código que reanuda la ejecución del código, ya sea un troyano o simplemente una ejecución de código procedente de una ubicación inesperada, no tendría la capacidad de realizar procesos maliciosos o indeseables. Un método utilizado para lograr esto se puede implementar en el hardware del microprocesador . Por ejemplo, en la arquitectura Intel x86 , el fabricante diseñó cuatro "modos" de ejecución (anillo 0 a anillo 3) con grados graduados de acceso, muy parecidos a los sistemas de autorización de seguridad de las agencias de defensa e inteligencia. [ cita necesaria ]

Tal como se implementa en algunos sistemas operativos, los procesos se ejecutan con un conjunto de privilegios potencial y un conjunto de privilegios activo . [ cita necesaria ] Dichos conjuntos de privilegios se heredan del padre según lo determinado por la semántica de fork () . Un archivo ejecutable que realiza una función privilegiada (constituyendo así técnicamente un componente de la TCB y, concomitantemente, denominado programa o proceso confiable) también puede marcarse con un conjunto de privilegios. Esta es una extensión lógica de las nociones de establecer ID de usuario y establecer ID de grupo . [ cita necesaria ] La herencia de privilegios de archivos por parte de un proceso está determinada por la semántica de la familia exec () de llamadas al sistema . La forma precisa en que interactúan los privilegios de proceso potenciales, los privilegios de proceso reales y los privilegios de archivo puede volverse compleja. En la práctica, el privilegio mínimo se practica obligando a que un proceso se ejecute solo con los privilegios requeridos por la tarea. La adherencia a este modelo es bastante compleja y propensa a errores.

Principios similares

El concepto de los Criterios de evaluación de sistemas informáticos confiables (TCSEC) de minimización de la base informática confiable (TCB) es un requisito mucho más estricto que solo se aplica a las clases de garantía funcionalmente más sólidas, a saber. , B3 y A1 (que son evidentemente diferentes pero funcionalmente idénticos).

El privilegio mínimo se asocia a menudo con la clasificación de privilegios : es decir, asumir los privilegios necesarios en el último momento posible y descartarlos tan pronto como ya no sean estrictamente necesarios, reduciendo así ostensiblemente las consecuencias de un código erróneo que explota involuntariamente más privilegios de los que se merecen. El privilegio mínimo también se ha interpretado en el contexto de la distribución de permisos de control de acceso discrecional (DAC), por ejemplo, afirmando que otorgar al usuario U acceso de lectura/escritura al archivo F viola el privilegio mínimo si U puede completar sus tareas autorizadas solo con permiso de lectura.

Ver también

Referencias

  1. ^ Saltzer, Jerome H .; Schroeder, Michael D. (1975). "La protección de la información en los sistemas informáticos". Actas del IEEE . Instituto de Ingenieros Eléctricos y Electrónicos (IEEE). 63 (9): 1278-1308. doi :10.1109/proc.1975.9939. ISSN  0018-9219. OCLC  5871551104. S2CID  269166.
  2. ^ Jonatán, Clark; DABCC Inc. "El gurú de la virtualización escribe" El modo de usuario es algo bueno: implementación en cuentas bloqueadas sin elevación de seguridad"". Archivado desde el original el 10 de febrero de 2013 . Consultado el 15 de marzo de 2013 .
  3. ^ Aaron Margosis (agosto de 2006). "Problemas de privilegios: buscar y corregir errores de LUA". Microsoft .
  4. ^ "Matt Bishop, Seguridad informática: arte y ciencia, Boston, MA: Addison-Wesley, 2003. págs. 343-344 citado Barnum & Gegick 2005". Archivado desde el original el 20 de octubre de 2007 . Consultado el 17 de noviembre de 2007 .
  5. ^ Saltzer, Jerome H. (1974). "Protección y control del intercambio de información en multics". Comunicaciones de la ACM . 17 (7): 388–402. CiteSeerX 10.1.1.226.3939 . doi :10.1145/361011.361067. ISSN  0001-0782. S2CID  326132. 
  6. ^ Needham, RM (1972). "Sistemas de protección e implementaciones de protección". Actas de la conferencia informática conjunta de otoño de AFIPS '72, 5 al 7 de diciembre de 1972, parte I. págs. 571–578. doi :10.1145/1479992.1480073. S2CID  7371342.
  7. ^ Fred B. Schneider. "Menos privilegios y más" (PDF) .

Bibliografía

enlaces externos