Estudio 2020 sobre nivel de (in)seguridad en routers domésticos

[h]Home Router Security Report 2020[/h]

Se publicó hace unos días atrás un estudio realizado sobre más de 127 modelos de routers.

  1. Home Router Security Report 2020 by Peter Weidenbach & Johannes vom Dorp @ Fraunhofer FKIE /*]

Se han elegidos modelos actuales y de “gran consumo”: Modelos empleados por las operadoras (alemana en este caso con la conocida “fritzbox”). modelos que puedes comprar fácilmente en tiendas y de precio accesible.

La idea del estudio siendo evaluar el nivel de seguridad en los hogares de la gente corriente,
Los resultados no son nada sorprendentes y son muy inquietantes.

           "Nadie se salva". Todos los routers tienen "*flows*"  

Algunos fabricantes lo hacen menos mal que otros según el tipo de vulnerabilidad pero el balance general es malo-malo. un suspendido para todos.
Hay que añadir a esto que los investigadores han puesto de pie un protocolo “suave”.
No han buscado vulnerabilidades complejas, son solo cosas básicas, de sentido común.
Hablamos por lo tanto de vulnerabilidades muy fáciles de arreglar si hubiese algo de ética y de profesionalismo en esta industria.

Estos son los cinco ejes del estudio:

  1. Days Since Last Firmware Update Release.Does the vendor maintain all of their prod-ucts regularly? Or in other words, how often do they fix issues?/*]
  2. Operating System.How old are the OS versions powering the devices? How many wellknown critical vulnerabilities do these versions provide?/*]
  3. Exploit Mitigation.Do the vendors activate exploit mitigation techniques?/*]
  4. Private Cryptographic Key Material.Do they publish keys that should stay private forsecurity reasons/*]
  5. Hard-coded Login Credentials.Are there any hard-coded credentials that might allowunintended access to the device?/*]

[h]1- Actualizaciones muy insuficientes[/h]
Sería pesado repetir esta recomendación para recién nacidos: Es primordial tener su Sistema Operativo actualizado para que sea lo más seguro posible.
Te lo dicen cada día por todos lados… ¿Qué tal lo hacen los profesionales?
Sabiendo además que es “todo” linux (más del 90 por ciento de los modelos se basan en linux) debería ser re-chupado: Cada brecha de seguridad se anuncia y se parchea, solo hay que seguir el rumbo.
No es (en absoluto) el caso.
De media la **ultima actualización **del firmware (tomando como referencia el 27 de marso 2020) fue hace 378 días.
Más de un año… Una barbaridad.
El año pasado se hav parcheado 170 vulnerabilidades en el kernel linux (y esto es solo para el kernel, luego habría que mirar las vulnerabilidades en las librerías y otros elementos instalados), el año anterior 177.
Las mates son simples… Con una actualización del firmware y su kernel linux al año se tiene de por media a **170 vulnerabilidades “parcheables” **en los routers domésticos.
Si miramos más en detalles y nos interesamos un poco a la tipología de las brechas, tenemos aproximadamente una mitad que son de tipo DoS (molestas pero no súper chungas) y la otra mitad son brechas severas (ejecución arbitraria de código, escalamiento de privilegios… aquí podemos hablar de brecha de seguridad “critica”)
Fuente: Linux Kernel : Vulnerability Statistics @ CVE details
La conclusión de los investigadores sobre este primer punto:

[h]2 - Base (sistema operativo) Obsoleta con brechas severas conocidas sin arreglar[/h]
Peor aún, el estudio enseña una proporción increíblemente elevada (30%) de routers con kernel 2.6.XX :pam:
Un kernel sin soporte desde… 2011. Un tercio de los routers usan una base desfasada de una década con varias brechas conocidas sin arreglar.
Podemos ver en los diagramas del estudio una proporción significante de routers que se basan en el kernel 3.10 **
Es un kernel LTS, una buena elección, soporte a largo plazo… …Pero está muerto.
Los de linux han publicado una nota oficial en 2017 pidiendo a los fabricantes (y usuarios) aue acuatizen al kernel 4.4 con LTS [quote]Linux kernel maintainer Willy Tarreau announced that the Linux 3.10 kernel series reached end of life and it will no longer receive maintenance updates that patch critical security vulnerabilities.
The end of life was reached this past weekend with the release of Linux kernel 3.10.108, which is the last maintenance update for the Linux 3.10 branch. Therefore, users and OEMs are now urged to upgrade to a more recent, long-term supported Linux kernel, such as the Linux 4.4 LTS series.[/quote]
Linux Kernel 3.10 Reached End of Life, Users Are Urged to Move to Linux 4.4 LTS by softpedia @ linux.com
Se ven también a kerneles en versiones 3.x superiores al 3.10… Peor aún ya que no tienen LTS y llevan aún más tiempo caducados.
En fin, a día de hoy, en el mejor de los casos, con el “mejor de los modelos” y su kernel 4.4.60, tenemos ya a 348 vulnerabilidades conocidas, de las cúales
21 **son brechas de seguridad ** consideradas cómo criticas.
Los inevestigadores calculan que ** de por media un router domesticó tiene 53 brechas de seguridad criticas
conocidas y sin arreglar.

[h]3 - Falta de contra medidas (mitigación de riesgo) [/h]
En este punto los investigadores analizan la calidad del código del firmware,
Para ello han desensamblado el firmware (lo consiguieron en la gran mayoría de los casos) y han analizado el trabajo hecho,
Se trata de ver si los programadores han seguido pautas básicas par implementar contra medidas
Ya que son sistemas basados en linux es muy fácil activar estas medidas de seguridad.
Han mirrado por ejemplo si se han usados “stack canary” para actuar contra los “desbordamiento de pila” (stack overflow).
Puede sonar un poco técnico pero es la base cuando uno programa en C y se dedica a esto.
Sin entrar en los detalles un programa C trabaja con “pilas”, es decir un espacio para almacenar y ordenar los datos que se manejan.
Sí se “desborda” de la pila se escriben datos dónde no se deben, podemos así ejecutar código malicioso.
Con las piñas canary se ponen unos marcadores para delimitar el espacio reservado a unos datos. De este modo dificultamos muchos los intentos de ataques por “desbordamientos de las pilas”.
Y es algo que no cuesta nada, solo se debe habilitar, no hay que escribir código.
Los resultados son muy mediocres: La única medida de mitigación empleada significativamente (en más de 50% de los casos) es la NX que consiste a denegar los permisos de ejecución en ciertos bloques de la memoria.
Las otras contra-medidas (como los canary stack) se implementan poco, hasta casi nunca,

[h]4- LLaves privadas expuestas [/h]
Inútil recordar que cuando usamos cifrado moderno con llaves publicas y privadas es fundamental jamás desvelar la** llave privada**
De lo contrario todo le edificio se viene por abajo.
Así que un firmware no debe contener llaves privadas en texto planos o pasadas por un simple md5
Tras extracción de los firmwares los investigadores han recopilados muchas llaves privadas
De media se publican casi 5 llaves privadas por routers lo que ofrece la posibilidad de hacer unos “man in the middle” para instalar un actualización maliciosa, redirigir a una pagina falsa etc. etc.
Demasiado pocos firmwares están correctamente hechos, es decir sin llave privada accesible tras extraer y analizar el firmware.
El peor router en este aspecto es el Netgear R6800, un modelo ac 1900 que no es especialmente “baratito”, con nada más ni menos que 13 llaves privadas expuestas.

[h]5 - Puertas traseras[/h]
Las famosas y tan temidas* backdoor*. Antes de seguir adelante aclaremos un punto; No estamos hablando de un complot mundial con fabricantes que dejan adrede puertas traseras para controlar remotamente a sus dispositivos. Hablamos de credenciales “olvidados” durante la programación del firmware y que se han quedado activos. Dicho esto la peligrosidad es la misma para el usuario final: Cualquier intruso puede usar estos credenciales para tomar el control del dispositivo atacado.
Los investigadores alemanes han examinado los firmwares y efectuado unos ataques sumarios por diccionario con 10 000 credenciales muy empleados: 10k-most-common.txt
Los resultados tampoco están buenos: 40% de los routers tienen una (o más) puerta trasera
Encontraron por ejemplo 3 puertas traseras en el ** Netgear RAX40**.
Y cómo podéis ver hablamos de credenciales muy fáciles de sacar con un pequeño diccionario:

  1. root:amazon/*]
  2. nobody:password/*]
  3. admin:password/*]

[h]Conclusión[/h]
¿Hasta qué punto podemos apoyarnos en estas cifras?
Ejemplo; las puertas traseras. Algunos firmwares no pudieron extraerse.
Así que en una decena de casos no se ha podido buscar puertas traseras con este método.
Del mismo modo, el diccionario empleado para los brute force es muy básico.
Hay más que las que fueron detectadas.
El estudio solo puede mostrar la punta del iceberg.
Los resultados son de todo modo ya bastante inquietantes.
Muestran un descontrol endémico en este industria.

Así concluyen los autores:

Resumiendo: No hay un solo router sin brecha de seguridad y los fabricantes han de ponerse las pilas muy seriamente.
Y esto no lo harán sin fuertes tirones de orejas…
Además, por mucho que mejoren, quedará el problema del “ciclo de vida”
Es el Oeste Salvaje: Del día a la mñana los fabricantes deciden que no hay más soporte
Si no se oliga los fabricantes a brindar actualizaciones con cierta frecuencia y durante cierto tiempo no se llegará a niguna parte.
O por lo menos que dejen instalar firmwares de codigo libre en lugar de hacerlo impossible.
LLevamos decadas en esta situación: El elemento central de nuestras redes domesticás, el router, es, con differencia, el elemento más inseguro.