usuario sistemas aislados conectados

Introducci´ on Entorno de seguridad Seguridad en sistemas operativos Control de acceso a recursos Modelos formales de seguridad Bases Introducci´ de l

0 downloads 156 Views 3MB Size

Recommend Stories


Sistemas Fotovoltaicos Conectados a la Red Eléctrica. Protección y seguridad
Sistemas Fotovoltaicos Conectados a la Red Eléctrica Protección y seguridad 1 Grupos fundamentales de acuerdo a su localización en el sistema Aco

TUS CULTIVOS CONECTADOS
TUS CULTIVOS CONECTADOS y al alcance de TU SMARTPHONE INSTA SOIL INSTA WEATHER PLUS INSTA WEATHER CROP ADVISOR WWW.INSTACROPS.COM INSTA BOX WI

Sistemas Fotovoltaicos Conectados a la Red Eléctrica. Sistema de acondicionamiento de potencia (Inversores)
Sistemas Fotovoltaicos Conectados a la Red Eléctrica Sistema de acondicionamiento de potencia (Inversores) 1 Inversores Métodos de conmutación: 

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

Get in touch

Social

© Copyright 2013 - 2024 MYDOKUMENT.COM - All rights reserved.