Cada sistema se utiliza para un requisito de seguridad de reemplazo diferente. Los tres requisitos principales de seguridad son la confidencialidad, la integridad y la disponibilidad.
MAC admite un requisito de seguridad de confidencialidad más que los otros.
DAC admite el requisito de seguridad de disponibilidad más que los otros.
RBAC respalda el requisito de seguridad de integridad más que los otros.
hay otro ...
MAC toma decisiones basadas en el etiquetado y luego en los permisos.
DAC toma decisiones basadas solo en permisos.
RBAC toma decisiones basadas en funciones / roles.
Cuando el sistema o la implementación toman decisiones (si están programadas correctamente) aplicarán los requisitos de seguridad. Si usa el sistema incorrecto, puede hacerlo para hacer lo que quiera. Esto sucede con bastante frecuencia.
No se excluyen mutuamente excepto para DAC vs MAC.
Hay implementaciones de combinación DAC / RBAC, el mejor ejemplo de los roles y permisos de Active Directory.
RBAC: tiende a las bases de datos: un ejemplo clásico de donde no puede usar uno de los otros sistemas y RBAC debe usarse para el servicio al cliente y la facturación. Cuando llame a la compañía de cable para obtener su pago por evento, el representante de servicio al cliente le dirá que lo siento, permítame transferirlo a Facturación para que pueda pagar su factura vencida. Saben que tiene una factura vencida pero su función lo impide. de tomar directamente la información de su tarjeta de crédito. Cuando te transfieren a la facturación, pagas tu factura y dices que puedo tener mi servicio. Dicen: "Permítame devolverle la llamada. Veo que desea este servicio, pero esa no es mi función".
Por lo tanto, ambos roles pueden ver todos los datos (sin confidencialidad) pero solo pueden manipular los campos para los que tienen un conjunto particular de responsabilidades (integridad). -Puedes argumentar DAC: pero se ajusta a la regla de "más aún".
MAC: tiende a sistemas militares o implementaciones de requisitos de seguridad altamente definidas de forma muy limitada. 2 que se utilizan con bastante frecuencia TRusted-Solaris y LINUX-MAC kernel module (esto solía ser SELinux) hay otros pero no te importa. Uno de los elementos clave que solo aparece en MAC es una construcción de dominancia. Si tiene un nivel de autorización secreto, ninguna cantidad de permisos lo hará ver un documento de alto secreto.
En las entidades comerciales es raro que se necesite esta construcción. Pero muestra el segundo punto que es exclusivo de MAC: si una actividad no está específicamente permitida, entonces no puede hacerlo. (Esto rompe muchos usos comerciales principalmente debido a un cambio rápido en la misión o los requisitos del sistema)
Un excelente uso de MAC sería en un servidor web, donde escribiría una política personalizada (y esto se define de manera muy restringida para esa implementación) que indica que los procesos Core solo pueden ser ejecutados por la cuenta del sistema. Todos los procesos generados a partir de eso se requerirían con permisos específicos.
DAC: todos lo usan y la persona que tengo ante mí responde lo suficientemente bien.