Modelando un sistema de permisos


Respuestas:


156

Los modelos de seguridad son un campo de investigación amplio (y abierto). Hay una gran variedad de modelos disponibles para elegir, que van desde los más simples:

  • La matriz de control de acceso de Lampson enumera todos los objetos de dominio y todos los principales del sistema con las acciones que el principal puede realizar en ese objeto. Es muy detallado y si se implementa de esta manera, requiere mucha memoria.

  • Las listas de control de acceso son una simplificación de la matriz de Lampson: considérelo algo parecido a una implementación de matriz dispersa que enumera los objetos, los principales y las acciones permitidas, y no codifica todas las entradas "nulas" de la matriz de Lampson. Las listas de control de acceso pueden incluir 'grupos' como una conveniencia, y las listas se pueden almacenar a través de un objeto o de un principal (a veces, a través de un programa, como en AppArmor o TOMOYO o LIDS ).

  • Los sistemas de capacidad se basan en la idea de tener una referencia o puntero a objetos; un proceso tiene acceso a un conjunto inicial de capacidades y puede obtener más capacidades solo si las recibe de otros objetos del sistema. Esto suena bastante descabellado, pero piense en los descriptores de archivo de Unix: son una referencia infalsificable a un archivo abierto específico, y el descriptor de archivo se puede entregar a otros procesos o no. Si le da el descriptor a otro proceso, tendrá acceso a ese archivo. En torno a esta idea se escribieron sistemas operativos completos. (Los más famosos son probablemente KeyKOS y EROS, pero estoy seguro de que este es un punto discutible. :)

... a los más complejos, que tienen etiquetas de seguridad asignadas a objetos y principales:

  • Anillos de seguridad , como los implementados en CPUs Multics y x86, entre otros, y proporcionan trampas o puertas de seguridad para permitir que los procesos pasen entre los anillos; cada anillo tiene un conjunto diferente de privilegios y objetos.

  • Denning's Lattice es un modelo en el que los directores pueden interactuar con qué etiquetas de seguridad de una manera muy jerárquica.

  • Bell-LaPadula es similar a Denning's Lattice, y proporciona reglas para evitar la filtración de datos ultrasecretos a niveles no clasificados y las extensiones comunes proporcionan una mayor compartimentación y categorización para brindar un mejor apoyo de estilo militar.

  • El modelo Biba es similar a Bell-LaPadula, pero "se volvió de cabeza": Bell-LaPadula se centra en la confidencialidad, pero no hace nada por la integridad, y Biba se centra en la integridad, pero no hace nada por la confidencialidad. (Bell-LaPadula impide que alguien lea La Lista de todos los espías, pero felizmente permitiría que cualquiera escriba cualquier cosa en ella. Biba felizmente permitiría que cualquiera lea La Lista de todos los espías, pero prohibiría que casi todos escribieran en ella).

  • Type Enforcement (y su hermano, Domain Type Enforcement) proporciona etiquetas en principales y objetos, y especifica las tablas permitidas objeto-verbo-sujeto (clase). Este es el conocido SELinux y SMACK.

.. y luego hay algunos que incorporan el paso del tiempo:

  • Chinese Wall se desarrolló en entornos comerciales para separar a los empleados dentro de una organización que brinda servicios a los competidores en un mercado determinado: por ejemplo, una vez que Johnson ha comenzado a trabajar en la cuenta Exxon-Mobil, no se le permite el acceso a la cuenta BP. Si Johnson hubiera comenzado a trabajar en BP primero, se le negaría el acceso a los datos de Exxon-Mobil.

  • LOMAC y la marca de agua alta son dos enfoques dinámicos: LOMAC modifica los privilegios de los procesos a medida que acceden a niveles de datos cada vez más altos y prohíbe la escritura en niveles inferiores (los procesos migran hacia la "máxima seguridad"), y la marca de agua alta modifica las etiquetas en datos a medida que los procesos de niveles superiores acceden a ellos (los datos migran hacia la "máxima seguridad").

  • Los modelos de Clark-Wilson son muy abiertos; incluyen invariantes y reglas para asegurar que cada transición de estado no viole las invariantes. (Esto puede ser tan simple como una contabilidad de doble entrada o tan complejo como HIPPA ). Piense en las transacciones y las limitaciones de la base de datos.

Definitivamente vale la pena leer "Seguridad informática: arte y ciencia" de Matt Bishop si desea profundizar en los modelos publicados.


7
Excelente respuesta. LecturA INTERESANTE. Me pregunto dónde encaja este sistema demasiado simple, pero no tan infrecuente, en su lista: "De forma predeterminada, los invitados tienen el nivel 0, los usuarios registrados tienen el nivel 5, los administradores del sistema tienen el nivel 9. Cada acción tiene un nivel asociado, y solo puede ser realizado por alguien de ese nivel o superior ".
Oddthinking

1
@Oddthinking, ese modelo simple podría estar en varios :) pero la 'combinación' más simple es el modelo Ring. Como se implementó en el x86, tiene cuatro niveles, como en su ejemplo, y cada uno agrega operaciones que solo se pueden realizar con ese nivel de código o superior. (Lo que usted los llame es un problema ortogonal). Puedo imaginar fácilmente las implementaciones de ACL, Capability, Lattice, BLP y TE de este ejemplo también. No me sorprendería que los demás también pudieran implementar este modelo; pero la sencillez es una buena virtud. :)
sarnold

@Frank, ¡gracias! Mi ortografía es más que atroz, gracias por las capturas.
sarnold


Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.