[LUG.ro Mix] Fwd: Boletín de Seguridad UNAM-CERT 2004-006 "Vulnerabilidades en TCP"
Sebastián D. Criado
lugro-mix@lugro.org.ar
Thu, 22 Apr 2004 09:49:01 -0300
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
- ---------- Mensaje reenviado ----------
Subject: Boletín de Seguridad UNAM-CERT 2004-006 "Vulnerabilidades en TCP"
Date: Miércoles 21 Abril 2004 22:56
From: UNAM-CERT <unam-cert@seguridad.unam.mx>
To: unam-cert@seguridad.unam.mx
- -----BEGIN PGP SIGNED MESSAGE-----
--------------------------------------------------------------------
UNAM-CERT
Departamento de Seguridad en Computo
DGSCA- UNAM
Boletín de Seguridad UNAM-CERT 2004-006
Vulnerabilidades en TCP
----------------------------------------------------------------------
El CERT/UNAM-CERT, a través de sus equipos de respuesta a
incidentes de Seguridad en Cómputo, han emitido éste boletín donde
informan sobre una vulnerabilidad en TCP que permite a un intruso
remoto, terminar sesiones de red. La explotación sostenida de esta
vulnerabilidad podría llevar a una condición de negación de
servicio. En el caso de sistemas BGP (Border Gateway Protocol), que
se basa en TCP (Transmission Control Protocol) para mantener
sesiones de red autenticadas constantes, parte de la comunidad de
Internet podría ser afectada. Las operaciones de enrutamiento se
recuperarían rápidamente después de que termine un ataque de este tipo.
Fecha de Liberación: 21 de Abril de 2004
Ultima Revisión: ------
Fuente: CERT/CC y diversos reportes de
Equipos de Respuesta a Incidentes,
así como Foros y Listas de
Discusión.
Sistemas Afectados
==================
* Sistemas que se basan en conexiones TCP persistentes, por
ejemplo ruteadores que soportan BGP.
I. Descripción
==============
En 2001, el CERT Coordination Center liberó el boletin CA-2001-09,
describiendo debilidades estadísticas en varios generadores de
Secuencia Inicial TCP. En ese documento
(<http://www.cert.org/advisories/CA-2001-09.html>), Tim Newsham anotó:
Si un número de secuencia dentro de la ventana de recepción es
conocido, un intruo puede inyectar datos dentro del flujo de sesión
o terminar la conexión. Si el valor ISN es conocido y el número de
bytes que ya se han enviado se conoce, un intruso puede enviar o
paquete sencillo para inyectar datos o terminar la sesión. Si estos
valores no se conocen exactamente, pero un intruso puede adivinar un
rango de valores adecuado, puede enviar paquetes con diferentes
números de secuencia dentro del rango hasta que uno sea aceptado. El
intruso no necesita enviar un paquete para cada número de secuencia,
sino que puede enviar paquetes con números de secuencia. Si el rango
apropiado de números de secuencia se cubre, uno de estos paquetes
será aceptado. El número total de paquetes que necesita ser enviado
está dado, entonces, por el rango a cubrir, dividido por la fracción
del tamaño de ventana que se usa como incremento.
Paul Watson ha realizado el análisis estadístico de este ataque
cuando el ISN no se conoce y ha notado que un ataque de este tipo
podría ser viable cuando se tome específicamente en cuenta el tamaño
de ventana TCP. Además, creó una herramienta proof-of-concept,
demostrando la practicidad del ataque. El Centro de Coordinación de
Seguridad de la Infraestructura Nacional (NISCC, por sus siglas en
inglés) ha publicado un boletín resumiendo el análisis de Paul
Watson en "NISCC Vulnerability Advisory 236929," available at
<http://www.uniras.gov.uk/vuls/2004/236929/index.htm>.
Ya que TCP es un protocolo inseguro, es posible inyectar paquetes de
capa de transporte dentro de sesiones entre hosts dadas las
precondiciones adecuadas. La vulnerabilidad en el Número de
Secuencia Inicial TCP/IP (http://www.kb.cert.org/vuls/id/498440) a
la que se hace referencia en CA-2001-09 es un ejemplo de cómo un
intruso podría inyectar paquetes TCP en una sesión. Si un intruso
fuera a enviar un paquete Reset (RST), por ejemplo, terminaría la
sesión TCP entre dos extremos sin comunicación posterior.
El protocolo BGP se usa para intercambiar información de ruteo para
Internet y es usado principalmente por Proveedores de Internet
(ISPs). Para información detallada sobre BGP y algunos consejos para
hacerlo seguro, puede verse la documentación de Cisco Systems
(<http://www.cisco.com/univercd/cc/td/doc/cisintwk/ito_doc/bgp.htm>)
o Team Cymru (<http://www.cymru.com/>). Una situación vulnerable se
presenta debido al hecho de que BGP se basa en sesiones TCP
persistentes de larga vida con tamaños de ventana mayores. Cuando
una sesión BGP se interrumpe, la aplicación BGP reinicia e intenta
restablecer la conexión con sus puntos. Esto puede resultar en una
pequeña pérdida de servicio hasta que se creen tablas de ruteo frescas.
En una sesión TCP, los extremos pueden negociar un tamaño de ventana
TCP. Cuando esto se toma en cuenta, en lugar de intentar enviar un
paquete engañoso (spoofed) con todos los potenciales números de
secuencia, el intruso sólo necesita calcular un número de secuencia
válido que caiga dentro del próximo ISN esperado más o menos la
mitad del tamaño de ventana. Por lo tanto, mientras más grande sea
el tamaño de ventana TCP, mayor será el rango de números de
secuencia que serán aceptados en el flujo TCP. De acuerdo con el
reporte de Paul Watson, con una conexión de datos xDSL típica (80
kbps, upstream) capaz de enviar 250 paquetes por segundo (pps) para
una sesión con un tamaño de ventana TCP de 65,535 bytes, sería
posible inyectar un paquete TCP aproximadamente cada 5 minutos.
Tomaría aproximadamente 15 segundos con una conexión T-1 (1544
Mbps). Estos números son significativos cuando pueden usarse muchas
máquinas comprometidas (con frecuencia llamdas "botnets" o
"zombies") para generar grandes cantidades de paquetes que pueden
ser dirigidos a un host particular.
Para protegerse contra tales inyecciones, el RFC 2385 proporciona un
método para usar firmas MD5 en los encabezados TCP. Si esta forma de
verificación está soportada y habilitada entre los dos puntos,
entonces un intruso tendría que obtener la llave usada para
transmitir el paquete para poder inyectar exitosamente un paquete en
una sesión TCP. Otra alternativa sería hacer tunel BGP sobre IPSec.
De nuevo, esto proporcionaría una forma de autenticación entre los
puntos BGP y los datos que transmiten. La falta de autenticación
cuando se usa TCP para BGP hace más viable este tipo de ataque.
II. Impacto
===========
La explotación sostenida de la vulnerabilidad de inyección TCP
respecto a la vulnerabilidad de BGP podría llevar a una condición de
negación de servicio que podría afectar a un gran segmento de la
comunidad de Internet. Las operaciones normales continuarían poco
después de que terminara el ataque.
Ya que la vulnerabilidad de Número de Secuencia Inicial de TCP/IP
(VU#498440) ha sido probada, cualquier servicio o sitios que se
basan en sesiones TCP persistentes también podrían ser afectados por
esta vulnerabilidad. Los impactos podrían ir desde corrupción de
datos o intercepción de sesiones hasta condiciones de negación de
servicio.
III. Solución.
===============
* Actualizar o aplicar el parche correspondiente.
Favor de contactar a su proveedor para consultar sobre parches
disponibles, actualizaciones y estrategias de solución.
La secuencia inicial de números TCP no fueron diseñados para ser a
prueba de ataques a conexiones TCP. La carencia de opciones de
seguridad criptográfica fuerte para la cabecera de TCP en sí mismo
es una deficiencia que tecnologías como IPSec intentan atender. Se
debe hacer notar que si un intruso tiene la habilidad de ver el
tráfico no encriptado generado desde un site, ese site es vulnerable
a varios ataques TCP -no sólo a los mencionados aquí-. Una medida
más fuerte que ayudaría en la protección contra ataques TCP son las
soluciones criptográficas punto a punto como las mencionadas en
documentos IPSec.
La importancia una solución criptográfica punto a punto es que
existen algunas verificaciones de seguridad para comprobar que
ciertos paquetes pertenecen a un flujo en particular. Sin embargo,
la capa de comunicación en al cual la criptografía es implementada
determinará su eficacia en rechazar ataques basados en ISN. Las
soluciones que funcionan sobre la capa de transporte (capa 4 del
modelo OSI), tal como SSL/TLS y SSH1/SSH2, evitan que los paquetes
arbitrarios sean introducidos en la sesión. No pueden prevenir el
reinicio de una conexión (negación de servicio) desde la conexión
que será hecha por un nivel inferior del protocolo (por ejemplo,
TCP). Por otro lado, las soluciones criptográficas de capa de red
(capa 3 del modelo OSI) tal como IPSec previenen que ambos tipos de
paquetes se introduzcan en la capa de transporte y reinicio de
conexiones, debido a que el manejo de la conexión esta directamente
integrado en el modelo de seguridad de la capa de red.
Las soluciones presentadas tienen la cualidad de no requerir ningún
cambio al protocolo TCP o a implementaciones que hayan sido hechas.
Algunos sitios pueden desear investigar arduamente la capa de
transporte de TCP en si misma. RFC2385 ("Protection of BGP Sessions
via the TCP MD5 Signature Option") y otras tecnologías proporcionan
opciones para agregar protección criptográfica dentro de las
cabeceras de TCP.
* Filtrado de entrada.
El filtrado de entrada dirige el flujo de tráfico tal como entra a
la red bajo su control administrativo. Puede configurar su ruteador
BGP para aceptar solamente paquetes de conexión desde una red
específica. Los servidores típicamente son las máquinas que
solamente necesitan conexiones de entrada desde el Internet. En las
políticas de uso de la red de muchos sitios, hay pocas razones para
establecer conexiones desde el exterior a máquinas que no
proporcionan servicios públicos. De este modo, el filtrado de
entrada debe ser establecido para prohibir el inicio de conexiones
externas a servicios no autorizados. Con esta práctica, la eficacia
de las técnicas de escaneo de muchos intrusos pueden ser
dramáticamente reducidas.
* Aislamiento de la red.
Las redes complejas se pueden beneficiar al separar los canales de
datos y los canales de control, tal como BGP, en diferentes redes
lógicas y físicas. Las tecnologías, tal como VLANs, VPNs, NAT
podrían todas contribuir a separar la transmisión de la información
de control de la correspondiente a la transmisión de datos.
* Filtrado de salida.
El filtrado de salida dirige el flujo de tráfico tal como éste
abandona la red bajo su control administrativo. Típicamente existen
limitadas necesidades para ciertas máquinas que proveen servicios
públicos para iniciar conexiones de salida a Internet.
En el caso de BGP, solamente los ruteadores BGP deben estar
estableciendo conexiones a sus terminales. Otro tráfico generado por
el BGP en su red puede ser un signo de un intento de ataque.
Apéndice A. Información del proveedor.
=======================================
Para información del proveedor, favor ver el boletín de
vulnerabilidad 236929 "Vulnerability Issues in TCP"
(http://www.uniras.gov.uk/vuls/2004/236929/index.htm) o la nota de
vulnerabilidad VU#415294
(http://www.kb.cert.org/vuls/id/415294#systems). Tal como los
proveedores reporten nueva información se actualizará esta nota. Si
un proveedor en particular no fue mencionado en boletín de NISCC,
recomendamos que contacte al proveedor para cualquier comentario.
------------------------------------------------------------------------
El Departamento de Seguridad en Cómputo/UNAM-CERT agradece el apoyo
en la elaboración, revisión y traducción de éste boletín a:
* Sergio Alavez Miguel
* Jesús R. Jiménez Rojas
------------------------------------------------------------------------
Informacion
===========
Éste documento se encuentra disponible en su formato original en la
siguiente dirección:
http://www.us-cert.gov/cas/techalerts/TA04-111A.html
La versión en español del documento se encuentra disponible en:
http://www.seguridad.unam.mx <http://www.seguridad.unam.mx/>
http://www.unam-cert.unam.mx/Boletines/Boletines2004/boletin-UNAM-CERT-2004-
006.html
Para mayor información acerca de éste boletín de seguridad contactar a:
UNAM CERT
Equipo de Respuesta a Incidentes UNAM
Departamento de Seguridad en Computo
DGSCA - UNAM
E-Mail : unam-cert@seguridad.unam.mx
http://www.unam-cert.unam.mx
http://www.seguridad.unam.mx
ftp://ftp.seguridad.unam.mx
Tel : 56 22 81 69
Fax : 56 22 80 43
- -----BEGIN PGP SIGNATURE-----
Version: PGP 6.5.8
iQEVAwUBQIcmZnAvLUtwgRsVAQHyhQgAkCJpbxkM342/9KGuGrd3jv+teDQYxt/L
yLJFvWdVhUcao1XCL5uMZ/Mo0og7g8MA1tL7/lpsy5iDzIhWh1ULUb9vF6zNyJAl
zymACSaPtlXSApku1/1m/BywKewpFKTzIGDw1M7EPwuOtIFApZFuQgycgemnG/MD
r+kIGUhYucvupbmVRPZxFgc+YAHU9tKnwrr3yi36rSnklhtQTyOq25KpD86ImsJa
l/ohku9TbiWlX31+fWS0jLh+7Y9qeWpYVn0/l6XyG+c53lUS08Fnw2wS6c/9feyF
gdhX+6uex/lbzeU5aRIhni0TInH1xCVPrh3hcb64cKEaq+E9c9zvYA==
=zQgL
- -----END PGP SIGNATURE-----
- -------------------------------------------------------
- --
- --
Sebastián D. Criado - scriado@ciudad.com.ar
L.U.G.R.o - http://www.lugro.org.ar
GNU/Linux Registered User # 146768
- -------------------------------------------------------------------
"Si el Universo fuera un programa estaría hecho en C, y correría sobre
un sistema UNIX"
Anónimo.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.4 (GNU/Linux)
iD8DBQFAh78+8hmHQ8ZCg0IRAvICAJ9M+pHZLpL09M3z+PVCUy+xFx3ekwCdEWsJ
0CII8GIdAf73Ur9aIKcCwHc=
=lpmK
-----END PGP SIGNATURE-----