CBAC proporciona filtrado de tráfico inteligente inspeccionando paquetes de capa de aplicación y manteniendo información de sesiones. CBAC crea entradas temporales en las ACLs para permitir el tráfico de retorno asociado a sesiones establecidas. Inspecciona protocolos como TCP, UDP y aplicaciones que usan múltiples canales, y puede bloquear ataques comunes mientras permite el tráfico legítimo.
2. El control de acceso basado en el contexto
(Context-Based Access Control - CBAC) es
una solución disponible dentro del firewall IOS
de Cisco.
CBAC filtra inteligentemente los paquetes
TCP y UDP en base a información de sesión
de protocolo de capa de aplicación.
Proporciona filtrado de capa de aplicación
con estados, incluyendo protocolos que son
específicos de aplicaciones únicas, así como
protocolos y aplicaciones multimedia que
requieren múltiples canales para la
comunicación, como FTP y H.323.
3. CBAC también puede examinar las
conexiones soportadas para ejecutar las
traducciones de direcciones necesarias
basándose en la información NAT y PAT
contenida en el paquete.
CBAC puede bloquear conexiones peer-
to-peer (P2P), como las utilizadas por las
aplicaciones Gnutella y KaZaA, así como
el tráfico de mensajería instantánea
como Yahoo!, AOL y MSN.
4. CBAC proporciona cuatro funciones
principales: filtrado de tráfico, inspección
de tráfico, detección de intrusos y
generación de auditorías y alertas
5. Filtrado de tráfico
CBAC puede ser configurado para permitir el paso
de tráfico de retorno TCP y UDP específico a través
del firewall cuando la conexión se inicia dentro de la
red.
Logra esto al crear entradas temporales en una ACL
que de otra manera denegaría el tráfico.
CBAC puede inspeccionar el tráfico para sesiones
que se originan dentro o fuera de la red.
Puede ser usado para los perímetros intranet,
extranet e Internet de la red.
CBAC examina no sólo la información de capas de
red y de transporte, sino también la información de
protocolo de capa de aplicación (como
información de conexiones FTP) para conocer el
estado de la sesión.
6. Esto le permite soportar protocolos que
involucran a múltiples canales creados
como resultado de negociaciones en el
canal de control.
La mayoría de los protocolos multimedia
y otros tantos protocolos (como FTP, RPC
y SQL*Net) involucran a múltiples canales.
7. Inspección de tráfico
Como CBAC inspecciona paquetes de capa de aplicación y
mantiene información de sesiones TCP y UDP, puede detectar y
prevenir ciertos tipos de ataques de red como inundación SYN.
Un ataque de inundación SYN ocurre cuando un atacante inunda
a un servidor con un aluvión de solicitudes de conexión y no
completa la conexión.
El volumen resultante de conexiones "medio abiertas" abruma al
servidor y causa que deniegue el servicio a solicitudes válidas.
CBAC también contribuye a la protección contra ataques de DoS
de otras maneras: inspecciona los números de secuencia de los
paquetes de las conexiones TCP para ver si están dentro de los
rangos esperados y los descarta si le resultan sospechosos.
CBAC también puede ser configurado para descartar conexiones
medio abiertas, ya que éstas requieren procesamiento extra y
recursos de memoria en el firewall.
8. Detección de intrusos
CBAC proporciona una cantidad limitada de
detección de intrusos para la protección contra
ataques SMTP específicos.
Con la detección de intrusos, los mensajes syslog
son revisados y monitoreados en búsqueda de
firmas de ataques específicas.
Ciertos tipos de ataques de red tienen
características o firmas específicas.
Cuando CBAC detecta un ataque basado en
estas características específicas, reinicia las
conexiones en cuestión y envía información al
servidor syslog.
9. Generación de alertas y
auditorías
CBAC también genera registros de auditorías y
alertas en tiempo real.
Las funciones de registros de auditoría mejoradas
usan syslog para monitorear todas las
transacciones de red y grabar las marcas de
tiempo, hosts de origen y destino, puertos
utilizados y el número total de bytes transmitidos
en reportes avanzados basados en sesión.
Las alertas en tiempo real envía mensajes syslog
de error a las consolas de administración central
cuando detectan actividad sospechosa.
10.
11. Los primeros comandos CBAC fueron
introducidos al software IOS de Cisco en 1997.
CBAC es una mejora radical en comparación
de las opciones de firewall TCP established y
ACLs reflexivas en varios aspectos
fundamentales:
Monitorea el establecimiento de conexiones
TCP
Revisa los números de secuencia TCP
Inspecciona consultas y respuestas DNS
Inspecciona tipos de mensaje ICMP comunes
Soporta aplicaciones que se basan en
conexiones múltiples
Inspecciona direcciones incrustadas
Inspecciona información de capa de
aplicación
12. Es importante destacar que CBAC sólo ofrece
filtrado para los protocolos especificados por
el administrador, esto significa que, si el
protocolo no es especificado, las ACLs
existentes determinarán el filtrado del
protocolo, ya que no se creará una entrada
temporal.
Adicionalmente, CBAC sólo ofrece detección
y protección contra ataques que pasan a
través del firewall.
Típicamente, no ofrece protección contra
ataques que se originan dentro de la red
protegida excepto si el tráfico pasa a través
de un router interno que tenga el firewall IOS
de Cisco habilitado.
13. Aunque el concepto de una defensa
perfecta no es alcanzable, CBAC
detecta y previene contra la mayoría de
los ataques populares de las redes.
Sin embargo, no hay defensas
impenetrables.
Un atacante hábil y determinado puede
aun encontrar maneras de lanzar un
ataque efectivo.
14. Operación de CBAC
Sin CBAC, el filtrado de tráfico se limita a
implementaciones ACL que examinan paquetes en la
capa de red o, a lo sumo, la capa de transporte.
CBAC usa un filtro de paquetes con estados que es
sensible a las aplicaciones.
Esto significa que el filtro es capaz de reconocer todas las
sesiones de una aplicación dinámica.
CBAC examina no sólo la información de capas de red y
de transporte, sino también la información de protocolo de
capa de aplicación (como información de conexiones
FTP) para conocer el estado de la sesión.
Esto le permite soportar protocolos que involucran a
múltiples canales creados como resultado de
negociaciones en el canal de control.
15. La mayoría de los protocolos multimedia
y otros tantos protocolos (como FTP, RPC
y SQL*Net) involucran a múltiples canales.
La tabla de estados monitorea las
sesiones e inspecciona todos los
paquetes que pasan a través del firewall
de filtrado de paquetes con estados.
CBAC luego usa la tabla de estados para
configurar entradas de ACL dinámica
que permitan el paso del tráfico de
retorno a través de el firewall o router de
perímetro.
16. ¿Cómo funciona CBAC?
CBAC crea entradas en las ACLs de las interfaces
del firewall agregando una entrada ACL temporal
para una sesión específica.
Estas entradas son creadas cuando tráfico
específico sale de la red interna protegida a
través del firewall.
Las entradas temporales permiten el ingreso del
tráfico de retorno que normalmente sería
bloqueado y canales de datos adicionales a la
red interna a través del firewall sólo si son parte de
la misma sesión y tienen las mismas propiedades
esperadas que el tráfico original que disparó al
CBAC cuando salió por el firewall.
Sin esta entrada temporal de ACL, este tráfico
sería denegado por la ACL preexistente.
La tabla de estados cambia dinámicamente y se
adapta con el flujo de tráfico.
17.
18. Asuma que un usuario inicia una
conexión de salida, como Telnet, de una
red protegida a una red externa, y se
habilita CBAC para la inspección de
tráfico Telnet.
Asuma también que se aplica una ACL
en la interfaz externa, previniendo la
entrada de tráfico Telnet a la red
protegida. Esta conexión atraviesa una
operación de varios pasos:
19. 1.
Cuando el tráfico es generado y pasa
por el router, si hay una ACL de entrada
aplicada se la procesa primero.
Si la ACL deniega este tipo de conexión
de salida, el paquete se descarta.
Si la ACL permite esta conexión entonces
se examinan las reglas de inspección
CBAC.
20. 2
Basándose en las reglas de inspección de
CBAC, el software IOS de Cisco puede
inspeccionar la conexión.
Si no se inspecciona el tráfico Telnet, se
permite el paso al paquete y no se
recolecta información.
Si se lo inspecciona, la conexión pasa al
siguiente paso
21. 3
Se compara la información de conexión
con las entradas en la tabla de estados.
Si la conexión no existe actualmente, se
agrega la entrada.
Si existe, el temporizador de inactividad
de la conexión se reinicia.
22. 4
Si se agrega una nueva entrada, se agrega una
ACL dinámica a la interfaz externa en la dirección
de entrada (de la red externa a la red interna
protegida).
Esto permite que el tráfico de retorno de Telnet, es
decir, los paquetes que son parte de la misma
conexión Telnet previamente establecida con el
paquete de salida, vuelvan a la red.
Esta entrada temporal sólo está activa por el
tiempo que la sesión permanezca abierta.
Estas entradas ACL dinámicas no se guardan en
la NVRAM.
23. 5
Cuando la sesión termina, la información
dinámica de la tabla de estados y las
entradas de ACL dinámica son removidas
24. Esto es muy similar a cómo se procesan las
ACLs reflexivas.
CBAC crea entradas temporales en las ACLs
para permitir el tráfico de retorno.
Estas entradas son creadas a medida que el
tráfico inspeccionado deja la red y se
eliminan cuando la conexión termina o se
alcanza el tiempo de vencimiento de la
conexión por inactividad.
Además, como con las ACLs reflexivas, el
administrador puede especificar qué
protocolos inspeccionar, así como en qué
interfaz y en qué dirección tomará lugar la
inspección.
25. CBAC es flexible en su configuración,
especialmente al elegir la dirección de la
inspección del tráfico.
En una configuración típica, CBAC se utiliza
en el router o firewall de perímetro para
permitir el acceso del tráfico de retorno a la
red.
CBAC también puede ser configurado para
inspeccionar tráfico en dos direcciones: de
entrada y de salida.
Esto es útil al proteger dos partes de una red
en la que dos lados inician ciertas conexiones
y permiten que el tráfico de retorno llegue a
su origen
26.
27. Tratamiento CBAC de TCP
TCP usa un saludo de tres vías.
El primer paquete contiene una secuencia
aleatoria de números y establece el flag SYN TCP.
Cuando el router recibe el primer paquete de un
flujo TCP con el flag SYN TCP, se examina la ACL
de entrada ubicada en la interfaz de entrada
asegurada.
Si se permite el paquete, se crea una entrada de
sesión dinámica.
La sesión es descrita por las direcciones de los
extremos, números de puerto, números de
secuencia y flags
28. Todos los paquetes siguientes que pertenezcan a
esta sesión se verifican con el estado actual y se
descartan si resultan no ser válidos.
¿Cómo hace CBAC para determinar si un
paquete es el subsiguiente dentro de una sesión
ya establecida?
Cuando se transmite el paquete SYN TCP, el
segundo paquete contiene una secuencia
aleatoria de números que genera el host que
responde, así como un número de secuencia de
confirmación (el número de secuencia recibido se
incrementa en uno), y se activan los flags SYN TCP
y ACK.
El tercer paquete confirma el paquete recibido e
incrementa el número de secuencia del paquete
en la secuencia de confirmación, sumando al
número de secuencia el número apropiado de
octetos transmitidos y activando el flag ACK.
29. Todos los segmentos subsiguientes
incrementan sus números de secuencia
en el número de octetos transmitidos y
confirman el último segmento recibido
con un incremento de uno, de acuerdo
con la máquina de estado TCP.
Luego del saludo de tres vías, todos los
paquetes tienen el flag ACK activado
hasta que la sesión termine.
El router monitorea los números de
secuencia y flags para determinar la
sesión a la que los paquetes pertenecen.
30. Tratamiento CBAC de UDP
Con UDP, el router no puede monitorear números
de secuencia o flags.
No hay saludo de tres vías y no hay proceso de
desconexión.
Si se le permite el paso a través del router al primer
paquete de un flujo UDP, se crea una entrada
UDP en la tabla de conexiones.
Las direcciones de los extremos y los números de
puerto describen la entrada de conexión UDP.
Cuando no se intercambian datos en la conexión
por un tiempo configurable, tiempo de
vencimiento UDP, la descripción de la conexión se
elimina de la tabla de conexiones.
31. Tratamiento CBAC de otros
protocolos IP
Los firewalls con estados no monitorean otros
protocolos, como GRE o IPSec, sino que
manejan los protocolos sin estados, como lo
haría un filtro de paquetes clásico.
Si se proporciona soporte con estados a otros
protocolos, el soporte es generalmente similar
al soporte para UDP.
Cuando se permite un flujo de protocolo, se
permite el paso a todos los paquetes que
coincidan con el flujo hasta que expire el
temporizador de inactividad
32. Las aplicaciones dinámicas, como FTP, SQLnet y
muchos protocolos utilizados para señalización de
voz, video y transferencia de medios, abren un canal
en un puerto bien conocido y luego negocian
canales adicionales a través de la sesión inicial.
Los firewalls con estados soportan estas aplicaciones
dinámicas a través de funciones de inspección de
aplicaciones.
El filtro de paquetes con estados husmea la sesión
inicial y analiza los datos de aplicación para
conocer qué canales adicionales fueron
negociados.
Luego, el filtro de paquetes con estados aplica la
política de que si se permite la sesión inicial, todos los
canales adicionales de esa aplicación se permitirán
también.
33.
34.
35. Con CBAC, los protocolos que serán
inspeccionados se especifican en una
regla de inspección.
La regla de inspección se aplica a una
interfaz en una dirección (de entrada o
de salida) cuando se aplica la
inspección.
El motor del firewall inspecciona sólo los
paquetes de los protocolos especificados
si ya han pasado por la ACL de entrada
que se aplica a la interfaz interna.
Si la ACL deniega un paquete, el
paquete se descarta y no es
inspeccionado por el firewall.
36. Los paquetes que coinciden con la regla
de inspección generan una entrada de
ACL dinámica que permite el acceso del
tráfico de retorno al firewall.
El firewall crea y elimina ACLs a medida
que las aplicaciones lo requieran.
Cuando una aplicación se cierra, CBAC
elimina todas las ACLs dinámicas de esa
sesión.
37. El motor del firewall IOS de Cisco puede
reconocer comandos específicos en las
aplicaciones como comandos SMTP
ilegales en el canal de control y detectar
y prevenir ciertos ataques de capa de
aplicación.
Cuando se detecta un ataque, el firewall
puede realizar varias acciones:
38. Generar mensajes de alerta
Proteger los recursos del sistema que
puedan impedir el rendimiento del
sistema
Bloquear los paquetes que provengan de
atacantes sospechados
Pueden usarse los valores de vencimiento
y umbral para manejar la información de
estado de conexión.
Estos valores ayudan a determinar
cuándo descartar conexiones que no se
han establecido enteramente o que
vencen.
39. El firewall IOS de Cisco proporciona tres
umbrales contra los ataques de DoS
basados en TCP:
Número total de sesiones TCP medio
abiertas
Número de sesiones medio abiertas en un
intervalo de tiempo
Número de sesiones TCP medio abiertas
por host
40. Si se supera un umbral establecido para las
sesiones TCP medio abiertas, el firewall tiene
dos opciones:
Envía un mensaje reset a los extremos de la
sesión medio abierta más antigua,
habilitando los recursos para servir a nuevos
paquetes SYN.
Bloquea todos los paquetes SYN
temporalmente durante un valor umbral
configurable.
Cuando el router bloquea un paquete SYN, el
saludo de tres vías TCP nunca se inicia, lo
cual evita que el router use recursos de
procesamiento y memoria que las
conexiones válidas pueden necesitar.