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
oRES_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.