AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Protección y Seguridad Transparencias basadas en los libros de referencia: Sistemas operativos. Una visión aplicada. J. Carretero, F.García, P. de Miguel, F. Pérez. McGraw Hill 2001c Sistemas Operativos A. Silberschatz, P.B. Galvin. Addison Wesley 1999 Curso 2005-2006 AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Contenido • • • • • • Conceptos de seguridad y protección Dominios de protección El problema de la seguridad Criptografía Clasificación de seguridad El Sistema de seguridad de Windows NT. AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Introducción • La protección consiste en controlar y, en su caso, impedir el acceso de los programas, procesos o usuarios a los recursos del sistema (archivos, memoria, CPU, ..) – Se necesitan mecanismos y políticas que determinen qué acceso se permite a quién. – Los recursos sólo pueden ser usados por los procesos que tienen autorización del SO. • La seguridad estudia como proteger la información almacenada en el sistema (datos o código) contra accesos indebidos o no autorizados (intrusos, fallos de la privacidad, etc) AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Objetivos de la protección • Asegurar que cada componente activo de un programa use los recursos de forma coherente. – Es necesario proteger los recursos – Un recurso desprotegido no puede defenderse contra el uso (o abuso) de un usuario incompetente o no autorizado. – Un sistema orientado hacia la protección debe proporcionar medios para distinguir entre usos autorizados y no autorizados – Compromiso seguridad-compartición AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Contenido • • • • • • Conceptos de seguridad y protección Dominios de protección El problema de la seguridad Criptografía Clasificación de seguridad El Sistema de seguridad de Windows NT. AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Dominios de protección (I) • Especifica los recursos a los que puede acceder un proceso • Un conjunto de pares (objeto, derechos), donde cada par especifica un objeto –hardware o software- y las operaciones que se pueden ejecutar sobre el mismo. • Cada proceso se ejecuta en un domino dado que puede variar en el tiempo • Ej: Si el dominio D tiene el derecho de acceso {archivo F, {read, write}} todo proceso que se ejecute en este dominio podrá, solamente, leer y escribir el archivo F AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Dominios de protección (II) AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Protección en UNIX • En UNIX sólo existen tres dominios de protección (propietario, grupo y mundo). • Para cada dominio se permiten únicamente tres operaciones sobre un objeto: lectura (r), escritura (w) y ejecución (x). • Cada objeto tiene asociados dos bits extras para conceder permisos especiales: setuid y setgid – Si SETUID activo UID efectivo = UID del propietario – Si SETGID activo GID efectivo = GID del propietario – Si SETUID y SETGID están inactivos, se mantiene la identidad efectiva. • Reglas de protección – Si UID efectivo= UID del propietario se utiliza el dominio del propietario – Si GID efectivo= GID del propietario se utiliza el dominio de grupo – En caso contrario se utiliza el último dominio AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Matrices de Protección • Define la relación entre dominios y objetos del sistema • El elemento (i,j) indica las operaciones que un proceso que se ejecuta en el dominio Di puede efectuar sobre el objeto Oj • Un proceso que se ejecuta en el dominio Di puede acceder sólo a los objetos especificados en la fila i y sólo como lo especifican las entradas de la matriz de acceso. AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Matrices de Protección. Ejemplo AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Matrices de Protección. Implementación • • • • Tabla global Listas de control de acceso Listas de capacidades Mecanismo de cerradura y llave AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Tabla global • Conjunto de ternas ordenadas {dominio, objeto, derechos} • Cuando se ejecuta una operación M en un objeto Oj dentro del dominio Di se busca en la tabla la terna {Di, Oj, Rk} – Si dicha entrada existe y M ⊂ Rk se permite la operación – En caso contrario ocurre una excepción. • Ventajas: Simplicidad • Desventajas: – Gran tamaño – No se puede mantener en Memoria Principal – No aprovecha agrupamientos AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Listas de control de acceso (ACL) • A cada objeto se le asigna una lista de pares (dominio, derechos) que describe lo que el dominio puede hacer en el objeto. • Cuando un objeto Oj intenta realizar una operación M en el dominio Di se busca en la lista de acceso para el objeto la entrada {Di, Rk}. – Si dicha entrada existe y M ⊂ Rk se permite el acceso – En caso contrario se deniega. • Ventajas – Son fáciles de crear y mantener – Están centralizadas con el objeto, lo que hace fácil revocar permisos • Desventajas – Si el sistema es grande y está muy solicitado, las ACL se vuelven muy grandes y sus operaciones son lentas AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Listas de capacidades • Una lista de capacidades para un dominio es una lista de objetos junto con las operaciones que se permiten con esos objetos. • Ejemplo Cap-id Tipo Derechos Objeto --------------------------------------------------------------------------0 archivo rwdatos 1 archivo rwnotas 2 archivo rwx corrector • Se asocian a un dominio pero nunca están directamente accesibles para un proceso que se ejecuta en ese dominio. – Sólo son accesibles mediante métodos controlados por el SO. • Problema: conceder derechos es fácil pero revocarlos resulta difícil • Amobea, Hydra y Cambridge CAP usan capacidades AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Mecanismos de cerradura y llave • Cada objeto tiene una lista de bits de cerradura y cada dominio tiene otra lista de bits de llaves • Un proceso sólo puede acceder a un objeto si el dominio en el que se ejecuta tiene llaves que coincidan con las cerraduras del objeto • Las llaves del domino son manejadas por el SO. • No se permite a los usuarios examinar ni modificar la lista de llaves o cerraduras directamente AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Estructuras de protección dinámicas • La asociación entre un proceso y un dominio puede ser: – Estática: Si el conjunto de recursos disponibles para ese proceso no cambia durante su ejecución – Dinámica: Si existen cambios de accesos o dominios • Asociación dinámica – Si un proceso sólo se ejecuta en un dominio, éste ha de ser variable • El contenido de la matriz de accesos ha de ser variable – Un proceso puede cambiar (conmutar) de un dominio a otro • Considerar los dominios como objetos de la matriz de accesos • La operación que se puede realizar sobre un dominio es conmutar AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Matriz de acceso con dominios como objetos AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Matriz de acceso modificable • Para poder modificar el contenido de las entradas de la matriz de acceso se requieren tres operaciones adicionales: copiar, dueño y control. • El derecho copiar permite a un proceso copiar algunos derechos de una entrada de una columna a otra entrada de la misma columna. • El derecho de dueño permite añadir nuevos derechos y quitar otros • El derecho control sólo se aplica a los objetos dominio y permite a un proceso que se ejecuta en el dominio Di modificar los derechos de los objetos del dominio Dj. AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Matriz de acceso con derechos de copiar AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Matriz de acceso con derechos de dueño AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Matriz de acceso con derechos de control AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Contenido • • • • • • Conceptos de seguridad y protección Dominios de protección El problema de la seguridad Criptografía Clasificación de seguridad El Sistema de seguridad de Windows NT. AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Seguridad • Los mecanismos de protección funcionan mientras que los usuarios no tratan de burlar el acceso al sistema para leer, modificar o destruir la información almacenada. • Un sistema seguro es aquel en el que sus recursos siempre se usan y acceden como es debido y sólo por quien tiene autorización. • En general, no es posible lograr la seguridad total. – Hay que contar con mecanismos que logren que las violaciones sean un suceso poco común en lugar de una norma. AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Problemas de seguridad • Usuarios inexpertos o descuidados • Usuarios no autorizados • Ataques por programa – Caballo de Troya – Puerta secreta • Amenazas al sistema – Gusanos – Virus AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Autenticación de usuarios • Para poder modificar o ejecutar algo en una computadora es necesario acceder a una cuenta de usuario. • Para evitar que usuarios no autorizados accedan al sistema es necesario reconocer a un usuario como tal. – Llaves o tarjetas – Atributos físicos del usuario: huella dactilar, patrón de retina, ... – Contraseñas, juegos de preguntas o algoritmos de identificación. AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Palabras clave o contraseñas • Son la estrategia más común para validar la identidad de un usuario • Cuando un usuario quiere entrar en una máquina se le pide identificador y contraseña • Si la contraseña coincide con la almacenada en el sistema, se concede el acceso • Las contraseñas se pueden asociar a cualquier recurso. • Pueden asociarse distintas contraseñas a distintos derechos de acceso AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Vulnerabilidades de las contraseñas Las contraseñas pierden su utilidad si se adivinan o si se transfieren a otros usuarios • Una contraseña se puede adivinar porque: – Se corresponde con algún dato del usuario (nombre, DNI, matrícula) – Son nombres comunes que se pueden obtener “fácilmente” probando combinaciones de letras • Contraseñas cortas • Contraseñas que sólo contienen minúsculas • Contraseñas almacenadas en un diccionario • Solución: – Contraseñas generadas por el sistema (difíciles de recordar) – Contraseñas de vida limitada AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Distribución de contraseñas AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Almacenamiento de contraseñas • En UNIX, existía un fichero en el que se encontraba la identidad del usuario y su clave cifrada. • Este fichero era accesible a todo el mundo lo que facilitaba el “robo de claves”. • Actualmente, las contraseñas cifradas se guardan en archivos sombra, sólo accesibles para el administrador. • La seguridad se incrementa usando funciones de cifrado eficientes y de sentido único. AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Amenazas por programas • Caballo de Troya. Programa que realiza acciones no autorizadas en el sistema – Editor de texto que copia archivos a los directorios del intruso – Programa de login que graba nombres y palabras de acceso de los usuarios • Puerta de atrás. Consiste en crear un agujero de seguridad a través de un programa privilegiado – Gracias a estos agujeros se puede extraer información del sistema sin que el dueño sea consciente de ello AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Amenazas al sistema • Virus: – Programas que se autoreplican con fines destructivos o de violación de seguridad. Se activan cuando se ejecuta el programa portador – Son código que puede añadirse a un programa o reemplazarlo – Dentro de un disco, lo normal es infectar su sector de carga – Soluciones • Comprobación manual de todos los dispositivos de almacenamiento • Creación de un antídoto • Gusanos: – Emplean las conexiones de red para extenderse de un sistema a otro – Una vez activos en el sistema pueden comportarse como un virus, implantar caballos de Troya o realizar cualquier acción destructiva . AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Instalación y propagación de virus AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Vigilancia de amenazas • Buscar patrones de actividad sospechosos. – Contar las veces que se proporcionan contraseñas incorrectas • Explorar el sistema en busca de agujeros – – – – – Contraseñas cortas o fáciles de adivinar Programas no autorizados en directorios del sistema Procesos con duración inusitada Protecciones inapropiadas en directorios y archivos del sistema Cambios en los programas del sistema • Cortafuegos (firewall) en computadores conectados en red – Separa los sistemas confiables de los no confiables – Limita el acceso por red a determinados dominios AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Separación de dominios por un Firewall AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Contenido • • • • • • Conceptos de seguridad y protección Dominios de protección El problema de la seguridad Criptografía Clasificación de seguridad El Sistema de seguridad de Windows NT. AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Criptografía • La criptografía es la técnica que permite codificar un objeto de forma que su significado no sea obvio • Objeto original (O) se puede convertir en un objeto cifrado (C) aplicando una función de encriptado (E). Se descifra mediante otra función (D) • Aspectos claves – Algoritmos de cifrado – Claves AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Cifrado y Descifrado AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Algoritmos de cifrado Procedimientos que permiten ocultar el contenido del objeto y ponerlo en su forma original, respectivamente. – Sustitución: cambian un texto por otro • Monoalfabéticos: Cambian cada carácter por otro carácter o símbolo. – abc ->cde • Polialfabéticos: Cambian grupos de caracteres por otros caracteres abc-> 112233 – abc->123 – Trasposición o permutación: reordenan el texto • Julio Cesar -> Juli o Ce sar -> J u l i o - - s -> Josu alCrie - a C r e AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Claves • Patrón que usan los algoritmos de cifrado y descifrado para manipular los mensajes en uno u otro sentido. • Añade seguridad a los mecanismos de cifrado • Sistemas de criptografía: – Simétricos: D es la inversa de E y clave única – Asimétricos: Existen claves distintas para el cifrado y el descifrado • Ventajas del uso de claves – Los algoritmos de cifrado y descifrado pueden ser públicos – Mismo algoritmo sirve con distintas claves • Desventajas – Conocida por el codificador y el decodificador. Comunicación limitada. – Debe resistir intentos de rotura: complejidad AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Claves privadas y públicas • Claves privadas: conocidas sólo por cifrador y descifrador – Problema: propagación de claves • Claves públicas: la clave de cifrado es conocida, pero para descifrar hace falta otra que sólo tiene el descifrador. – Cualquiera puede enviar mensajes cifrados, pero sólo el destinatario legal puede descifrarlos. – No hay problemas de propagación de claves • Firmas digitales: claves que identifican a un usuario o sistema de forma inequívoca – Se aceptan a nivel legal – Hay autoridades que conceden firmas y certificados válidos AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Contenido • • • • • • Conceptos de seguridad y protección Dominios de protección El problema de la seguridad Criptografía Clasificación de seguridad El Sistema de seguridad de Windows NT. AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Clasificaciones de seguridad AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Contenido • • • • • • Conceptos de seguridad y protección Dominios de protección El problema de la seguridad Criptografía Clasificación de seguridad El Sistema de seguridad de Windows NT AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) El sistema de seguridad de Windows NT (I) • Se basa en el concepto de cuentas de usuario – Los usuarios se identifican mediante un identificador único – NT crea un testigo de acceso de seguridad • Identificador de seguridad del usuario • Identificador de seguridad del grupo o grupos al que pertenece • Lista de privilegios – Cada proceso que se ejecuta recibe una copia del testigo de acceso • NT usa los identificadores para permitir o denegar el acceso a objetos – Los programas que ejecuta un usuario no pueden tener un acceso mayor que el que el usuario tiene autorizado • Se usa un sujeto para comprobar y gestionar estos permisos AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) El sistema de seguridad de Windows NT (II) • Auditoria integrada: Vigila amenazas a la seguridad – Auditoria de fracasos de accesos – Auditoria de éxitos para detectar actividad a horas extrañas – Auditoria de éxito y fracaso en accesos de escritura a ejecutables para rastrear virus – Auditoria de éxito y fracaso en acceso a archivos para detectar accesos a archivos confidenciales • Descriptor de seguridad: – Identificador del propietario del objeto y de grupo – LCA que identifica los usuarios o grupos a los que se permite o prohíbe el acceso – LCA al sistema que controla los mensajes de auditoría