Experiencia 5 : Firewall 1 Material para utilizar: Cable de red (patch cord) construído en el laboratorio. Switch Cisco, modelo Catalyst 2912XL Router Cisco, modelo 2600 PC con FreeBSD 2 Firewalls 2.1 Descripción general Un firewall o cortafuegos es un sistema o grupo de sistemas que hace cumplir una política de control de acceso entre dos redes. De una forma más clara, podemos definir un cortafuegos como cualquier sistema (desde un simple router hasta varias redes en serie) utilizado para separar en cuanto a seguridad se refiere una máquina o subred del resto, protegiéndola así de servicios y protocolos que desde el exterior puedan suponer una amenaza a la seguridad. El espacio protegido, denominado perímetro de seguridad, suele ser propiedad de una organización, y la protección se realiza contra una red externa, no confiable, llamada zona de riesgo generalmente Internet. El firewall es colocado generalmente colocado en el punto donde la red interna se conecta a la red externa (figura 1). Un sistema expuesto a Internet y por lo tanto vulnerable a ataques es llamado Bastión y generalmente se encuentra altamente protegido. Figura 1.Firewall. 1
2.2 Tipos de Ataques Existe una gran cantidad de ataques o formas de violentar la seguridad de un sistema o red. Como ya se ha dicho un firewall nos permite defenderse contra diferentes tipos de ataques y peligros, los cuales podremos agrupar de la siguiente manera: Intrusión. Es el más común, con una intrusión, las personas pueden utilizar un computador sin tener autorización para ello. Las formas de realizar una intrusión en un sistema son muy variadas, desde "robarse" una contraseña de una cuenta, hasta valerse de errores" de algún componente de software para obtener acceso a un computador sin poseer una cuenta en él. Negación de Servicios (Denial of Service): Este es un tipo de ataque que busca inutilizar los servicios que presta un computador. La forma más común de realizar este tipo de ataques es inundar un sistema o red con mensajes, procesos o requerimientos de servicio, de tal manera que el sistema o red es incapaz de satisfacer las solicitudes de los usuarios legítimos. Robo de Información: Este ataque permite al intruso obtener información sin haber utilizado directamente tu computadora. Generalmente estos ataques explotan servicios de Internet que son utilizados para proveer información, induciendo a estos servicios a dar más información de la que deben suministrar o dar información a personas equivocadas. 2.3 Tipos de firewall. 2.3.1 Firewall de filtrado de paquetes Filtrado de paquetes se entenderá como la acción de denegar o permitir el flujo de tramas entre dos redes (generalmente la red interna y la red externa, Internet) de acuerdo a un grupo de normas predefinidas; aunque el filtro más elemental puede ser un simple router, trabajando en el nivel de red de la capa OSI. El filtrado también se conoce como screening, y los dispositivos que lo implementan se les denomina chokes, el choke puede ser la máquina bastión o un elemento diferente. En resumen, los sistemas de filtrado de paquetes enrutan los paquetes entre las máquinas de la red interna y externa, pero, de forma selectiva dependiendo de las políticas que se tengan en el sistema, políticas definidas por el administrador. Generalmente a este tipo de enrutadores se les llama screnning router. Estos firewall se diseñan para controlar el flujo basándose en parámetros tales como la dirección IP de origen y destino, los puertos de origen y destino e información del tipo de paquete, es notable hacer notar que la decisión respecto al futuro del paquete no es tomada en base a su contenido sino en base al encabezado del protocolo utilizado por el mismo. También se pueden especificar políticas o reglas en base a la o las interfaces por donde a llegado o saldrá el paquete de la maquina. Las reglas se pueden representar como una tabla la cual es comparada en forma secuencial con las características del paquete cuando es encontrada una fila que cumpla con la naturaleza del paquete es aplicada la acción que esta defina. 2
Las fallas típicas de este tipo de firewall se encuentran en el mal diseño de las reglas del cortafuego. Origen Destino Tipo Puerto Acción 200.1.18.0 * icmp Denegar * 195.53.22.0 tcp/udp 80,443,22 Permitir Ejemplo de regla de filtrado 2.3.2 Proxy de aplicación Son aplicaciones especializadas que pueden o no corren en una máquina firewall. Estas aplicaciones toman los requerimientos de los clientes y los reenvían a los servidores verdaderos, basándose en las políticas de seguridad del sistema. El servidor proxy evalúa las solicitudes de los clientes y decide si debe ser aprobada o denegada. la solicitud es aprobada el servidor proxy contacta al servidor real y le reenvía las solicitudes del cliente proxy al servidor y las respuestas del servidor real al cliente proxy, si la petición es denegada, entonces la solicitud es descartada. 2.4 Características de diseño. Existen tres decisiones básicas en el diseño o la configuración de un cortafuegos, la primera de ellas, la más importante, hace referencia a la política de seguridad de la organización propietaria del firewall: evidentemente, la configuración y el nivel de seguridad será distinto en una empresa que utilice un cortafuegos para bloquear todo el tráfico externo hacia el dominio de su propiedad (excepto, quizás, las consultas a su página web) frente a otra donde sólo se intente evitar que los usuarios internos pierdan el tiempo en la red, bloqueando por ejemplo todos los servicios de salida al exterior excepto el correo electrónico. Sobre esta decisión influyen, aparte de motivos de seguridad, motivos administrativos de cada organismo. La segunda decisión de diseño a tener en cuenta es el nivel de monitorización, redundancia y control deseado en la organización; una vez definida la política a seguir, hay que definir cómo implementarla en el cortafuegos indicando básicamente qué se va a permitir y qué se va a denegar. Para esto existen dos aproximaciones generales: o bien se adopta una postura restrictiva (figura 2), i.e., denegamos todo lo que explícitamente no se permita, o bien una permisiva (figura 3), i.e., permitimos todo excepto lo explícitamente negado. Evidentemente es la primera la más recomendable de cara a la seguridad, pero no siempre es aplicable debido a factores no técnicos sino humanos (esto es, los usuarios y sus protestas por no poder ejecutar tal o cual aplicación a través del firewall). El peligro radica en no prever un ataque o acceso peligroso, o activar en forma posterior un servicio no seguro sin bloquear su acceso externo. Configurar un cortafuegos seguro para aceptar todo, implica más trabajo, mayor dificultad y por lo tanto es más propenso a errores. 3
Paquete IP Cadena de Firewall regla 1? Aceptar regla 2? Aceptar regla N? Aceptar NO Directiva (denegar) Figura 2. Denegar todo de forma predeterminada. 4
Paquete IP Cadena de Firewall regla 1? Denegar regla 2? Denegar regla N? Denegar NO Directiva (aceptar) Figura 3. Aceptar todo de forma predeterminada. 5
Otro punto a considerar es rechazar o denegar (figura 4), hasta el momento solo se ha hablado de denegar un paquete pero también existe la posibilidad de rechazar la diferencia radica en que al rechazar un paquete, este se descarta y se devuelve un mensaje ICMP de error (ver anexo B experiencia 1) al remitente. En cambio al denegar un paquete, este se descarta sin enviar notificación al remitente. Se nombraran tres razones de por que denegar siempre: Enviar una respuesta de error duplica el tráfico de red. Cualquier paquete al que responda se puede usar en un ataque de denegación de servicios. Cualquier respuesta, incluso un mensaje de error, ofrece información potencialmente útil a quien podría ser un hacker. Devolver error al enviar Descartar Rechazar? Paquete Denegar? Figura 4. Denegar frente a rechazar. Por último, la tercera decisión a la hora de instalar un sistema de cortafuegos es meramente económica: en función del valor estimado de lo que deseemos proteger, debemos gastar más o menos dinero, o no gastar nada. Un firewall puede no entrañar gastos extras para la organización, o suponer un desembolso de varios millones de pesos: seguramente un departamento o laboratorio con pocos equipos en su interior puede utilizar un PC con FreeBSD o Linux a modo de cortafuegos, sin gastarse nada en él (excepto unas horas de trabajo), pero esta aproximación evidentemente no funciona cuando el sistema a proteger es una red de tamaño considerable; en este caso se pueden utilizar sistemas propietarios, que suelen ser caros, o aprovechar los routers de salida de la red, algo más barato pero que requiere más tiempo de configuración que los cortafuegos sobre linux en PC de los que hemos hablado antes. De cualquier forma, no es recomendable a la hora de evaluar el dinero a invertir en el firewall fijarse sólo en el coste de su instalación y puesta a punto, sino también en el de su mantenimiento. Un enfoque distinto a tener en cuenta en el diseño del firewall además de lo ya explicado es el hecho de cumplir con ciertos objetivos que permitirá tener un firewall eficiente. Estos objetivos son: 6
Número de reglas mínimo. Como norma general es buena idea intentar mantener el número de reglas de filtrado dentro de un número razonablemente pequeño. Cuantas más reglas tenga que procesar el firewall, mayor será el tiempo que tardará en procesar cada paquete. Gestión natural de reglas y tolerancia a errores de gestión. Un firewall IP trabaja con direcciones IP numéricas. Esta forma de trabajo, resulta poco humana o accesible para un operador. Este detalle es especialmente importante en redes de cierto tamaño o en instalaciones en las que, desde el punto de vista del firewall necesitamos gestionar un número importante de direcciones de redes distintas. fuese posible gestionar de una forma más natural las políticas de filtrado, permitiríamos una operación del firewall mucho más rápida y eficaz, reduciríamos las posibilidades de error, facilitaríamos la detección de problemas, etc. En definitiva, se estaría en el camino de una gestión más eficiente y segura del firewall. Granularidad máxima. Interesa ser capaces de gestionar el nivel de detalle más ajustado posible. El firewall debe ser capaz de asumir la política de seguridad definida en la organización y necesidades diarias. 2.5 Filtrado de paquetes en FreeBSD Una vez conocidos los conceptos básicos y de diseño de un firewall de paquetes, se presenta el problema de cómo implementar físicamente el firewall. El caso a estudiar será un PC FreeBSD que implemente el motor de filtrado con IPFW. Toda la documentación acerca del funcionamiento y ejemplos se encuentra en la página web del ramo. Asociado con el filtrado, está la acción de NAT. (Network Address Traslation). La documentación necesaria para entender la implementación en FreeBSD se encuentra en la página de ramo. 3 Referencias. http://www.freebsd.org, sección HandBook, capítulo 28.6 Apuntes en el sitio del ramo: http://www.elo.utfsm.cl/~elo324 7