security - Modelado de un sistema de permisos
permissions action (3)
¿Cómo modelaría un sistema que maneja permisos para llevar a cabo ciertas acciones dentro de una aplicación?
Los modelos de seguridad son un campo de investigación grande (y abierto). Hay una gran variedad de modelos disponibles para elegir, que van desde lo simple:
La matriz de control de acceso de Lampson enumera cada objeto de dominio y cada principal en el sistema con las acciones que el principal puede realizar en ese objeto. Es muy detallado y si realmente se implementa de esta manera, requiere mucha memoria.
Las listas de control de acceso son una simplificación de la matriz de Lampson: considérela como algo similar a una implementación de matriz dispersa que enumera objetos y principales y 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 por objeto o por medio del director (a veces, a través del programa, como en AppArmor o TOMOYO o LIDS ).
Los sistemas de capacidades se basan en la idea de tener una referencia o puntero a los objetos; un proceso tiene acceso a un conjunto inicial de capacidades, y puede obtener más capacidades solo al recibirlas de otros objetos en el sistema. Esto suena muy lejos, pero piense en los descriptores de archivos Unix: son una referencia imborrable a un archivo abierto específico, y el descriptor de archivo puede entregarse a otros procesos o no. Si le da el descriptor a otro proceso, tendrá acceso a ese archivo. Sistemas operativos completos fueron escritos alrededor de esta idea. (Los más famosos son probablemente KeyKOS y EROS, pero estoy seguro de que este es un punto debatible :)
... a los más complejos, que tienen etiquetas de seguridad asignadas a objetos y principales:
Anillos de seguridad , como implementados en Multics y CPU x86, entre otros, y proporcionan trampas o compuertas de seguridad para permitir que los procesos hagan la transición entre los anillos; cada anillo tiene un conjunto diferente de privilegios y objetos.
Denning''s Lattice es un modelo del cual los directores pueden interactuar con las 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 mejor soporte de estilo militar de ''necesidad de saber''.
El Modelo Biba es similar a Bell-LaPadula, pero ''se volvió cabeza'' - Bell-LaPadula se enfoca en la confidencialidad, pero no hace nada por la integridad, y Biba se enfoca en la integridad, pero no hace nada por la confidencialidad. (Bell-LaPadula impide que alguien lea La lista de todos los espías, pero con gusto permitiría que cualquiera escriba algo. Biba contenta permitiría que cualquiera leyera La lista de todos los espías, pero prohibió a casi todos que escribieran).
Tipo Aplicación (y su hermano, Aplicación de tipo de dominio) proporciona etiquetas en los principales y objetos, y especifica las tablas objeto-verbo-sujeto (clase) permitidas. Este es el familiar 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 de una organización que brinda servicios a los competidores en un mercado determinado: por ejemplo, una vez que Johnson comenzó a trabajar en la cuenta de Exxon-Mobil, no se le permite el acceso a la cuenta de BP. Si Johnson hubiera comenzado a trabajar en BP primero, se le denegaría el acceso a los datos de Exxon-Mobil.
LOMAC y high-watermark LOMAC son dos enfoques dinámicos: LOMAC modifica los privilegios de los procesos a medida que acceden de forma progresiva: niveles más altos de datos, y prohíbe escribir en niveles inferiores (los procesos migran hacia "la máxima seguridad") y High-watermark modifica las etiquetas de datos a medida que los niveles más altos de procesos acceden a él (los datos migran hacia la "máxima seguridad").
Clark-Wilson modelos Clark-Wilson son muy abiertos; incluyen invariantes y reglas para garantizar que cada transición de estado no viole las invariantes. (Esto puede ser tan simple como la contabilidad de doble entrada o tan compleja como HIPPA .) Considere las transacciones y restricciones de la base de datos.
La "Seguridad informática: arte y ciencia" de Matt Bishop definitivamente vale la pena leerla si desea profundizar en los modelos publicados.
Visita los siguientes enlaces:
Yo prefiero RBAC . Aunque, puede encontrarlo muy similar a ACL , pero difieren semánticamente .