A continuación las entradas del Tema 6:
WEB IN THE FIRE SMR2
jueves, 12 de marzo de 2015
37. Spam
En las empresas, el correo electrónico es tan importante o más que el teléfono. Los emleados necesitan estar en contacto con otros empleados de la misma empresa, con los proveedores y con los clientes. Como responsables de la infraestructura informática, debemos garantizar que los mensajes se envían y reciben con normalidad, pero también que no hacemos perder el tiempo a nuestros usuarios entregando correos no deseados. Estos correos, como mínimo, llevan publicidad, pero también son una fuente de infección de virus y troyanos que pueden venir en un fichero adjunto o que aprovechan una vulnerabilidad del programa de correo.
Qué hace
El software antispam colabora con el servidor de correo para detectar mensajes indeseables. Para determinar si un mensaje entra en esa categoría, el antispam utiliza:
- La cabecera del mensaje, buscando si el servidor de correo origen está en alguna lista negra de spammers reconocidos, si la fecha de envío utiliza un formato incorrecto, etc.
- El contenido del mensaje, buscando palabras poco relacionadas con la actividad de la empresa (medicinas, etc.), mensajes cuya versión de texto plano es muy diferente de la versión HTML, etc.
- La propia experiencia del programa (autoaprendizaje), según el tipo de mensajes que maneja el servidor de correo de nuestra empresa en concreto.
Cuando se detecta un correo spam, tenemos varias opciones:
- Bloquearlo aquí e impedir que llegue hasta el usuario; así le ahorramos molestias (leerlo, borrarlo) y evitamos potenciales infecciones. No se suele usar porque nunca tendremos la certeza de que no hemos eliminado algún correo importante.
- Dejarlo pasar, pero avisando al usuario de que es un correo sospechoso. Es la opción por defecto. El aviso al usuario consiste en añadir texto en el título del correo (por ejemplo, *** SPAM ***); esto le servirá al usuario para crear sus propios filtros en su programa de correo.
- Dejarlo pasar, pero convirtiendo el texto del correo en un fichero adjunto, para que sea más difícil engañar al usuario y solo lo abra si está seguro de que el correo le interesa.
Etiquetas:
spam
Ubicación:
Jerez de la Frontera, Cádiz, España
36. Proxy
Hemos visto que los firewall normales permiten controlar las conexiones a nivel de red. Si necesitamos algo más, hay que recurrir a un firewall de aplicación o directamente a un IPS.
Pero hay otra forma de enfrentarse al problema de controlar qué están hablando dos máquinas entre sí. Podemos introducir un nuevo interlocutor en medio de la conversación: donde antes A hablaba con B, ahora hay un C, de manera que A habla con C y C se lo cuenta a B, y viceversa. Ese nuevo intermediario es un proxy, y como tiene acceso a todos los paquetes intercambiados, puede aplicar medidas de seguridad.
Un proxy es un servicio de red que hace de intermediario en un determinado protocolo. El proxy más habitual es el proxy HTTP: un navegador en una máquina cliente que quiere descargarse una página web de un servidor no lo hace directamente, sino que le pide a un proxy que lo haga por él. El servidor no se ve afectado porque le da igual quién consulta sus páginas.
Qué hace
El proxy recibe de una máquina origen A un mensaje formateado para el servidor B según un protocolo determinado (petición 1). Lo procesa y genera un nuevo mensaje para el mismo destino B, pero ahora el origen es P, la máquina del proxy (petición 2). Cuando el servidor B genera la respuesta, la envía a P (respuesta 3). La máquina P procesa ese mensaje y genera su propio mensaje de respuesta con destino a (respuesta 4).
Los usuarios no aprecian la diferencia porque las páginas llegan a su navegador con normalidad; pero realmente el servidor sí puede saber que el origen de la petición no es un ordenador interesado en su servicio, sino un intermediario del ordenador original. Por ejemplo, numerosos servicios de Internet que permiten consultar la IP pública que utiliza nuestro router para conectar a Internet también nos informan de si nuestra conexión está pasando por un proxy.
El procesamiento del proxy puede llevar a decidir no generar ningún mensaje. Es decir, cortar la comunicación. Este comportamiento se decide mediante reglas. En estas reglas podemos filtrar determinadas direcciones de origen o destino, algunas directivas del protocolo, incluso contenidos. Como podemos suponer, cuanto más compleja sea la regla, más tardará el proxy en aplicarla a las peticiones que le llegan, lo que puede ralentizar en exceso la comunicación.
Además de controlar las conexiones web, el proxy mejora el rendimiento global de la navegación porque guarda en disco las páginas que envía a los clientes. Es el llamado proxy caché. De esta manera, si esa misma máquina o cualquier otra solicita al proxy la misma página, no hace falta generar la petición 2 ni esperar la respuesta 3: directamente, el proxy le devuelve la respuesta 4. Hemos ahorrado los dos mensajes que van sobre la red más lenta.
Dónde situarlo
Si el volumen de tráfico que pasará por el proxy es reducido y las reglas definidas son sencillas, el servidor proxy necesitará pocos recursos (CPU, RAM, disco para la caché), por lo cual puede estar incluido en una máquina que ya ofrezca otros servicios (DHCP, DNS, disco en red, correo).
Si el volumen es elevado o las reglas que hemos definido son complejas, no podemos permitirnos afectar a otros servicios: necesitaremos una máquina en exclusividad. Aunque habrá que dimensionar adecuadamente el ancho de banda en esas máquinas dedicadas, porque van a recibir mucho tráfico.
Tipos de proxy
Si instalamos un proxy para un determinado protocolo (HTTP), el siguiente paso es conseguir que el tráfico de nuestros usuarios pase por ese proxy. Tenemos dos opciones:
- Proxy explícito. Configuramos los navegadores de los usuarios para que utilicen el proxy de la empresa.
- Proxy transparente. En algún punto de la red un router filtrará ese tipo de tráfico y lo enviará al proxy, sin que el usuario tenga que hacer nada. Si estamos utilizando un router Linux, la solución óptima es instalarlo ahí, porque ahorramos sacar el tráfico hasta otra máquina.
Una tercera opción de navegación proxy al alcance de los usuarios es utilizar un proxy web. Esto es, una página web donde entramos para introducir la URL de la página web que realmente queremos visitar. El servidor del proxy web conecta con esa página y nos muestra el resultado. Este mecanismo es el más utilizado para evitar la censura en algunos países. En una empresa no es aceptable porque el tráfico de nuestros empleados está pasando por la máquina de una empresa desconocida y no sabemos qué puede hacer con esos datos.
Etiquetas:
proxy
Ubicación:
Jerez de la Frontera, Cádiz, España
35. Firewall
El firewall es un software especializado que se interpone entre las aplicaciones y el software de red para hacer un filtrado de paquetes:
- En el tráfico entrante, la tarjeta de red recibe el paquete y lo identifica, pero antes de entregarlo a la aplicación correspondiente, pasa por el firewall para que decida si prospera o no. En el ejemplo del servidor web, la máquina recibe un paquete destinado al puerto 80, pero antes de entregarlo al proceso que tiene abierto ese puerto (un apache.exe), el firewall decide.
- En el tráfico saliente, las aplicaciones elaboran sus paquetes de datos, pero antes de entregarlo al software de red para que lo envíe, pasa por el firewall. Por ejemplo, si sospechamos que una máquina hace spam, podemos bloquear todas las conexiones salientes al puerto 25.
En las máquinas servidor, generalmente el firewall actúa sobre tráfico entrante: los servicios que ejecutan en esa máquina abren determinados puertos y queremos controlar quién se conecta a ellos. En las máquinas cliente es más sencillo: por defecto, todas las conexiones entrantes están prohibidas y todas las salientes permitidas. Esto no quiere decir que no puedan entrar paquetes, porque no habría conversaciones; pero la conversación la tiene que iniciar el equipo cliente.
La inteligencia del firewall se expresa mediante reglas de configuración. El administrador de la máquina puede individualmente activarlas, desactivarlas, modificarlas o añadir nuevas. Este proceso puede ser automático: algunos programas que instalan un servidor en la máquina son capaces de configurar algunos programas de firewall, sin necesitar la intervención del administrador.
as reglas del firewall son mucho más sencillas que las reglas de un IPS y generalmente se aplican solo a las cabeceras TCP/IP de las capas 3 (red) y 4 (transporte): el firewall básicamente mira direcciones IP y puertos, aunque también puede reconocer conversa ciones entre dos equipos y controlarlas.
Dónde situarlo
Todas las máquinas de la empresa conectadas a la red necesitan activar un firewall. Incluso aunque no ejecuten ningún servidor: puede que el software de red del sistema operativo tenga una vulnerabilidad. Igual que el malware hay que bloquearlo con el antivirus porque es software no solicitado, el firewall nos ayuda a bloquear paquetes de red no solicitado.
Esta medida sería suficiente; pero, para evitar que se inunde la red con paquetes que no llegarán a su destino, o para ayudar a máquinas que no tienen firewall.
Los routers domésticos proporcionados por los ISP hacen funciones de firewall, porque por defecto se comportan como equipos de usuario y no permiten conexiones entrantes; pero una empresa suele necesitar más configuraciones, por lo que instalará su propio firewall de red.
En empresas pequeñas este firewall de red seguramente ejecutará en una máquina que también hace las funciones de router; incluso puede que también aloje determinados servicios de la empresa en Internet. En las empresas grandes hay máquinas distintas para cada servicio, todas situadas en una subred especial llamada DMZ. El firewall de esta zona es menos exigente que el que protege nuestra LAN, porque tenemos que permitir conexiones a esos servicios; pero, como está expuesto a más ataques, se suele acompañar de un IDS/IPS.
Firewall en Linux. Iptables
Cuando llega un paquete a la tarjeta de red, el sistema operativo decide qué hacer con él. El resultado de esa decisión puede ser:
- Descartarlo. Si el destinatario del paquete no es nuestra máquina o, aunque lo sea, ningún proceso actual lo espera, el paquete termina aquí.
- Aceptarlo, porque es para nosotros y hay un proceso que sabe qué hacer con ese paquete. Sería el ejemplo anterior, pero ahora sí tenemos un servidor web funcionando.
- Aceptarlo, aunque no sea para nosotros, porque somos un router y vamos a enviarlo por otra interfaz. En algunos casos llegaremos a modificar las cabeceras del paquete, como veremos más adelante.
- Aceptarlo, aunque no es para nosotros y tampoco somos un router: pero estamos escuchando todos los paquetes porque somos un sniffer de red.
En el caso de Linux, la utilidad iptables permite introducir reglas en cada una de estas fases:
- Cuando llega el paquete para un proceso nuestro pero todavía no se lo hemos entregado, en iptables hablamos de input.
- Cuando somos un router y estamos a punto de traspasar el paquete de una interfaz a otra, en iptables hablamos de forward.
- Cuando un paquete está listo para salir por una interfaz, en iptables hablamos de output.
Hay un par de etapas más:
- Prerouting. Se ejecuta antes de input. Sirve para obviar el enrutamiento porque sabemos exactamente qué tratamiento dar a esos paquetes. Veremos un ejemplo en el caso práctico de proxy de esta misma unidad.
- Postrouting. Se utiliza para aplicar alguna modificación a los paquetes que están a punto de abandonar la máquina. Veremos un ejemplo, el NAT, en el mismo caso práctico de proxy.
Las reglas de iptables tienen una lista de condiciones y una acción, de manera que, cuando un paquete cumple todas las condiciones de una regla, se ejecuta la acción. En las condiciones podemos utilizar la interfaz por la que entró, la interfaz por la que va a salir, la dirección IP o la subred del paquete, el tipo de protocolo, el puerto origen o destino, etc. Las acciones pueden ser simplemente aceptar o rechazar el paquete, o también modificarlo.
Pero no todas las acciones están disponibles en todas las situaciones. Por esto las reglas se agrupan en tres tablas principales:
- filter. Es la tabla principal. Su misión es aceptar o rechazar paquetes. Es el firewall propiamente dicho.
- nat. Las reglas de esta tabla permiten cambiar la dirección de origen o destino de los paquetes.
- mangle. En esta tabla podemos alterar varios campos de la cabecera IP, como el ToS. Se suele usar para aplicar QoS, marcando los paquetes de determinados servicios para luego priorizarlos.
Firewall en Windows 7
Los sistemas operativos Windows siempre han tenido mala fama en cuanto a seguridad ante malware; sin embargo, la versión XP introdujo un firewall muy robusto y sencillo. Las versiones posteriores han mantenido la robustez, aunque han sacrificado la sencillez para elaborar reglas complejas que permitan cubrir todas las necesidades del usuario.
Comparado con iptables, el firewall de Windows 7 es más sencillo y más agradable de usar. A diferencia de Linux, la configuración por defecto para las conexiones entrantes es rechazarlas, no aceptarlas.
Etiquetas:
firewall
Ubicación:
Jerez de la Frontera, Cádiz, España
34. Espiar nuestra red
Vamos a conocer qué está pasando en nuestra red, qué están haciendo esos usuarios autorizados. Para este fin necesitaremos espiarnos a nosotros mismos, buscando garantizar la disponibilidad de la red y detectar ataques en curso.
Vamos a procesar el tráfico de nuestra red mediante dos tipos de técnicas:
- La monitorización del tráfico. Trabaja a alto nivel: se limita a tomar medidas agregadas, los llamados contadores. Por ejemplo, total de bytes enviados o recibidos en un interfaz, agrupados por puerto de origen o destino. La monitorización es habitual en las empresas porque:
- Resulta fácil de activar en toda la red dado que son los propios equipos los que facilitan esta información sobre sus interfaces.
- Genera relativamente poca información para transmitir y procesar.
- Es suficiente para conocer la disponibilidad de la red o el tipo de tráfico que transita. Por ejemplo, conocer el porcentaje de tráfico HTTP de nuestra red nos puede llevar a instalar un proxy.
- El análisis del tráfico. Trabaja a bajo nivel: captura todos los paquetes que transian por una interfaz. Los paquetes solo son leídos, no interceptados: el paquete continúa su camino. El procesamiento de estos paquetes leídos permite generar medidas agregadas, pero sobre todo interesa analizar las conversaciones entre los equipos, comprobando que se ajustan al comportamiento esperado en el protocolo estándar. Aunque esta información es mucho más rica que los simples contadores, la captura es muy costosa de activar en toda la red, porque se dispara la cantidad de información que hay que transmitiry procesar; por este motivo, solo se utiliza en situaciones concretas que no se pueden abordar con el estudio de contadores, como es la detección de ataques.
En ambos casos, como las redes de las empresas tienen muchos equipos utilizando distintos protocolos, necesitaremos herramientas que nos ayuden a recoger, procesar, analizar y presentar toda la información disponible.
Con estas herramientas hay que tener cuidado para conseguir un equilibrio entre los objetivos de seguridad y la carga extra que supone tratar esta información.
Como vimos anteriormente, los DoS son un intento de sobrecarga de un servidor saturándolo de peticiones. Nuestra misión será averiguar si esas peticiones corresponden a clientes reales o a falsos clientes. Para ello haremos una captura puntual en un tramo de la red y trataremos de analizar los intentos de conexión a ese servidor: origen, tipo de petición, número de peticiones, etc.
Además de la monitorización del tráfico y el análisis del mismo, hay un tercer elemento para el control de la red: la sonda. Una sonda es un equipo de la red que está programado para comportarse como un cliente normal de alguno de los servicios que tenemos desplegados. La sonda ejecuta sus operaciones periódicamente, de manera que, si alguna falla, podemos suponer que también le fallará al usuario y debemos corregir el problema.
La monitorización del tráfico es relativamente fácil de activar en una red, porque los equipos suelen estar preparados para facilitarnos la información sobre sus contadores y basta con preguntarles periódicamente. En cambio, la captura de conversaciones es más compleja de activar. Las opciones son:
- Conseguir el control sobre alguno de los extremos de la conexión para poder utilizar alguna de las herramientas que veremos a continuación (tcpdump, wireshark).
- Interceptar la conexión misma desde algún equipo de red por donde pasen los paquetes intercambiados. Si este equipo tiene cierta inteligencia, seguramente incorporará funcionalidades avanzadas, como el port mirroring.
- Como último recurso podríamos conectar de manera temporal un hub en el puerto que queremos vigilar, pero esto supone desplazamientos de personal y equipos que no siempre están disponibles (por ejemplo, el switch de LAN está en Barcelona, pero el departamento de soporte está en Madrid). Utilizamos un hub y no un switch porque el hub repite el tráfico de cada puerto a todos los demás, justo lo que necesitamos.
tcpdump
cpdump es una herramienta sencilla disponible en Linux que permite hacer un volcado de todo el tráfico que llega a una tarjeta de red. Captura todo el tráfico, no solo el tráfico TCP, como aparece en su nombre. Los paquetes leídos se muestran en pantalla o se pueden almacenar en un fichero del disco para ser tratados posteriormente por esta misma herramienta u otra más avanzada. Se necesitan privilegios para ejecutarla, porque necesitamos poner la tarjeta en modo promiscuo para que acepte todos los paquetes, no solo los destinados a suMAC.
WireShark
WireShark es la herramienta más extendida en Windows para realizar capturas de tráfico y analizar los resultados. Es una evolución de una herramienta anterior llamada Ethereal. Para la captura de paquetes utiliza la librería pcap, que también aparece en otros sniffer, como tcpdump. La interfaz de usuario es muy potente, así como el número de protocolos que es capaz de analizar.
Port mirroring
Los switch gestionables suelen incorporar esta funcionalidad. Consiste en modificar la configuración del switch para que replique todo el tráfico de un puerto a otro. En el segundo puerto conectaremos el sniffer. El equipo o equipos conectados en el primer puerto funcionan con normalidad, no saben que están siendo espiados.
Generalmente se puede elegir el tipo de tráfico: entrante, saliente o ambos. En algunos modelos podemos hacer que varios puertos vuelquen su tráfico a un mismo puerto, aunque habrá que vigilar las prestaciones del conjunto porque pueden desbordar el ancho de banda de la interfaz o la capacidad de captura del sniffer, lo que ocasionaría la pérdida de paquetes, invalidando el análisis posterior.
IDS/IPS. Snort
Las herramientas de análisis de tráfico son más o menos sencillas de instalar y configurar; pero la complicación viene a la hora de interpretar los resultados. Para sacar el máximo partido a estas herramientas se necesitan muchos conocimientos de base y una amplia experiencia en protocolos de comunicaciones.
Hay un segundo problema: aunque dispongamos de personal tan cualificado, no es humanamente posible revisar una a una todas las conversaciones que ocurren a diario en una red normal. Sobre todo porque la mayoría son interacciones normales, libres de toda sospecha. Los expertos hay que reservarlos para los casos difíciles.
Para solucionar ambos problemas existen los sistemas IDS/IPS. Los IDS detectan los ataques y los IPS actúan contra ellos. Tenemos dos tipos de IDS/IPS:
- NIDS/NIPS (Network Intrusion y Network Prevention). Buscan ataques sobre servicios de comunicaciones. Se basan en el análisis de los paquetes que forman parte de la comunicación entre dos máquinas, comprobando que se ajustan al protocolo estándar.
- HIDS/HIPS (Host Intrusion y Host Prevention). Buscan ataques sobre las aplicaciones y el sistema operativo de la máquina. Se basan en el análisis de los procesos actuales y la configuración y el log de cada uno de los servicios.
Estos sistemas procesan un fichero de captura de tráfico y buscan patrones de comportamiento en los paquetes intercambiados entre los equipos. No se limitan a revisar las cabeceras del protocolo, sino que también miran en el contenido del paquete. Cuando detectan un posible ataque, si es un IDS solo avisa al usuario y si es un IPS solo responde al ataque.
La inteligencia de estas herramientas suele residir en un conjunto de reglas que se cargan en el programa desde un fichero de configuración. Las reglas son elaboradas por expertos en seguridad que, cuando han identificado un nuevo tipo de ataque, escriben la regla que permitirá al IDS detectarlo.
Los problemas de los IDS son dos:
- Rendimiento. El número de reglas es creciente (hay nuevos ataques y no podemos descartar los antiguos) y el volumen de tráfico también, por lo que necesitamos un hardware muy potente para tener funcionando un IDS sobre capturas de tráfico en tiempo real. En determinados momentos, la cola de paquetes pendientes de examinar será tan larga que la interfaz estará a punto de empezar a descartarlos; para evitarlo, el IDS los dejará pasar, a sabiendas de que puede ser un ataque. Pero si nos limitamos a procesar ficheros de captura antiguos, puede que encontremos ataques que ya han ocurrido y sea tarde para reaccionar.
- Falsos positivos. Las reglas no son perfectas y puede que estemos alertando sobre comunicaciones que son perfectamente legales. Conviene probar muy bien una regla antes de meterla en un IPS.
33. Servicios de red. Nmap y netstat
Hace unas entradas hablábamos de los riesgos de conectar un equipo a una red. Habrá una parte del software instalado en ese equipo que quiere conectar con unos equipos y que espera conexiones de esos equipos u otros. Pero pueden llegar conexiones de un cliente atacante, o nos podemos estar conectando erróneamente a un servidor atacante.
El software de los servicios de red es especialmente delicado. Debemos vigilar qué software tenemos activo y qué actualizaciones tiene pendientes.
Las actualizaciones llegarán por el mecanismo habitual del sistema operativo; el software que tenemos activo lo podemos conocer mediante un par de herramientas sencillas: Nmap y netstat.
La herramienta Nmap, disponible para sistemas Linux y Windows, se ha convertido en la navaja suiza de los hackers de red. Además del escaneo de puertos para determinar los servicios disponibles en una máquina, podemos pedir a la herramienta que intente la conexión a cada uno de ellos. Después analiza los mensajes que generan estos servidores para identificar la versión concreta del sistema operativo y la versión concreta del software de servidor que está escuchando en cada puerto.
Aunque intentemos despistar arrancando servicios en puertos que no son los esperados (80 para HTTP y otros), la herramienta reconoce el puerto como abierto y consigue identificar el servicio.
Para cada puerto, la herramienta ofrece cuatro posibles estados:
- open (abierto): la máquina acepta paquetes dirigidos a ese puerto, donde algún servidor está escuchando y los procesará adecuadamente.
- closed (cerrado): no hay ningún servidor escuchando.
- filtered: Nmap no puede decir si ese puerto está abierto o cerrado porque alguien está bloqueando el intento de conexión (router, firewall).
- unfiltered: el puerto no está bloqueado, pero no se puede concluir si está abierto o cerrado.
Ubicación:
Jerez de la Frontera, Cádiz, España
32. VPN
Las empresas tienen redes LAN y WLAN para sus ofi cinas, pero también suelen necesitar que los empleados puedan entrar a esa misma red desde cualquier otro lugar de Internet, por cualquier motivo.
Algo como establecer una VLAN entre el ordenador del empleado y la LAN de la empresa, utilizando Internet como transporte. Estamos hablando de montar una VPN (Virtual Private Network, red privada virtual).
El objetivo final de la VPN es que el empleado (más bien, su ordenador) no note si está en la empresa o fuera de ella. En ambos casos recibe una configuración IP privada, por lo que no necesita cambiar nada en la configuración de sus aplicaciones.
El responsable de conseguir esta transparencia es el software de la VPN. En el ordenador del empleado hay que instalar un software cliente VPN. Este software instala un driver de red, de manera que para el sistema operativo es una tarjeta más. Ese driver se encarga de contactar con una máquina de la empresa, donde ejecuta un software servidor VPN que gestiona la conexión, para introducir los paquetes en la LAN. La gestión consiste en:
- Autentificar al cliente VPN. No podemos dejar que entre cualquiera, por lo que se utiliza el típico usuario/contraseña, tarjetas inteligentes, etc.
- Establecer un túnel a través de Internet. El driver de la VPN en el cliente le ofrece una dirección privada de la LAN de la empresa (la 10.0.1.45), pero cualquier paquete que intente salir por esa tarjeta es encapsulado dentro de otro paquete. Este segundo paquete viaja por Internet desde la IP pública del empleado hasta la IP pública del servidor VPN en la empresa.
- Proteger el túnel. Como estamos atravesando Internet, hay que encriptar las comunicaciones. Los paquetes encapsulados irán cifrados.
- Liberar el túnel. El cliente o el servidor pueden interrumpir la conexión cuando lo consideren necesario.
Etiquetas:
VPN
Ubicación:
Jerez de la Frontera, Cádiz, España
Suscribirse a:
Entradas (Atom)