Foros del Web » Administración de Sistemas » Seguridad y redes »

Stateful Inspection Firewall para Ferdy.

Estas en el tema de Stateful Inspection Firewall para Ferdy. en el foro de Seguridad y redes en Foros del Web. Respecto a lo que comentamos sobre que es un que es un cortafuegos de estado o Stateful Inspection Firewall: Un cortafuegos de estado o como ...
  #1 (permalink)  
Antiguo 18/02/2003, 02:35
Avatar de Alfon
Colaborador
 
Fecha de Ingreso: octubre-2000
Mensajes: 1.976
Antigüedad: 24 años, 2 meses
Puntos: 14
Stateful Inspection Firewall para Ferdy.

Respecto a lo que comentamos sobre que es un que es un cortafuegos de estado o Stateful Inspection Firewall:

Un cortafuegos de estado o como dicen los hijos de la gran bretaña State full inspection, es una técnica o tipo de cortafuego que trabaja en 3 de las capas del modelo OSI para el TCP/IP:

-Capa 3 (Capa de red – Internet Protocol)
-Capa 4 (Capa de Transporte –TCP)
-Capa 5 (Capa de Aplicación).

Se caracterizan porque mantienen una tabla de las sesiones TCP y las "pseudo" sesiones UDP activas, en cada entrada de esta tabla se va almacenando la dirección IP de origen, de destino, los puertos de origen y destino y la secuencia del paquete TCP, de esta forma el sistema sólo necesita comparar con las políticas de acceso el primer paquete que llega y el resto si continua la secuencia de una misma comunicación lo deja pasar. Por otro lado gracias a la capacidad de recordar las sesiones anteriores, su capacidad de analizar la capa 4 y 5, hacen que el sistema pueda analizar una serie de situaciones y detectar una serie de ataques que hasta antes de la existencia de esta técnica no era posible hacerlo. De lo anterior se desprende el nombrecillo de este tipo de cortafuegos, cortafuegos de estado, es decir, entiende del estrado de las conexiones, cosa que por ejemplo no hace ZA y resto de cortafuegos para windows.

Además, cortafuegos de estado pueden autenticar los usuarios que establecen las conexiones, pueden determinar si un paquete que dice ser del tipo http realmente transporta este tipo de tráfico e incluso pueden denegar conexión en función al URL, como se puede ver tienen una mayor profundidad en sus características de filtrado.
__________________
Un saludo,

Alfon
http://seguridadyredes.nireblog.com
  #2 (permalink)  
Antiguo 18/02/2003, 08:15
Avatar de Ferdy
Colaborador
 
Fecha de Ingreso: junio-2001
Ubicación: España
Mensajes: 1.430
Antigüedad: 23 años, 6 meses
Puntos: 0
Ahora lo entiendo. No, ipchains e ipfwadm no son cortafuegos de estado. ipchains se basa en cadenas de reglas, e ipfwadm no lo llegué a conocer....

PD: iptables si es cortafuegos de estado. De todas formas creo que había soluciones comerciales para los kernels 2.2 que sí eran cortafuegos de estado.

Salu2.Ferdy
__________________
Born to be free
Por una sociedad del conocimiento libre
  #3 (permalink)  
Antiguo 18/02/2003, 10:00
Avatar de Alfon
Colaborador
 
Fecha de Ingreso: octubre-2000
Mensajes: 1.976
Antigüedad: 24 años, 2 meses
Puntos: 14
Si, soluciones comerciales hay varias e incluso front-ends ( no comerciales ) para IPtables que son una delicia. Es que IPTables es un cortafuegos de los de "verdá", sin mariconadas, al grando, flexible y potente, y ....
__________________
Un saludo,

Alfon
http://seguridadyredes.nireblog.com
  #4 (permalink)  
Antiguo 18/02/2003, 10:37
Avatar de Ferdy
Colaborador
 
Fecha de Ingreso: junio-2001
Ubicación: España
Mensajes: 1.430
Antigüedad: 23 años, 6 meses
Puntos: 0
A la hroa de usar IPTables no me gustan los front-ends .... de todas formas tampoco hago muchas "mariconadas" con Netfilter.... lo típico.

Salu2.Ferdy
__________________
Born to be free
Por una sociedad del conocimiento libre
  #5 (permalink)  
Antiguo 18/02/2003, 10:39
Avatar de Alfon
Colaborador
 
Fecha de Ingreso: octubre-2000
Mensajes: 1.976
Antigüedad: 24 años, 2 meses
Puntos: 14
Y como auditas la configuración de tu IPTables ?.
__________________
Un saludo,

Alfon
http://seguridadyredes.nireblog.com
  #6 (permalink)  
Antiguo 18/02/2003, 10:47
Avatar de Ferdy
Colaborador
 
Fecha de Ingreso: junio-2001
Ubicación: España
Mensajes: 1.430
Antigüedad: 23 años, 6 meses
Puntos: 0
Hago el loggin contra syslog.....luego un grep para sacar la información y listo.... ya te digo que tampoco hago mucho..

Salu2.Ferdy
__________________
Born to be free
Por una sociedad del conocimiento libre
  #7 (permalink)  
Antiguo 18/02/2003, 11:02
Avatar de Alfon
Colaborador
 
Fecha de Ingreso: octubre-2000
Mensajes: 1.976
Antigüedad: 24 años, 2 meses
Puntos: 14
Ok. Yo uso un constructor e injector de paquetes a medida o hping, pero lo mejor para ser paranóico del todo y testearlo todo es un packet "injected packet". Úsalo y veras lo que te ríes. Le `pones siquieres tcpdump detrás del fire para ver lo que se le escapa a este, dependiendo de como lo tengas las reglas.
__________________
Un saludo,

Alfon
http://seguridadyredes.nireblog.com
  #8 (permalink)  
Antiguo 19/02/2003, 11:23
 
Fecha de Ingreso: diciembre-2001
Ubicación: minime$
Mensajes: 1.673
Antigüedad: 23 años
Puntos: 1
Creo que deberiamos tener un subforo el linux que se llamase "Las rarezas" y de presidentes de honor Alfon y Ferdy



A mi de momento todo esto me suena a la junta de la trocola, el pernio de la viela locomotriz y esas cosas, vamos que necesito un juego de caractéres en chino.






Saludos
Herje
__________________
Saludos
Herje
http://www.forodelinux.org
Hosting Gratis para proyectos libres.
  #9 (permalink)  
Antiguo 20/02/2003, 14:21
Avatar de lical
Colaborador
 
Fecha de Ingreso: diciembre-2001
Ubicación: $PWD
Mensajes: 1.267
Antigüedad: 23 años
Puntos: 0
herje, claro que sabes de lo que están hablando conceptualmente, sólo que le dan nombres raros


Un saludo,
__________________
lical-> Usuario registrado de Linux #254225

ZonaSiete.ORG - GNU/Linux eminentemente práctico
  #10 (permalink)  
Antiguo 28/02/2003, 10:20
 
Fecha de Ingreso: mayo-2001
Mensajes: 58
Antigüedad: 23 años, 7 meses
Puntos: 0
Apoyo la idea de herje !

Yo ahora estoy aprendiendo sobre Iptables, y la verdad es que si que me han sonado raro un parde cosillas.

Pues nada Alfon, sigue con tus hilos educa-informativos que nosotros haremos un festín de ellos

Última edición por Edulix; 28/02/2003 a las 10:22
  #11 (permalink)  
Antiguo 28/02/2003, 11:33
 
Fecha de Ingreso: diciembre-2002
Mensajes: 341
Antigüedad: 22 años
Puntos: 0
Una pregunta para Alfon...

Según tu explicación sobre como funcionan los firewalls de estado, entiendo que usando unas reglas adecuadas, es posible evitar que un host A entre en conversacion con un host C que ha robado la sesion TCP al host B con el cual el host A habia empezado a conversar?

Al fin y al cabo, el robo de sesiones TCP es posible porque una vez iniciada una sesion TCP entre dos hosts, estos mantienen la "conversacion" gracias al #Id del paquete (esto seguro que tiene un nombre.... pero ya sabes a que me refiero, no?), haciendo caso omiso al número IP del cual proviene el paquete. Así las cosas, alguień una vez que halla "hecho callar" a uno de los hosts y adivinado la secuencia de generación de los #id de los paquetes de este host, puede mantener la conversación con el otro host haciendose pasar por el hosts que ha "hecho callar".

Bueno, pues que me dices? Es que nunca me he atrevido a usar esta capacidad de iptables... Algunas reglas de ejemplo para evitar el robo de sesiones?

Un saludo
__________________
guebs - alojamiento web y dominios
www.guebs.com
blog.guebs.com

Última edición por Argintxe; 28/02/2003 a las 11:39
  #12 (permalink)  
Antiguo 28/02/2003, 13:48
Avatar de lical
Colaborador
 
Fecha de Ingreso: diciembre-2001
Ubicación: $PWD
Mensajes: 1.267
Antigüedad: 23 años
Puntos: 0
Cita:
(...) estos mantienen la "conversacion" gracias al #Id del paquete, haciendo caso omiso al número IP del cual proviene el paquete.
No conozco TCP/IP al detalle, pero... ¿es esto así realmente? Yo tenía entendido que los paquetes sí incluían la IP de destino y la de origen en los headers:
http://www.icon.co.za/~psheer/book/n...00000000000000
, pero ¿se deja de comprobar en algún momento?

Está claro que además se pueden falsificar los hedaders de los paquetes, pero esto ya me parece un tanto más complicado (¿cómo se devolvería entonces la respuesta al PC atacante si no es a través de un puente con la máquina por la que se hace pasar?).


Un saludo,
__________________
lical-> Usuario registrado de Linux #254225

ZonaSiete.ORG - GNU/Linux eminentemente práctico
  #13 (permalink)  
Antiguo 28/02/2003, 14:34
 
Fecha de Ingreso: diciembre-2002
Mensajes: 341
Antigüedad: 22 años
Puntos: 0
Soy un novato en esto, solo he expuesto lo que creo haber entendido de la lectura de cierto libro. Libro que solo he leido una vez y hace ya un mes o así...

La cuestión es que un paquete TCP/IP esta divido en varias capas. La capa de aplicación es el cuerpo de la capa de transporte, la cpa de transporte es el cuerpo de la capa de red... y así sucesivamente. La capa de aplicación no sabe lo que hay en la capa de transporte ni en la capa de red, y la capa de trasnporte tampoco sabe lo que hay en la capa de red.

Por lo tanto, la capa de transporte (digamos TCP) no conoce los números IPs de los hosts. Cuando se establece una comunicación TCP, la única forma que el host A tiene para verficar que esta hablando con el host B, es #id de los paquetes TCP que envian y reciben.

Por lo tanto, según entiendo yo, si a un host A que esta manteniendo una conversación TCP con un host B, se le envia un paquete desde el host C al mismo puerto y con el #id del paquete TCP que esta esperando recibir del host B, aceptaria dicho paquete como si fuera parte de la conversacion que esta manteniendo con el host B. Y el host A devolveria la respuesta de este paquete "intruso" al host C, ya que el IP destino de este paquete es el del host C.

Obviamente, hacer esto no resulta sencillo, pero es una posibilidad.

Estoy totalmente liado o es así como funciona el asunto? Creo que tengo que volver a leer unas cosas....
__________________
guebs - alojamiento web y dominios
www.guebs.com
blog.guebs.com
  #14 (permalink)  
Antiguo 04/03/2003, 03:02
Avatar de Alfon
Colaborador
 
Fecha de Ingreso: octubre-2000
Mensajes: 1.976
Antigüedad: 24 años, 2 meses
Puntos: 14
La explicación de como se realiza un secuestro de sesión o hijacking es algo complicada pero de manera muy básica se parece a como lo contais.

Un paquetes pueden falsificarse em cualquiera de sus camplos... IP de origen, destino, puertos,...., todo es falsificable y para ello hay muchas herramientas.

Para entender bien como funciona un secuestro de sesión es necesario saber antes y comprender bien como se establce una conexión TCP, como se cierra, etc. y los errores asociados a los números de secuencias y acuses de recibo. algo de esto cuento en los capítulos de análsis y monitorización de redes usando TCPdump.

Supongamos que estamos en una red Ethernet, donde varias estaciones de trabajo realizan conexiones TCP a un servidor que se encuentra en nuestro mismo segmento......Si tenemos suficientes privilegios en nuestra máquina, podríamos utilizar un programa sniffer y escuchar todo lo que circula por este tramo, por ejemplo, una sesión telnet de una estación de trabajo con el servidor. En nuestra escucha pasiva, hemos puesto la interface de red en modo promíscuo, a nivel de transporte podremos conocer el número de puerto y de secuencia en ambas partes con tan solo fijarnos en un segmento TCP. Esto es así porque en un solo segmento viajan los puertos origen y destino, el número de secuencia del emisor y el siguiente número de secuencia que se esperaba de la otra parte. Veamos el siguiente ejemplo :

Supongamos que somos el atacante y usamos como sniffer tcpdump o windump . Estamos escuchando una conexión telnet entre una estación de trabajo con dirección IP 192.168.2.1, y un servidor con 192.168.2.10. Aparecen entonces dos paquetes :

192.168.2.1.1140 > 192.168.2.10.telnet: P 1320825536:1320825537(1) ack 1036160984 win 5840 <nop,nop,timestamp 4356776 390625> (DF)

192.168.2.1.telnet > 192.168.2.10.1140: P 1036160984:1036160985(1) ack 1320825537 win 5840 <nop,nop,timestamp 390646 4356776> (DF)

Esta sintaxis, que se explica en los artículos que a tal efecto tengo en Seguridad y Redes, es la que utiliza el programa tcpdump/windump. Los campos que nos interesan son los siguientes :

dirección_origen.puerto > dirección_destino.puerto : flags_TCP num_de_secuencia_inicial : num_de_secuencia_final ( tamaño_del_los_datos_TCP ) num_de_ack opciones

Vemos como el primer segmento va del cliente al servidor y es, seguramente, una tecla pulsada. El segundo es la respuesta del servidor reconociendo al cliente su último envío y enviándole la misma tecla para que pueda hacer el eco, tal y como lo establece el protocolo telnet.

Es entonces cuando el atacante, en este caso nosotros, podríamos entrar en juego: podríamos enviar un paquete IP con la dirección origen de la estación de trabajo, dirección destino del servidor, puerto origen y destino el que corresponda, y número de secuencia y ACK el calculado a partir de lo que escuchamos. De esta forma, el servidor reconocería este paquete como válido y lo aceptaría aumentando el número de secuencia que espera de la estación de trabajo:

192.168.2.1.1140 > 192.168.2.10.telnet: P 1320825537:1320825560(23) ack 1036160985 win 5840 <nop,nop,timestamp 286213 6365981> (DF)

192.168.2.1.telnet > 192.168.2.10.1140: P 1036160985:1036161018(23) ack 1320825560 win 5840 <nop,nop,timestamp 6412341 286245> (DF)

¿ Qué ocurrirá con la estación de trabajo ?. Simplemente, que cuando envíe paquetes al servidor, éstos serán rechazados, ya que sus números de secuencia no corresponderán con el esperado; el servidor pensará que son paquetes duplicados. El propietario legítimo de esa conexión verá como, sin causa aparente, su sesión se ha colgado, y normalmente iniciará una nueva sin darle mayor importancia. Al fin y al cabo esas cosas ocurren.

Mientras tanto podríamos, como atacantes, enviar un paquete que contuviese un comando a nuestra elección, con el consiguiente riesgo para el usuario legítimo.

Eso del robo o secuestro de ssisiones pondemos evitarlo pot ejemplo usando conexiones cifradas o encriptadas, usando SSH o (no siempre es efectivo al 100%) usando redes conmutadas.

Sacado del manual de IPTAbles y de un HOWTO...:

Cita:
"El iptables tiene varios modulos de funciones que se pueden agregar para hacer una seleccion mas especifica de los paquetes. Uno de estos módulos es el módulo de estado, que lee (entre otros) el bit ACK de cada paquete e indica si es un intento de conexión o parte de una conexión ya establecida. De esta manera, si se filtran todos los intentos de conexión y solamente se aceptan los deseados, no será necesario revisar el resto de los paquetes, ya que se podrá suponerlos confiables. La sintaxis del uso del módulo es:

iptables -m state --state <estado> --resto-de-las-opciones...

Un ejemplo:

Para aliviar la tarea del firewall, todos los paquetes que pertenezcan a una conexión ya establecida serán aceptados en la primera regla; solamente los intentos de conexión serán seleccionados por las reglas subsiguientes:

iptables -F INPUT
iptables -A INPUT -m state --state ESTABLISHED -j ACCEPT
iptables -A INPUT -m state --state NEW -i lo -j ACCEPT
iptables -A INPUT -m state --state NEW -p tcp --dport 80 -j ACCEPT
iptables -P INPUT DROP

iptables -F FORWARD
iptables -P FORWARD DROP

iptables -F OUTPUT
iptables -A OUTPUT -m state --state ESTABLISHED -j ACCEPT
iptables -A OUTPUT -m state --state NEW -o lo -j ACCEPT
iptables -A OUTPUT -m state --state NEW -p tcp --sport 80 -j ACCEPT
iptables -P OUTPUT DROP"
NOTAS:

NEW: paquete que incicia la conexión
ESTABLISHED: aaquete que pertenece a una conexión existente (esto es, que tuvo paquetes de respuesta).
__________________
Un saludo,

Alfon
http://seguridadyredes.nireblog.com

Última edición por Alfon; 04/03/2003 a las 09:50
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:53.