• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Tema7
 

Tema7

on

  • 223 views

 

Statistics

Views

Total Views
223
Views on SlideShare
223
Embed Views
0

Actions

Likes
0
Downloads
6
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Tema7 Tema7 Presentation Transcript

    • Tema 7Seguridad y Protección Sistemas Operativos ´ Tema 7 Seguridad y Proteccion – p. 1
    • Índice1. Seguridad (Tanenbaum, 9.1–9.5), (Stallings, 15.1–15.4)2. Mecanismos de protección (Tanenbaum, 9.6), (Stallings, 15.2)3. Seguridad en Linux (Tanenbaum, 10.7)4. Seguridad en Windows 2000 (Stallings, 15.6) ´ Tema 7 Seguridad y Proteccion – p. 2
    • Índice1. Seguridad (Tanenbaum, 9.1–9.5), (Stallings, 15.1–15.4) 1.1. Tipos de amenazas a la seguridad 1.2. Autenticación de usuarios por contraseña 1.3. Ataques a la seguridad 1.4. Principios de diseño para la seguridad ´ Tema 7 Seguridad y Proteccion – p. 3
    • SeguridadDistinción entre seguridad y proteccion ´ Protección: Mecanismos que articula el S.O. para proteger la información, los usuarios, los procesos, . . . Seguridad: concepto más ámplio, que incluye seguridad física (p. ej. ¿quién tiene acceso a los edificios?), etc.Amenazas a la seguridad (requisitos de un sistema deseguridad) Confidencialidad: Acceso sólo a usuarios autorizados. (Este tipo de acceso incluye la impresión, visualización y otras formas de revelación, incluyendo el simple revelado de la existencia de un objeto) Integridad: Modificación sólo por los usuarios autorizados. (La modificación incluye escritura, cambio, cambio de estado, borrado y creación) Disponibilidad: Los recursos deben estar disponibles para los usuarios autorizados (Si no, se produce la «denegación de servicio») ´ Tema 7 Seguridad y Proteccion – p. 4
    • 1.1 Tipos de amenazas a la seguridad Interrupción (afecta a la disponibilidad) Se corta el flujo desde emisor al receptor. Se destruye el elemento del sistema o se hace inaccesible o inútil. (Ej.: destrucción de un disco duro, corte de la línea de comunicación, inutilización del SF) Intercepción (afecta a la confidencialidad) Una tercera entidad se entera de la comunicación. Una parte no autorizada, que puede ser una persona, programa o computador, consigue acceder a un elemento. (Ej.: copia ilícita de programas (piratería) o ficheros) Modificación (amenaza la integridad) Una tercera entidad cambia los datos. Una parte no autorizada no sólo consigue acceder, sino que falsifica un elemento. (Ej: cambio de valores de un fichero) Invención (también amenaza la integridad) Una tercera entidad inventa datos no emitidos. Una parte no autorizada inserta objetos falsos en el sistema. (Ej.: inserción de mensajes falsos en la red o la adición de registros a un fichero) ´ Tema 7 Seguridad y Proteccion – p. 5
    • 1.1 Tipos de amenazas a la seguridad (ii) Origen Destino (a) flujo normal Origen Destino Origen Destino (b) interrupcion (c) intercepcion Origen Destino Destino (d) modificacion (e) invencion ´ Tema 7 Seguridad y Proteccion – p. 6
    • 1.1 Tipos de amenazas a la seguridad (iii) ´ Tema 7 Seguridad y Proteccion – p. 7
    • 1.2 Autenticación de usuarios por contraseña La seguridad depende de quien puede acceder al ´ sistema Es muy importante la autenticacion del usuario ´ Lo más normal es utilizar ID+contraseña El ID determina si se tiene acceso y a qué nivel (p.ej. superusuario) En UNIX: Se utiliza el algoritmo DES 25 veces utilizando una base aleatoria de 12 bits. Se generan 11 caracteres + 2 de base. La base: Impide ver las contraseñas iguales Incrementa el número de datos en la clave Impide el uso de DES hardware Función crypt(clave, salt); crypt("hola, caracola","aq") ->aqFp.evU2e7T2 crypt("hola, caracola","as") ->ascKZQc0MMnkM ´ Tema 7 Seguridad y Proteccion – p. 8
    • 1.2 Autenticación de usuarios por contraseña (ii) Estrategias de elección de contraseñas Las contraseñas son difíciles de romper (distributed.net) Aunque el problema: los usuarios (longitud, palabras sencillas, etc.) Técnicas para evitarlas: Contraseñas largas, que no sean palabras de diccionario, introducir dígitos, letras en mayúsculas y minúsculas y caracteres especiales Instrucción del usuario Inspección proactiva de contraseñas El administrador puede comprobar la robustez de las contraseñas de los usuarios ejecutando él mismo programas de «averiguación de contraseñas» (crack ) ´ Tema 7 Seguridad y Proteccion – p. 9
    • 1.3 Ataques a la seguridadAtaques genéricos a la seguridad Se contrata a un equipo especializado Solicitar páginas de memoria (o disco) y leerlas Llamadas al sistema inválidas Detención de la conexión al sistema Modificar las estructuras de la parte de usuario Engañe al usuario, escribiendo un programa «login» Busque fallos en manuales («no use X») Convenza al administrador para que deje un sistema «menos seguro» Engañar o sobornar al personal :-) ´ Tema 7 Seguridad y Proteccion – p. 10
    • 1.3 Ataques a la seguridad (ii)Amenazas a la seguridad con ataques específicos Caballos de Troya: Sustituyen un comando interno por otro que realiza labores ilegales (por ejemplo, devolver información del sistema hacia afuera) Falsificación del inicio de sesión: Engañan al usuario, que escribe su login/password Bombas lógicas: «Estallan» al cierto tiempo (ej. viernes 13) Trampas o «backdoors»: Programas con puertas traseras Desbordamiento de buffers: Sobrescriben partes del programa con código malicioso (p. ej. aprovechando fallos de seguridad para convertirse en «root») Virus y gusanos ´ Tema 7 Seguridad y Proteccion – p. 11
    • 1.4 Principios de diseño para la seguridad (Saltzer y Schröder) El diseño debe ser público El estado por defecto debe ser el de «no acceso» La verificación debe ser activa y continua Dar a las entidades el m´nimo privilegio posible ı El mecanismo de protección debe ser simple, uniforme e integrado (no es un valor añadido, sino una característica a todos los niveles) Debe ser psicológicamente aceptable por los usuarios ´ Tema 7 Seguridad y Proteccion – p. 12
    • Índice2. Mecanismos de protección (Tanenbaum, 9.6), (Stallings, 15.2) 2.1. Objetivos de la protección 2.2. Dominios de protección 2.3. Matriz de protección 2.4. Listas de control de acceso 2.5. Capacidades 2.6. Mecanismos de llave y cerradura 2.7. Comparación 2.8. Canales ocultos ´ Tema 7 Seguridad y Proteccion – p. 13
    • 2. Mecanismos de protecciónProtección: Mecanismos que articula el S.O. y elhardware para conseguir la seguridad en el ámbito delS.O.Mecanismos de protección (ya vimos algunos, de bajonivel) Hardware de direccionamiento de memoria Cronómetro Modo dual, etc.Mecanismos de más alto nivel Definición de usuarios y objetos a proteger Delimitar la información a la que puede acceder cada usuario ´ Tema 7 Seguridad y Proteccion – p. 14
    • 2.1 Objetivos de la protecciónLa protección controla el acceso a los recursosPol´tica ı vs. Mecanismo Las políticas establecen qué se va a proteger, qué usuarios van a poder acceder a qué datos, etc. (p. ej. Los contables no pueden acceder a la base de datos de márqueting, etc.) Existen entonces una serie de mecanismos que ofrece el S.O. para poder implementar las políticas (permisos, ficheros, usuarios, etc.) Las políticas pueden cambiar y además dependen de cada organización ⇒ Los S.O. deben ofrecer mecanismos generales y flexibles que permitan implementar las políticas ´ Tema 7 Seguridad y Proteccion – p. 15
    • 2.2 Dominios de protecciónDe cara a la seguridad y la protección, un sistema se vecomo un conjunto de objetos que necesitan protección: CPU, memoria, terminales, procesos, ficheros, bases de datosCada objeto tiene un nombre único, y un conjunto deoperaciones¿Cómo especificamos qué le está permitido a cadausuario con cada objeto? ⇒ DOMINIOUn dominio representa un conjunto de permisos sobreun conjunto de objetos: Cjto. de parejas objeto, derechos ⇒ Derecho es el permiso para realizar cierta tarea Domain 1 Domain 2 Domain 3 File1[ R] File3 [ R] File6 [ RW X] File4 [ RW X ] Printer1 [ W ] File2 [ RW ] File5 [ RW ] Plotter2 [ W ] ´ Tema 7 Seguridad y Proteccion – p. 16
    • 2.3 Matriz de acceso o de protección Podemos imaginar una matriz ⇒ filas ≡ dominios columnas ≡ objetos En cada casilla ⇒ permisos Las filas representan los dominios: asocian objetos con sus permisos Las columnas representan los permisos de cada objeto Si los procesos pueden cambiar de dominio ⇒ Enter Object File1 File2 File3 File4 File5 File6 Printer1 Plotter2 Domain1 Domain2 Domain3Domain Read 1 Read Enter Write Read Read 2 Read Write Write Write Execute Read 3 Write Write Write Execute ´ Tema 7 Seguridad y Proteccion – p. 17
    • 2.4 Listas de control de acceso (ACLs) Las matrices no se implementan realmente Las ACL almacenan la matriz por columnas Cada objeto ⇒ Lista con los dominios que pueden tener acceso a ese objeto y la forma de dicho acceso ´ Tema 7 Seguridad y Proteccion – p. 18
    • 2.5 Listas de capacidadesAlmacena filas. Para cada dominio hay un conjunto de objetos y deposibilidades asociadasA cada proceso se asocia una lista de objetos a que puede teneracceso con una indicación de las operaciones permitidas, e.d., acada proceso se le asocia su dominioEsta lista se llama lista de posibilidades o capacidades, y loselementos individuales posibilidadesSe permiten operaciones con posibilidades, como copiar o eliminar ´ Tema 7 Seguridad y Proteccion – p. 19
    • 2.6 Llave y cerraduraCada usuario tiene una llave: conjunto de bitsCada objeto una cerradura: conjunto de bitsEl usuario puede acceder al objeto si el AND de llave ycerradura = 0U1 puede acceder a ambos objetosU2 sólo a «Objeto 2»     ¢ ¢    ¡ ¡ ¢ ¢£ £    ¡ ¡ ¢ ¢£ £ U1 ¦ ¦ ¦ ¦§ ¦ ¦§ Objeto 1 ¤ ¤ ¤ ¤¥ ¤ ¤¥ U2 ¨ ¨ ¨ ¨© © ¨ ¨© © Objeto 2 ´ Tema 7 Seguridad y Proteccion – p. 20
    • 2.7 ComparaciónLas ACL son más sencillas para el usuario Sin embargo, es difícil saber los derechos de un usuario Suelen ser costosas ya que hay que buscar en cada accesoLas listas de posibilidades son más complejas para elusuario Es difícil recuperar todos los permisos de un objeto particular¿Qué pasa con la revocación de permisos? ´ Tema 7 Seguridad y Proteccion – p. 21
    • 2.8 Canales ocultosAunque un servidor se confine con mecanismos de protección,puede comunicar a otro proceso colaborador ⇒ Canal ocultoLa comunicación podría ser: si el servidor quiere enviar un 1 → usointensivo de la CPU durante unos instantes; si el servidor quiereenviar un 0 → duerme durante unos instantesEl proceso colaborador simplemente mira la carga de CPUEs un mecanismo con ruido, pero se pueden utilizar técnicas comoHammingNo se puede evitar... y hay muchas más. Client Server Collaborator Encapsulated server Kernel Kernel Covert channel (a) (b) ´ Tema 7 Seguridad y Proteccion – p. 22
    • 3. Seguridad en Linux (Tanenbaum 10.7)Cada usuario tiene asignado un Identificador de Usuario(UID)El «login» de un usuario lo asocia con su UIDAdemás, el sistema se administra como un conjunto deGrupos de usuarios, cada uno con su GIDAsí, un par UID,GID forma un dominio en Linux Esto es, define qué archivos o dispositivos puede usar ese usuario y con qué permisosUn usuario puede pertenecer a varios grupos, por lotanto un usuario puede pertenecer a varios dominiosExiste un usuario especial llamado «root» (con UID=0)que tiene todos los privilegios Esto puede llevar a problemas de seguridad ⇒ Con la clave de root ¡¡se tiene acceso a todo el sistema!! ´ Tema 7 Seguridad y Proteccion – p. 23
    • 3. Seguridad en Linux (ii)En Linux, cada fichero y dispositivo (a través de lasentradas en /dev) pertenece a un usuario y a un grupoSe implementan ACLs restringidas, ya que seespecifica en cada fichero qué permisos tiene cadausuario sobre ese ficheroLas ACLs están restringidas a tres «grupos deusuarios»: propietario: Permisos para el usuario propietario del fichero grupo: Permisos para los usuarios que pertenezcan al grupo al que pertenece el fichero «otros»: Resto de usuariosPara cada uno de los grupos: permisos (lectura,escritura, ejecución)Extensiones para ext2/ext3 que implementan atributosextendidos para los ficheros: p.ej. ACLs completas ´ Tema 7 Seguridad y Proteccion – p. 24
    •                                                                                  Binary                   000000111 000000000 111101101 110100100 110100000 111111000 111000000                                     ficheros                                                                         rwxr–xr–x          rw–r– –r– – rwxrwx– – –          Symbolic rw–r– – – – – – – – – – –rwx rwx– – – – – –                   –––––––––                                                                                                                                                                                                                         Nobody has any access                                                                                           Owner can read, write, and execute                   Allowed file accesses                            3. Seguridad en Linux (iii)          Owner can read and write; group can read                                     Owner can read and write; all others can read Owner and group can read, write, and execute          Only outsiders have access (strange, but legal)                                     Owner can do everything, rest can read and execute                   Es la función que ofrece Linux para modificar la matriz de acceso La función chmod permite modificar los permisos de los ´Tema 7 Seguridad y Proteccion – p. 25
    • 3. Seguridad en Linux (iv)Cada proceso se ejecuta con los privilegios del usuarioque lo creaExcepcionalmente, los ejecutables pueden poseer ensus atributos los bits SETUID y SETGID: SETUID: Al ejecutarse toma el UID del usuario propietario del ejecutable SETGID: Al ejecutarse toma el GID del grupo propietario del ejecutableAsí, un proceso tiene dos parejas de identificadores: elusuario/grupo real UID,GID y el usuario/grupo efectivo EUID,EGID : getuid()/geteuid() getgid()/getegid() Normalmente, ambos son iguales, salvo cuando están los bits SETXXX ´ Tema 7 Seguridad y Proteccion – p. 26
    • 3. Seguridad en Linux (v)SETUID/SETGID (cont.) Por ejemplo, el usuario «pepe» del grupo «usuarios» ejecuta el siguiente programa: -r-sr-sr-x root lp 20 Abr 12:00 lpr Al ejecutarlo, el proceso lpr tiene los siguientes usuarios UID: pepe GID: usuarios EUID: root EGID: lp Tiene los permisos efectivos de «root» ´ Tema 7 Seguridad y Proteccion – p. 27
    • 3. Seguridad en Linux (vi)Linux implementa un sistema híbrido entre ACLs ylistas de posibilidades: Los archivos contienen una ACL como se ha visto Cuando un proceso quiere abrir un archivo, se comprueba la ACL para ver si tiene acceso Si tiene acceso, se crea una entrada en la lista de ficheros abiertos para ese proceso Esa entrada contiene las posibilidades para ese proceso sobre ese fichero (leer, escribir, etc.) Así, la información de permisos de la lista de ficheros abiertos es de hecho una lista de posibilidades del proceso ´ Tema 7 Seguridad y Proteccion – p. 28
    • 4. Seguridad en Windows 2000 (Stallings, 15.6) También basado en autenticación de usuario con login y clave Al iniciar la sesión, el sistema asigna al usuario un SID (Security IDentifier) único También existen grupos de usuarios. Cada grupo también tiene un SID Al proceso inicial del usuario se le asigna un «Token de seguridad» (Access Token), que heredan todos los subsiguientes procesos del usuario y que contiene el contexto de seguridad: Tiempo de expiración SID del usuario y del grupo primario del usuario SID de los grupos a los que pertenece el usuario Un conjunto de privilegios (por ejemplo, puede realizar copias de seguridad, depurar un proceso, hacer un «shutdown», etc.) ´ Tema 7 Seguridad y Proteccion – p. 29
    • 4. Seguridad en Windows 2000 (ii)Además, cada objeto (incluyendo procesos, ficheros,etc.) tiene un propietario y pertenece a un grupo, ytiene asociada una información de seguridad: describequé usuarios y grupos pueden accederlo, y con quéprivilegiosEsa información de seguridad se llama descriptor deseguridad (security descriptor ). Contiene: El SID del propietario El SID del grupo DACL: Lista de control de acceso que describe qué usuarios y grupos pueden usar el objeto y cómo (con qué permisos) SACL: Lista de acceso que especifica qué accesos al objeto causarán una entrada en el «log» (auditoría) del sistema ´ Tema 7 Seguridad y Proteccion – p. 30
    • 4. Seguridad en Windows 2000 (iii) Las ACLs (DACL, SACL) están compuestas de varias entradas (ACE, Access Control Entry), y se comprueban en orden: Se pueden poner las restricciones explícitas al principio Y luego dar acceso al resto de usuarios (véase figura página siguiente) Andrew no puede acceder porque tiene una entrada de denegación explícita al principio ´ Tema 7 Seguridad y Proteccion – p. 31
    • 4. Seguridad en Windows 2000 (iv) ´ Tema 7 Seguridad y Proteccion – p. 32
    • 4. Seguridad en Windows 2000 (v)La ACL de un fichero puede contener los siguientes permisos: Leer: el usuario puede leer el fichero, ver sus atributos, permisos y propietario Escribir: el usuario puede realizar cualquier función de lectura, pero también puede modificar el fichero y cambiar sus atributos Lectura y ejecución: además de los permisos de Leer, el usuario puede ejecutarlo Modificar: que permite leer y escribir en el fichero, permite eliminar el fichero Control total: que permite leer, escribir, modificar y eliminar el fichero Cambiar permisos etc. ´ Tema 7 Seguridad y Proteccion – p. 33
    • 4. Seguridad en Windows 2000 (vi) La ACL de un directorio puede contener los siguientes permisos: Leer: el usuario puede ver los ficheros y subdirectorios dentro del mismo, y ver el propietario, atributos y permisos del directorio Escribir: el usuario puede crear nuevos ficheros y subdirectorios dentro del directorio y cambiar sus atributos. Tb puede ver su propietario y sus permisos Listar el contenido de la carpeta: el usuario puede ver los nombres de sus ficheros y subcarpetas Lectura y Ejecución: puede realizar todas las acciones de los permiross Leer y Listar el contenido de la carpeta, y además desplazarse a través de las carpetas hasta otros ficheros y carpetas sin un permiso específico para cada carpeta Modificar: el usuario puede realizar todas las acciones de los permisos Escribir y Lectura y Ejecución, y tb puede eliminar la carpeta Control total: todas las acciones permitidas de los demás permisos, y además cambiar los permisos de la carpeta, tomar posesión y eliminar cualquier subcarpeta y fichero Cambiar permisos etc. ´ Tema 7 Seguridad y Proteccion – p. 34