Story Transcript
Introducci´ on Entorno de seguridad Seguridad en sistemas operativos Control de acceso a recursos Modelos formales de seguridad Bases Introducci´ de la criptograf´ on Entorno ıa Acreditaci´ de seguridad on Software Seguridad de explotaci´ en sistemas on Ataques operativos desdeControl dentrodeSoftware acceso amalicioso recursos Modelos formales de seguridad Bases Introducci´ de la criptograf´ on Entorno ıa Acreditaci´ de seguridad on Software Seguridad de explotaci´ en sistemas on Ataques operativos desdeControl dentrodeSoftware acceso amalicioso recursos Modelos formales de seguridad Bases Introducci´ de la criptograf´ on Entorno ıa Acreditaci´ de seguridad on Software Seguridad de explotaci´ en sistemas on Ataques operativos desdeControl dentrodeSoftware acceso amalicioso recursos Modelos formales de seguridad Bases de la criptograf
´Indice I 1 2
Seguridad en Sistemas Operativos
3
Gustavo Romero L´ opez 4 Arquitectura y Tecnolog´ıa de Computadores
21 de diciembre de 2016 5
6
Gustavo Romero L´ opez
Seguridad en Sistemas Operativos
´Indice II
Introducci´ on Entorno de seguridad Amenazas Atacantes Seguridad en sistemas operativos ¿Podemos construir sistemas seguros? Base inform´atica de confianza Control de acceso a recursos Dominios de protecci´ on Listas de Control de Acceso Capacidades Modelos formales de seguridad Seguridad multinivel Bases de la criptograf´ıa Criptograf´ıa sim´etrica o de clave secreta Criptograf´ıa asim´etrica o de clave p´ ublica
1 / 95
Gustavo Romero L´ opez
Seguridad en Sistemas Operativos
´Indice III
Funciones unidireccionales Firma digital M´ odulo de plataforma de confianza 7
Acreditaci´ on Acreditaci´ on mediante objetos f´ısicos Acreditaci´ on biom´etrica
8
Software de explotaci´ on Ataques de desbordamiento de b´ ufer Ataques de cadena de formato Punteros colgados (dangling pointers) Ataques de desreferencia de punteros nulos Ataques de desbordamiento de enteros Ataques inyecci´ on de ´ ordenes Ataques comprobaci´ on/uso (Time of Check to Time of Use Attacks)
2 / 95
Gustavo Romero L´ opez
Seguridad en Sistemas Operativos
9
Ataques desde dentro
10
Software malicioso Troyanos Virus Gusanos
Gustavo Romero L´ opez
3 / 95
Seguridad en Sistemas Operativos
4 / 95
Introducci´ on Entorno de seguridad Seguridad en sistemas operativos Control de acceso a recursos Modelos formales de seguridad Bases Introducci´ de la criptograf´ on Entorno ıa Acreditaci´ de seguridad on Software Seguridad de explotaci´ en sistemas on Ataques operativos desdeControl dentrodeSoftware acceso amalicioso recursos Modelos formales de seguridad Bases Introducci´ de la criptograf´ on Entorno ıa Acreditaci´ de seguridad on Software Seguridad de explotaci´ en sistemas on Ataques operativos desdeControl dentrodeSoftware acceso amalicioso recursos Modelos formales de seguridad Bases Introducci´ de la criptograf´ on Entorno ıa Acreditaci´ de seguridad on Software Seguridad de explotaci´ en sistemas on Ataques operativos desdeControl dentrodeSoftware acceso amalicioso recursos Modelos formales de seguridad Bases de la criptograf
Definici´on
Definici´on de seguridad inform´atica: Protecci´on de la infraestructura computacional y todo lo relacionado con esta y, especialmente, la informaci´ on contenida o circulante. Un conjunto de m´etodos y herramientas destinados a proteger la informaci´on y por ende, los sistemas inform´aticos ante cualquier amenaza.
Introducci´on
Gustavo Romero L´ opez
Seguridad en Sistemas Operativos
Facetas de la seguridad
5 / 95
Gustavo Romero L´ opez
Seguridad en Sistemas Operativos
Evoluci´on del problema
Grandes cambios a lo largo de la historia de la Inform´atica: multiusuario → monousuario balance precio: sistema / usuario sistemas aislados → conectados
Problemas a estudiar: Naturaleza de las amenazas. Naturaleza de los intrusos. P´erdida accidental de datos.
6 / 95
Gustavo Romero L´ opez
Seguridad en Sistemas Operativos
7 / 95
Gustavo Romero L´ opez
Seguridad en Sistemas Operativos
8 / 95
Introducci´ on Entorno de seguridad Seguridad en sistemas operativos Control de acceso a recursos Modelos formales de seguridad Bases Introducci´ de la criptograf´ on Entorno ıa Acreditaci´ de seguridad on Software Seguridad de explotaci´ en sistemas on Ataques operativos desde Amenazas Control dentroAtacantes deSoftware acceso amalicioso recursos Modelos formales de seguridad Bases Introducci´ de la criptograf´ on Entorno ıa Acreditaci´ de seguridad on Software Seguridad de explotaci´ en sistemas on Ataques operativos desde Amenazas Control dentroAtacantes deSoftware acceso amalicioso recursos Modelos formales de seguridad Bases Introducci´ de la criptograf´ on Entorno ıa Acreditaci´ de seguridad on Software Seguridad de explotaci´ en sistemas on Ataques operativos desde Amenazas Control dentroAtacantes deSoftware acceso amalicioso recursos Modelos formales de seguridad Bases de la criptograf
Terminolog´ıa b´asica
Seguridad y protecci´on
vulnerabilidad: fallo de seguridad. exploit: m´etodo para explotar una vulnerabilidad. Puede lanzarse manual o autom´aticamente mediante virus o gusanos. virus: exploit que requiere la interacci´on del usuario para propagarse. gusano: exploit capaz de propagarse aut´onomamente. troyano: enga˜no capaz de esconder un exploit.
Amenazas CIA: Confidenciality, Integrity and Availability. Confidencialidad: los datos secretos deben seguir si´endolo. Integridad: las personas sin autorizaci´on no deben ser capaces de alterar los datos. Disponibilidad: nada debe perturbar la usabilidad del sistema.
Seguridad: medida de la confianza en el sistema y la informaci´on que contiene. Protecci´ on: mecanismos que sirven para garantizar la seguridad.
Entorno de seguridad
objetivo confidencialidad integridad disponibilidad
amenaza exposici´on de datos alteraci´on de datos denegaci´on de servicio
La privacidad puede afectar a todos los tipos de amenazas. Gustavo Romero L´ opez
Seguridad en Sistemas Operativos
9 / 95
Gustavo Romero L´ opez
Seguridad en Sistemas Operativos
10 / 95
Gustavo Romero L´ opez
Seguridad en Sistemas Operativos
11 / 95
Gustavo Romero L´ opez
Seguridad en Sistemas Operativos
12 / 95
Introducci´ on Entorno de seguridad Seguridad en sistemas operativos Amenazas Control Atacantes de acceso a recursos Modelos formales de seguridad Bases Introducci´ de la criptograf´ on Entorno ıa Acreditaci´ de seguridad on Software Seguridad de explotaci´ en sistemas on Ataques operativos desde Amenazas Control dentroAtacantes deSoftware acceso amalicioso recursos Modelos formales de seguridad Bases Introducci´ de la criptograf´ on Entorno ıa Acreditaci´ de seguridad on Software Seguridad de explotaci´ en sistemas on Ataques operativos desde Amenazas Control dentroAtacantes deSoftware acceso amalicioso recursos Modelos formales de seguridad Bases Introducci´ de la criptograf´ on Entorno ıa Acreditaci´ de seguridad on Software Seguridad de explotaci´ en sistemas on Ataques operativos desde ¿Podemos Control dentro construir deSoftware acceso sistemas amalicioso recursos seguros? Modelos Base formales inform´ ade ticaseguridad de confianza Bases de la criptograf
Ejemplos de amenazas
Herramientas
Ataques: An´alisis de tr´afico de datos no cifrados por una red. Alteraci´on de bases de datos. Ataques de denegaci´on de servicio: LOIC, botnets. An´alisis de sistemas para detectar vulnerabilidades: nmap, metasploit. Explotaci´on de vulnerabilidades: crimen, guerra (Stuxnet).
Atacantes
Los atacantes pueden ser de muy distintos niveles, desde j´ovenes aburridos a gobiernos. El objetivo del ataque puede ser muy diverso: robo, activismo, vandalismo, terrorismo, guerra, espionaje, spam, extorsi´on, fraude,...
Uso dual: ¿un cuchillo es bueno o malo?... igual con las herramientas inform´aticas. nmap: esc´aner de puertos. metasploit: entorno de trabajo cargado de exploits.
Terminolog´ıa: cracker/black hat: mala gente. bot o zombi: ordenador bajo control de un atacante. botnet: conjunto de ordenadores comprometidos. portscan: detecci´on de servicios en puertos. Gustavo Romero L´ opez
Seguridad en Sistemas Operativos
13 / 95
Gustavo Romero L´ opez
Seguridad en Sistemas Operativos
14 / 95
Gustavo Romero L´ opez
Seguridad en Sistemas Operativos
Seguridad en sistemas operativos
15 / 95
Gustavo Romero L´ opez
Seguridad en Sistemas Operativos
16 / 95
Introducci´ on Entorno de seguridad Seguridad en sistemas operativos ¿Podemos Controlconstruir de acceso sistemas a recursos seguros? Modelos Base formales inform´ ade ticaseguridad de confianza Bases Introducci´ de la criptograf´ on Entorno ıa Acreditaci´ de seguridad on Software Seguridad de explotaci´ en sistemas on Ataques operativos desde ¿Podemos Control dentro construir deSoftware acceso sistemas amalicioso recursos seguros? Modelos Base formales inform´ ade ticaseguridad de confianza Bases Introducci´ de la criptograf´ on Entorno ıa Acreditaci´ de seguridad on Software Seguridad de explotaci´ en sistemas on Ataques operativos desde ¿Podemos Control dentro construir deSoftware acceso sistemas amalicioso recursos seguros? Modelos Base formales inform´ ade ticaseguridad de confianza Bases Introducci´ de la criptograf´ on Entorno ıa Acreditaci´ de seguridad on Software Seguridad de explotaci´ en sistemas on Ataques operativos desde ¿Podemos Control dentro construir deSoftware acceso sistemas amalicioso recursos seguros? Modelos Base formales inform´ ade ticaseguridad de confianza Bases de la criptograf
Seguridad en sistemas operativos
Seguridad en sistemas operativos
¿Podemos construir sistemas seguros?
Base inform´atica de confianza Trusted Computing Base (TCB)
Dado que leemos sobre ataques es normal preguntarse... Tipos de ataques: Pasivos: robar informaci´on, capturar informaci´on de la red,... Activos: tomar control de un programa para que ejecute c´odigo malicioso.
Sencillos m´etodos para comprometer la seguridad: Claves demasiado sencillas: “0000”, “1234”, “clave”, “password”, “12345”. Dejar la clave a la vista: cl´asico postit pegado al monitor. Descuido con medios de almacenamiento: usb perdido, tirar un ordenador viejo (formateado menos de 30 veces). Ataques sofisticados: Ataques Web. Ataques a bases de datos SQL. Ataque al sistema operativo: los m´as peligrosos.
Gustavo Romero L´ opez
Seguridad en Sistemas Operativos
¿Es posible construir sistemas seguros? → si Si lo es, ¿por qu´e no se hace? → no son pr´acticos ¿Es posible construir sistemas seguros? En teor´ıa, si. La dificultad crece exponencialmente con el tama˜no del software. Verificaci´on formal de sistemas. ¿Por qu´e no se hace? La u´nica forma de conseguirlo es mantener la simplicidad. Las caracter´ısticas son el enemigo de la seguridad. Ejemplos: email, httpd.
Terminolog´ıa: criptograf´ıa: alterar informaci´on para dificultar la recuperaci´on del original: comunicaciones, claves, ficheros. endurecimiento (“hardening”): incorporaci´on de medidas de seguridad: ASLR, DEP/NX bit, SELinux.
17 / 95
Gustavo Romero L´ opez
Seguridad en Sistemas Operativos
18 / 95
Gustavo Romero L´ opez
Seguridad en Sistemas Operativos
Suele hablarse de sistemas de confianza (“trusted systems”) en lugar de sistemas seguros. Todo sistema de confianza se basa en una TCB. El TCB garantiza el cumplimiento de los requisitos de seguridad. Partes de una TCB: Hardware: casi todo excepto dispositivos de E/S. Software: sistema operativo, programas privilegiados y otros.
Se intenza minimizar el tama˜no del TCB para facilitar auditor´ıa y minimizar el riesgo de fallos. Ejemplo: MINIX 3 y sistemas operativos verificados (seL4, PikeOS) suelen ser muy peque˜nos (≈10000 LOC). 19 / 95
Gustavo Romero L´ opez
Seguridad en Sistemas Operativos
20 / 95
Introducci´ on Entorno de seguridad Seguridad en sistemas operativos Dominios Control dede protecci´ accesoona recursos Listas de Modelos Control de formales Accesode Capacidades seguridad Bases Introducci´ de la criptograf´ on Entorno ıa Acreditaci´ de seguridad on Software Seguridad de explotaci´ en sistemas on Ataques operativos desde Dominios Control dentro dede protecci´ Software accesoonamalicioso recursos Listas de Modelos Control de formales Accesode Capacidades seguridad Bases Introducci´ de la criptograf´ on Entorno ıa Acreditaci´ de seguridad on Software Seguridad de explotaci´ en sistemas on Ataques operativos desde Dominios Control dentro dede protecci´ Software accesoonamalicioso recursos Listas de Modelos Control de formales Accesode Capacidades seguridad Bases Introducci´ de la criptograf´ on Entorno ıa Acreditaci´ de seguridad on Software Seguridad de explotaci´ en sistemas on Ataques operativos desde Dominios Control dentro dede protecci´ Software accesoonamalicioso recursos Listas de Modelos Control de formales Accesode Capacidades seguridad Bases de la criptograf
Control de acceso a recursos
Seguridad en Sistemas Operativos
21 / 95
Gustavo Romero L´ opez
Seguridad en Sistemas Operativos
Dominios de protecci´on
Objeto: cada uno de los recursos a proteger. Tipos:
Es m´as f´acil conseguir seguridad si tenemos un modelo claro... ¿Qu´e se debe proteger? ¿Qu´e se permite hacer a cada persona?
Control de acceso a recursos
Gustavo Romero L´ opez
Dominios de protecci´on
Dominio: conjunto de pares . Principe of Least Authority (POLA): m´ınimo conjunto de recursos y derechos necesarios para poder funcionar... necesita conocer. UNIX: identificadores de usuario y grupo (UID/GID)
hardware: CPU, memoria, E/S,... software: procesos, ficheros, bases de datos, sem´aforos,...
Caracter´ısticas: identificador u ´nico: ej: fichero, sem´aforo,... conjunto de operaciones: ej: leer/escribir, up/down,...
Sujetos/Directores (subjects/principals): Nombre de los usuarios en el campo de la seguridad. 22 / 95
Gustavo Romero L´ opez
Seguridad en Sistemas Operativos
Cada par UID/GID da acceso a un dominio de protecci´on. Se consigue al acceder desde el fichero password. Cambio de dominio: kernel, setuid()/setgid().
23 / 95
Gustavo Romero L´ opez
Seguridad en Sistemas Operativos
24 / 95
Introducci´ on Entorno de seguridad Seguridad en sistemas operativos Dominios Control dede protecci´ accesoona recursos Listas de Modelos Control de formales Accesode Capacidades seguridad Bases Introducci´ de la criptograf´ on Entorno ıa Acreditaci´ de seguridad on Software Seguridad de explotaci´ en sistemas on Ataques operativos desde Dominios Control dentro dede protecci´ Software accesoonamalicioso recursos Listas de Modelos Control de formales Accesode Capacidades seguridad Bases Introducci´ de la criptograf´ on Entorno ıa Acreditaci´ de seguridad on Software Seguridad de explotaci´ en sistemas on Ataques operativos desde Dominios Control dentro dede protecci´ Software accesoonamalicioso recursos Listas de Modelos Control de formales Accesode Capacidades seguridad Bases Introducci´ de la criptograf´ on Entorno ıa Acreditaci´ de seguridad on Software Seguridad de explotaci´ en sistemas on Ataques operativos desde Dominios Control dentro dede protecci´ Software accesoonamalicioso recursos Listas de Modelos Control de formales Accesode Capacidades seguridad Bases de la criptograf
Dominios de protecci´on: ejemplo
Dominios de protecci´on: implementaci´on
Dominios de protecci´on: tipos
Listas de Control de Acceso
Implementaci´ on como una tabla: demasiado grande y dispersa.
Implementaci´on: Almacenamiento por filas o columnas. Guardar s´olo campos no vac´ıos.
Tipos: filas: Listas de Control de Acceso (Access Control Lists - ACL). columnas: Capacidades (Capabilities).
Dominios como objeto de protecci´ on:
Gustavo Romero L´ opez
Seguridad en Sistemas Operativos
25 / 95
Gustavo Romero L´ opez
Seguridad en Sistemas Operativos
Gustavo Romero L´ opez
26 / 95
Seguridad en Sistemas Operativos
27 / 95
Gustavo Romero L´ opez
Seguridad en Sistemas Operativos
28 / 95
Introducci´ on Entorno de seguridad Seguridad en sistemas operativos Dominios Control dede protecci´ accesoona recursos Listas de Modelos Control de formales Accesode Capacidades seguridad Bases Introducci´ de la criptograf´ on Entorno ıa Acreditaci´ de seguridad on Software Seguridad de explotaci´ en sistemas on Ataques operativos desde Dominios Control dentro dede protecci´ Software accesoonamalicioso recursos Listas de Modelos Control de formales Accesode Capacidades seguridad Bases Introducci´ de la criptograf´ on Entorno ıa Acreditaci´ de seguridad on Software Seguridad de explotaci´ en sistemas on Ataques operativos desde Dominios Control dentro dede protecci´ Software accesoonamalicioso recursos Listas de Modelos Control de formales Accesode Capacidades seguridad Bases Introducci´ de la criptograf´ on Entorno ıa Acreditaci´ de seguridad on Software Seguridad de explotaci´ en sistemas on Ataques operativos desde Seguridad Control dentro multinivel deSoftware acceso amalicioso recursos Modelos formales de seguridad Bases de la criptograf
Capacidades
Capacidades
Una capacidad es una lista de objetos y operaciones permitidas. Para cada proceso se asocia un lista de capacidades (capability list o c-list).
ACL vs Capacidades Comparativa: Las capacidades tienen fama de permitir una mayor seguridad y suelen ser m´as eficientes en algunas operaciones sobre objetos.
Protecci´on de las capacidades: Arquitectura etiquetada: asocia una etiqueta a cada palabra de memoria s´olo accesible en modo n´ucleo, IBM AS/400. c-list dentro del SO: Hydra. c-list en espacio de usuario: criptograf´ıa, Amoeba.
Modelos formales de seguridad
Las ACLs suelen ser m´as r´apidas y permiten una mayor flexibilidad en operaciones sobre dominios, especialmente revocaciones. Ejemplos: UNIX: ACLs. L4 y Android: capacidades. FreeBSD: ACLs y capacidades (Capsicum).
Gustavo Romero L´ opez
Seguridad en Sistemas Operativos
29 / 95
Gustavo Romero L´ opez
Seguridad en Sistemas Operativos
30 / 95
Gustavo Romero L´ opez
Seguridad en Sistemas Operativos
31 / 95
Gustavo Romero L´ opez
Seguridad en Sistemas Operativos
32 / 95
Introducci´ on Entorno de seguridad Seguridad en sistemas operativos Seguridad Controlmultinivel de acceso a recursos Modelos formales de seguridad Bases Introducci´ de la criptograf´ on Entorno ıa Acreditaci´ de seguridad on Software Seguridad de explotaci´ en sistemas on Ataques operativos desde Seguridad Control dentro multinivel deSoftware acceso amalicioso recursos Modelos formales de seguridad Bases Introducci´ de la criptograf´ on Entorno ıa Acreditaci´ de seguridad on Software Seguridad de explotaci´ en sistemas on Ataques operativos desde Seguridad Control dentro multinivel deSoftware acceso amalicioso recursos Modelos formales de seguridad Bases Introducci´ de la criptograf´ on Entorno ıa Acreditaci´ de seguridad on Software Seguridad de explotaci´ en sistemas on Ataques operativos desde Seguridad Control dentro multinivel deSoftware acceso amalicioso recursos Modelos formales de seguridad Bases de la criptograf
Modelos formales de seguridad
Seguridad multinivel
Modelo Bell-LaPadula
Modelo Bell-LaPadula Bell and LaPadula, 1973
Seguridad b´asica:
Las matrices de protecci´on no son est´ aticas. Operaciones primitivas (Harrison, 1976):
¿Qui´en puede leer y escribir un fichero? Control de acceso discrecional (discretionary access control). M´ınimo mecanismo de seguridad implementado por la mayor´ıa de los SO.
crear objeto. borrar objeto. crear dominio. borrar dominio. a˜ nadir derecho. eliminar derecho.
Seguridad avanzada:
La matriz de protecci´on puede dividirse en dos estados autorizados y no autorizados.
Asegura que las pol´ıticas de seguridad se cumplen. Regula el flujo de informaci´ on.
Demostrar si un sistema es seguro es imposible.
Gustavo Romero L´ opez
Seguridad en Sistemas Operativos
Propiedad de seguridad simple: un proceso de nivel k s´olo puede leer documentos de su nivel e inferiores. Propiedad *: un proceso de nivel k s´olo puede escribir documentos de su nivel y superiores.
Requerida por militares, empresas, sanidad y gobiernos. Control de acceso obligatorio (Mandatory Access Control MAC).
Las primitivas se combinan en ´ ordenes de protecci´ on.
Resumiendo: read down, write up. Bueno manteniendo secretos, fatal para comunicaciones, integridad,...
Linux: SELinux.
33 / 95
Gustavo Romero L´ opez
Bell and LaPadula, 1973
Seguridad militar. Objetivo: mantener secretos. Niveles de seguridad: no clasificado, confidencial, secreto y alto secreto. Ejemplo: un general puede tener acceso a cualquier tipo de documentos y un teniente como m´aximo a confidenciales. Reglas de flujo de informaci´on:
Seguridad en Sistemas Operativos
34 / 95
Gustavo Romero L´ opez
Seguridad en Sistemas Operativos
35 / 95
Gustavo Romero L´ opez
Seguridad en Sistemas Operativos
36 / 95
Introducci´ on Entorno de seguridad Seguridad en sistemas operativos Seguridad Controlmultinivel de acceso a recursos Modelos formales de seguridad Bases Introducci´ de la criptograf´ on Entorno ıa Acreditaci´ de seguridad on Software Seguridad de explotaci´ en sistemas on Ataques operativos desde Seguridad Control dentro multinivel deSoftware acceso amalicioso recursos Modelos formales de seguridad Bases Introducci´ de la criptograf´ on Entorno ıa Acreditaci´ de seguridad on Software Seguridad de explotaci´ en sistemas on Ataques operativos desde Seguridad Control dentro multinivel deSoftware acceso amalicioso recursos Modelos formales de seguridad Bases Introducci´ de la criptograf´ on Entorno ıa Acreditaci´ de seguridad on Software Seguridad de explotaci´ en sistemas on Ataques operativos desde Seguridad Control dentro multinivel deSoftware acceso amalicioso recursos Modelos formales de seguridad Bases de la criptograf
Modelo Biba
Canales encubiertos
Canales encubiertos
Esteganograf´ıa
covert channels
Los modelos formales no funcionan. Detener el goteo de informaci´on es matem´aticamente imposible (Lampson, 1973). Modelo de Lampson:
Seguridad empresarial. Objetivo: garantizar la integridad de la informaci´on. Reglas de flujo de informaci´on:
covert channels
Otra forma de canal encubierto. Esconder informaci´on en un imagen. Usos l´ıcitos: marcas de agua.
Canales encubiertos: Modulaci´ on del uso de la CPU. Adquisici´ on y liberaci´on de un recurso.
El problema del confinamiento. Los canales encubiertos.
Propiedad de integridad simple: un proceso de nivel k s´olo puede escribir documentos de su nivel e inferiores. Propiedad de integridad *: un proceso de nivel k s´olo puede leer documentos de su nivel y superiores.
Algunas organizaciones requieren ambos modelos a la vez pero es dif´ıcil conseguirlo por perseguir objetivos contrapuestos. Gustavo Romero L´ opez
Seguridad en Sistemas Operativos
37 / 95
Gustavo Romero L´ opez
Seguridad en Sistemas Operativos
38 / 95
Gustavo Romero L´ opez
Seguridad en Sistemas Operativos
39 / 95
Gustavo Romero L´ opez
Seguridad en Sistemas Operativos
40 / 95
Introducci´ on Entorno de seguridad Seguridad en sistemas operativos Criptograf´ Control ıa de sim´ acceso etrica oa de recursos clave secreta ModelosCriptograf´ formales ıa deasim´ seguridad etrica o Bases de clave Introducci´ de p´ laublica criptograf´ onFunciones Entorno ıa Acreditaci´ unidireccionales de seguridad on Software Seguridad Firma de explotaci´ digital en sistemas oM´ nodulo Ataques operativos de plataforma desde Criptograf´ Control dentro de ıa de confianza sim´ Software acceso etrica oamalicioso de recursos clave secreta ModelosCriptograf´ formales ıa deasim´ seguridad etrica o Bases de clave Introducci´ de p´ laublica criptograf´ onFunciones Entorno ıa Acreditaci´ unidireccionales de seguridad on Software Seguridad Firma de explotaci´ digital en sistemas oM´ nodulo Ataques operativos de plataforma desde Criptograf´ Control dentro de ıa de confianza sim´ Software acceso etrica oamalicioso de recursos clave secreta ModelosCriptograf´ formales ıa deasim´ seguridad etrica o Bases de clave Introducci´ de p´ laublica criptograf´ onFunciones Entorno ıa Acreditaci´ unidireccionales de seguridad on Software Seguridad Firma de explotaci´ digital en sistemas oM´ nodulo Ataques operativos de plataforma desde Criptograf´ Control dentro de ıa de confianza sim´ Software acceso etrica oamalicioso de recursos clave secreta ModelosCriptograf´ formales ıa deasim´ seguridad etrica o Bases de clave de p´ laublica criptograf Fun
Criptograf´ıa
Criptograf´ıa sim´etrica o de clave secreta
Criptograf´ıa asim´etrica o de clave p´ublica
Sustituci´ on monoalfab´etica: fortaleza 27! ≈ 1,09 × 1028 La clave para descifrar es f´acilmente calculable conocida la clave para cifrar. Ventajas: eficiente. Inconvenientes: intercambio de claves. Ejemplos: DES, 3DES, RC5, AES, Blowfish e IDEA.
Desempe˜ na hoy d´ıa un papel central en seguridad.
Bases de la criptograf´ıa
Usa diferentes claves para cifrar (p´ublica) y descifrar (privada), adem´as, dada una no es f´acil calcular la otra. ¿Qu´e operaci´on es m´as dif´ıcil?
abcdefghijklmn˜ nopqrstuvwxyz uthikoavpjqn˜ nxeyzwlmdfgbcrs
Criptograf´ıa: del griego “krypto”, oculto, y “graphos”, escritura. La criptograf´ıa moderna es muy sofisticada. Usos: sistemas de ficheros, comunicaciones, identificaci´ on,... Prop´ osito: tomar un mensaje, (mensaje en claro), y convertirlo en inteligible (mensaje cifrado) de tal forma que s´ olo las personas autorizadas puedan recuperar el original.
123456789123456789 × 123456789123456789 =⇒ cifrar √ 15241578780673678515622620750190521 =⇒ descifrar
Ventajas: elimina el problema de la distribuci´on de claves. Inconvenientes: miles de veces m´as lento que la sim´etrica. Ejemplos: Diffie-Hellman, RSA, DSA, ElGamal, Criptograf´ıa de curva el´ıptica, Criptosistema de Merkle-Hellman, Goldwasser-Micali y Goldwasser-Micali-Rivest. Matem´aticas: curvas el´ıpticas, logaritmo discreto, aritm´etica modular...
Los algoritmos deben ser p´ ublicos frente a la seguridad por oscuridad. Principio de Kerchoff: la seguridad depende de la clave.
Gustavo Romero L´ opez
Seguridad en Sistemas Operativos
41 / 95
Gustavo Romero L´ opez
Seguridad en Sistemas Operativos
42 / 95
Gustavo Romero L´ opez
Seguridad en Sistemas Operativos
43 / 95
Gustavo Romero L´ opez
Seguridad en Sistemas Operativos
44 / 95
Introducci´ on Entorno de seguridad Seguridad en sistemas operativos Criptograf´ Control ıa de sim´ acceso etrica oa de recursos clave secreta ModelosCriptograf´ formales ıa deasim´ seguridad etrica o Bases de clave Introducci´ de p´ laublica criptograf´ onFunciones Entorno ıa Acreditaci´ unidireccionales de seguridad on Software Seguridad Firma de explotaci´ digital en sistemas oM´ nodulo Ataques operativos de plataforma desde Criptograf´ Control dentro de ıa de confianza sim´ Software acceso etrica oamalicioso de recursos clave secreta ModelosCriptograf´ formales ıa deasim´ seguridad etrica o Bases de clave Introducci´ de p´ laublica criptograf´ onFunciones Entorno ıa Acreditaci´ unidireccionales de seguridad on Software Seguridad Firma de explotaci´ digital en sistemas oM´ nodulo Ataques operativos de plataforma desde Criptograf´ Control dentro de ıa de confianza sim´ Software acceso etrica oamalicioso de recursos clave secreta ModelosCriptograf´ formales ıa deasim´ seguridad etrica o Bases de clave Introducci´ de p´ laublica criptograf´ onFunciones Entorno ıa Acreditaci´ unidireccionales de seguridad on Software Seguridad Firma de explotaci´ digital en sistemas oM´ nodulo Ataques operativos de plataforma desde Criptograf´ Control dentro de ıa de confianza sim´ Software acceso etrica oamalicioso de recursos clave secreta ModelosCriptograf´ formales ıa deasim´ seguridad etrica o Bases de clave de p´ laublica criptograf Fun
Funciones unidireccionales
Firma digital
Firma digital
M´odulo de plataforma de confianza Trusted Platform Module - TPM
A veces es necesario firmar un documento digitalmente para poder verificar su autenticidad: ´ ordenes bancarias, IRPF,... Uso: al recibir un documento se aplica...
Tienen numerosas aplicaciones en inform´atica. Funci´on tipo “f (x) = y ”. Dado “x” es muy f´acil calcular “y ”. Dado “y ” es imposible o extremadamente costoso calcular “x”. Suelen llamarse funci´on resumen o hash.
Gustavo Romero L´ opez
Seguridad en Sistemas Operativos
Los emisores suelen adjuntar un certificado junto al mensaje. Certificado: nombre y clave p´ublica firmado digitalmente. Autoridad certificadora (Certification Authority - CA): organizaci´on responsable del mantenimiento de los certificados y las claves p´ublica. Infraestructura de clave p´ ublica (Public Key Infrastructure - PKI): distribuida junto a sistemas operativos y navegadores. Ejemplos: MD5 (insegura), SHA-1 (comprometida), SHA-256, SHA-512, Tiger, WHIRPOOL.
emisi´ on: hash del documento: x + descifrar x −→ D(x) verificaci´ on: E (D(x)) = x, con E y D conmutativas.
45 / 95
Gustavo Romero L´ opez
Seguridad en Sistemas Operativos
46 / 95
Gustavo Romero L´ opez
Seguridad en Sistemas Operativos
La criptograf´ıa necesita claves. Almacenar las claves de forma segura es esencial. ¿Como hacerlo en sistemas que no son seguros? TPM: chip con memoria no vol´atil capaz de almacenar claves y realizar operaciones de cifrado, descifrado y verificaci´on de firmas digitales. Tema controvertido: ¿qui´en controla el TPM? Microsoft: software pirata, virus, control de la plataforma. Industrial audiovisual: control de la pirater´ıa. Usuario: mi ordenador, mi SO, mis ficheros, mis normas :)
47 / 95
Gustavo Romero L´ opez
Seguridad en Sistemas Operativos
48 / 95
Introducci´ on Entorno de seguridad Seguridad en sistemas operativos Acreditaci´ Control onde mediante acceso aobjetos recursos f´ısicos Modelos Acreditaci´ formales on biom´ de seguridad etrica Bases Introducci´ de la criptograf´ on Entorno ıa Acreditaci´ de seguridad on Software Seguridad de explotaci´ en sistemas on Ataques operativos desde Acreditaci´ Control dentro onde mediante Software acceso aobjetos malicioso recursos f´ısicos Modelos Acreditaci´ formales on biom´ de seguridad etrica Bases Introducci´ de la criptograf´ on Entorno ıa Acreditaci´ de seguridad on Software Seguridad de explotaci´ en sistemas on Ataques operativos desde Acreditaci´ Control dentro onde mediante Software acceso aobjetos malicioso recursos f´ısicos Modelos Acreditaci´ formales on biom´ de seguridad etrica Bases Introducci´ de la criptograf´ on Entorno ıa Acreditaci´ de seguridad on Software Seguridad de explotaci´ en sistemas on Ataques operativos desde Acreditaci´ Control dentro onde mediante Software acceso aobjetos malicioso recursos f´ısicos Modelos Acreditaci´ formales on biom´ de seguridad etrica Bases de la criptograf
Acreditaci´on/Autenticaci´on/Autentificaci´on
Contrase˜nas d´ebiles
Acreditaci´on: asegurar que un usuario es quien dice ser. Un ordenador seguro requiere la acreditaci´on de usuarios. Los primeros ordenadores no requer´ıan identificarse. Los tiempos cambian: acceso f´ısico −→ acceso remoto. La identificaci´on se basa en algo que el usuario...
Acreditaci´on
acreditaci´ on por dos m´etodos. muy de moda en la actualidad.
¿Qui´en se acuerda de proteger la BIOS/UEFI? 49 / 95
Gustavo Romero L´ opez
claves en claro (muy peligroso!!!). claves codificadas con funciones unidireccionales (peligroso). claves codificadas con sal y divisi´ on de ficheros.
Vulnerable a un ataque de fuerza bruta si un atacante consigue el fichero. Contramedidas:
IOActive (2013): la mayor´ıa de routers usa la contrase˜na por defecto. Stuxnet: centrifugadoras con contrase˜na por defecto. Recordad: el mundo f´ısico requiere llamar a las puertas una por una, el virtual no... descubrimiento de CCV. war dialers → portscanning ¿Hab´eis probado SHODAN?
El m´etodo m´as utilizado es solicitar una contrase˜na. Two Factor Authentication (TFA):
Seguridad en Sistemas Operativos
passwd: fichero protegido con contrase˜nas. Evoluci´on del fichero de claves:
robo de 6.46M contrase˜ nas top 10: password, 12345, link, 1234, work, god, job, angel, the, ilove.
sabe −→ pin, contrase˜ na, patr´ on,... tiene −→ objeto f´ısico, tarjeta, llave usb,... es −→ huella dactilar, cara, iris, patr´ on infrarojo,...
Gustavo Romero L´ opez
Seguridad en contrase˜nas UNIX
Ataque de fuerza bruta: probar una tras otra. Un 86 % de las contrase˜nas son vulnerables (Morris y Thompson, 1979). LinkedIn Hack (2012):
Seguridad en Sistemas Operativos
50 / 95
Gustavo Romero L´ opez
Seguridad en Sistemas Operativos
sal: sal: n´ umero aleatorio de n-bits asociado a cada contrase˜ na f(contrase˜ na en claro + sal) = contrase˜ na cifrada la sal cambia cada vez que cambiamos la contrase˜ na
comprobaci´ on indirecta: sacar de passwd partes sensibles shadow: funciones, sales y contrase˜ nas codificadas shadow s´ olo legible lentamente por el usuario root 51 / 95
Gustavo Romero L´ opez
Seguridad en Sistemas Operativos
52 / 95
Introducci´ on Entorno de seguridad Seguridad en sistemas operativos Acreditaci´ Control onde mediante acceso aobjetos recursos f´ısicos Modelos Acreditaci´ formales on biom´ de seguridad etrica Bases Introducci´ de la criptograf´ on Entorno ıa Acreditaci´ de seguridad on Software Seguridad de explotaci´ en sistemas on Ataques operativos desde Acreditaci´ Control dentro onde mediante Software acceso aobjetos malicioso recursos f´ısicos Modelos Acreditaci´ formales on biom´ de seguridad etrica Bases Introducci´ de la criptograf´ on Entorno ıa Acreditaci´ de seguridad on Software Seguridad de explotaci´ en sistemas on Ataques operativos desde Acreditaci´ Control dentro onde mediante Software acceso aobjetos malicioso recursos f´ısicos Modelos Acreditaci´ formales on biom´ de seguridad etrica Bases Introducci´ de la criptograf´ on Entorno ıa Acreditaci´ de seguridad on Software Seguridad de explotaci´ en sistemas on Ataques operativos desde Acreditaci´ Control dentro onde mediante Software acceso aobjetos malicioso recursos f´ısicos Modelos Acreditaci´ formales on biom´ de seguridad etrica Bases de la criptograf
Contrase˜nas de un s´olo uso
Acreditaci´on Desaf´ıo-Respuesta One Time Password (OTP)
Seguridad en Sistemas Operativos
Acreditaci´on biom´etrica
53 / 95
Gustavo Romero L´ opez
Identificaci´on mediante alguna de las caracter´ısticas f´ısicas del usuario Dos partes: registro e identificaci´on.
El segundo m´etodo m´as utilizado es la identificaci´on mediante un objeto f´ısico. Ejemplo f´ısico: llave de metal para cerradura. Ejemplo inform´atico: cajeros autom´aticos.
El usuario proporciona una larga lista de preguntas y respuestas. A identificarse se escoge una al azar. El reto puede variar de dificultad, x 2 , y con el momento del d´ıa. Muchos tipos: tarjetas inteligentes o no, usb, tel´efono m´ovil. La base de datos debe protegerse al igual que las contrase˜nas.
Se aconseja cambiar las claves con frecuencia :) Las claves de un s´olo uso son el caso extremo. Si alguien la descubre no importa porque la siguiente vez ser´a otra.
Gustavo Romero L´ opez
Acreditaci´on mediante objetos f´ısicos Challenge-Response Authentication
registro: medici´on, digitalizaci´on y almacenamiento. identificaci´on: proporcionar nombre de usuario.
La caracter´ıstica elegida debe tener unas propiedades adecuadas:
Requiere una tarjeta. Solicita un pin.
facilidad de medici´on alta variabilidad entre individuos resistente al paso del tiempo
Tarjetas inteligentes (smart cards): no requieren conexi´ on. informaci´ on protegida criptogr´aficamente.
Ejemplos: huella, voz, longitud de los dedos, iris, cara, firma, forma de teclear, patr´on infrarrojo, olor,... Problema: suplantaci´on de identidad, ej: cara, iris,... Soluci´on: gui˜no, flash,...
Probad google-authenticator: OTP + TFA.
Seguridad en Sistemas Operativos
54 / 95
Gustavo Romero L´ opez
Seguridad en Sistemas Operativos
55 / 95
Gustavo Romero L´ opez
Seguridad en Sistemas Operativos
56 / 95
Introducci´ on Entorno de seguridad Seguridad en sistemas operativos Ataques Control de desbordamiento de acceso a recursos de b´ ufer Modelos Ataques formales de cadena de seguridad de formato Bases Punteros Introducci´ de la criptograf´ colgados on Entorno ıa(dangling Acreditaci´ de seguridad pointers) on Software Seguridad Ataques de explotaci´ deendesreferencia sistemas on Ataques operativos de punteros desde Ataques Control dentro nulos de desbordamiento deSoftware Ataques acceso ade malicioso recursos desbordamiento de b´ ufer Modelos Ataques de formales enteros de cadena deAtaques seguridad de formato inyecci´ Bases oPunteros n Introducci´ de o ´lardenes criptograf´ colgados on Ataques Entorno ıa(dangling Acreditaci´ comprobaci´ de seguridad pointers) on oSoftware n/uso Seguridad Ataques (Time de explotaci´ deof endesreferencia Check sistemas ontoAtaques Time operativos de of punteros desde Ataques UseControl Attacks) dentro nulos de desbordamiento deSoftware Ataques acceso ade malicioso recursos desbordamiento de b´ ufer Modelos Ataques de formales enteros de cadena deAtaques seguridad de formato inyecci´ Bases oPunteros n Introducci´ de o ´lardenes criptograf´ colgados on Ataques Entorno ıa(dangling Acreditaci´ comprobaci´ de seguridad pointers) on oSoftware n/uso Seguridad Ataques (Time de explotaci´ deof endesreferencia Check sistemas ontoAtaques Time operativos de of punteros desde Ataques UseControl Attacks) dentro nulos de desbordamiento deSoftware Ataques acceso ade malicioso recursos desbordamiento de b´ ufer Modelos Ataques de formales enteros de cadena deAtaques seguridad de formato inyecci´ Bases oPunteros n de o ´lardenes criptograf colgados Ata
Software de explotaci´on Finalidad: explotar vulnerabilidades del software. Ejemplos:
no comprueban autom´aticamente los l´ımites. raz´ on para no hacerlo: tiempo.
Nivel de privilegio = programa vulnerado:
intercepci´ on de la comunicaci´ on (eavesdropping). sustituci´ on. repetici´ on. denegaci´ on de servicio - Denial of Service (DoS).
cuidado con binarios de root con bit SETUID. find /bin/ -user root -perm -4000 -exec ls -l {} +
Contramedidas en sistemas modernos: Canarios de pila - Stack canaries. Protecci´ on de ejecuci´on de datos - Data Execution Protection (DEP). Aleatorizaci´ on del dise˜ no del espacio de direcciones Address-Space Layout Randomization (ASLR).
Efecto Reina Roja: los ataques se vuelven m´as sofisticados a la vez que lo hacen las medidas de seguridad. 1 vulnerabilidad −→ 1 exploit. Existen contramedidas para cada tipo de vulnerabilidad. Gustavo Romero L´ opez
Seguridad en Sistemas Operativos
57 / 95
Gustavo Romero L´ opez
buffer overflow attacks
Van a seguir con nosotros (Van der Veen, 2012). Motivo: lenguajes de programaci´on inseguros.
http://pccito.ugr.es/~gustavo/ss/boom.html responsable: web/atacante/ISP/MITM Drive-by-download: descarga de software malicioso. Ataque del intermediario - Man in the middle (MITM):
Software de explotaci´on
Ataques de desbordamiento de b´ufer
Ataques de desbordamiento de b´ufer exploit
Seguridad en Sistemas Operativos
58 / 95
Gustavo Romero L´ opez
Seguridad en Sistemas Operativos
59 / 95
Gustavo Romero L´ opez
Seguridad en Sistemas Operativos
60 / 95
Introducci´ on Entorno de seguridad Seguridad en sistemas operativos Ataques Control de desbordamiento de acceso a recursos de b´ ufer Modelos Ataques formales de cadena de seguridad de formato Bases Punteros Introducci´ de la criptograf´ colgados on Entorno ıa(dangling Acreditaci´ de seguridad pointers) on Software Seguridad Ataques de explotaci´ deendesreferencia sistemas on Ataques operativos de punteros desde Ataques Control dentro nulos de desbordamiento deSoftware Ataques acceso ade malicioso recursos desbordamiento de b´ ufer Modelos Ataques de formales enteros de cadena deAtaques seguridad de formato inyecci´ Bases oPunteros n Introducci´ de o ´lardenes criptograf´ colgados on Ataques Entorno ıa(dangling Acreditaci´ comprobaci´ de seguridad pointers) on oSoftware n/uso Seguridad Ataques (Time de explotaci´ deof endesreferencia Check sistemas ontoAtaques Time operativos de of punteros desde Ataques UseControl Attacks) dentro nulos de desbordamiento deSoftware Ataques acceso ade malicioso recursos desbordamiento de b´ ufer Modelos Ataques de formales enteros de cadena deAtaques seguridad de formato inyecci´ Bases oPunteros n Introducci´ de o ´lardenes criptograf´ colgados on Ataques Entorno ıa(dangling Acreditaci´ comprobaci´ de seguridad pointers) on oSoftware n/uso Seguridad Ataques (Time de explotaci´ deof endesreferencia Check sistemas ontoAtaques Time operativos de of punteros desde Ataques UseControl Attacks) dentro nulos de desbordamiento deSoftware Ataques acceso ade malicioso recursos desbordamiento de b´ ufer Modelos Ataques de formales enteros de cadena deAtaques seguridad de formato inyecci´ Bases oPunteros n de o ´lardenes criptograf colgados Ata
Ataques de desbordamiento de b´ufer
Canarios de pila
Evitando los canarios
¿Es seguro?
Protecci´on de ejecuci´on de datos
stack canaries
Data Execution Protection (DEP)
C 1 2 3
char buffer [100]; for ( int i = 0; i < 100; ++ i ) buffer [ i ] = ...
Defensa contra los ataques de desbordamiento de b´ufer. Procedencia del nombre: canarios utilizados en las minas. Dejar un valor aleatorio en la pila bajo la direcci´on de retorno y comprobar que sigue all´ı tras una llamada. Debe usarse expl´ıcitamente: gcc -fstack-protector{-all} Muchas distribucines lo usan ya por defecto. Informaci´on adicional: http://xorl.wordpress.com/ 2010/10/14/linux-glibc-stack-canary-values/
C++ 1 2 3
std :: vector < int > buffer (100) ; for ( int i = 0; i < buffer . size () ; ++ i ) buffer [ i ] = ...
python 1 2
No alterarlo o hacerlo tras su verificaci´on. El desbordamiento de b´ufer no se limita a direcciones de retorno. Los punteros a funci´ on son vulnerables. Tanto pila como mont´ıculo (heap) son vulnerables.
buffer = [0 , 1 , 2 , 3 , 4] buffer [0] = buffer [ -1] Gustavo Romero L´ opez
Seguridad en Sistemas Operativos
61 / 95
Gustavo Romero L´ opez
Seguridad en Sistemas Operativos
La causa real del problema no es la capacidad de un atacante de sobrescribir punteros a funci´on o direcciones de retorno sino la capacidad de inyectar c´ odigo. ¿Por qu´e no hacer imposible la ejecuci´ on de c´odigo en las zonas de datos? Los ataques de inyecci´ on de c´ odigo dejar´ıan de funcionar. Los procesadores modernos tiene el bit NX (No Execute). Empleado en todos los sistemas operativos modernos. WˆX = la memoria se puede escribir o ejecutar, pero no ambas. Formas de conseguir DEP (Data Execution Prevention):
62 / 95
Gustavo Romero L´ opez
Seguridad en Sistemas Operativos
Hardware: bit NX (No Execute). Software. 63 / 95
Gustavo Romero L´ opez
Seguridad en Sistemas Operativos
64 / 95
Introducci´ on Entorno de seguridad Seguridad en sistemas operativos Ataques Control de desbordamiento de acceso a recursos de b´ ufer Modelos Ataques formales de cadena de seguridad de formato Bases Punteros Introducci´ de la criptograf´ colgados on Entorno ıa(dangling Acreditaci´ de seguridad pointers) on Software Seguridad Ataques de explotaci´ deendesreferencia sistemas on Ataques operativos de punteros desde Ataques Control dentro nulos de desbordamiento deSoftware Ataques acceso ade malicioso recursos desbordamiento de b´ ufer Modelos Ataques de formales enteros de cadena deAtaques seguridad de formato inyecci´ Bases oPunteros n Introducci´ de o ´lardenes criptograf´ colgados on Ataques Entorno ıa(dangling Acreditaci´ comprobaci´ de seguridad pointers) on oSoftware n/uso Seguridad Ataques (Time de explotaci´ deof endesreferencia Check sistemas ontoAtaques Time operativos de of punteros desde Ataques UseControl Attacks) dentro nulos de desbordamiento deSoftware Ataques acceso ade malicioso recursos desbordamiento de b´ ufer Modelos Ataques de formales enteros de cadena deAtaques seguridad de formato inyecci´ Bases oPunteros n Introducci´ de o ´lardenes criptograf´ colgados on Ataques Entorno ıa(dangling Acreditaci´ comprobaci´ de seguridad pointers) on oSoftware n/uso Seguridad Ataques (Time de explotaci´ deof endesreferencia Check sistemas ontoAtaques Time operativos de of punteros desde Ataques UseControl Attacks) dentro nulos de desbordamiento deSoftware Ataques acceso ade malicioso recursos desbordamiento de b´ ufer Modelos Ataques de formales enteros de cadena deAtaques seguridad de formato inyecci´ Bases oPunteros n de o ´lardenes criptograf colgados Ata
Ataques de reutilizaci´on de c´odigo
return-oriented programming (ROP)
return to libc
Aleatorizaci´on del espacio de direcciones Address-Space Layout Randomization (ASLR)
M´as complejo y frecuente hoy d´ıa. En lugar de retornar siempre al principio de una funci´on escoger cualquier direcci´ on del segmento de c´ odigo. Buscar fragmentos u´tiles de c´odigo acabados en una instrucci´on de retorno. Compiladores ROP: herramientas autom´aticas.
Dado que... Los canarios dificultan sobrescribir direcciones de retorno y punteros a funci´on. DEP impide la ejecuci´on de c´odigo en regiones de datos.
¿Para qu´e molestarnos en inyectar nuevo c´odigo si nuestros programas est´an llenos de ´el? Ataques cl´asicos de reutilizaci´on de c´odigo:
Supongamos que podemos cambiar la direcci´on de retorno pero no ejecutar c´odigo sobre la pila. ¿A d´onde retornar? Casi todos los programas enlazan funciones de libc. Escoger binario y funci´on: system, mprotect,... o PLT (Procedure Linkage Table).
return to libc return-oriented programming (ROP)
Gustavo Romero L´ opez
Seguridad en Sistemas Operativos
65 / 95
Gustavo Romero L´ opez
Seguridad en Sistemas Operativos
66 / 95
Gustavo Romero L´ opez
Seguridad en Sistemas Operativos
Suele ser posible elegir una direcci´ on exacta de retorno. En el peor de los casos por fuerza bruta. ¿Qu´e pasar´ıa si las direcciones de mi programa cambian cada vez que lo ejecuto? ¿Qu´e cambiar? Pila, mont´ıculo y bibliotecas. Usado por la mayor´ıa de los sistemas operativos. Canarios + DEP + ASLR = costo razonable.
67 / 95
Gustavo Romero L´ opez
Seguridad en Sistemas Operativos
68 / 95
Introducci´ on Entorno de seguridad Seguridad en sistemas operativos Ataques Control de desbordamiento de acceso a recursos de b´ ufer Modelos Ataques formales de cadena de seguridad de formato Bases Punteros Introducci´ de la criptograf´ colgados on Entorno ıa(dangling Acreditaci´ de seguridad pointers) on Software Seguridad Ataques de explotaci´ deendesreferencia sistemas on Ataques operativos de punteros desde Ataques Control dentro nulos de desbordamiento deSoftware Ataques acceso ade malicioso recursos desbordamiento de b´ ufer Modelos Ataques de formales enteros de cadena deAtaques seguridad de formato inyecci´ Bases oPunteros n Introducci´ de o ´lardenes criptograf´ colgados on Ataques Entorno ıa(dangling Acreditaci´ comprobaci´ de seguridad pointers) on oSoftware n/uso Seguridad Ataques (Time de explotaci´ deof endesreferencia Check sistemas ontoAtaques Time operativos de of punteros desde Ataques UseControl Attacks) dentro nulos de desbordamiento deSoftware Ataques acceso ade malicioso recursos desbordamiento de b´ ufer Modelos Ataques de formales enteros de cadena deAtaques seguridad de formato inyecci´ Bases oPunteros n Introducci´ de o ´lardenes criptograf´ colgados on Ataques Entorno ıa(dangling Acreditaci´ comprobaci´ de seguridad pointers) on oSoftware n/uso Seguridad Ataques (Time de explotaci´ deof endesreferencia Check sistemas ontoAtaques Time operativos de of punteros desde Ataques UseControl Attacks) dentro nulos de desbordamiento deSoftware Ataques acceso ade malicioso recursos desbordamiento de b´ ufer Modelos Ataques de formales enteros de cadena deAtaques seguridad de formato inyecci´ Bases oPunteros n de o ´lardenes criptograf colgados Ata
Evitando ASLR
Ataques que no modifican la secuencia de ejecuci´on
Desbordamiento de b´ufer: la u´ltima palabra, o casi...
La mayor´ıa de los ataques intentan modificar direcciones de retorno y punteros a funci´on para conseguir nueva funcionalidad. Existe otro tipo de ataques en que la modificaci´on de los datos basta.
Los exploits siguen apareciendo... ¿C´omo es posible? ASLR no suele ser tan aleatorio como deber´ıa. Ejemplo de ataque, goteo de memoria:
Ataques de cadena de formato Ataque de corrupci´on de memoria. Permite escribir cualquier cosa en cualquier sitio. A los programadores no les gusta teclear...
Es una de las t´ecnicas m´as antiguas y utilizadas. Parece imposible acabar con ellas1 . Reparto de culpas: lenguaje de programaci´on/programadores. Activo campo de investigaci´ on:
seguro 1 2
Medidas de seguridad en los binarios. Extensiones de seguridad para compiladores.
Gustavo Romero L´ opez
Seguridad en Sistemas Operativos
vulnerable 1
Introducir un n´umero menor que 0 o mayor que 15. Conocida una direcci´on de memoria es f´acil averiguar el resto.
2
1
Victor van Der Veen, Nitish dutt-Sharma, Lorenzo Cavallaro y Hertbert Bos. Memory errors: the past, the present, and the future. En Research in Attacks, Intrusions, and Defenses. P´ aginas: 86-106. Springer. 2012. 69 / 95
Gustavo Romero L´ opez
Seguridad en Sistemas Operativos
70 / 95
Gustavo Romero L´ opez
Seguridad en Sistemas Operativos
char * s = " hola mundo " ; printf ( " %s " , s ) ;
char * s = " hola mundo " ; printf ( s ) ;
71 / 95
Gustavo Romero L´ opez
Seguridad en Sistemas Operativos
72 / 95
Introducci´ on Entorno de seguridad Seguridad en sistemas operativos Ataques Control de desbordamiento de acceso a recursos de b´ ufer Modelos Ataques formales de cadena de seguridad de formato Bases Punteros Introducci´ de la criptograf´ colgados on Entorno ıa(dangling Acreditaci´ de seguridad pointers) on Software Seguridad Ataques de explotaci´ deendesreferencia sistemas on Ataques operativos de punteros desde Ataques Control dentro nulos de desbordamiento deSoftware Ataques acceso ade malicioso recursos desbordamiento de b´ ufer Modelos Ataques de formales enteros de cadena deAtaques seguridad de formato inyecci´ Bases oPunteros n Introducci´ de o ´lardenes criptograf´ colgados on Ataques Entorno ıa(dangling Acreditaci´ comprobaci´ de seguridad pointers) on oSoftware n/uso Seguridad Ataques (Time de explotaci´ deof endesreferencia Check sistemas ontoAtaques Time operativos de of punteros desde Ataques UseControl Attacks) dentro nulos de desbordamiento deSoftware Ataques acceso ade malicioso recursos desbordamiento de b´ ufer Modelos Ataques de formales enteros de cadena deAtaques seguridad de formato inyecci´ Bases oPunteros n Introducci´ de o ´lardenes criptograf´ colgados on Ataques Entorno ıa(dangling Acreditaci´ comprobaci´ de seguridad pointers) on oSoftware n/uso Seguridad Ataques (Time de explotaci´ deof endesreferencia Check sistemas ontoAtaques Time operativos de of punteros desde Ataques UseControl Attacks) dentro nulos de desbordamiento deSoftware Ataques acceso ade malicioso recursos desbordamiento de b´ ufer Modelos Ataques de formales enteros de cadena deAtaques seguridad de formato inyecci´ Bases oPunteros n de o ´lardenes criptograf colgados Ata
Ataques de cadena de formato
Ataques de cadena de formato
Ataques de cadena de formato
Punteros colgados
Par´ ametros m´ as utilizados en este tipo de ataques
Dangling pointers
http://pccito.ugr.es/ss/teoria/seguridad/src/fsa-exploit.c
ejemplo de uso de %n: n´ umero de caracteres impresos 4 5 6 7
int i = 0; printf ( " hola %n mundo \ n " , & i ) ; printf ( " i = %d \ n " , i ) ;
5 6 7 8 9
programa vulnerable
10
int main ( int argc , char ** argv ) { char buffer [100]; strncpy ( buffer , argv [1] , 100) ; printf ( buffer ) ; return 0; }
T´ecnica de corrupci´on de memoria. Causa: acceso a un ´area de memoria de la que ya no somos propietarios. 1 2 3
6 7 8 9
char s [100] , g [100] = " hola " ; gets ( s ) ; // lee s strcat (g , s ) ; // g += s printf ( g ) ; // escribe s
4
Muchos ejemplos en Internet:
int * buffer = new int [100]; // hacer algo con buffer delete [] buffer ; buffer [0] = 7;
// // // //
:) :) :) :(
El ataque heap feng shui permite escoger qu´e colocar en esa direcci´on de memoria.
http://codearcana.com/posts/2013/05/02/ introduction-to-format-string-exploits.html https: //www.owasp.org/index.php/Format_string_attack
Gustavo Romero L´ opez
Seguridad en Sistemas Operativos
Gustavo Romero L´ opez
73 / 95
Seguridad en Sistemas Operativos
74 / 95
Gustavo Romero L´ opez
Seguridad en Sistemas Operativos
75 / 95
Gustavo Romero L´ opez
Seguridad en Sistemas Operativos
76 / 95
Introducci´ on Entorno de seguridad Seguridad en sistemas operativos Ataques Control de desbordamiento de acceso a recursos de b´ ufer Modelos Ataques formales de cadena de seguridad de formato Bases Punteros Introducci´ de la criptograf´ colgados on Entorno ıa(dangling Acreditaci´ de seguridad pointers) on Software Seguridad Ataques de explotaci´ deendesreferencia sistemas on Ataques operativos de punteros desde Ataques Control dentro nulos de desbordamiento deSoftware Ataques acceso ade malicioso recursos desbordamiento de b´ ufer Modelos Ataques de formales enteros de cadena deAtaques seguridad de formato inyecci´ Bases oPunteros n Introducci´ de o ´lardenes criptograf´ colgados on Ataques Entorno ıa(dangling Acreditaci´ comprobaci´ de seguridad pointers) on oSoftware n/uso Seguridad Ataques (Time de explotaci´ deof endesreferencia Check sistemas ontoAtaques Time operativos de of punteros desde Ataques UseControl Attacks) dentro nulos de desbordamiento deSoftware Ataques acceso ade malicioso recursos desbordamiento de b´ ufer Modelos Ataques de formales enteros de cadena deAtaques seguridad de formato inyecci´ Bases oPunteros n Introducci´ de o ´lardenes criptograf´ colgados on Ataques Entorno ıa(dangling Acreditaci´ comprobaci´ de seguridad pointers) on oSoftware n/uso Seguridad Ataques (Time de explotaci´ deof endesreferencia Check sistemas ontoAtaques Time operativos de of punteros desde Ataques UseControl Attacks) dentro nulos de desbordamiento deSoftware Ataques acceso ade malicioso recursos desbordamiento de b´ ufer Modelos Ataques de formales enteros de cadena deAtaques seguridad de formato inyecci´ Bases oPunteros n de o ´lardenes criptograf colgados Ata
Ataques de desreferencia de punteros nulos
Ataques de desbordamiento de enteros
Ataques de inyecci´on de o´rdenes
Ataques comprobaci´on/uso Time of Check to Time of Use Attacks (TOCTOU)
http://pccito.ugr.es/ss/teoria/seguridad/src/command.injection.cc
En cada acceso a memoria la MMU traduce de direcci´on virtual a f´ısica. Linux de 32 bits: espacio de usuario (3GB)/n´ucleo (1GB). Motivo de la cohabitaci´on: eficiencia, cambiar de espacio de direcciones es costoso. Mecanismo explotado: llamar funciones de usuario desde el n´ucleo. La desreferencia de un puntero nulo produce un fallo porque no hay c´odigo mapeado en la p´agina 0. Exploit: mapear direcci´on 0, copiar un shellcode y provocar la desreferencia. Soluci´on: prohibir a mmap la direcci´on 0. Gustavo Romero L´ opez
Seguridad en Sistemas Operativos
7 8 9
Aritm´etica entera de longitud fija: 8..128 bits. La mayor´ıa de lenguajes no detectan este error. Secuencia: 1 2 3
10 11 12 13
entrada de usuario desbordamiento de enteros desbordamiento de b´ ufer
14
Explotaci´on de una condici´on de carrera.
std :: string orden = " cp " , origen , destino ; std :: cout ejecutar_virus () ;
Gustavo Romero L´ opez
Seguridad en Sistemas Operativos
Bibliograf´ıa
93 / 95
Gustavo Romero L´ opez
Seguridad en Sistemas Operativos
B´asica: Modern Operating Systems (4th Edition). Andrew S. Tanenbaum. Prentice Hall. 2014. Adicional: Wikipedia: Seguridad Inform´atica Carnegie Mellon University: Operating System Security
94 / 95
Gustavo Romero L´ opez
Seguridad en Sistemas Operativos
95 / 95
92 / 95