Categoría de OWASP: MASVS-NETWORK: Comunicación de red
Descripción general
Las configuraciones de DNS no seguras pueden ocurrir cuando los desarrolladores personalizan el comportamiento del transporte de DNS de una aplicación, omiten los valores predeterminados del dispositivo o cuando un usuario especifica un servidor DNS privado en Android 9 y versiones posteriores. La desviación de las configuraciones de DNS correctas conocidas puede dejar a los usuarios vulnerables a ataques como la falsificación de identidad de DNS o el envenenamiento de caché de DNS, lo que permite a los atacantes redireccionar el tráfico de los usuarios a sitios maliciosos.
Impacto
Si un atacante de red malicioso puede suplantar el DNS, puede redirigir discretamente al usuario a un sitio web que controla, sin despertar la sospecha del usuario. Por ejemplo, este sitio web malicioso podría suplantar la identidad del usuario para obtener información de identificación personal, provocar una denegación de servicio para el usuario o redireccionarlo a sitios web sin notificarlo.
Riesgo: Seguridad de transporte de DNS vulnerable
Las configuraciones de DNS personalizadas pueden permitir que las apps omitan la seguridad de transporte integrada de Android para el DNS en Android 9 y versiones posteriores.
Mitigaciones
Usar el SO Android para controlar el tráfico de DNS
Permite que el SO Android controle el DNS. Desde el nivel de SDK 28, Android agregó seguridad al transporte de DNS a través de DNS sobre TLS y, luego, DNS sobre HTTP/3 en el nivel de SDK 30.
Usa un nivel de SDK >=28
Actualiza el nivel del SDK a 28 como mínimo. Cabe destacar que esta mitigación requiere comunicación con servidores DNS públicos conocidos y seguros, como los que se pueden encontrar aquí.
Recursos
- Cómo resolver consultas de DNS
- Referencia de Java para la clase DnsResolver
- Entrada del blog de seguridad de Android sobre DNS-over-HTTP/3
- Descripción general del transporte seguro para DNS
- Entrada del blog para desarrolladores de Android sobre DNS a través de TLS