26
Clase 11 Javier Echaiz D.C.I.C. – U.N.S. http://cs.uns.edu.ar/~jechaiz [email protected] JAVIER ECHAIZ

Clase 11 Javier Echaiz D.C.I.C. – U.N.S. jechaiz [email protected] JAVIER ECHAIZ

Embed Size (px)

Citation preview

Page 1: Clase 11 Javier Echaiz D.C.I.C. – U.N.S. jechaiz je@cs.uns.edu.ar JAVIER ECHAIZ

Clase 11

Javier EchaizD.C.I.C. – U.N.S.

http://cs.uns.edu.ar/[email protected]

JAVIERECHAIZ

Page 2: Clase 11 Javier Echaiz D.C.I.C. – U.N.S. jechaiz je@cs.uns.edu.ar JAVIER ECHAIZ

2

Seguridad en Sistemas: Protección en Sistemas OperativosSeguridad en Sistemas: Protección en Sistemas Operativos

Protección en Sistemas OperativosProtección en Sistemas Operativos

Veremos las contribuciones en cuanto a seguridad que nos brindan los Sistemas Operativos

Veamos qué y cómo puede proteger la Seguridad un S.O

Page 3: Clase 11 Javier Echaiz D.C.I.C. – U.N.S. jechaiz je@cs.uns.edu.ar JAVIER ECHAIZ

3

Seguridad en Sistemas: Protección en Sistemas OperativosSeguridad en Sistemas: Protección en Sistemas Operativos

Un poco de HistoriaUn poco de Historia

• Originalmente no habia S.O. Usuario = S.O.

• Primeros O.S.s: ejecutivos: loaders, linkers, etc.

• Multiprogramación. Nuevo rol del S.O.

• Surge protección entre procesos de un mismo o diferentes usuarios.

Page 4: Clase 11 Javier Echaiz D.C.I.C. – U.N.S. jechaiz je@cs.uns.edu.ar JAVIER ECHAIZ

4

Seguridad en Sistemas: Protección en Sistemas OperativosSeguridad en Sistemas: Protección en Sistemas Operativos

Objetos a ProtegerObjetos a Proteger

• memoria

• procesador

• dispositivos I/O compartidos, e.g. discos

• dispositivos I/O compartidos serialmente, e.g. impresoras

• programas compartidos

• datos compartidos

Los Sistemas Operativos tuvieron que hacerse cargo de la seguridad de estos objetos cuando asumieron

la responsabilidad del sharing controlado.

Page 5: Clase 11 Javier Echaiz D.C.I.C. – U.N.S. jechaiz je@cs.uns.edu.ar JAVIER ECHAIZ

5

Seguridad en Sistemas: Protección en Sistemas OperativosSeguridad en Sistemas: Protección en Sistemas Operativos

Métodos de Seguridad (1)Métodos de Seguridad (1)

La base de la protección es la separación. Separar los objetos de un usuario de los objetos de otros usuarios.

Esta separación puede hacerse de 4 formas en un S.O:

• Separación Física. Los procesos usan diferentes objetos físicos. Ej: una impresora por usuario.

• Separación Temporal. Procesos con distintos requerimientos de seguridad corren en diferentes tiempos.

• Separación Lógica. Los usuarios trabajan como si no existiera ningún otro proceso.

• Separación Criptográfica. Los procesos protegen su entorno haciéndolo ininteligible desde su exterior.

PUEDEN

COMBINARSE

Page 6: Clase 11 Javier Echaiz D.C.I.C. – U.N.S. jechaiz je@cs.uns.edu.ar JAVIER ECHAIZ

6

Seguridad en Sistemas: Protección en Sistemas OperativosSeguridad en Sistemas: Protección en Sistemas Operativos

Métodos de Seguridad (2)Métodos de Seguridad (2)

Separación es solo la mitad de la respuesta. Queremos que los usuarios compartan algunos objetos.

Protecciones en diferentes niveles.

• Sin Protección. Apropiados si hay separación física/temporal.

• Aislamiento. Cada proceso tiene su espacio de direcciones, archivos, etc.

• Compartir Todo o Nada. El dueño de un objeto lo declara público o privado. Lo accede todo el mundo o nadie.

• Compartir via Limitación de Acceso. El control de acceso se implementa para cada usuario y para cada objeto.

Page 7: Clase 11 Javier Echaiz D.C.I.C. – U.N.S. jechaiz je@cs.uns.edu.ar JAVIER ECHAIZ

7

Seguridad en Sistemas: Protección en Sistemas OperativosSeguridad en Sistemas: Protección en Sistemas Operativos

Métodos de Seguridad (3)Métodos de Seguridad (3)

Protecciones en diferentes niveles. (sigue)

• Compartir por Capacidades. Extensión de Compartir por limitación de acceso: creación dinámica de objetos compartidos. El grado de sharing dependerá del objeto, entorno o del owner.

• Limitar el Uso de un Objeto. No solo se limita el acceso sino también el uso de un objeto. Ej: permiso de lectura pero no de escritura sobre un archivo.

Nuevamente los modos fueron agrupados desde el más fácil al más difícil de implementar.

Page 8: Clase 11 Javier Echaiz D.C.I.C. – U.N.S. jechaiz je@cs.uns.edu.ar JAVIER ECHAIZ

8

Seguridad en Sistemas: Protección en Sistemas OperativosSeguridad en Sistemas: Protección en Sistemas Operativos

Métodos de Seguridad (4)Métodos de Seguridad (4)

La Granularidad del control es también muy importante.

Por ejemplo los datos de un archivo se pueden controlar al nivel del bit, byte, word, registro o archivo.

A mayor granularidad más fácil implementación pero menor control.

Veamos ahora tipos específicos de protección según el tipo de objeto a proteger.

Page 9: Clase 11 Javier Echaiz D.C.I.C. – U.N.S. jechaiz je@cs.uns.edu.ar JAVIER ECHAIZ

9

Seguridad en Sistemas: Protección en Sistemas OperativosSeguridad en Sistemas: Protección en Sistemas Operativos

Protección de Memoria y Direccionado (1)Protección de Memoria y Direccionado (1)

El problema más obvio de la multiprogramación es la protección de memoria. Protecciones de Hardware (sin costo adicional para el S.O).

Vallado (Fence)

Es la protección de memoria más simple y fue introducida en los sistemas monousuario para evitar que un programa defectuoso destruya parte del S.O residente.

Se puede implementar mediante una dirección de memoria predefinida o mediante un registro, fence register (más flexible). Protege al S.O pero no a los usuarios!

Page 10: Clase 11 Javier Echaiz D.C.I.C. – U.N.S. jechaiz je@cs.uns.edu.ar JAVIER ECHAIZ

10

Seguridad en Sistemas: Protección en Sistemas OperativosSeguridad en Sistemas: Protección en Sistemas Operativos

Protección de Memoria y Direccionado (2)Protección de Memoria y Direccionado (2)

Relocación

Es el proceso de tomar un programa como si comenzara en la dirección 0 y cambiar todas las direcciones para reflejar las direcciones actuales.

A veces se usa un relocation factor para marcar la dirección inicial del programa. Se puede utilizar el fence register para implementarlo.

Page 11: Clase 11 Javier Echaiz D.C.I.C. – U.N.S. jechaiz je@cs.uns.edu.ar JAVIER ECHAIZ

11

Seguridad en Sistemas: Protección en Sistemas OperativosSeguridad en Sistemas: Protección en Sistemas Operativos

Protección de Memoria y Direccionado (3)Protección de Memoria y Direccionado (3)

Registros Base/Límite

El registro de relocación provee una dirección base o de comienzo. Todas las direcciones del programa son desplazamientos a partir de la dirección base. Registro Base.

Con el Registro Límite se fija el límite superior del direccionado de un usuario.

Ahora se puede proteger a un usuario de otro, pero todavía no se puede proteger de sí mismo.

Para solucionar este problema se pueden usar más pares de registros… ideas?

Page 12: Clase 11 Javier Echaiz D.C.I.C. – U.N.S. jechaiz je@cs.uns.edu.ar JAVIER ECHAIZ

12

Seguridad en Sistemas: Protección en Sistemas OperativosSeguridad en Sistemas: Protección en Sistemas Operativos

Protección de Memoria y Direccionado (4)Protección de Memoria y Direccionado (4)

Arquitectura Etiquetada

Otro problema del esquema base/límite es la continuidad de las áreas de memoria. Además la comparten todo o nada.

La idea de este esquema es la de marcar cada word de memoria con permisos usando bits extras. Estos bits serán inicializados en modo privilegiado.

Alternativamente se puede “etiquetear” un grupo de direcciones.

Memoria hoy es barata, el problema de implementar ésta técnica son las costosas modificaciones en los S.O.s.

Page 13: Clase 11 Javier Echaiz D.C.I.C. – U.N.S. jechaiz je@cs.uns.edu.ar JAVIER ECHAIZ

13

Seguridad en Sistemas: Protección en Sistemas OperativosSeguridad en Sistemas: Protección en Sistemas Operativos

Protección de Memoria y Direccionado (5)Protección de Memoria y Direccionado (5)

Segmentación (1)

Los últimos dos métodos pueden implementarse no tan costosamente, sobre arquitecturas comunes. Esta técnica es de 1965 y resultó ser sumamente útil para el direccionado y trae consigo el bono de la protección de memoria.

En este esquema el programa se divide en piezas llamadas segmentos. Independencia lógica.

Se direcciona así: <nombre de segmento, offset>.

El S.O. mantiene una tabla de segmentos (una por proceso) para convertir estas direcciones a direcciones reales.

Page 14: Clase 11 Javier Echaiz D.C.I.C. – U.N.S. jechaiz je@cs.uns.edu.ar JAVIER ECHAIZ

14

Seguridad en Sistemas: Protección en Sistemas OperativosSeguridad en Sistemas: Protección en Sistemas Operativos

Protección de Memoria y Direccionado (6)Protección de Memoria y Direccionado (6)

Segmentación (2)

Este ocultamiento de direcciones brinda 3 ventajas al S.O.:

• El sistema operativo puede mover el segmento a donde quiera, incluso durante la ejecución del programa. Solamente tiene que cambiar la tabla de segmentos.

• Puede swappear a otro dispositivo (disco) un segmento no utilizado.

• Toda dirección debe ser “traducida” por el S.O. Oportunidad para chequear protecciones.

Page 15: Clase 11 Javier Echaiz D.C.I.C. – U.N.S. jechaiz je@cs.uns.edu.ar JAVIER ECHAIZ

15

Seguridad en Sistemas: Protección en Sistemas OperativosSeguridad en Sistemas: Protección en Sistemas Operativos

Protección de Memoria y Direccionado (7)Protección de Memoria y Direccionado (7)

Segmentación (3)

A cada segmento se le puede dar diferentes permisos. Ej: RO data, EO code, etc.

La segmentación ofrece lo siguiente a la protección de RAM:

• Cada ref. a memoria es checkeada (permisos).

• Distintos tipos de clase de datos puede tener distintos niveles de protección.

• Dos o más usuarios pueden compartir el mismo segmento.

• Un usuario no puede direccionar memoria de segmentos no permitidos. Problemas de

implementación/eficiencia?

Page 16: Clase 11 Javier Echaiz D.C.I.C. – U.N.S. jechaiz je@cs.uns.edu.ar JAVIER ECHAIZ

16

Seguridad en Sistemas: Protección en Sistemas OperativosSeguridad en Sistemas: Protección en Sistemas Operativos

Protección de Memoria y Direccionado (8)Protección de Memoria y Direccionado (8)

Paginado

En este caso una dirección es de la forma: <página, offset>

El programa se divide en segmentos iguales: páginas y la memoria se divide en bloques de 1 página: page frames.

Las páginas no siguen asignaciones lógicas. Esto es malo para la protección. Why?

Paginado/Segmentado

En este caso se combina lo mejor de los dos mundos: eficiencia de implementación del paginado y la protección posible en sistemas segmentados.

Page 17: Clase 11 Javier Echaiz D.C.I.C. – U.N.S. jechaiz je@cs.uns.edu.ar JAVIER ECHAIZ

17

Seguridad en Sistemas: Protección en Sistemas OperativosSeguridad en Sistemas: Protección en Sistemas Operativos

Protección de Acceso a Objetos GeneralesProtección de Acceso a Objetos Generales

La protección de memoria es de cierta forma sencilla, pues cada acceso debe necesariamente pasar por algún mecanismo de hardware.

Hay objetivos complementarios de protección:

• Controlar cada acceso. Queremos poder revocar los permisos de algún usuario.

• Permitir el menor privilegio. El sujeto debe tener acceso al menor número de objetos necesarios para realizar una tarea.

• Verificar uso aceptable. No quiero solo acceso si/no, quiero también verificar que el uso de un objeto sea apropiado.

Page 18: Clase 11 Javier Echaiz D.C.I.C. – U.N.S. jechaiz je@cs.uns.edu.ar JAVIER ECHAIZ

18

Seguridad en Sistemas: Protección en Sistemas OperativosSeguridad en Sistemas: Protección en Sistemas Operativos

Protección de Acceso a Objetos GeneralesProtección de Acceso a Objetos Generales

Mecanismos de Control de Acceso

Directorio. Lista de permisos: una por usuario.

ACL (Lista de Control de Acceso). Lista de permisos: una por objeto.

• Matriz de Control de Acceso. Tabla usuarios/objetos.

Capacidad. Ficha que le da accesos a un dado objeto. Pionero de Kerberos. Transferencia o propagación de acceso.

Control de Acceso orientado a Procedimientos. Fuera del S.O. Procedimiento extra, por lo tanto hay información escondida.

Page 19: Clase 11 Javier Echaiz D.C.I.C. – U.N.S. jechaiz je@cs.uns.edu.ar JAVIER ECHAIZ

19

Seguridad en Sistemas: Protección en Sistemas OperativosSeguridad en Sistemas: Protección en Sistemas Operativos

Mecanismos de Protección de ArchivosMecanismos de Protección de Archivos

Existen muchos programas y mecanismos de protección de archivos. Veremos únicamente los más importantes/conocidos.

Formas Básicas de Protección

Todos los S.O.s multiusuario tienen algún mecanismo de protección para evitar problemas por descuido, desconocimiento o mala intención.

Page 20: Clase 11 Javier Echaiz D.C.I.C. – U.N.S. jechaiz je@cs.uns.edu.ar JAVIER ECHAIZ

20

Seguridad en Sistemas: Protección en Sistemas OperativosSeguridad en Sistemas: Protección en Sistemas Operativos

Formas Básicas de ProtecciónFormas Básicas de Protección

• All-None.

IBM, no hay protección para nadie y todo es público.

Protección: confianza ciega, ignorancia. Comentarios?

Inaceptable!!!

• Grupo de Protección

Grupos de usuarios que tienen cierta relación. Ej: UNIX.

Política de selección del grupo: necesidad de compartir.

Mejor que el anterior pero introduce algunos problemas.

Page 21: Clase 11 Javier Echaiz D.C.I.C. – U.N.S. jechaiz je@cs.uns.edu.ar JAVIER ECHAIZ

21

Seguridad en Sistemas: Protección en Sistemas OperativosSeguridad en Sistemas: Protección en Sistemas Operativos

Single PermissionsSingle Permissions

• Password/Token.

Se pueden usar para proteger archivos. Ej: S.O. solicita passwd en cada acceso al archivo. No hay problema con los grupos. Pero: pérdida, revelación, revocación.

• Permiso Temporal

Permiso suid (set userid). Permite acceso a un usuario que de otra forma solo podría acceder como root.

• Protección por Objeto/Usuario

El principal problema de estos problemas está en la creación de grupos “útiles”. Ej: VMS.

Page 22: Clase 11 Javier Echaiz D.C.I.C. – U.N.S. jechaiz je@cs.uns.edu.ar JAVIER ECHAIZ

22

Seguridad en Sistemas: Protección en Sistemas OperativosSeguridad en Sistemas: Protección en Sistemas Operativos

Autentificación de UsuariosAutentificación de Usuarios

Uso de Passwords

Para que funcione como se espera el password debe ser únicamente conocido por el usuario y el sistema.

• Sistemas “Reveladores”.

• Información de Autentificación Adicional.

Fundamental poder probar que alguien es quien dice ser!

Page 23: Clase 11 Javier Echaiz D.C.I.C. – U.N.S. jechaiz je@cs.uns.edu.ar JAVIER ECHAIZ

23

Seguridad en Sistemas: Protección en Sistemas OperativosSeguridad en Sistemas: Protección en Sistemas Operativos

Ataques a PasswordsAtaques a Passwords

Brindan protección relativamente limitada: pocos bits.

Algunas formas de obtener el password de un usuario:

• Probar todos los passwords.

• Probar posibles passwords.

• Probar passwords probables para este usuario.

• Buscar en el archivo de passwords.

• Preguntarle al usuario.

• etc.

Page 24: Clase 11 Javier Echaiz D.C.I.C. – U.N.S. jechaiz je@cs.uns.edu.ar JAVIER ECHAIZ

24

Seguridad en Sistemas: Protección en Sistemas OperativosSeguridad en Sistemas: Protección en Sistemas Operativos

Ataques a Passwords (1)Ataques a Passwords (1)

Ataque Exhaustivo/Fuerza Bruta

Probar todos los posibles passwords. Ej: 27^n en español para passwd de n letras mayúsculas. En gral la búsqueda se agota mucho antes.

Passwords Probables

Piensen en una palabra…

Es larga, poco conocida y difícil de pronunciar? NO!

Atacante prueba primero con palabras cortas y que sigan ciertas “costumbres”.

Page 25: Clase 11 Javier Echaiz D.C.I.C. – U.N.S. jechaiz je@cs.uns.edu.ar JAVIER ECHAIZ

25

Seguridad en Sistemas: Protección en Sistemas OperativosSeguridad en Sistemas: Protección en Sistemas Operativos

Ataques a Passwords (2)Ataques a Passwords (2)

Passwords Probables para un Usuario

En general el password tiene un significado para uno. Trabajo, película favorita, etc. Ej: Morris!

Búsqueda de archivo (plano) de Passwords

Si el atacante lo encuentra: pan comido… Nada de andar probando/adivinando. Dump de memoria, backups, etc…

Archivo de Passwords Encriptado

Más seguro que el anterior. Funciones Hash. Ej: UNIX

salt.

Page 26: Clase 11 Javier Echaiz D.C.I.C. – U.N.S. jechaiz je@cs.uns.edu.ar JAVIER ECHAIZ

26

Seguridad en Sistemas: Protección en Sistemas OperativosSeguridad en Sistemas: Protección en Sistemas Operativos

Ataques a Passwords (3)Ataques a Passwords (3)

Preguntarle al Usuario su Password

Muy fácil. Visto en las primeras clases con ejemplos.

Un buen Password• No solo A-Z.

• Largo (6 o más caracteres).

• Evitar palabras de diccionarios.

• Password no probable.

• Cambiar passwd regularmente.

• No escribirlo.

• No divulgarlo.