Fortalecer Routers: Encaminamiento de Origen

Body

El encaminamiento de origen es información en una cabecera IP la cual permite al host de origen dictamine la ruta utilizada por el paquete para llegar hacia su destino. Si la ruta estuviera determinada por puertas de enlace intermedias, podría permitir un origen eluda los dispositivos de seguridad los cuales típicamente están en la ruta entre el origen y el destino.

El encaminamiento de origen en el mundo real sería similar a conducir a través de un país de la manera más eficiente para el conductor, por ejemplo utilizando autopistas. Sin embargo si se conoce ciertas zonas tienen una alta concentración de controles policiales y de seguridad, una persona maliciosa quien desee evitar ser descubierta podría crear una ruta la cual evite estos controles principales, y al mismo tiempo llegue hacia su destino.

Fuentes:

https://community.cisco.com/t5/other-network-architecture-subjects/what…
 

Fortalecer Routers: El más Reciente IOS

Body

Cisco IOS es el software utilizado en la gran mayoría de routers y switches de Cisco Systems. IOS es un paquete de funciones para encaminamiento, conmutación, trabajo de internet, y telecomunicaciones, el cual se integra de manera cercana con un sistema operativo multitarea.

Una parte importante del reforzamiento para la red es asegurarse de tener la más reciente versión del IOS. El reforzamiento es un proceso continuo para garantizar todo el software de red y el firmware del router estén actualizados con los parches y correcciones más recientes del proveedor.

Un IOS o cualquier sistema operativo debe considerarse un producto perecedero. Una vez disponible para el mundo, inmediatamente habrá gente utilizándolo y potencialmente encontrando fallos y errores, o gente buscando activamente explotarlo. Cuanto más tiempo transcurra más se aprenderá sobre las fortalezas y debilidades del sistema.

Afortunadamente el conocimiento de estas fortalezas y debilidades también alcanza al fabricante. Quienes entonces reparan las deficiencias y continúan realizando mejoras. Cisco por ejemplo incluye un IOS en cada dispositivo. Puede suscitarse el escenario donde este IOS nunca esté actualizado. Si el router ha estado almacenado durante un tiempo el IOS puede ser muy antiguo.

Es importante tener en consideración, si bien se menciona Cisco, esto aplica a la mayoría de los fabricantes de routers.

Fuentes:

https://www.cisco.com/c/en/us/support/docs/ip/access-lists/13608-21.html
https://www.cisco.com/c/es_mx/support/docs/ios-nx-os-software/ios-softw…
 

Seguridad en Dispositivos: Fortalecer Routers

Body

El Hardening o Fortalecimiento es el proceso de reducir la superficie de vulnerabilidad para proteger un sistema. La superficie de vulnerabilidad es mayor cuando un sistema tiene más funcionalidades. Consecuentemente se puede teorizar un sistema con una única función suele ser más seguro comprado a uno con múltiples funciones.

Los routers o encaminadores presentan pocas vulnerabilidades explotables por los posibles ciberatacantes, porque estos dispositivos tienden a ser menos complicados comparados con los sistemas operativos tradicionales. Sin embargo presentan algunas potenciales vulnerabilidades. Para protegerse contra estas vulnerabilidades se sugiere:

  • Cambiar la contraseña por defecto
  • Deshabilitar difusiones dirigidas por IP
  • Deshabilitar la configuración HTTP para el router, si es posible
  • Bloquear las peticiones ping ICMP
  • Deshabilitar el encaminamiento de origen IP
  • Determinar las necesidades para filtrado de paquetes y establecerlas
  • Establecer políticas para filtrado de direcciones de entrada y salida
  • Mantener la seguridad física del router
  • Revisar los registros de eventos (logs) de seguridad

 

Fuentes:

https://media.defense.gov/2020/Aug/18/2002479461/-1/-1/0/Hardening_Netw…
https://pmc.ncbi.nlm.nih.gov/articles/PMC12041446/

Sniffing en un Switch

Body

Esnifar el tráfico sobre un segmento utilizando un switch no es una operación imposible. dsniff es un software el cual realiza esta tarea de manera simple: El sistema del ciberatacante envía un paquete ARP falsificado hacia el sistema objetivo, indicándole su puerta de enlace predeterminada ha cambiado hacia el sistema del ciberatacante. Cuando el sistema objetivo envía tráfico sobre la red, lo envía primero hacia el sistema del ciberatacante, luego reenvía el paquete hacia su destino original como si nada hubiese ocurrido.

Otra utilidad para realizar esta tarea es Ettercap. Ettercap es un sniffer de segunda generación el cual permite detectar todo el tráfico, incluso en una red utilizando un switch. Ettercap se basa en gran medida en el envenenamiento del caché ARP (donde el ciberatacante envía respuestas ARP falsas para asociar su dirección MAC con las direcciones IP de los hosts de origen y destino).

Sniffing Autorizado

Muchos switches soportan “port mirroring”, SPAN, “puerto de gestión”, o funcionalidades similares, lo cual permite a los administradores de red realizar sniffing autorizado para vigilar el tráfico de la LAN sobre cualquier computadora conectada hacia un puerto designado del switch.

Sniffing No Autorizado

Sniffing tradicional no autorizado sobre un switch es difícil, pero con el advenimiento de herramientas como dsniff se ha simplificado esta tarea; con un programa redirigiendo ARP y reenviando IP, un ciberatacante puede esnifar cada estación sobre una red utilizando un switch.

Fuentes:

https://www.ettercap-project.org/
https://github.com/tecknicaltom/dsniff
 

Ejemplos de Sniffers

Body

El primer paso en pruebas de análisis y otro tráfico malicioso es verlo con nuestros propios ojos. Es de sentido común requerir visualizar el interior de un sistema cuando no funciona adecuadamente. Esta es la razón por la cual un sniffer es la herramienta favorita de los administradores de sistemas y redes. Debido a los sniffers pueden recolectar toda la información transmitida sobre una red en un momento definido; incluyendo contraseñas y otros datos sensibles; son muy populares entre los ciberatacantes.

Los sniffers pueden ser dispositivos de hardware los cuales físicamente se conectan hacia la red, pero más comúnmente, son programas de software ejecutándose sobre computadoras en red. Los sniffers incluidos con el sistema operativo están diseñados como herramientas para el administrador del sistema. Sin importar sus necesidades, intereses, o presupuesto, probablemente exista un sniffer cumpliendo aquello requerido. Algunos sniffers están diseñados para propósitos más especializados y nefastos. Los sniffers incluidos con rootkits frecuentemente están diseñados para buscar nombres de usuarios y contraseñas en los datos de la red y extraerlos hacia archivos. Para utilizar este tipo de sniffer los ciberatacantes no necesitan conocimientos técnicos. Simplemente ejecutan un programa, y después un tiempo, se tiene un archivo completo de nombres de usuarios y contraseñas los cuales pueden ser utilizados posteriormente para realizar una intrusión sobre la red.

Los ciberatacantes pueden también utilizar sniffers propios en su contra. ¿Esto es un argumento en contra de utilizar sniffers como herramientas para el análisis de red? Por supuesto que no; los sniffers son demasiado valiosos como para prescindir de estos por completo, y los ciberatacantes siempre pueden traer los suyos propios. Pero vale el esfuerzo de mantener los sniffers fuera del alcance de un posible ciberatacante. Es suficientemente malo uno de sus servidores de producción sea comprometido, pero es peor si el ciberatacante puede utilizar una copia instalada localmente de tcpdump para capturar contraseñas u otra información sensible.

Fuentes:

https://www.tcpdump.org/
https://www.wireshark.org/
https://snort.org/
https://github.com/tecknicaltom/dsniff
https://www.kismetwireless.net/

¿Qué es un Sniffer?

Body

Los datos son enviados a través de una red en partes discretas denominados paquetes. Para un sniffer vea paquetes estos deben arribar sobre la interfaz de red del host ejecutando el sniffer. De todos los paquetes atravesando la red, cuales de estos alcanzan al host del sniffer depende sobre el dispositivo de red conectando los hosts de la red.

Una de las tecnologías de red más populares es Ethernet. Cada dispositivo sobre una red Ethernet, ya sea una computadora, router, o sniffer de hardware, tiene una dirección física de 6 bytes o dirección Ethernet. Esta dirección física o Ethernet es la misma de la dirección MAC. Los dispositivos con múltiples interfaces Ethernet frecuentemente tienen diferentes direcciones físicas para cada interfaz, pero no siempre. Usualmente la dirección física se escribe como una serie de números hexadecimales, cada uno representando un byte, separados por dos puntos (por ejemplo  00:30:65:01:68:c5). La dirección física de un dispositivo no tiene relación con su dirección IP. Los dispositivos sobre una red Ethernet utilizan el Protocolo para Resolución de Direcciones (ARP), con el propósito de determinar la dirección física asociada con una IP, y así conocer donde enviar los datagramas IP.

Un paquete Ethernet también denominado trama, contiene en su cabecera las direcciones físicas de los dispositivos de origen y destino. Usualmente un dispositivo acepta automáticamente una trama cuya dirección de destino coincide con la suya.

Los hubs conectan redes Ethernet tradicionales. Cuando un hub ve una trama entrante, simplemente la difunde por todos sus puertos. Estas redes Ethernet compartidas son inherentemente esnifables; todos los datos transmitidos por cualquier host son visibles para todos los demás hosts sobre el hub.

Debido a la naturaleza de difusión de las redes Ethernet compartidas, los hosts deben ser selectivos con las tramas aceptadas. Un host normalmente rechaza tramas las cuales no están destinadas para este. Pero para obtener un ejemplo más amplia posible, los sniffers utilizan el modo promiscuo de la interfaz para aceptar todas las tramas, incluso aquellas destinadas para otros hosts.

No es una mala idea periódicamente revisar las interfaces de red para ver si están en modo promiscuo sin su conocimiento. Si lo están, un ciberatacante podría haber comprometido la máquina e instalado un sniffer.

El switch Ethernet es más inteligente comparado con el hub. Inspeccionando tramas entrantes, el switch determina la dirección física del host de destino y luego encuentra el puerto en el switch al cual el sistema está conectado. Luego envía el paquete por el puerto correcto.

Debido a un sniffer sobre una red utilizando un switch, solo ve el tráfico entrando y saliendo del host, el modo promiscuo no tiene efecto. Por esta razón el uso de redes utilizando un switch se considera una funcionalidad de seguridad. Después de todo una máquina comprometida sobre una red utilizando un switch únicamente puede hacer sniffing de contraseñas y datos sensibles entrando y saliendo de este, algo lo cual de todos modos, podría hacerse por otros medios (sniffing el teclado o simplemente examinando el sistema de archivos).

Pero aún es posible hacer sniffing del tráfico desde otros hosts en una red Ethernet utilizando un switch, por ejemplo suplantando la identidad de un router local. Herramientas como dsniff y Ettercap facilitan el sniffing en un entorno con un switch. Si bien las redes utilizando un switch mejoran la seguridad previniendo el sniffing casual, se recomienda utilizar criptografía robusta para proteger las contraseñas y los datos sensibles.

Fuentes:

https://github.com/tecknicaltom/dsniff
https://www.ettercap-project.org/
https://en.wikipedia.org/wiki/Packet_analyzer
 

Hubs Versus Switches

Body

Tanto los hubs cuanto los switches son utilizados para conectar dispositivos y formar una red. La diferencia entre los dos dispositivos se basa sobre ya sea el análisis hecho a nivel de host o de dispositivo. Cuando dos dispositivos se comunican directamente, la computadora origen debe identificar la dirección MAC de la tarjeta interfaz de red (NIC) de la computadora destino. Está típicamente grabada en la NIC y es un valor de 6 bytes. Cuando la computadora receptora recibe una trama, verificará para asegurarse la dirección MAC destino coincide con la dirección de la NIC. Si coinciden procesará la trama; y si no coinciden descartará la trama.

Con un hub no se realiza análisis adicional. Cuando una computadora A desea enviar una trama hacia la computadora C, especificará la dirección MAC de la computadora C como MAC de destino y envía la trama hacia el hub. El hub simplemente retransmite la trama hacia cada dispositivo conectado a este y no realiza análisis adicional. Cada computadora receptora verificará la dirección MAC para ver si la trama es para su sistema. Aunque los hubs son bastante básicos, representan algunos problemas de seguridad. Dado cada computadora recibe todas las tramas siendo enviadas a través de la red, si una computadora instala un sniffer, podrá acceder hacia toda la información siendo enviada hacia cada una de las otras computadoras. Un sniffer es una pieza de software el cual pone una NIC en modo promiscuo. Esto en esencia indica a la NIC acepte cada trama sin relevancia de si la dirección MAC coincide o no.

Un switch toma la lógica realizada por las computadoras para verificar la dirección y el switch realiza este análisis. Cuando una computadora se conecta hacia un switch, este prueba el sistema para identificar la dirección MAC de la computadora conectada hacia un puerto específico. El switch almacena la dirección MAC de cada computadora en su memoria. Ahora cuando la computadora A desea comunicarse con la computadora C, envía la trama hacia el switch. El switch examinará la trama, busca la dirección MAC destino y la envía únicamente hacia el puerto conteniendo la dirección MAC. Los switches aumentan la seguridad reduciendo la visibilidad. Ahora si la computadora E está ejecutando un sniffer, no se verá todas las tramas circulando a través de la red.

Fuentes:

https://www.cloudns.net/blog/hub-vs-switch-lan-network/
https://en.wikipedia.org/wiki/Ethernet_hub
https://en.wikipedia.org/wiki/Network_switch

Dispositivos de Red

Body

Muchos tipos de dispositivos son comúnmente utilizados en el núcleo de la red para proporcionar un medio de comunicación fiable y flexible. Es importante comprender como funcionan porque cada uno tiene sus propias fortalezas y debilidades en seguridad.

Un hub opera “repitiendo” los datos recibidos en un puerto hacia los otros puertos. Como resultado una trama de datos transmitida por un sistema es retransmitido hacia todos los demás sistemas conectados al hub. Un hub clásico no tiene capacidades para vigilancia de tráfico y no puede controlar cuales puertos deben o no recibir la trama, formando un gran dominio de colisión. Esta propiedad de un hub tiene significativas implicaciones en seguridad, porque un sistema conectado hacia el hub puede ser capaz de interceptar una trama de datos destinada a alguien más.

Un bridge conecta dos segmentos físicos de una red en una manera muy similar a como un puente sobre el agua conecta dos secciones de una carretera. Cuando un bridge recibe una trama de datos sobre uno de sus puertos, hace una decisión sobre si los datos deben enviarse hacia otro puerto. Esta funcionalidad permite un bridge controle automáticamente el flujo de datos entre los segmentos de red los cuales conecta.

Un switch de red combina la funcionalidad de un hub y switch en un solo dispositivo. Si se piensa en un switch como un bridge con más de dos puertos, se podría asimilar este idea. Al igual a un hub, un switch puede retransmitir datos hacia múltiples puertos. Adicionalmente un switch Ethernet mantiene un seguimiento de las direcciones MAC adjuntas hacia cada uno de los puertos, lo cual otorga capacidades para control de tráfico de un bridge. Vigilar y controlar el tráfico entre sus puertos, un conmutador direcciona una trama de datos únicamente hacia el sistema o segmento de red para el cual está destinada, limitando cada puerto hacia su propio dominio de colisión. El sniffing se torna ineficaz con los switches.

Los routers son frecuentemente considerados para dispositivos del perímetro porque interconectan redes lógicas. Un switch o bridge de otro lado conecta segmentos físicos residiendo sobre la misma red lógica. Mucho del Internet depende de los routers para determinar cuales rutas deben tomar los paquetes para llegar desde una red hacia otra. Similar hacia un switch o bridge, un router hace decisiones sobre donde dirigir los datos pasando a través de éste. Un switch hace sus decisiones mediante el seguimiento de direcciones MAC, mientras un router opera sobre una capa superior observando direcciones IP cuando reenvía paquetes.

A diferencia de un switch o un bridge, los cuales transmiten tráfico hacia destinos desconocidos, un router descarta tráfico si no conoce hacia donde enviarlo. Los routers necesitan ser explicitamente configurados con información definiendo las rutas para direccionar el tráfico hacia todas las redes alcanzables. El router almacena esta información en una tabla de encaminamiento, el cual utiliza para tomar decisiones sobre el reenvío de paquetes. Los routers descartan por defecto todo el tráfico de difusión local a nivel MAC, lo cual contribuye hacia su eficacia para aislar el tráfico de red.

Los dos dispositivos más comunes vistos en las redes actuales son los routers y los switches.

Fuentes:

https://www.watelectronics.com/network-devices-types-working/
 

Cerrar una Sesión TCP

Body

La imagen muestra un ejemplo de sesión TCP, ilustrando las dos maneras en la cual TCP cierra las conexiones sobre la red. El ejemplo asume una PC está conectándose hacia el servidor sobre la red, pero este mismo proceso se aplica para cualquier sesión TCP establecida entre dos dispositivos.

Las flechas en la imagen representan la dirección de las comunicaciones. Una flecha apuntando desde la PC hacia el servidor significa la PC está enviando un mensaje hacia el servidor; una flecha apuntando desde el servidor hacia la PC significa el servidor está enviando un mensaje hacia la PC. Las etiquetas RST, ACK y FIN representan los diferentes tipos de paquetes los cuales son utilizados durante el cierre de la sesión. El paquete RST es utilizado para restablecer o cerrar abruptamente las comunicaciones. El paquete ACK envía una confirmación del mensaje al originador. El paquete FIN inicia el proceso de finalizar la conexión.

La parte superior de la imagen muestra como se cierra una conexión correctamente. Cuando llega el momento de cerrar la conexión, cada extremo de la conexión debe cerrarse por separado. Asumiendo la PC desea cerrar la conexión primero, el proceso inicia cuando la PC envía un paquete FIN hacia el servidor. Esta porción FIN indica al servidor la PC desea cerrar la conexión (continuando con el recuento de secuencia el cual ha estado utilizando con el servidor). El servidor responde enviando un ACK hacia la PC, confirmando el FIN enviado. A continuación el servidor envía un paquete FIN hacia la PC para cerrar su lado de la conexión. Finalmente la PC envía un ACK hacia el servidor para confirmar el FIN.

La parte inferior de la imagen ilustra el cierre abrupto de una sesión TCP con un solo paquete. Cuando abruptamente se cierra una conexión entre dos máquinas, cualquier lado puede enviar un solo paquete para hacerlo.

El proceso inicia cuando un sistema u otro envía un paquete RST hacia el otro. Si el dispositivo receptor está en estado LISTEN para el puerto de destino, el paquete RST es ignorado. Si el dispositivo receptor está en estado SYN-RECEIVED, pero previamente se encontraba en estado LISTEN, regresa hacia el estado LISTEN.

El estado LISTEN significa el sistema está esperando por una conexión y no existen conexiones activas hacia el puerto ni sistemas intentando establecer una conexión. Esto es típicamente como un servidor opera con todos los puertos abiertos en estado LISTEN, esperando por un cliente se conecte. Si el dispositivo receptor tiene una sesión abierta y los detalles del paquete coinciden con la sesión a la cual hace referencia, el dispositivo pasa hacia el estado CLOSED, no envía más paquetes para la sesión y notifica a los procesos de nivel superior la conexión ha sido cerrada. Asumiendo una sesión ha sido ya establecida, el dispositivo emisor la establecerá la sesión hacia un estado CLOSED. Anotar las sesiones cerradas de esta manera son hechas por un solo paquete en cada dirección. No se requieren más paquetes. Cerrar una sesión en esta manera algunas veces se denominada abortar una conexión.

Fuentes:

https://www.ietf.org/rfc/rfc793.txt
 

Establecer una Conexión TCP

Body

Las conexiones TCP son establecidas utilizando el saludo de tres vías. Este procedimiento es necesario antes de los dos hosts puedan intercambiar algún dato. En el saludo de tres vías los segmentos son frecuentemente nombrados según las banderas activas. Por lo tanto un segmento conteniendo un solo segmento SYN es también denominado SYN, y un segmento ACK es denominado un ACK. Un segmento con SYN y ACK se denomina SYN-ACK.

El cliente inicia el saludo de tres vías enviando un SYN para señalar una petición por una conexión TCP hacia el servidor. Si el servidor está funcionando y ofreciendo el servicio deseado, puede aceptar la conexión entrante y responder hacia el SYN. La respuesta consiste ya sea de un acuse de recibo de la petición de conexión inicial del cliente (el indicador ACK está activado) y una petición de conexión propia (La bandera SYN está activa), juntos en un solo paquete (un SYN-ACK).

Finalmente después del cliente recibe el SYN-ACK, el cliente envía un ACK final hacia el servidor. Después el servidor recibe un ACK, se completa el saludos de tres vías, y la conexión ha sido establecida. Los dos servidores pueden intercambiar datos.

Después la conexión ha sido establecida, se activa la bandera ACK para cada paquete. Como resultado la presencia del ACK puede indicar si una conexión ha sido establecida o no. De hecho simples filtros de paquetes permiten todos los paquetes con el ACK activo, y asumen forman parte de una conexión establecida. Es fácil eludir este filtro creando un paquete con el bit ACK activo. Esta técnica se utiliza frecuentemente para probar una red tras un dispositivo de filtrado, siendo denominado como un escaneo ACK.

Para minimizar el tráfico los ACKS se incorporan (con la mayor frecuencia posible) a los paquetes conteniendo datos, opuesto a enviar un paquete solo con un ACK. Los ACKS confirman al cliente y al servidor ambos extremos siguen utilizando la conexión.

Fuentes:

https://datatracker.ietf.org/doc/html/rfc793