¿Cómo modelaría un sistema que maneja permisos para realizar ciertas acciones dentro de una aplicación?
fuente
¿Cómo modelaría un sistema que maneja permisos para realizar ciertas acciones dentro de una aplicación?
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.
Prefiero RBAC . Aunque puede encontrarlo muy similar a ACL , pero difieren semánticamente .
fuente
Pasa por los siguientes enlaces:
fuente