miércoles, 22 de febrero de 2017

Seguridad activa: control de redes

1.Espiar nuestra red 

En esta unidad vamos a aprender 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 (localizaremos enlaces saturados) y detectar ataques en curso.

Vamos a procesar el tráfico de nuestra red mediante dos técnicas:

  • La monitorización del tráfico.Trabaja a alto nivel:se limita a tomar medidas agregadas, los llamados contadores.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
  • Es suficiente para conocer la disponibilidad de la red o el tipo de tráfico que transita
El análisis del tráfico.Trabaja  a bajo nivel:captura todos los paquetes que transitan por una interfaz (los conocidos sniffer de red).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 (analizador de protocolos)
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 transmitir
y procesar (la mayoría de los puertos ya tienen velocidad gigabit. 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.


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; incluso puede ser un router Linux, con lo que tendremos a nuestro alcance todas las herramientas que veremos para los extremos.
  • Como último recurso podríamos conectar de manera temporal un hub en el puerto que queremos vigilar (Fig. 7.14), 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)



1.1. tcpdump
tcpdump 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.
Aunque también lo utilizaremos muchas veces para capturar las conversaciones que atraviesan un
router Linux. En la distribución representada en la Figura 7.15 podremos capturar las comunicaciones entre los ordenadores de las dos VLAN y todas las conexiones a Internet, aunque no podremos conocer qué hablan entre sí los ordenadores de una misma VLAN.











1.2. WireShark

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 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 espiadosotros sniffer, como tcpdump. La interfaz de usuario es muy potente, así como el número de protocolos que es capaz de analizar.


1.3. 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.
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.


1.4. IDS/IPS. Snort
tem
/ Intrusion Prevention System). 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 (ocupación de CPU y memoria, puertos abiertos) y la configuración y el log de cada uno de los servicios.

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 (si no los deja pasar, nosotros mismos estaremos ejecutando 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 sobrecomunicaciones que son perfectamente legales. Conviene probar muy bien una reglantes de meterla en un IPS.


2. Firewall
Pero si efectivamente conocemos las características del ataque (puerto donde intenta conectar, tipo de dirección IP origen inválida, tamaño del paquete utilizado), otra forma de defensa es tomar medidas en las máquinas que tengamos bajo nuestro control para que reaccionen adecuadamente ante la presencia de estos paquetes sospechosos.
Por ejemplo, si tenemos un servidor web en nuestra LAN y no queremos que sea atacado
desde la wifi pública que ofrecemos a los clientes en la sala de espera, podemos
configurar en el firewall de la máquina del servidor web que no acepte conexiones de
las máquinas conectadas a esa wifi (generalmente, las identificaremos porque pertenecen
una subred distinta).

2.1. Qué hace

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.
Las 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.
porque los recursos de los equipos son limitados. Pero si nuestras necesidades de seguridad son superiores, existe un tipo de firewall más sofisticado, llamado firewall de nivel de aplicación, donde sí se entra a mirar en los datos de usuario que hay más allá de las cabeceras.

2.2. Dónde situarlo
Todas las máquinas de la empresa conectadas a la red necesitan activar un firewall
(elementos 4, 5, 6, 7 y 8 de la Figura 7.36).
 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 solicitados.

2.3. Firewall en Linux. Iptables
  •  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í. Por ejemplo, llega una petición http a una máquina que no tiene un servidor web arrancado: la máquina lo ignora.
  • 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.`
  •  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 (después de output y después de forward). 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
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 (Type of Service). Se suele usar para aplicar QoS (Quality of Service), marcando los paquetes de determinados servicios para luego priorizarlos.

Para cada etapa (también llamada chain, porque encadena
una regla con otra) hay una lista de reglas que se recorre secuencialmente hasta
que el paquete cumple una regla.Si el paquete no cumple ninguna regla de esa etapa, se aplica a acción por defecto de la etapa

















2.4. 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 (Vista, Windows 7) han mantenido la robustez, aunque han
sacrificado la sencillez para elaborar reglas complejas que permitan cubrir todas las necesidades del usuario. más agradable de usar (interfaz de ventanas en lugar de comandos).
A diferencia de Linux, la configuración por defecto para las conexiones entrantes es rechazarlas, no aceptarlas.
3. Proxy
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.



  •  Seguridad para el software del cliente. Puede ocurrir que el software del ordenador

cliente esté hecho para una versión antigua del protocolo o tenga vulnerabilidades.
Pasando por un proxy actualizado evitamos estos problemas.

  •  Rendimiento. Si en una LAN varios equipos acceden a la misma página, haciendo que

pasen por el proxy podemos conseguir que la conexión al servidor se haga solo la primera
vez, y el resto recibe una copia de la página que ha sido almacenada por el proxy.

  • Anonimato. En determinados países hay censura a las comunicaciones, por lo que utilizar un proxy del extranjero les permite navegar con libertad.


  •  Acceso restringido. Si en nuestra LAN no está activado el routing a Internet, sino que solo puede salir un equipo, podemos dar navegación al resto instalando un proxy en ese equipo.
3.1. Qué hace

Los usuarios no aprecian la diferencia porque las páginas (en el caso de un servidor
web) 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 (por ejemplo, palabras dentro de la URL de una página web), incluso contenidos
(por ejemplo, imágenes). 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

3.2. 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 (incluso
más de una, formando un clúster). Aunque habrá que dimensionar adecuadamente
el ancho de banda en esas máquinas dedicadas, porque van a


3.3. Tipos de proxy
  •  Proxy explícito. Configuramos los navegadores de los usuarios para que utilicen el roxy de la empresa.
  • Proxy transparente. En algún punto de la red un router filtrará ese tipo de tráfico (por
ejemplo, comprobando que el destino es el puerto 80 de TCP) 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.
3.4. Proxy Squid: configuración y monitorización
El software de servidor proxy más extendido es Squid. Tiene versión para Windows,
pero aquí veremos la versión Linux, que es la más utilizada. Vamos a aprender cómo se
instala, cómo se configura y cómo se comprueba que está procesando tráfico.

4. Spam

En las empresas, el correo electrónico es tan importante o más que el teléfono. Los empleados
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
(spam).

4.1. 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
(sugiere que el correo ha sido generado por un software de spam, no por un cliente
de correo normal), 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 (sugiere de nuevo que ha sido generado con un programa de
spam), etc.
  •  La propia experiencia del programa (autoaprendizaje), según el ti
según el tipo de mensajes qumaneja el servidor de correo de nuestra empresa en concreto

  •  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 ás difícil engañar al usuario y solo lo abra si está
4.2. SpamAssasin: configuración y monitorización
El software SpamAssasin es uno de los más extendidos por su eficacia y la amplia variedad
de filtros que puede llegar a aplicar para determinar si un correo es spam. Los
filtros se especifican mediante reglas. Si un mensaje cumple una regla, se le asigna una
puntuación. Cuando un mensaje supera un determinado umbral (por defecto, 5, aunque
lo podemos cambiar), se considera que es spam.

No hay comentarios:

Publicar un comentario