seguridad en los sistemas operativos -...
TRANSCRIPT
Seguridad en los Sistemas Operativos
Seguridad en los Sistemas Operativos
Gracia Fernández LópezSeguridad en los Sistemas de Información
Máster en Informática
Seguridad en los Sistemas Operativos
Índice
• Introducción.• Protección de la memoria.• Buffer Overflow.• RAID.• Sistemas de Ficheros con journaling.• Backup.• Control de acceso.• Cifrado en sistema de ficheros.• Sistemas de Autenticación.
Seguridad en los Sistemas Operativos
Introducción
• Funciones básicas de un sistema operativo:– Gestión del Procesador y la Memoria.– Gestión de los Sistemas de Almacenamiento.– Gestión de la Entrada/Salida.– Gestión de la Red.
Seguridad en los Sistemas Operativos
Protección de Memoria
• Protección entre procesos:– Memoria Virtual: direcciones virtuales.– MMU: traduce de direcciones virtuales a direcciones físicas.– Tabla de páginas propia de cada proceso → espacio de direcciones
independiente para cada proceso.
• Protección del kernel:– Niveles de privilegio de ejecución.– Tabla de páginas propia.
Seguridad en los Sistemas Operativos
Buffer Overflow
• Vulnerabilidad Software:– El proceso permite asignar datos de un tamaño mayor al reservado
→ sobreescribe memoria adyacente.– Exploit:
datos extra = ejecución código malicioso (shellcode)
• Estructura de un proceso.• Tipos de buffer overflow.• Mecanismos para evitarlo.
Seguridad en los Sistemas Operativos
Estructura de un proceso
• Texto: instrucciones del programa.• Data: variables globales.• Heap: variables dinámicas (malloc).• Stack: variables locales, argumentos
y dirección de retorno de cada llamada a función (frame).
Stack y Heap: tamaño determinado en tiempo de ejecución →puede darse buffer overflow.
Seguridad en los Sistemas Operativos
Tipos de Buffer Overflow (I)
• Stack Overflow:– Exploit: introduce un shellcode (código
maligno) dentro del stack y cambia la dirección de retorno de la función para que pase a apuntar al shellcode.
– Técnica de hacking bien conocida →existe muchos métodos para evitarla
Seguridad en los Sistemas Operativos
Tipos de Buffer Overflow (III)
• Heap Overflow:– Objetivo: sobreescribir alguna variable importante
almacenada en el heap.– Problema: más complejo (depende de la
implementación concreta del sistema de asignación de memoria).
– Menos conocido y más difícil de detectar y evitar.
Seguridad en los Sistemas Operativos
Protección contra BO• Protección Stack-smashing: Marca (“canario”) en el stack
para detectar que se ha producido un desbordamiento. Solución del compilador.
• Protección del espacio ejecutable: Marcar las zonas de memoria del stack y el heap como no ejecutables. Bit hardware NX o implementación W^X.
• Address space layout randomization (ASLR): Las partes del proceso se colocan en memoria de forma aleatoria. Dificulta el cálculo de la dirección de retorno al shellcode.
• Deep packet inspection (DPI): Detecta ataques remotos usando firmas de ataques y heurísticas. Solución de los sistemas de detección de intrusos.
Seguridad en los Sistemas Operativos
RAID
• Definición: RAID (Redundant Array of Inexpensive Disks) es un sistema de almacenamiento con múltiples discos.
• Ventajas:– Mayor Integridad: redundancia de datos e información de paridad.– Tolerancia a fallos: recuperación de datos en tiempo real.– Mayor throughput (rendimiento): lecturas/escrituras en paralelo.– Alta disponibilidad: aumenta el tiempo de funcionamiento y
disponibilidad de la red.
Seguridad en los Sistemas Operativos
Niveles RAID (I)
• RAID 0 (disk striping):– Información distribuída en discos (bloques).– No tiene redundancia.– Aumenta rendimiento (lecturas/escrituras en
paralelo)
Seguridad en los Sistemas Operativos
Niveles RAID (II)
• RAID 1 (mirroring):– Información duplicada (discos espejo).– Tolerancia a fallos (si el disco primario falla, el
disco espejo sigue funcionando).– Aumenta rendimiento en lecturas, disminuye en
escrituras.– Solución muy cara.
Seguridad en los Sistemas Operativos
Niveles RAID (III)
• RAID 2:
– Información dividida a nivel de bit (no a nivel de bloque).– Código de Hamming para la correción de errores.– Discos sincronizados.– Modelo teórico, no es viable en la práctica.
Seguridad en los Sistemas Operativos
Niveles RAID (IV)
• RAID 3 (parallel data access):– División a nivel de byte.– Disco de paridad dedicado.– Sólo se puede hacer una operación de lectura/escritura a la vez (acceso a todos los discos simultáneo).
Seguridad en los Sistemas Operativos
Niveles RAID (V)
• RAID 4:– División a nivel de bloque.– Disco de paridad dedicado.– Permite lecturas simultáneas. – No permite escrituras
simultáneas: cuello de botella en el disco de paridad.
Seguridad en los Sistemas Operativos
Niveles RAID (VI)
• RAID 5 (independentdata access):– Similar a RAID 4.– Información de paridad
almacenada en los discos de manera rotatoria.
– Lecturas y escrituras en paralelo.
Seguridad en los Sistemas Operativos
Niveles RAID (VII)
• RAID 6:– Similar a RAID 5.– 2 Niveles de redundancia: 2
esquemas de paridad distribuídos.
– Alta tolerancia a fallos.– Alto coste (controladoras muy
específicas y complejas).
Seguridad en los Sistemas Operativos
Niveles RAID (VIII)
• Otros niveles RAID:– RAID 5E y 6E: RAID 5 y 6 con discos de reserva.
– RAID 7: sistema operativo en el controlador.– RAID-Z (en ZFS de Solaris): RAID-5 que soluciona el
problema de “write hole” (datos e información de paridad inconsistentes ante una caída del sistema durante una escritura). Tamaño de bloques variable (1 escritura ⇒ 1 escritura de un bloque completo).
– Niveles RAID anidados: RAID 0+1, RAID 10, RAID 30, RAID 100.
Seguridad en los Sistemas Operativos
Implementaciones de RAID
• Hardware:– Controladora RAID específica.– Mejor rendimiento y mayor coste.– Transparente al sistema operativo (ve una única unidad lógica).
• Software:– El sistema operativo gestiona los discos del RAID.– Menor coste y menor rendimiento (acapara tiempo del procesador).– Ejemplos:
• Windows: discos dinámicos (RAID 0, 1 y 5).• Linux: device driver md (multiple device) (RAID 0, 1, 4, 5, 6 y 10).
Seguridad en los Sistemas Operativos
Sist. de Ficheros con journaling
• Problema: Page-cache/buffer-cache + caída → inconsistencias en FS.
• Solución: Sistemas de Ficheros con journaling.• Idea básica: transiciones.• Registro cronológico: log o journal de la
metainformación de los ficheros.• Implementaciones:
- Linux: Ext3, ReiserFS, XFS y JFS.- Windows: NTFS- SUN Solaris: UFS Logging- Mac OS X: HFS+.
Seguridad en los Sistemas Operativos
Backup
• Copias de seguridad del sistema o backup de datos.
• Ejemplos de mecanismos de backup:– Instantáneas (snapshots) de sistemas de
ficheros.– Windows: herramienta Ntbackup.– Unix: comandos dd, dump, restore.
Seguridad en los Sistemas Operativos
Control de acceso
• Define a qué objetos tiene acceso cada sujeto.– Sujeto: usuarios, procesos, ...– Objeto: entidad que contiene información.
• Matriz de control de acceso: modelo teórico.
Seguridad en los Sistemas Operativos
Políticas de control de acceso
• Control de Acceso Discrecional (Discretionary Access Control DAC):– Propietario determina acceso al objeto.
• Control de Acceso Obligatorio (Mandatory Access Control MAC): – Sistema decide el acceso a los objetos.
• Control de Acceso Basado en Roles (Role-Based Access Control RBAC): – Permisos asignados a roles, roles asignados a sujetos.
Seguridad en los Sistemas Operativos
Control de acceso discrecional (DAC)
• Conceptos fundamentales:– Propietario: todo objeto tiene un propietario (normalmente
creador).– Permisos: el propietario asigna permisos sobre el objeto a otros
sujetos.
• Implementación:– Bits de permisos (lectura, escritura, ejucución, ...).– Sistemas de contraseñas (contraseña de acceso a un objeto).– Listas de capacidades: cada usuario tiene una lista con los objetos a
los que tiene acceso y sus permisos correspondientes.– Listas de control de acceso (ACLs): conjunto de entradas de
usuario, grupo y modo asociado a un archivo que especifica sus permisos de acceso.
Seguridad en los Sistemas Operativos
Control de acceso obligatorio (MAC)
• Conceptos fundamentales:– Etiquetas: cada objeto tiene asociada una etiqueta
dependiendo de su nivel de “sensibilidad”.– Asignación de etiquetas: sistema (a partir de la política
de seguridad definida por el administrador).
• Implementaciones: SELinux, AppArmor (SUSE), TrustedBSD, Trusted Solaris, Mandatory IntregrityControl (Vista).
Seguridad en los Sistemas Operativos
Control de acceso basado en roles (RBAC)
• Permisos asignados a operaciones con significado en la organización (no a ficheros).
• Roles reciben los permisos para realizar esas operaciones.
• Usuarios asignados a roles particulares.
Seguridad en los Sistemas Operativos
Cifrado
• Sistemas de Ficheros de propósito general con encriptación:– Cifrado de ficheros del sistema de ficheros.– Problema: no cifran los metadatos.– Ejemplo: EFS (Encrypting File System), extensión de NTFS.
• Sistema de Ficheros criptográficos:– SF especialmente diseñados para cifrado y seguridad.– Cifran todos los datos (incluyendo metadatos).– Ejemplos: CryptoFS (Linux), GEOM (FreeBSD), BitLocker Drive
Encryption (Vista).
Seguridad en los Sistemas Operativos
Sistemas de Autenticación• Cuenta de Usuario:
– login o nombre de usuario– identificador de usuario (UID)– identificadores de grupo (GID)– ...
• PAM (Pluggable Authentication Modules): API de Unix que hace independientes los programas del sist. de autenticación utilizado.
• LSA (Local Security Authority): Subsistema de autenticación en Windows.
• User Account Control (UAC): “Mejora” de Vista en la que el administrador sólo realiza como tal las tareas administrativas, en las demás actúa como un usuario normal.
Seguridad en los Sistemas Operativos
Sistemas de Autenticación: Tipos
• Autenticación local: – El sistema operativo realiza la autenticación en la
máquina local.
• Autenticación centralizada: – El sistema operativo delega en un sistema de directorio,
que se encarga de las autenticaciones del dominio. – Protocolos:
• Kerberos.• LDAP.
Seguridad en los Sistemas Operativos
Kerberos (I)
• Autenticación mutua:– Identidad del solicitante.– Id. del servicio solicitado.
• Basado en la emisión de tickets.• Elemento principal: KDC (Key Distribution
Center), que está compuesto por:– AS (Authentication Server): servidor de autenticación.– TGS (Ticket Granting Server): servidor de concesión de tickets.
Seguridad en los Sistemas Operativos
Kerberos (II)1. Cliente se autentica en el AS (AS_REQ).
2. KDC emite al cliente un ticket especial que emite tickets (AS_REP). Cliente accede con él al TGS (TGS_REQ).
3. El TGS emite un ticket de servicio al cliente (TGS_REP).
4. El cliente presenta el ticket al servicio, se realiza la autenticación mutua (AP_REQ y AP_REP).
Seguridad en los Sistemas Operativos
LDAP
• Lightweight Directory Access Protocol.• Protocolo a nivel de aplicación para consultar y
modificar servicios de directorio.• Proporciona mensajes para acceder y modificar un
directorio LDAP.– Directorio: árbol de entradas de directorio – Entrada:
• Conjunto de atributos (nombre=valor).• Nombre distinguido (DN): identificador.
Seguridad en los Sistemas Operativos
Servicios de directorio (DS)
• Definición:– Aplicación software que almacena y organiza
información acerca de los usuarios y recursos de una red, controlando el acceso de los usuarios a dichos recursos.
• Implementaciones: Las más conocidas son:
– OpenLDAP.– Active Directory.
Seguridad en los Sistemas Operativos
Active Directory• Servicio de directorio de
Microsoft.• Implementa múltiples
protocolos (LDAP, DNS, DHCP, Kerberos, ...).
• Servicio de autenticación y autorización centralizado para redes con Windows.