jueves, 12 de marzo de 2015

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.

No hay comentarios:

Publicar un comentario

Comenta lo que sea!