800 likes | 1.09k Views
Protección y Seguridad. Temario. PROTECCION Definición, elementos, Dominios y Objetos Implementaciones: Matriz de accesos Tabla global Listas de acceso Listas de capacidades Lock/Key Estructuras dinámicas SEGURIDAD Criptografía, breve historia Métodos Simétricos: Cesar
E N D
Temario PROTECCION • Definición, elementos, Dominios y Objetos • Implementaciones: • Matriz de accesos • Tabla global • Listas de acceso • Listas de capacidades • Lock/Key • Estructuras dinámicas SEGURIDAD • Criptografía, breve historia • Métodos Simétricos: • Cesar • Sustitución con palabra clave • One time pad • DES - AES • Métodos Asimétricos: • RSA • Firma digital
Definiciones Protección: Se refiere al mecanismo para controlar el acceso de programas, procesos o usuarios a los recursos definidos del sistema. Seguridad: La seguridad se diferencia de la protección en que ésta es una medida de cómo se preserva la integridad de un sistema y sus datos. La seguridad no solo requiere de un buen sistema de protección sino que además considera el entorno externo dentro del cual opera el sistema. Los problemas de seguridad son esencialmente problemas de administración y no de sistema.
Otra definición de seguridad • La seguridad de la información se entiende como la preservación de las siguientes características: • Confidencialidad • Integridad • Disponibilidad
Confidencialidad • Se garantiza que la información sea accesible sólo a aquellas personas autorizadas a tener acceso a la misma. • Ej: Cifrar una declaración de impuestos no permitirá que nadie la lea. Si el dueño necesita verla, debe descifrarla con la clave que sólo él conoce. Si alguien logra obtener la clave de cifrado, la confidencialidad de la declaración de impuestos ha sido comprometida.
Integridad • Se salvaguarda la exactitud y totalidad de la información y los métodos de procesamiento. La integridad incluye la integridad de los datos (el contenido) y el origen de los mismos (autoría). • Ej: Un periódico puede dar información obtenida de la casa rosada pero atribuirla a una fuente incorrecta. Es un ejemplo de integridad de la información, pero con integridad de origen corrupta.
Disponibilidad • Se garantiza que los usuarios autorizados tengan acceso a la información y a los recursos relacionados con la misma, toda vez que lo requieran. • Ej: Es el ultimo día para comprar entradas por internet para ir a un evento y se corta la luz en el centro de cómputos. Las UPS funcionan durante 2 horas y luego apagan los servidores. Resultado: No se pueden vender todas las entradas.
Elementos de un esquema de protección DOMINIO: Entidad activa que realiza acciones (un proceso, un usuario, una CPU, etc.) OBJETO: Entidad pasiva que recibe las acciones realizadas por los dominios (memoria, un periférico, un usuario, etc.) DERECHO DE ACCESO: Calificación respecto del tipo de acción que puede realizarse (por ej.: lectura, escritura, etc.)
Implementaciones de esquemas de protección • MATRIZ DE ACCESOS • TABLA GLOBAL • LISTAS DE ACCESO • LISTAS DE CAPACIDADES • LOCK/KEY
Matriz de Accesos Matriz con los objetos en las columnas y los dominios en las filas. En la intersección de una fila/columna se encuentra el derecho de acceso. Si el derecho de acceso está en blanco implica que no se puede acceder.
Tabla Global Un conjunto de uplas (<Dominio, Objeto, Derecho de acceso>) con todos los elementos NO nulos de la Matriz de acceso. <Programadores, Compilador, Ejecutar> <Programadores, Archivos, Lectura> <System Programmer, Compilador, Lectura/ejecución/Grabación> <Usuarios, Compilador, Ejecutar> <Usuarios, Archivos, Lectura/grabación>
Listas de Acceso Se construyen por objeto (las LCA - listas de control de acceso- son un subconjunto de éstas) Compilador < Programadores, Ejecutar> < System Programmer, Lect./Grab./Ej> < Usuarios, Ejecutar> Archivos < Programadores, Lectura> < Usuarios, Lectura/Grabación>
Listas de Capacidad Se construyen por dominio (las LCU - listas de control de usuarios- son un subconjunto de éstas) Programador < Compilador, Ejecutar> < Archivos, Leer> Usuarios < Compilador, Ejecutar> < Archivos, Leer/Grabar> Syst. Programmer < Compilador, Lect/Ej/Grab>
Listas de Capacidad La capacidad de llegar al objeto la posee el dominio ya que debe conocer la ubicación del objeto para poder accederlo. En las LCU recordar que cada usuario debe poseer un puntero al archivo que no le pertenece para poder encontrarlo.
Mecanismo Lock-Key Cada Dominio provee su key y cada objeto provee su lock (usualmente son unos pocos bits). Ambos se combinan en una función (usualmente de tipo booleano) y de acuerdo al resultado se otorga o no el acceso.
Mecanismo Lock-Key(ejemplo) 3 dominios, 2 objetos y la función es la operación AND. Se accede si el resultado es Falso. Armemos solo el acceso al objeto Archivos Programadores < 1 0 > key Syst. Prog. < 0 1 > key Usuarios < 1 0 > key Archivos < 0 1 > lock Aquí solo se construyó el permiso de acceso sin calificarlo, es decir no se sabe aún si accede en modalidad de lectura o grabación -> necesitaré más bits.
Estructuras Dinámicas Hasta aquí las estructuras vistas son estáticas. Si queremos que la estructura pueda cambiar en tiempo de ejecución deben agregarse nuevos tipos de derechos de acceso. Veremos algunos, a saber: - COPY - OWNER - SWITCH - CONTROL
COPY Permite que un dominio otorgue el permiso que posee sobre un objeto a otro dominio. Se denota con un *. Ejemplo: Permitir que los Programadores puedan grabar archivos OJO! No puedo otorgar lo que no poseo!!
OWNER Otorga la propiedad de un Objeto a un dominio en particular. El dominio puede otorgar permisos sobre ese objeto a otros dominios y además eliminarlos. Ejemplo: Quitar la autorización dada a los programadores para grabar archivos
CONTROL Permitir que un dominio controle a otro dominio. Se necesita que los dominios ahora sean pasibles de recibir acciones. Asumiremos que el CONTROL solo permite eliminar derechos. Ejemplo: El System Programmer controla la operatoria total de los otros dominios
SWITCH Permite que un dominio pase a actuar como otro dominio perdiendo sus derechos y asumiendo los derechos del dominio al que se cambió. Ejemplo: Se desea que los System Programmer puedan probar nuevas aplicaciones desarrolladas para los usuarios para ver si efectivamente funcionan bien.
Monitor de referencia (MR) Mecanismo responsable de “mediar” cuando los sujetos o dominios intentan realizar operaciones sobre los objetos en función de una política de acceso. Sujeto Monitor de Referencia Objeto Solicitud de Acceso
Propiedades del MR Intermediación obligatoria Debe intervenir en todos los accesos. Aislamiento Tanto el MR como sus datos deben ser incorruptibles, sin posibilidad de modificaciones no autorizadas. Verificabilidad Debe poder demostrarse que su funcionamiento es correcto.
Clasificación de esquemas de protección Control de acceso discrecional (DAC) Control de acceso mandatorio (MAC) En la década del 90 surge: Control de acceso basado en roles (RBAC)
Control de acceso discrecional El control de acceso discrecional (Discretionary Access Control - DAC) es una política de control de acceso determinada por el dueño de un recurso (un archivo, una impresora). Es discrecional porque el dueño del recurso decide de manera arbitraria a quien le permite acceder al mismo y con que permisos.
Control de acceso discrecional Conceptos Propiedad: cada objeto en el sistema debe tener un dueño. La política de acceso es determinada por el dueño del recurso. En teoría un objeto sin dueño no se encuentra protegido. Normalmente el dueño de un recurso es el usuario que lo crea. Permisos: derechos de acceso que el dueño de un recurso asigna a usuarios individuales o a grupos de usuarios.
Control de acceso discrecional Ventajas Flexible y adaptable a muchos sistemas y aplicaciones. Ampliamente usado, especialmente en ambientes comerciales e industriales. Principal problema: Discrecionalidad para la cesión de derechos.
Componentes Seguridad MS Windows Fuente: Microsoft Windows Internals, 4th. edition
Control de acceso en Windows Windows NT4 o superior SID (Windows security identifier): secuencia numérica que se utiliza para identificar usuarios, grupos y cuentas del sistema. SID S-1-1-0 = grupo Everyone A un objeto se le asigna una DACLs (Discretionary access-control list) que se compone de ACEs (Access Control Entry). ace (denied, aceType(['ACCESS_DENIED_ACE_TYPE']), aceFlags, aceMask(['READ_CONTROL', 'SYNCHRONIZE']), sid('S-1-1-0')).
Ejemplo Thread A: el sistema lee ACE 1 y deniega el acceso. El sistema no chequea ACE 2 ni ACE 3. Thread B: ACE 1 no se aplica restricción, el sistema toma ACE 2, que permite acceso de escritura y ACE 3 que permite lectura y ejecución.
Modelo Bell-Lapadula - Confidencialidad • Combina acceso Mandatorio y acceso Discrecional • Niveles de clasificación de seguridad ordenados • Alto Secreto: Nivel más alto • Secreta: • Confidencial • No clasificada: nivel más bajo
Ejemplo • Tamara puede leer todos los archivos. • Claire no puede leer los legajos de personal o los archivos de correo electrónico. • Ulaley solo puede leer la guía telefónica.
Bell-Lapadula • Ante un requerimiento, el sistema lo admite o rechaza considerando la habilitación del sujeto que lo solicita y la clasificación de seguridad del objeto solicitado. • Para esto se aplican dos principios: • Read down • Write up
Acceso de lectura a la información • Condición simple de Seguridad, versión preliminar • El sujeto s puede leer el objeto o sii L(o) ≤ L(s) y s tiene permiso para leer el objeto o • Nota: el modelo combina control de acceso mandatorio (relaciones entre niveles de seguridad) y control discrecional (el permiso requerido) • Conocida como la Regla de “Read Down”
Escritura de Información • Propiedad *, versión preliminar • El sujeto s puede escribir el objeto o sii L(s) ≤ L(o) y s tiene permiso de escritura para o • Nota: el modelo combina control de acceso mandatorio (relaciones entre niveles de seguridad) y control discrecional (el permiso requerido) • Conocida como la Regla de “Write up”
Modelo BIBA - Integridad • Niveles de integridad: Cuanto más alto el nivel de integridad, más confianza en que: • Un programa ejecutara correctamente • La información es correcta y/o confiable. Read up: Un sujeto S puede leer un objeto osiii(s) ≤ i(o) Write down: Un sujeto S puede escribir un objeto o sii i(o) ≤ i(s)
Control de acceso basado en roles RBAC (Role Based Access Control) surge a fines de la década del 80 y toma un fuerte impulso en los 90. Combina aspectos de DAC y de MAC, pero con una visión más orientada a la estructura organizacional. Básicamente consiste en la creación de roles para los trabajos o funciones que se realizan en la organización. Los miembros del staff se asignan a roles y a través de estos roles adquieren permisos para ejecutar funciones del sistema.
Control de acceso basado en roles Los sujetos acceden a los objetos en base a las actividades que (los sujetos) llevan a cabo en el sistema. Es decir, considerando los roles que ocupan en el sistema. Rol: es el conjunto de acciones y responsabilidades asociadas con una actividad en particular.
Control de acceso basado en roles Para implementar RBAC se necesitan mecanismos que permitan: Identificar los roles en un sistema y asignar los sujetos a los roles definidos. Establecer los permisos de acceso a los objetos para cada rol. Establecer permisos a los sujetos para que puedan adoptar roles.
Control de acceso basado en roles Características de RBAC: Administración de autorizaciones Jerarquía de roles Menor privilegio Separación de responsabilidades Desventaja Dificultad de establecer los roles y definir sus alcances.
Algunas implementaciones de RBAC • Sun Solaris • Microsoft Active Directory • Base de datos Oracle • Base de Datos MS Sql Server
Vulnerabilidades, amenazas, etc. • Una vulnerabilidad es una debilidad en un activo. • Una amenaza es una violación potencial de la seguridad. No es necesario que la violación ocurra para que la amenaza exista. Las amenazas “explotan” vulnerabilidades. • Hay que protegerse o estar preparado para las acciones que podrían causar dicha violación. • Dichas acciones son llamadas ataques. Los que ejecutan las acciones, o producen la ejecución de las mismas, son llamados atacantes o intrusos.
origen de la información destino de la información flujo normal Tipos de amenazas • Flujo normal de información
origen de la información destino de la información Tipos de amenazas • Interrupción del flujo de información • Destrucción del recurso • Bloqueo del recurso • Saturación del recurso • Amenaza a la disponibilidad de la información
origen de la información destino de la información intruso Tipos de amenazas • Intercepción de información • Acceso no autorizado al recurso • Monitoreo de información • Ingeniería social • Amenaza a la confidencialidad de la información
origen de la información destino de la información intruso Tipos de amenazas • Alteración de información • Modificación del recurso • Amenaza a la integridad de la información
origen de la información destino de la información intruso Tipos de amenazas • Fabricación de información • Incorporación de información • Envío de mensajes falsos (phishing) • Amenaza a la autenticidad de la información
Tipos de amenazas • Amenazas Pasivas • No se interfiere con los sistemas • Son difíciles de detectar • Dependen del medio físico de transmisión • Monitoreo de datos (sniffing) • Análisis de actividad (side channel attack)