Tesis Doctoral 1
Núcleo de Seguridad para unSistema Operativo Orientado a Objetos Soportado por una Máquina Abstracta
Autora: Mª Ángeles Díaz Fondón
Director: Juan Manuel Cueva Lovelle
Departamento de Informática
Universidad de Oviedo
Tesis Doctoral
Tesis Doctoral 2
Tesis Doctoral
Índice
• Objetivos y Organización• Fase 1: Estado del arte• Fase 2: Análisis de requisitos• Fase 3: Estudio de los sistemas relevantes• Fase 4: Elaboración del núcleo de seguridad• Fase 5: Demostración de la idea• Conclusiones
Tesis Doctoral 3
Objetivos y Organización de esta Tesis
Desarrollo de un núcleo básico de seguridad (mecanismo de protección) para un Sistema Integral Orientado a Objetos (SIOO) con máquina abstracta,permitiendo cooperación segura entre objetos.
• Cumplimiento requisitos de diseño de mecanismos de seguridad y específicos de SIOO
• Protección total, homogénea y a nivel de métodos• Solución más elegante y completa de necesidades de protección de un
SIOO• Rendimiento adecuado
Objetivos Básicos– Uniformidad, Flexibilidad, Integración en el modelo
Tesis Doctoral 4
Objetivos y Organización de esta Tesis
• Fases del desarrollo
FASE IEstado del
Arte
FASE IIAnálisis deRequisitos
FASE IVElaboración del
núcleo deseguridad
FASE VDemostración de la
idea
FASE IIIEstudio desistemas
relevantes
Tesis Doctoral 5
Tesis Doctoral
Índice
• Fase I: Estado del arte
• Objetivos y Organización
• Fase II: Análisis de requisitos• Fase III: Estudio de los sistemas relevantes• Fase IV: Elaboración del núcleo de seguridad• Fase V: Demostración de la idea• Conclusiones
Tesis Doctoral 6
Fase I: Estado del arte
Necesidad de un Sistema Integral OO
• Tendencia hacia Sistemas Distribuidos• Desadaptación de impedancias con el uso de TOO
– Base hardware convencional
– Sistemas Operativos convencionales
• Necesidad de comunicación entre espacios de direcciones
• Necesidad de comunicación entre modelos de objetos• Soluciones aportadas con capas intermedias de
adaptación
Tesis Doctoral 7
Fase I: Estado del arte
Sistema Integral Orientado a Objetos
Mundo de objetos homogéneos, virtualmente infinito en
espacio y tiempo, independientes de la localización, con
soporte exclusivamente OO.
Entorno de computación
Tesis Doctoral 8
Fase I: Estado del arte
Soluciones de seguridad existentes
• Heterogeneidad de protección– Uso de diversos mecanismos
– Base de Computación fiable(BCF) grande
– “Agujeros” por interacciónno prevista entre mecanismos
• Inseguridad en distribución– Falta de protección para la
interoperabilidad de objetos distribuidos
– Pocas y malas soluciones de seguridad
Seguridad
SeguridadSeguridad SeguridadSeguridad
Otros
Sistema Operativo
G. Ficheros
G. Memoria
G. E/S
Interfaz del sistema
Tesis Doctoral 9
Fase I: Estado del arte
Seguridad en un SIOO
• Núcleo de seguridad homogéneo
Otros
Sistema Operativo
G. Ficheros
G. Memoria
G. E/S
Interfaz del sistema
Seguridad
Proceso i Proceso j Proceso k
Tesis Doctoral 10
Fase I: Estado del arte
Conceptos Generales
• Aspectos de la seguridad de un sistema– Seguridad en el acceso al sistema– Seguridad en el uso de recursos y servicios– Seguridad en el uso de redes
• Separación entre seguridad y protección– Política: Establece qué accesos son permitidos – Mecanismo: Proporciona cómo se controlan los accesos
(Protección)
• Objetivo: Búsqueda de mecanismo de control de acceso a recursos y servicios (objetos en un SIOO)
Tesis Doctoral 11
Fase I: Estado del arte
Problemas relativos a la seguridad
• Problema de la fuga de información
– 4 casos, dependiendo de:• Existencia o no de canal de comunicación entre servidor y espía
• Compinchamiento o no entre servidor y espía
?servidor
cliente
espía
datos
pose
e
Desearía que
espía
Desearía que
espía ?
Desearía que
espía
trans
fiere
Tesis Doctoral 12
Fase I: Estado del arte
Problemas relativos a la seguridad
• Denominaciones de problemas de fuga– Defensa perimetral (canal no, compinches no)– Representante confuso (canal sí, compinches no)– Confinamiento (canal no, compinches sí)– Conspiradores en comunicación (canal sí, compinches sí)
• Denominaciones clásicas de los problemas– Delegación y sospecha mutua– Confinamiento y Propagación
• El problema de la Revocación
Tesis Doctoral 13
Fase I: Estado del arte
Modelos de control de acceso
• Modelo de Matriz de Acceso (discrecional)– Listas de control de
acceso (LCA)
– Capacidades
– Modelo mixto
• Modelo Take Grant• Modelo de flujo de información
sujetos
objetos
i
j
Permisos del sujeto i sobreel objeto j M[i,j=(rwx)
Tesis Doctoral 14
Tesis Doctoral
Índice
• Fase II: Análisis de requisitos
• Objetivos y Organización• Fase I: Estado del Arte
• Fase III: Estudio de los sistemas relevantes• Fase IV: Elaboración del núcleo de seguridad• Fase V: Demostración de la idea• Conclusiones
Tesis Doctoral 15
Fase II: Análisis de Requisitos
Requisitos del mecanismo básico
1- Plataforma de desarrollo SIOO
Requisitos de la plataforma [Álv98]– Uniformidad conceptual en torno a la OO
– Modo de trabajo exclusivamente OO
– Homogeneidad de objetos
– Transparencia
– Heterogeneidad y portabilidad
– Seguridad, Concurrencia
– Multilenguaje/Interoperabilidad
– Flexibilidad
Tesis Doctoral 16
Fase II: Análisis de Requisitos
Requisitos del mecanismo básico
-Arquitectura SIOO– Máquina abstracta
reflectiva OO• Modelo único de objetos
del sistema
– Sistema Operativo OO• Conjunto de objetos
normales• Transparencia: persistencia, concurrencia, distribución
– Espacio único de objetos sin separación usuario/sistema– Extensibilidad: OO, modificación máquina, funcionalidad
clases básicas, reflectividad
Reflejo de la máquina
Sistema operativo Usuario
Entorno de computación
Tesis Doctoral 17
Fase II: Análisis de Requisitos
Requisitos del mecanismo básico
2- Requisitos de protección– Uniformidad en la protección
• Igual protección para todos los objetos
– Protección de granularidad fina• A nivel de métodos individuales
– Flexibilidad• Base de diferentes políticas sobre el núcleo básico
– Movilidad• No deben producirse restricciones de movilidad de objetos
– Uniformidad en la orientación a objetos• No introducir abstracciones adicionales
Tesis Doctoral 18
Fase II: Análisis de Requisitos
Requisitos del mecanismo básico
3- Principios básicos de diseño (Saltzer y Shroeder 1975)
– Mínimo Privilegio• Permitir lo estrictamente necesario
– Ahorro de Mecanismos• Sencillez de conceptos, diseño e implementación
– Aceptación por el usuario
– Mediación Total• Ninguna operación escapa al control de seguridad
– Diseño Abierto
Tesis Doctoral 19
Tesis Doctoral
Índice
• Fase 3: Estudio de los sistemas relevantes
• Objetivos y Organización• Fase I: Estado del Arte
• Fase III: Estudio de los sistemas relevantes• Fase IV: Elaboración del núcleo de seguridad• Fase V: Demostración de la idea• Conclusiones
Tesis Doctoral 20
Fase III: Estudio de Sistemas Relevantes
Resumen de características
núcleo de AmadeusLCA
ámbito origen ámbito final
proceso
op, capacidad
servidor
direcciones de servidores núcleo de Amoeba
• Sistemas con soporte para modelo de objetos e interoperabilidad
proceso Objeto
Núcleo deMungi
Tabla deObjetos
Mecanismo deprotección
cap
INCONVENIENTES• Falta de Uniformidad, Flexibilidad, Mínimo privilegio y Mediación total
• Sistemas Distribuidos, basados en objetos, de grano grueso
• Sistemas para gestión de MGP
Tesis Doctoral 21
Fase III: Estudio de Sistemas Relevantes
Modelo de Seguridad en Java
Caja de arena (JDK 1.0-1.1)
Total acceso a losrecursos de la MV. Java
Caja de arenaAcceso restringido
a los recursos
Gestor de Seguridad
Recursos del sistema
Código Local Código RemotoCódigofirmado
fiable
• Código local / Código remoto
• Firmas digitales = código local
SecurityManager
FileInputStream
Bar
null
null
AppletClassLoader
PILA DE EJECUCIÓN
CLASE CARGADOR
Control de acceso
Introspección en pila
• El control se realiza en función del cargador
• Inconvenientes: Inflexibilidad y sin mínimo privilegio
Tesis Doctoral 22
Fase III: Estudio de Sistemas Relevantes
Modelo de Seguridad en Java
Dominio deprotección A
Dominio deprotección B
Permisos
Permisos
A.Class
B.Class
C.Class
D.Class
Clases cargadas con elClassLoader
Política de Seguridad
Arquitectura seguridad (JDK 1.2)
• La política asocia clases con dominios
FileInputStream
Bar
Foo
System
Dominio 1
Dominio 2
PILA DE EJECUCIÓN
CLASE DOMINIO DE PROTECCIÓN
Permisos
SecurityManager System
Permisos
Control de acceso: Introspección en pila • En las operaciones peligrosas se llama al controlador de acceso
• Con introspección (1.2) se comprueban permisos (intersección dominios)
Tesis Doctoral 23
Fase III: Estudio de Sistemas Relevantes
Inconvenientes de Java
– Base de computación fiable muy grande y compleja
– Granularidad no al nivel de objetos individuales
– Falta de uniformidad y generalidad del mecanismo: responsabilidad del usuario en la implementación de la protección
– Falta de flexibilidad para introducir protección a posteriori ¿?
– Falta de adaptabilidad. Mecanismo “pesado”¿?
– Sin mediación total
– Aceptación difícil por el usuario
Tesis Doctoral 24
Tesis Doctoral
Índice
• Fase 4: Elaboración del núcleo de seguridad
• Objetivos y Organización• Fase 1: Estado del arte• Fase 2: Análisis de requisitos• Fase 3: Estudio de los sistemas relevantes
• Fase 5: Demostración de la idea• Conclusiones
Tesis Doctoral 25
Fase IV
Elaboración del Núcleo de Seguridad
Aspectos en que se divide el desarrollo de la idea
2- Diseño del modelo
3- Diseño del mecanismo de comprobación de acceso
1- Elección del modelo de protección
Tesis Doctoral 26
Fase IV: Elaboración del núcleo de seguridad
Elección del Modelo de Protección
• Análisis de modelos existentes– Modo de trabajo– Cumplimiento de requisitos– Comportamiento respecto a problemas de seguridad
• Modelos– Listas de Control de Acceso– Capacidades– Modelo Mixto– Retículo, Introspección de pila
• Elección de Capacidades: modelo más adecuado
Tesis Doctoral 27
Elección del Modelo de Protección
Análisis de Listas de Control de Acceso
sujetos
objetos
i
jLCA
{...(A,rw-)(B,--x)...( X,r--) ...}
Cliente Servidor1:oper(w,..)2:buscar( B,w)
Denegado 3
4Denegado
• Control de acceso a través de la búsqueda en una lista de clientes
• En un SIOO cada objeto (recurso) llevará asociada una LCA• En un sistema discrecional cada objeto puede añadir clientes
a su LCA a voluntad
Tesis Doctoral 28
Elección del Modelo de Protección
Análisis de Listas de Control de Acceso
• Problema: Falta de escalabilidad– En espacio, tiempo, movilidad de objetos
• Intento de reducción de problemas escalabilidad– Del número de listas: agrupación en ámbitos (Guide)
– Del número de entradas de cada lista: grupos (Unix)
Sistema de ComputaciónSistema de Computación Ámbito
B1 LCA
B2 LCA
Br LCA
A1 LCA
A2 LCA
An LCA
X1 LCA
X2 LCA
Xk LCA
LCA
A1
A2
An
LCA
B1
B2
Bn
LCA
X1
X2
Xn
Objeto
A1->PA1A2->PA2
...An->PAnB1->PB1B2->PB2
...Br->PBrX1->PX1X2->PX2
...XK->PXk
Objeto
UA->PUAUB->PUB
...UX->PUX
LCA
LCA
Tesis Doctoral 29
Elección del Modelo de Protección
Análisis de Listas de Control de Acceso
Problemas de la reducción: disminuye la seguridad– Mediación parcial con la creación de ámbitos
– Sin mínimo privilegio con la creación de grupos.
Otros problemas de las LCAs– Dominio de protección asociado al usuario– Dependencia entre objetos– Sobrecarga del mecanismo de protección
• Comprobación única primer acceso: imposible revocar (Unix)
– Complejidad
– No soluciona el problema del confinamiento
Tesis Doctoral 30
Elección del Modelo de Protección
Análisis de Capacidades
sujetos
objetos
i
j
ServidorCliente 1:oper(w,(S,--x)...)
2Denegado(S,--x)
Capacidad
• Control de acceso a través de “entrada” o “llave” al servidor
• Capacidad: Token que da autoridad para realizar operaciones sobre los objetos
Tesis Doctoral 31
Elección del Modelo de Protección
Análisis de Capacidades
• Independencia entre objetos respecto al mecanismo.• Control anónimo a la identidad del poseedor.
– Facilita la distribución – Facilita la escalabilidad en espacio y tiempo– Posibilita el control de grano fino– Facilita la movilidad
• Integración en el modelo de objetos– Transmisión de capacidad en el intercambio de mensaje
• Flexibilidad: independencia del concepto usuario
Tesis Doctoral 32
Elección del Modelo de Protección
Análisis de otros modelos
• Modelo Mixto– Inconvenientes de las LCA
• Modelo reticular– Control no discrecional
– Exclusivo de ámbitos especializados
• Introspección de pila– Específico de una implementación particular. No
portable
Tesis Doctoral 33
Elección del Modelo de Protección
Elección de Capacidades
• Adaptación capacidades como mecanismo protección– Adecuado para un SIOO
• Objetos como entidades autónomas y autocontenidas
– Adecuado para un Sistema Distribuido
– Protección a nivel de cualquier granularidad
• Capacidades modelo idóneo– Integración en el modelo de objetos
Tesis Doctoral 34
Elección del Modelo de Protección
Capacidades: Conceptos Generales
• Qué es una capacidad– Una referencia a un objeto junto con un conjunto de
permisos sobre las operaciones de ese objeto.
La posesión de una capacidad es condición necesaria y suficiente para tener acceso al objeto al que se refiere
Objeto
Op1
Op2
Op3
...
Opn
Cap
acid
ad
Tesis Doctoral 35
Elección del Modelo de Protección
Capacidades: Conceptos Generales
• Modo de Operación
1 0 0 1
Mecanismode
ProtecciónObjetoX.op1, capacidad
(1)(2)
(3)
ObjetoX.op1ObjetoXObjetoY
1 0 0 1 1 1 1 1
• Problema: evitar la falsificación
Tesis Doctoral 36
Elección del Modelo de Protección
Capacidades: Conceptos Generales
• Implementación de capacidades– Etiquetado Hardware y Segregación (zona protegida)– Capacidades dispersas (encriptadas)
• Flexibilidad estructuras usuario vs. esfuerzo control falsificación
• Permisos sobre los métodos– Todo/nada (acceso total o acceso denegado)– Número fijo de permisos (métodos a proteger)
• Permisos relativos a la propia capacidad– Copia, eliminación de instancias, eliminación de
capacidades
Tesis Doctoral 37
Elección del Modelo de Protección
Capacidades: Conceptos Generales
• Operaciones intrínsecas a las capacidades– Restricción de permisos (mínimo privilegio)– Copia de capacidad, creación de capacidades, incialización,
revocación.
• Implantación del Mecanismo– En el Sistema Operativo– En los servidores de usuario
• sin mediación total, responsabilidad del usuario
– En el compilador y soporte en tiempo de ejecución• Dependencia de un lenguaje y posibilidad de agujeros en espacio de
usuario
Tesis Doctoral 38
Elección del Modelo de Protección
Capacidades: Conceptos Generales
• Puntos a favor de las capacidades– Denominación y protección combinadas
– Independencia cliente/servidor
– Eficiencia, simplicidad
– Flexibilidad, escalabilidad
• Inconvenientes de las capacidades– Control de la propagación (también con LCA)
• Solución: Monitor de referencia (análisis invocaciones)
– Revisión y revocación de permisos• Solución: Indirección con fachadas
Tesis Doctoral 39
Fase IV
Elaboración del Núcleo de Seguridad
Aspectos en que se divide el desarrollo de la idea
1- Elección del modelo de protección
3- Diseño del mecanismo de comprobación de acceso
2- Diseño del modelo de protección
Tesis Doctoral 40
Diseño del Modelo de Protección
Diseño de las Capacidades
Nuevo tipo de capacidades:
Orientadas a Objetos• Se integra la información de protección con las referencias
a objetos de la máquina abstracta
• Combina las ventajas de lostipos existentes, evitando susinconvenientes– Protección automática de
capacidades
Identificación delobjeto
sobre elobjeto
Permisos
Identificación delobjeto
Permisos
Referencia de lamáquina
CapacidadNueva referencia de la máquina
Tesis Doctoral 41
Diseño del Modelo de Protección
Diseño de las Capacidades
Permisos sobre los métodos que portan las capacidades:
Número de permisos variable– Tantos como métodos tenga el objeto
Permisos relativos a la propia capacidad:
Salto de protección• Equivale a tener todos los permisos: comprobación no necesaria
– Optimización de llamadas a objetos no compartidos
– Alivia la sobrecarga de protección
– Activado inicialmente en la creación de un objeto
Tesis Doctoral 42
Diseño del Modelo de Protección
Diseño de las Capacidades
Operaciones intrínsecas a las capacidades
Restricción de capacidades– Operación Restringir <capacidad> <método>
• Única funcionalidad exclusiva de la protección• Elegida por su sencillez frente a uso de máscara• Implantada como instrucción de la máquina o como método de la clase
raíz
– Resto de operaciones sobre capacidades• Las ya existentes para las referencias
– No se incorpora directamente la revocación• Posibilidad de extender el sistema incluyéndola si fuera preciso (fachadas)
Tesis Doctoral 43
Fase IV
Elaboración del Núcleo de Seguridad
Aspectos en que se divide el desarrollo de la idea
1- Elección del modelo de protección
2- Diseño del modelo de protección
3- Diseño del mecanismo de comprobación de acceso
Tesis Doctoral 44
Diseño del Mecanismo de control de acceso
Comprobación de permisos
Diseño del mecanismo de comprobación de permisos:
Implementación en la máquina abstracta– Otras implementaciones descartadas por inconvenientes
– Se ajusta a la integración con el paso mensajes: Máquina• Ahora además comprobará los permisos en la referencia
– Mediación total: todas las operaciones controladas• El paso de mensajes es la única forma de operar en el sistemas
– Referencias son abstracciones del sistema• Permite número variable de permisos igual al de métodos del objeto
Tesis Doctoral 45
Diseño del Mecanismo de control de acceso
Comprobación de permisos
cliente ¿Permiso?Si
No
Protección
Servidor
Invocaciónde métodos
Excepción
Operación Operación
Integración con la invocación de métodos
Tesis Doctoral 46
Fase IV: Elaboración del núcleo de seguridad
Resumen del Diseño
• Uso de capacidades para la protección: control de acceso discrecional
• Nuevo tipo de capacidades: Capacidades Orientadas a Objetos Fusión de las capacidades y las referencias a objetos de la máquina
• Diseño de las capacidades: Capacidades Orientadas a Objetos Permisos al nivel de métodos individuales de los objetos Número variable de permisos (tantos como métodos tenga el objeto) Permisos relativos a la propia capacidad: Salto de protección (Todos los
permisos activos, no se necesita comprobar) Operaciones intrínsecas a las capacidades: Restricción de métodos
• Diseño del mecanismo: implantación en la máquina abstracta Integración de la comprobación en el mecanismo de envío de mensajes de
la máquina
Tesis Doctoral 47
Fase IV: Elaboración del núcleo de seguridad
Ventajas del Modelo diseñado
1- Cumplimiento de los principios básicos de diseño– Mínimo privilegio
• Granularidad fina de protección: métodos individuales desde objetos individuales
– Ahorro de mecanismos: robustez• Sencillez conceptual y de implementación (menos agujeros por
errores)
– Aceptación• Misma semántica del sistema anterior
– Mediación total• Todas las operaciones (invocaciones) son controladas
– Diseño abierto
Tesis Doctoral 48
Fase IV: Elaboración del núcleo de seguridad
Ventajas del Modelo diseñado
2- Cumplimiento requisitos protección para un SIOO• Uniformidad en la Orientación a Objetos y homogeneidad
– Integración fluida en el modelo del sistema, misma semántica– Único mecanismo de protección protege todos objetos por igual
• Flexibilidad– Extensibilidad SIOO: Múltiples políticas posibles sobre mecanismo
básico– Desarrollo (y sobrecarga) extensiones sólo usado si se necesita
• Movilidad– Objetos autónomos: encapsulan también su información de protección en
las capacidades
• Protección de granularidad fina– Permisos de longitud variable: protección de métodos individuales
(mínimo privilegio)
Tesis Doctoral 49
Fase IV: Elaboración del núcleo de seguridad
Ventajas del Modelo diseñado
3- Resolución de problemas de un sistema de seguridad– Defensa perimetral
• Capacidades único canal de comunicación posible en el sistema • Imposibilidad del espía de obtener canal comunicación con servidor
– El servidor no está compinchado y nunca le pasaría una capacidad para que tuviera acceso a él
– Delegación (representante confuso)• Cliente simplemente pasa capacidad (restringida) para los datos privados al
servidor• Espía no puede engañar al servidor puesto
– No puede denominar los datos privados (objeto privado)– Necesitaría previamente una capacidad para ellos (las capacidades son el único
medio de denominar a un objeto en el sistema)
servidor
cliente
espía
datos
pose
e
Desearía que
espía
Desearía que
espía
Desearía que
espía
trans
fiere
servidor
cliente
espía
datos
pose
e
Desearía que
espía
Desearía que
espía
Desearía que
espía
trans
fiere
Tesis Doctoral 50
Fase IV: Elaboración del núcleo de seguridad
Ventajas del Modelo diseñado
– Problema característico generado por las listas de control de acceso
• Dominio protección asociado al usuario (cada proceso tiene el máximo de privilegios del usuario)
• Espía puede denominar cualquier objeto en general (ej. Fichero de datos privados) y engañar al servidor comunicándoselo
• El proceso servidor actúa con todos los permisos de su usuario, incluyendo el acceso al objeto privado (al que el espía no debería poder acceder)
– Servidor : compilar <fuente> <log> (graba factura en /adm/factura)
– Espía: compilar mifichero /adm/factura (sobreescribe los datos de facturación con el log)
Tesis Doctoral 51
Fase IV: Elaboración del núcleo de seguridad
Ventajas del Modelo diseñado
– Confinamiento (propagación)• Inexistencia canal comunicación entre servidor y espía compinchados
– Servidor no tiene capacidad hacia el espía (canal de acceso) y vvsa.– Imposible que el espía (o el servidor) cree de la nada esa capacidad
• Con listas de control de acceso no se confina (e.d. no evita propagación)– El servidor puede añadir en cualquier momento al espía a su lista de control de
acceso (acceso indirecto del espía al dato a través del servidor)» Puede crear de la nada el canal de comunicación
• Caso complejo confinamiento (evitar conspiradores en comunicación)– Evitar que si hay una vía inicial de comunicación se convierta en un canal de
comunicación de los datos privados» Monitor de referencia: Aunque haya capacidad hacia el espía, control de las
invocaciones la capacidad de acceso al objeto privado» Mediante la reflectividad de la máquina abstracta
servidor
cliente
espía
datos
pose
e
Desearía que
espía
Desearía que
espía
Desearía que
espía
trans
fiere
Tesis Doctoral 52
Fase IV: Elaboración del núcleo de seguridad
Ventajas del Modelo diseñado
4- Ventajas adicionales• Facilidad de uso por su total transparencia
– Obtención, donación, y presentación de capacidades es transparente
• Protección automática de capacidades– Imposibilidad falsificación y uso como referencias de usuario
• Permisos de longitud arbitraria– Abstracción del sistema, implementación oculta: permisos arbitrarios
• Extensibilidad del sistema con seguridad y flexibilidad– Todos objetos protegidos uniformemente con las capacidades: control de quién
y qué extiende el sistema
• Abstracciones adicionales para la protección innecesarias– Innecesarios otros conceptos (usuario, superusuario, dominio, etc.)– Posible construirlas fuera del núcleo, sólo si necesario
Tesis Doctoral 53
Tesis Doctoral
Índice
• Fase V: Demostración de la idea
• Objetivos y Organización• Fase I: Estado del arte• Fase II: Análisis de requisitos• Fase III: Estudio de los sistemas relevantes• Fase IV:Elaboración del núcleo de seguridad
• Conclusiones
Tesis Doctoral 54
Fase V: Demostración de la idea
Políticas de seguridad
• Ejemplos de políticas que muestran la flexibilidad del mecanismo
• Tres situaciones diferentes– Manejo de la restricción de permisos
– Manejo de la revocación de autoridad
– Manejo de la propagación de autoridad
• Estructura General del Sistema– Usuarios con objetos propios
– Login y shell
– Servidor de nombres
Tesis Doctoral 55
– Servidor de nombres = directorio = dominio (conjunto de objetos)
– Asocia un nombre simbólico con un objeto a través de una referencia (capacidad) al mismo
Políticas de seguridad sobre el mecanismo básico
Servidor de Nombres
Nombre CapacidadBuscar
Registrar
Eliminar
Servidor deNombres
Tesis Doctoral 56
Políticas de seguridad sobre el mecanismo básico
Manejo de Permisos
• Ejemplos de posibilidades– Dominios privados
– Dominios públicos
– Dominios asociados a clases
– Dominios arbitrarios
– Otros• Políticas asociadas a usuarios
• Dominios gestionados por un gestor de seguridad
Tesis Doctoral 57
Políticas de seguridad sobre el mecanismo básico
Manejo de Permisos
• Dominios privados
Usuario 1
ServidorNombres
1
Usuario 3
ServidorNombres
3
Usuario 2
ServidorNombres
2
Usuario n
ServidorNombres
n
...
Tesis Doctoral 58
Políticas de seguridad sobre el mecanismo básico
Manejo de Permisos
• Dominios públicos
Usuario 1
ServidorNombres
1
Usuario 2
ServidorNombres
2
Usuario n
ServidorNombres
n
...
ServidorNombresPúblico
Usuario 3
ServidorNombres
3
Tesis Doctoral 59
Políticas de seguridad sobre el mecanismo básico
Manejo de Permisos
• Dominios asociados a clases
– Cada clase tiene asociado el conjunto de objetos permitido (dominio) a través de una política
• Ambos (política y dominio) se implementan con un servidor de nombres
Nombre CapacidadBuscar
Registrar
Eliminar
Política deseguridad
EditorDominio
EImpresora Dominio I Nombre Capacidad
Buscar
Registrar
Eliminar
Servidor deNombres
Dominio E
Tesis Doctoral 60
Políticas de seguridad sobre el mecanismo básico
Manejo de Permisos
• Dominios arbitrarios
– Las políticas se pueden escoger arbitrariamente– Repositorio de políticas
• Implementado en otro servidor de nombres
Políticas
Restrictiva-PR
Permisiva-PM
Política PR
Editor - DEr
Impresora - DIr
Dominio DEr
Obj1 - CapO1
Obj2 - CapO2
Tesis Doctoral 61
Políticas de seguridad sobre el mecanismo básico
Manejo de Revocación
• Revocación con fachadas
– Un gestor de fachadas devuelve referencias a fachadas• En lugar de dar acceso directo al objeto se pasa la fachada• Posibilita la revocación selectiva del acceso eliminando la
fachada (o su acceso al objeto)– Fachadas más “inteligentes”: un solo uso, etc.
clienteA
Gestor defachadas
(1)Crear(CapX)
FacX(2)
(3)Insertar("O1",
FacX)Servidor
Nombres B
Nom. - Ref."O1" - FacX
O1
(2) F
acX
(0) CapX
Tesis Doctoral 62
Políticas de seguridad sobre el mecanismo básico
Control de Propagación
• Control mediante una política (monitor de referencia)
– Control de todas las invocaciones• Comprobación de que parámetros, etc. cumplen política de seguridad • Monitor de referencia: implementación usando reflectividad
Mecanismo deInvocación
¿Parámetros
correctos?
Política deseguridad
Sí
BEjecutar método
(paráms.)
AB.método(paráms.)
Tesis Doctoral 63
Fase V: Demostración de la Idea
El Sistema Integral Oviedo3
El Sistema Integral Orientado a Objetos: Oviedo3
INTEL PowerPCAlpha
Máquina abstracta
CARBAYONIA
Hardware
Sistema Operativo
Interfaz de usuario
Subsistemas gráficos y multimediaBases de datos, compiladores, etc.
Tesis Doctoral 64
Fase V: Demostración de la Idea
La Máquina Abstracta Carbayonia
Área de Instancias
Área de Clases Área de Referencias
Referencias del sistema
Tesis Doctoral 65
Fase V: Demostración de la Idea
La Máquina Abstracta Carbayonia
• El Lenguaje Carbayón– Orientado a objetos puro– Instrucciones declarativas para descripción de clases– Herencia múltiple, asociación y agregación– Definición de métodos: referencias e instancias– Pequeño número de instrucciones (15)– Instrucciones de asignación creación, invocación,
eliminación, control de flujo, manejo de excepciones– Jerarquía de clases básicas
Tesis Doctoral 66
Fase V: Demostración de la Idea
Diseño del Prototipo dela Máquina
C
Intérprete Carbayonia (io3)
Clases Primitivas
Clases de Usuario
Area de Clases
Area de Instancias
Area de Hilos
Metodos
Metodos Primitivos
Métodos de Usuario
.....
::
Instancias Primitivas
Instancias de Usuario
{
{
{
::
::
Compilador de Clases (co3)
Compilador de Proyectos (pco3)
Archivos de ClasesClase Instancia Inicial (I1)
Método Inicial (M1)
PROYECTO.PRJ
Archivode Definición
de Clase
Definiciónde Clase
CLASE.ASM
Archivode Definición
de Clase
Definiciónde Clase
Compilada
CLASE.OBJ
Archivos de ClasesClase Instancia Inicial (I1)
Método Inicial (M1)
PROYECTO.LEO
Planificador
Generadorde
CódigoSintácticoLéxico
....
Cargador
CrearClases
CrearInstancia
Inicial
CrearHilo
Principal
LanzarPlanificador
CLASS PrDemoMETHODSRun()CODE this.Main;ENDCODEMain()Refs b:integer;Instances a:Demo; c:Constream;CODE a.Metodo1():b; c.Write(b); c.nextline; exit;ENDCODEENDCLASS
Class demoIsa Object;MethodsMetodo1():IntegerRefs x:Integer;CODE new x; x.set(7); assign rr, x; sys.halt; exit;ENDCODEENDCLASS
demo.asmprdemo.asm@prdemomain
PrDemo.asm Demo.asm Demo.prj
I1
Referencias del Sistema
Rr Exc this Sys
New Delete ..... Exit
Tipos de Instrucción
Instrucciones
MI
Proyecto de ejemplo
Tesis Doctoral 67
Fase V: Demostración de la Idea
Diseño del Prototipo de la Máquina
THandler
TClassArea
TClass
isa
TMethodmetodos
TStackElementTThreadArea
TThreadStatus
TThread
1
1
1
1
TInstruction
TUserClass
TUserInstance
TContext
current
TUserMethodejecuta
TRef
assoc
aggreg
asociadosagregados
ancestros
localRefs
localInst
lvaluelocalInst
localRefs
TInstanceAreaTInstance
Tesis Doctoral 68
Fase V: Demostración de la Idea
Implantación del Mecanismo
• Integración de Capacidades con Referencias– Respecto el diseño
• Actualización operaciones referencias: contemplar permisos– New, Assign, Copy, Delete,
• Actualización invocación métodos (instrucción call)• Creación de una nueva instrucción: ForbidExec
– Respecto a la implementación• Adición de nuevos métodos a la clase TRef
– CanExec(), SkipProtection(), FindMethod(), ClonePerms(), ClearSecurity()
– GetMethoIndex
– GetName
– ...
Tesis Doctoral 69
Fase V: Demostración de la Idea
Implantación del Mecanismo
• Adición de la instrucción ForbidExec (restricción permisos) TInstruction
TInstrJt
TInstrDeleteTInstrAssignTInstrNewTInstrHandlerTInstrCall
TInstrJNNullTInstrJNullTInstrJfdTInstrJfTInstrJtd
TInstrNew2TInstrExitTInstrJmp TInstrThrow TInstrForbidExec
Tesis Doctoral 70
Fase V: Demostración de la Idea
Implantación del Mecanismo
• Ejecución de la instrucción ForbidExec
– Restringir el permiso de acceso al método indicado
: TInstrForbidExec
1: exec()
curth :TThread
r : TRef
c :TClass
i :TInstance
2: getRef(ref)
3: getRootPtr()6: ForbidExec(metodo)
4: getClass()
5: findMethod(metodo)
Tesis Doctoral 71
Fase V: Demostración de la Idea
Implantación del Mecanismo
• Comprobación de permisos (instrucción Call)
: TInstrCall
1: exec()
curth :TThread
r : TRef
i :TInstance
c :TClass
m :TMethod
2: getRef(ref)
3: getRootPtr()6: CanExec(metodo) || SkipProtection()
4: getClass()
5: findMethod(metodo)
7: invokeMethod()
Tesis Doctoral 72
Fase V: Demostración de la idea
Análisis del rendimiento
• Objetivo de las pruebas– Cálculo del tiempo adicional que supone la protección en la
invocación de un método (50000 iteraciones)
• Tipos de invocaciones– Método de clase básica (entero, real)– Método vacío de usuario– Método arbitrario de usuario
• Comparativa de pruebas – Máquina base / Máquina con protección– Con / Sin comprobación de permisos
Tesis Doctoral 73
Fase V: Demostración de la idea
Análisis del rendimiento
Tiempo de ejecuciónde método
Incremento de máquinaprotegida frente a base
MáquinaBase
MáquinaProtegida
Absoluto Porcentaje
Bucle vacío 0 0Entero 9,7491 9,7667 0,0176 0,181%Real 12,0781 11,7775 -0,3006 -2,489%Método vacío 12,8928 12,9107 0,0179 0,139%
Con Salto deProtección
Método de usuario 492,1761 490,7352 -1,4409 -0,293%Tiempo de ejecución
de métodoIncremento de máquinaprotegida frente a base
MáquinaBase
MáquinaProtegida
Absoluto Porcentaje
Bucle vacío 0 0Entero 9,8123 11,1863 1,3740 14,002%Real 12,0810 14,6016 2,52055 20,864%Método vacío 12,7906 15,8910 3,1004 24,240%
Comprobandopermisos
Método de usuario 491,9419 493,2440 1,3021 0,265%
Tesis Doctoral 74
Fase V: Demostración de la idea
Análisis del rendimiento
• Conclusiones del análisis– Sobrecarga del salto de protección casi nula (0’16%)
– Sobrecarga de la comprobación de permisos • Llamadas elementales (14% y 24%)
• Llamadas a métodos de usuario (0,26%)
• Consideraciones de rendimiento– Protección siempre implica sobrecarga
– Optimizaciones en el rendimiento
Tesis Doctoral 75
Fase V: Demostración de la idea
Análisis del rendimiento
• Disolución del impacto global de la protección en aplicaciones reales– Número reducido de llamadas a proteger
– Operaciones protegidas sobre objetos de usuario en su mayoría (sobrecarga relativa protección menor en éstas)
– Tiempo de ejecución de los métodos protegidos muy grande en comparación con el tiempo de protección
– Técnicas de análisis estático
• Comparativa con Java– Sobrecarga introducida del mismo orden que nuestro sistema
(0’3% mínimo)
Tesis Doctoral 76
Fase V: Demostración de Flexibilidad
Elaboración de un Entorno Operativo
• Desarrollo de un entorno operativo de ejemplo• Manipulación de capacidades a nivel de interfaz de
usuario• Establecimiento de un servicio de denominación de
objetos seguro• Establecimiento de usuarios y autenticación de los
mismos• Establecimiento de interfaz de trabajo tipo
“Intérprete de comandos”
Tesis Doctoral 77
– Directorio privado por usuario: objetos privados
– Ejemplo de compartición• directorio público compartido por todos usuarios (tablón anuncios)• Inserción de objetos, restringiendo previamente las operaciones que no pueda
invocar el público en general
– Shell de usuario se inicia con referencias a estos directorios• Imposible acceder a objetos privados de otros usuarios
Fase V: Demostración de Flexibilidad
Entorno Operativo con política de seguridad
Usuarios Directorios
::
Entorno Operativo
Directorio Público
ShellE/S
Tesis Doctoral 78
Fase V: Demostración de Flexibilidad
Elaboración de un Entorno Operativo
• Algunas operaciones del shell– Cargar y descargar clases
– Crear objetos
– Restringir permisos sobre un objeto
– Enviar objetos a un directorio público
– Ejecutar métodos de objetos (con o sin permisos restringidos)
– Gestionar usuarios
Tesis Doctoral 79
Fase V: Demostración de Flexibilidad
Elaboración de un Entorno Operativo
• Diagrama de clases
Object
TSlot
0..10..1
TDirectory
**formado por
TUser0..10..1 asociado a
TEOOO
1..*1..*
colecciónde
directorios
1..*1..*
colecciónde
usuarios
TShell
0..10..1
directorio usuario
0..10..1directorio público
0..10..1utilizado por
0..10..1
instanciado por
Tesis Doctoral 80
Tesis Doctoral
Índice
• Conclusiones
• Objetivos y Organización• Fase I: Estado del arte• Fase II: Análisis de requisitos• Fase III: Estudio de los sistemas relevantes• Fase IV:Elaboración del núcleo de seguridad• Fase V: Demostración de la idea
Tesis Doctoral 81
Conclusiones
Resultados a destacar
• Modelo de capacidades el más adecuado para SIOO– Capacidades más adecuadas que LCA– Peligro de las LCA
• Ventajas del modelo propuesto: capacidades OO– Cumplimiento principios diseño sistemas seguridad– Otros objetivos y ventajas alcanzados
• Uniformidad en la OO, homogeneidad, flexibilidad, adpatabilidad
• Sencillez conceptual y de implementación
• Rendimiento adecuado
• Permisos de longitud arbitraria
• Protección automática de capacidades
Tesis Doctoral 82
Conclusiones
Resultados a destacar
• Aplicación resultados a otros sistemas– Insuficiencia mecanismos protección plataforma Java
– Mejora de la plataforma Java
• Implementación de prototipos– Flexibilidad del concepto de SIOO
– Importancia de la reflectividad para la extensibilidad
Tesis Doctoral 83
Conclusiones
Futuras Líneas de Investigación
• Estudio de patrones de comportamiento en aplicaciones
• Desarrollo completo de un entorno de usuario• Mejora en la implementación de la máquina• Ampliación de la reflectividad de la máquina para
soporte de monitores de referencia• Aplicación a la plataforma Java
Tesis Doctoral 84
Conclusiones
Aportaciones a la investigación
• “Capability-Based Protection for Integral Object-Oriented Systems “. Díaz Fondón, M.A., D. Álvarez Gutiérrez, L.Tajes Martínez, F. Álvarez García y J.M. Cueva Lovelle. Proceedings of the COMPSAC'98, 22 Conference in Computer Software and Applications, pp. 344-349. IEEE Computer Society Press. 1998.
• “Merging Capabilities with the Object Model of an Object-Oriented Abstract Machine”. Díaz Fondón, M.A., D. Álvarez Gutiérrez, A. García-Mendoza Sánchez, F. Álvarez García, L. Tajes. Martínez y J.M. Cueva Lovelle. Proceedings of the ECOOP'98 Workshop on Distributed Object Security and the 4th Workshop on Mobile Object Systems, pp. 9-13. Inria Rhône-Alpes, Julio de 1998.
• “A Protection Mechanism for an Object-Oriented Operating System Based on an Abstract Machine”. Díaz Fondón, M.A. Bosch, I. y S. Mitchell (Eds.) Object-Oriented Technology. Lecture Notes in Computer Science 1357, pp. 410. Springer-Verlag, 1998. ISBN: 3-540-64039-8
• “Integrating Capabilities into the Object Model to Protect Distributed Object Systems” Díaz Fondón, M.A., D. Álvarez Gutiérrez, A. García-Mendoza Sánchez, F. Álvarez García, L. Tajes Martínez y J.M. Cueva Lovelle. Tari, Z., R. Meersman, R. Soley y O. Bukhres (Eds.). Proceedings of the International Symposium on Distributed Objects and Applications (DOA’99), pp. 374-383. IEEE Computer Society Press, 1999.
Tesis Doctoral 85
Conclusiones
Resumen
• Mecanismo de protección basado en capacidades• Diseñado para un Sistema Integral Orientado a Objetos
(SIOO)• Cumple requisitos generales de diseño de mecanismo de
seguridad y específicos para SIOO• Propiedades adicionales: protección automática de
capacidades y número variable permisos• Sistema que soluciona de manera más elegante y
completa las necesidades de protección de un SIOO, con un rendimiento adecuado.
Tesis Doctoral 86
Tesis Doctoral
Núcleo de Seguridad para unSistema Operativo Orientado a Objetos Soportado por una Máquina Abstracta
Fin de la Exposición
(c) Marián Díaz Fondón
Marzo de 2000
Recommended