Seguridad Informática Seguridad en redes: Herramientas de seguridad (ii) Ramón Hermoso y Matteo Vasirani Universidad Rey Juan Carlos Curso 2012/2013
Bibliografía Eric Cole. Network Security Bible. Wiley Publishing, Inc., 2nd edition, 2009. William Stallings. Network Security Essentials: Applications and Standards. Pearson Education, Inc., 4nd edition, 2011. José María Moralez Vázquez. Cortafuegos. Comparativa entre las distintas generaciones y funcionalidades adicionales. Versión 1.1 edition, 2002. Michael E. Whitman and Herbert J. Mattord. Principles of Information Security. Course Technology, Cengace Learning, third edition edition, 2009.
Índice 1 Introducción 2 Cortafuegos Cortafuegos de filtrado de paquetes Cortafuegos de inspección de estado Cortafuegos proxy a nivel de aplicación Comparativa entre tipos de cortafuegos Cortafuegos híbridos 3 Topologías de red con cortafuegos 4 iptables
Introducción Proceso de seguridad Evaluación Respuesta Protección Detección Descrito en Herramientas de seguridad(i)
Introducción Topología de red Red Wireless Zona Wireless Perímetro Punto acceso Wireless Intranet Internet Intranet Router frontera Router externo Cortafuegos Router interno Zona DMZ Switch DMZ Red DMZ Descrito en Herramientas de seguridad(i)
Cortafuegos(i) Mecanismo de protección en redes. Defensa de primera línea que puede bloquear cierto tráfico, entre redes con distinto nivel de confianza, cumpla ciertas condiciones. Red externa Red interna (protegida) Cortafuegos Cortafuegos es un software que puede ejecutarse en distintos dispositivos (estaciones de trabajo, servidor o hardware dedicado)
Cortafuegos(ii) Características Funcionalidades básicas de los cortafuegos: Todo el trafico de una red externa a una interna y viceversa, debe pasar por un cortafuegos. Sólo el tráfico autorizado, definido por políticas de seguridad, debe permitirse que pase a través del cortafuegos. El cortafuegos en si mismo debe ser inmune a intrusiones. Posibles funcionalidades adicionales de los cortafuegos: Translación de direcciones de red (NAT) Protocolo de configuración dinámica de host (DHCP) Redes privadas virtuales (VPN) Moduladores de ancho de banda o reguladores Balanceo de carga Sensor de red dentro de un IDS
Dependiendo del tipo de cortafuegos, se protegen distintos niveles. Cortafuegos(iii) Protección en niveles de red Nivel Modelo OSI TCP/IP Servicios y protocolos 7 6 5 Aplicación Presentación Sesión Aplicación HTTP FTP SMTP... 4 Transporte Transporte TCP UDP 3 Red Red IP 2 1 Enalce Físico Host a red Ethernet FDDI x.25...
Cortafuegos(iv) Limitaciones de los cortafuegos Limitaciones de los cortafuegos Los cortafuegos no pueden proteger de ataques que no pasen por el cortafuegos (p.e. datos de un módem dentro de red interna de la organización). No puede proteger contra amenazas internas (p.e. un empleado que colabora con un atacante externo). Una incorrecta separación entre distintos tipos de redes, según su potencial vulnerabilidad (p.e. redes inalámbricas dentro del mismo segmento que la intranet). Los soportes físicos de memoria (CDs, memorias USB, portátiles, etc), puede traer código que infecte la red de la organización.
Cortafuegos(v) Tipos de cortafuegos(i) Tipo de cortafuegos: Cortafuegos de filtrado de paquetes Filtrado a nivel de MAC Cortafuegos de inspección de estados Cortafuegos a nivel de aplicación (proxy a nivel de aplicación) Según su instalación: Cortafuegos de red Cortafuegos personales o cortafuegos de host
Cortafuegos(vi) Tipos de cortafuegos(ii) Nivel Modelo OSI TCP/IP Servicios y protocolos Tipos de cortafuegos 7 6 5 Aplicación Presentación Sesión Aplicación HTTP FTP SMTP... Cortafuegos a nivel de aplicación (proxy de aplicación) 4 3 2 1 Transporte Red Enalce Físico Transporte Red Host a red TCP IP Ethernet FDDI x.25... UDP Filtrado nivel MAC Filtrado de paquetes Inspección de estado
Cortafuegos(vii) Cortafuegos de filtrado de paquetes(i) Cortafuegos de filtrado de paquetes (Packet Filter Firewalls) Filtran, generalmente, los paquetes en la capa de transporte y red. Los filtros a nivel de MAC además filtran el tráfico a nivel de enlace. Filtra en función de una serie de reglas aplicadas sobre: Direcciones IP de origen o destino Protocolo utilizado Puertos de origen y destino Interfaces de red del dispositivo hardware Algunos pueden aportar traducción de directorios de red (NAT) Se muestra una única dirección IP externa. Se filtra y se mapea cada petición a la dirección IP interna. Las direcciones IP internas no son visibles desde el exterior.
Cortafuegos(viii) Cortafuegos de filtrado de paquetes(ii) IPv4 0-3 4-7 8-11 12-15 16-19 20-23 24-27 28-31 0 32 64 96 128 160 Versión TTL Tamaño cabecera Tipo de servicio Longitud total Identificador Flags Posición de fragmento Protocolo Dirección IP origen Dirección IP destino Opciones Datos Suma de control de cabecera
Cortafuegos(ix) Cortafuegos de filtrado de paquetes(iii) UDP 0 32 0-3 4-7 8-11 12-15 16-19 20-23 24-27 28-31 Puerto origen Puerto destino Longitud Suma de verificación (checksum) Datos TCP 0 32 64 96 128 160 0-3 4-7 8-11 12-15 16-19 20-23 24-27 28-31 Longitud cabecera Puerto origen Reservado Flags Ventana Suma de verificación (checksum) Número de secuencia Número de acuse de recibo (ACK) Opciones + Relleno (opcional) Puerto destino Puntero urgente Datos
Cortafuegos(x) Cortafuegos de filtrado de paquetes(iv) La mayor parte de los cortafuegos personales o de host son de filtrado de paquetes. Por cada regla, existen dos acciones básicas: denegar (DENY) o aceptar (ACCEPT) el tipo de tráfico descrito en la regla. IP Origen IP Destino Puerto Acción 172.16.0.0/16 10.10.0.0/16 Any DENY 192.168.1.0/24 10.10.10.25 80 ACCEPT 192.168.1.1 10.10.10.10 21 ACCEPT Se puede incluir información adicional respecto al dispositivo físico en el que realizar el filtrado, o filtrar por direcciones MAC (filtrado a nivel MAC)
Cortafuegos(x) Cortafuegos de filtrado de paquetes(iv) Ventajas: Rapidez, transparencias y flexibilidad. Rendimiento, escalabilidad y bajo coste. Efectivos ante DoS. Desventajas: Limitada funcionalidad (simplicidad de reglas). Dificultad en su configuración y mantenimiento. Vulnerables ante técnicas spoofing. No son muy efectivos como medida única de seguridad, aunque sí muy prácticos como primera barrera para bloquear algunos ataques y tráfico.
Cortafuegos(xi) Cortafuegos de inspección de estados(i) Cortafuegos de inspección de estados (Stateful Inpection Firewalls o también Circuit Level Firewalls) Básicamente son cortafuegos de filtrado de paquetes en los que se utiliza también información de conexiones ya establecidas (sesiones o circuitos). Enfocado al nivel de transporte (sesiones y conexiones). Se almacena una tabla de conexiones o circuitos: Por cada nueva conexión, se crea una nueva entrada en la tabla de estados. Se permite el paso a todos los paquetes de una conexión establecida. Cuando la conexión termina, se elimina el circuito de la tabla de estados.
Cortafuegos(xii) Problemática de sesiones TCP para cortafuegos de filtrado Problemática de sesiones TCP para cortafuegos de filtrado Con toda sesión TCP con un host remoto, se estable un puerto en el sistema origen de la conexión para recibir los datos del sistema remoto. Según TCP, este puerto debe estar entre el 1.023 y 16.384. Los cortafuegos de filtrado de paquetes deben permitir el tráfico en los puertos superiores (1.023 hasta 16.384) para permitir los datos de retorno de una conexión saliente. El dejar abiertos estos puertos deja riesgos de intrusión. El cortafuegos de inspección de estado resuelve este problema.
Cortafuegos(xiii) Cortafuegos de inspección de estados(ii) TCP 0 32 64 96 128 160 0-3 4-7 8-11 12-15 16-19 20-23 24-27 28-31 Longitud cabecera Puerto origen Reservado Flags Ventana Suma de verificación (checksum) Número de secuencia Número de acuse de recibo (ACK) Opciones + Relleno (opcional) Puerto destino Puntero urgente Datos
Cortafuegos(xiv) Cortafuegos de inspección de estados(iii) Cortafuegos de inspección de estados (continuación) Las características y reglas son exactamente iguales a las de los cortafuegos de filtrado de paquetes. Añade un criterio más: la tabla de conexiones válidas. Añade protección contra spoofing (no se puede realizar en el trascurso de una conexión) Aportar la traducción de directorios de red (NAT).
Cortafuegos(xv) Cortafuegos de inspección de estados(iv) Ventajas: Mantiene todas las del filtrado de paquetes, sin empeorar su rapidez. Añade protección adicional y permite una configuración más estricta de las reglas de acceso. Desventajas: Mantenimiento del sistema de reglas. No puede utilizarse para niveles superiores al de transporte (sesiones HTTP, por ejemplo).
Cortafuegos(xvi) Cortafuegos a nivel de aplicación(i) Cortafuegos a nivel de aplicación Evalúa paquetes a en la capa de aplicación. Suele ofrecer servicios de autenticación de usuario. Suelen actuar como proxy. Componente de servidor. Componente de cliente. Conectividad: 1 el cliente se conecta a su proxy cliente 2 el proxy cliente se conecta, de forma transparente, al proxy servidor 3 el proxy servidor se conecta con el servidor destino de la comunicación Servicios a medida de cada aplicación: control total.
Cortafuegos(xvii) Cortafuegos a nivel de aplicación(ii) Internet Agente proxy Servidor externo Proxy servidor Análisis tráfico Proxy cliente Red Interna Cliente
Cortafuegos(xviii) Cortafuegos a nivel de aplicación(ii) Ventajas: Control total sobre el tráfico. Detalle de registros de tráfico. Métodos de autenticación: evita suplantación. Aislamiento total entre extremos: topología de red no accesible. Aplicables mecanismos de compresión en transmisión. Desventajas: Menores prestaciones (depende de cada aplicación) Específicos de cada aplicación. Despliegue de un proxy por tipo de aplicación. Más vulnerables a ataques de sistemas (aplicaciones menos maduras que TCP o UDP)
Cortafuegos(xix) Comparación entre tipos de cortafuegos(i) Filtrado de paquetes Inspección de estado Nivel de aplicación Precio El más económico caro Relativamente El más caro Velocidad Rápido Rápido Más lento Facilidad de configuración Fácil Moderado Moderado Baja. Es necesario un proxy Independencia Alta Moderada de aplicación por aplicación Partes del paquete exami- Sólo cabecera Cabecera y Cabecera y contenidos contenidos nado
Cortafuegos(xx) Comparación entre tipos de cortafuegos(ii) Autenticación de usuario Exposición de la red De estado Ninguna (IP) Ninguna (IP) Alta Proxy a nivel de aplicación Filtrado de paquetes Extremos de la comunicación conectados por cortafuegos (salvo que NAT esté activo) Extremos de la comunicación conectados por cortafuegos (salvo que NAT esté activo) Extremos aislados por el proxy a nivel de aplicación Típicamente Tipos de TCP (aunque paquetes TCP y UDP TCP y UDP podría también filtrados UDP) Efectividad La más baja Moderada La más alta
Cortafuegos(xxi) Cortafuegos híbridos Cortafuegos híbridos Mezcla de cortafuegos de filtrado de paquetes, inspección de estado y de aplicación. Configurable según necesidades específicas. Configuraciones de varios cortafuegos en serie, realizando filtrados en fases.
Topologías de red con cortafuegos(i) Redes DMZ
Topologías de red con cortafuegos(ii) Distribuido: cortafuegos de host
Topologías de red con cortafuegos(iii) Por niveles dentro de una misma organización
Topologías de red con cortafuegos(iv) Simplificada: cortafuegos con múltiples interfaces de red
iptables(i) Netfilter es un framework disponible en el núcleo Linux para la interceptación y manipulación de paquetes de red. iptables es una herramienta, construida sobre Netfilter, que implementa un cortafuegos de filtrado de paquetes. Netfilter tiene otras herramientas, que junto con iptables permite crear cortafuegos de inspección de estado. iptables está disponible en la práctica totalidad de las distribuciones basadas en el núcleo Linux (a partir de la versión 2.4). Ofrece traducción de direcciones de red (NAT). Utilizable como cortafuegos personal, o en un dispositivo con múltiples interfaces de red, como cortafuegos de red
iptables(ii) Ejecución No se ejecuta como un servicio directo del sistema. Se puede iniciar con el resto de los servicios. Se crea un archivo en texto plano con la definición de las reglas. Se ejecuta el fichero, como administrador del sistema. Las reglas, a partir de ese instante, son cargadas en el núcleo del sistema operativo y se ejecutan por cada paquete que cumpla con alguna de las reglas definidas.
iptables(iii) Reglas(i) Cada regla en iptables está definida por: un patrón a cumplir (match) un destino para el paquete que encaja con el patrón Si un paquete no cumple con ninguna regla, se aplica la política por defecto. Las reglas se pueden agrupar en cadenas, por las que pasa cada paquete, hasta que cumple algún patrón definido en alguna de las reglas de la cadena. Si una regla desvía el paquete (cortocircuito), el resto de las reglas de la cadena no se tienen en cuenta. Las cadenas se pueden enlazar unas con otras.
iptables(iv) Reglas(ii) 3 tablas para añadir reglas (se pueden definir más): Tabla de filtros (filter table): responsable del filtrado tabla por defecto todos los paquetes pasan por el filtrado 3 cadenas predefinidas: INPUT - todos los paquetes atraviesan esta cadena OUTPUT - paquetes que salen del sistema FORWARD - paquetes para ser encaminados Tabla de traducción de direcciones de red (nat table) Reglas de reescritura de direcciones 3 cadenas predefinidas: PREROUTING - antes de llegar a la tabla de enrutamiento POSTROUTING - tras pasar la tabla de enrutamiento OUTPUT - paquetes de salir de NAT Tabla de destrozo (mangle table)
iptables(v) Reglas(iii) Destinos (acciones) para reglas Los destinos pueden ser cadenas definidas. 4 destinos básicos (más con extensiones). ACCEPT - aceptar. DROP - descartar. El paquete desaparece. QUEUE - encolar. Se envía a una cola en espacio de usuario para ser atendido (si no hay ninguna, se hace un DROP) RETURN - retorno. Se aplica la política por defecto (o es procesado por una cadena de nivel superior) Adicionales: REJECT - rechazo. Similar a DROP, pero enviando un paquete de error al origen. LOG - bitácora. Escribe el paquete en un log. Para depuración.
iptables(vi) Reglas(iv) Acciones sobre reglas (básicas): -A append: añade una regla a una cadena especificada -D delete: borra una regla de una cadena -L list: muestra las reglas de una cadena -F flush: elimina todas las reglas de una cadena -P policy: estable la política por defecto en una cadena
iptables(vii) Reglas(v) Ejemplo y parámetros de regla: Acepta conexiones en el puerto 80 (www) desde la interfaz eth0 iptables -A INPUT -i eth0 -s 0.0.0.0/0 -p TCP --dport www -j ACCEPT -i / -o <interfaz> Interfaz de entrada (input) o salida (output) -s / -d <dirección> Dirección IP de origen (source) o destino (destination) -p <protocolo> Protocolo (TCP, UDP, ICMP) -sport / -dport Puerto de origen (sport) o destino (dport) -j <cadena> Destino del paquete
iptables(viii) Ejemplos simplificados, abierto por defecto # Elimina reglas iptables -F # Políticas por defecto iptables -P INPUT ACCEPT iptables -P OUTPUT ACCEPT # Servidor web abierto iptables -A INPUT -p tcp --dport 80 -j ACCEPT # Acceso a FTP permitido en red local iptables -A INPUT -s 192.168.1.0/8 -p tcp --dport 20:21 -j ACCEPT # Se cierran los puertos con privilegios (1..1024) # Declarar siempre tras la apertura de puertos iptables -A INPUT -p tcp --dport 1:1024 -j DROP iptables -A INPUT -p udp --dport 1:1024 -j DROP # Se cierran el resto de puertos e IPs abiertos iptables -A INPUT -p tcp --dport 20:21 -j DROP
iptables(viii) Ejemplos simplificados, cerrado por defecto # Elimina reglas iptables -F # Políticas por defecto iptables -P INPUT DROP iptables -P OUTPUT DROP # Servidor web abierto iptables -A INPUT -p tcp --dport 80 -j ACCEPT iptables -A OUTPUT -p tcp --sport 80 -j ACCEPT # Acceso a FTP (activo y pasivo) permitido en red local iptables -A INPUT -s 192.168.1.0/8 -p tcp --dport 20:21 -j ACCEPT iptables -A OUTPUT -d 192.168.1.0/8 -p tcp --sport 20:21 -j ACCEPT iptables -A INPUT -s 192.168.1.0/8 -p tcp --dport 1024:65535 -j ACCEPT iptables -A OUTPUT -d 192.168.1.0/8 -p tcp --sport 1024:65535 -j ACCEP
Seguridad Informática Seguridad en redes: Herramientas de seguridad (ii) Ramón Hermoso y Matteo Vasirani Universidad Rey Juan Carlos Curso 2012/2013