[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-----