Información de fondo:
Aproximadamente el 50% del ADSL y el acceso a internet por cable en Alemania (y presumiblemente partes de la UE) pasa por enrutadores AVM Fritz, ya sea textualmente o renombrado como p. ej. "1 & 1 Home Server" o "T-Online Box".
Estos son sistemas MIPS integrados con un par de puertos Ethernet, un conector ADSL o similar, y otras cosas opcionales (DECT, WLan, puertos USB) que ejecutan un derivado de Linux (2.6 ???).
Hace unas tres semanas, se conoció un exploit que permitía obtener acceso de root al enrutador. Al parecer, el exploit se ha utilizado para llamar a los números de servicio en las Falklands, cobrando a los usuarios involuntarios.
El primer comunicado de prensa público de AVM fue que esto no era una amenaza grave (¡qué otra cosa dirían!) porque requiere que se habilite el acceso remoto, lo cual no es el caso por defecto, y que la mayoría de los usuarios no han habilitado de todos modos .
Unos días más tarde, se reveló que la vulnerabilidad no tiene nada que ver con el acceso remoto, y que alguien podría hacerse cargo de su enrutador si simplemente visitó un sitio web que de otra forma sería inofensivo y que contiene una página con código malicioso. Se publicó una actualización del sistema operativo el mismo día.
Ayer, se alegó que se está publicando una descripción detallada en "sitios específicos de hackers", mientras que varios millones de enrutadores permanecen sin parchear (es decir, son vulnerables).
Preguntas:
1. ¿Cómo podría funcionar tal exploit, conceptual y prácticamente? 1 . Cuando visita un sitio web (o hace casi todo lo demás), su navegador ejecuta una consulta de DNS y abre una conexión TCP al host remoto. El enrutador transmite su consulta de DNS y luego NAT su paquete SYN (y el SYN-ACK, y todos los siguientes datagramas).
En otras palabras, el enrutador está prácticamente copiando paquetes de un puerto Ethernet a otro (actualizando la suma de comprobación de IP después de NAT, pero eso presumiblemente sucede en el hardware de todos modos, pero en cualquier caso las implementaciones de software de la suma de comprobación de TCP han sido sometidas a pruebas de estrés durante 40 años ¿Son bastante sólidos como una roca? Básicamente, como si estuviera haciendo un splice
de un socket a otro, excepto que sucede en la pila de red.
¡Uno debería esperar seriamente que el simple reenvío de un paquete a otro puerto funcione de manera 100% confiable sin excepciones y sin ningún medio de ser explotado! El enrutador no valida ni ejecuta nada dentro de los datagramas, no hay razón para que el enrutador incluso mire el "blob binario" dentro de cada paquete (... y por lo que sé, no lo hace ¿realiza algún filtrado de contenido?).
Estoy desconcertado de cómo tal hazaña realmente podría funcionar. ¿Alguna idea?
2. Al ver cómo el "filtro de paquetes de Linux está dañado" parece ser la única explicación plausible (¿qué otra cosa podría ser?), ¿tengo motivos para empezar a entrar en pánico con respecto a mi servidor Debian?
1 Tenga en cuenta que no estoy buscando una receta de procedimientos, y no quiero ejecutar un exploit.