Los
sistemas operativos comerciales implementan varias formas de control
de acceso discrecional en las cuales los usuarios pueden definir
la política de seguridad y/o asignar atributos de seguridad (por
ejemplo, la información de control de acceso a los archivos propios).
En general, los mecanismos DAC han probado ser útiles para definir
políticas de seguridad flexibles. Sin embargo, estos mecanismos
tienen una gran desventaja, sin importar la implementación específica
de que se trate, pues son susceptibles, por su propia naturaleza,
a ataques por medio de caballos de Troya. El aspecto más insidioso de los caballos
de Troya es que no requieren ni el descubrimiento ni el uso de
una falla de seguridad en el sistema operativo. Un ataque exitoso
de un caballo de Troya puede efectuarse utilizando únicamente
las funciones más deseables y perfectamente documentadas de un
sistema operativo absolutamente correcto. En general, una vez
que un caballo de Troya es ejecutado, la función oculta del programa
comienza a acceder toda la información a la que su ejecutante
tiene derecho, filtra los datos que no son de interés y envía
el resto a algún lugar accesible por el atacante. Tales acciones
le son posibles debido a que, para el sistema operativo, es un
proceso común y corriente accediendo archivos, abriendo conexiones,
solicitando recursos, etc. a nombre de cierto usuario legítimo
del sistema.
Además,
si el caballo de Troya es cuidadosamente programado y distribuido
no será considerado un virus. Como ejemplo basta el descripto
más arriba. Tal herramienta no será detectada como un virus por
ningún software anti-virus pues nadie la ha reportado como tal
y es muy difícil que alguien lo haga pues el programa no causa
ningún daño visible, ni intenta propagarse a otros sistemas o
programas; únicamente envía información fuera del sitio (cosa
que por otra parte se efectúa diariamente).
Dado
que los caballos de Troya pueden inutilizar cualquier mecanismo
DAC y que en la práctica es extremadamente costoso y difícil mantenerlos
fuera de su sistema, creemos que la verdadera solución, para mantener
niveles aceptables de confidencialidad, estriba en implementar
alguna forma de control de acceso obligatorio (MAC) a nivel del
sistema operativo. Una política de seguridad obligatoria es aquella
política de seguridad en la cual la definición de la política
y la asignación de atributos de seguridad están estrictamente
controladas por los administradores. La implementación de un esquema
de seguridad MAC altamente confiable, como la seguridad multi-nivel
(MLS), es uno de los objetivos básicos del proyecto.