Biblioteca GNU C getaddrinfo () Defecto

0

Como probablemente ya sepa, este martes se identificó una falla potencialmente catastrófica en la función glibc llamada getaddrinfo (), que realiza búsquedas de nombres de dominio, contiene un error de desbordamiento del búfer (consulte el enlace here ).

Las consecuencias de esto parecen ser bastante horrendas y llevará tiempo incluso tener una visión general del tamaño de la lista de hardware y software vulnerables que utiliza esta biblioteca.

Si bien la extensión del daño y las reparaciones a seguir vendrán más pronto que tarde, hay algunas medidas de mitigación que pueden prevenir el ataque recomendado por los investigadores de Google:

  

Google ha encontrado algunas mitigaciones que pueden ayudar a prevenir la explotación si no puedes parchear inmediatamente tu instancia de glibc. La vulnerabilidad se basa en una respuesta UDP o TCP sobredimensionada (2048+), que es seguida por otra respuesta que sobrescribirá la pila. Nuestra mitigación sugerida es limitar los tamaños de respuesta (es decir, a través de DNSMasq o programas similares) aceptados por el sistema de resolución de DNS localmente, así como garantizar que las consultas de DNS se envíen solo a los servidores de DNS que limitan el tamaño de respuesta para las respuestas de UDP con el bit de truncamiento establecer. *

Y los mantenedores de Glibc proporcionan las siguientes mitigaciones:

  
    

Los factores atenuantes para UDP incluyen:

  
     
  • Un firewall que descarta paquetes UDP UDP > 512 bytes.

  •   
  • Una resolución local (que elimina las respuestas no conformes).

  •   
  • Evite las consultas duales A y AAAA (evita el error de administración del búfer), p. No utilice AF_UNSPEC.

  •   
  • No se usa options edns0 en /etc/resolv.conf ya que EDNS0 permite respuestas de más de 512 bytes y puede conducir a respuestas DNS válidas   ese desbordamiento.

  •   
  • No se utilizan RES_USE_EDNS0 o RES_USE_DNSSEC , ya que ambos pueden conducir a respuestas de DNS grandes y válidas basadas en EDNS0 que pueden desbordarse.

  •   

Los factores atenuantes para TCP incluyen:

     
  • Limite todas las respuestas a 1024 bytes.
  •   

En este momento estoy tratando de encontrar una manera de limitar el tamaño de las respuestas a través de iptables y el uso del módulo de límite. Pero hasta ahora solo he encontrado formas de utilizar los límites de velocidad que no son aplicables aquí. ¿Alguna idea de cómo se podría traducir esto en una (s) regla (s) de iptables?

Actualmente también estoy estudiando cómo tener un sistema de resolución de DNS para eliminar las respuestas que no cumplen, por lo que cualquier idea / idea es bienvenida.

    
pregunta dude 17.02.2016 - 01:21
fuente

1 respuesta

1
  

tratando de encontrar una manera de limitar el tamaño de las respuestas a través de iptables y el uso del módulo de límite

Lo que probablemente necesite es el módulo iptables length , que puede coincidir con paquetes que tienen una longitud (o rango) específica. Consulte enlace .

Tenga en cuenta que esto solo ayuda con UDP cuando la carga útil completa está contenida en un solo mensaje (debe descartar UDP fragmentado paquetes aunque ). Con TCP, la respuesta se puede transferir utilizando varios paquetes y una sola secuencia TCP también puede contener múltiples solicitudes y respuestas. Por lo tanto, limitar la longitud de un paquete no ayudará mucho.

  

Actualmente también estoy estudiando cómo tener un sistema de resolución de DNS para eliminar las respuestas que no cumplen, por lo que cualquier idea / idea es bienvenida.

Lo mejor sería tener una puerta de enlace de nivel de aplicación que sanea las respuestas, es decir, un servidor DNS local al que se accede desde la biblioteca de resolución. Algo como dnsmasq podría ayudar, aunque no estoy seguro de si dnsmasq realmente sanea las respuestas lo suficiente para este caso específico. Otras opciones serían la configuración no vinculada o vinculante, aunque la vinculación tiene un historial erróneo con respecto a la seguridad en sí misma.

    
respondido por el Steffen Ullrich 17.02.2016 - 07:05
fuente

Lea otras preguntas en las etiquetas