Catégorie OWASP : MASVS-NETWORK : communication réseau
Présentation
Des configurations DNS non sécurisées peuvent se produire lorsque les développeurs personnalisent le comportement de transport DNS d'une application, contournent les paramètres par défaut de l'appareil ou lorsqu'un utilisateur spécifie un serveur DNS privé dans Android 9 et versions ultérieures. Toute déviation par rapport aux configurations DNS connues et fiables peut rendre les utilisateurs vulnérables aux attaques telles que le spoofing DNS ou l'empoisonnement du cache DNS, permettant aux pirates informatiques de rediriger le trafic des utilisateurs vers des sites malveillants.
Impact
Si un pirate réseau malveillant parvient à usurper le DNS, il peut rediriger discrètement l'utilisateur vers un site Web qu'il contrôle, sans éveiller ses soupçons. Ce site Web malveillant peut, par exemple, hameçonner l'utilisateur pour obtenir des informations permettant de l'identifier personnellement, provoquer un déni de service pour l'utilisateur ou le rediriger vers des sites Web sans notification.
Risque : Sécurité du transport DNS vulnérable
Les configurations DNS personnalisées peuvent permettre aux applications de contourner la sécurité de transport intégrée d'Android pour le DNS dans Android 9 et versions ultérieures.
Stratégies d'atténuation
Utiliser l'OS Android pour gérer le trafic DNS
Autorisez l'OS Android à gérer le DNS. Depuis le niveau de SDK 28, Android a renforcé la sécurité du transport DNS grâce à DNS sur TLS, puis à DNS sur HTTP/3 au niveau de SDK 30.
Utiliser le niveau de SDK >=28
Mettez à jour le niveau du SDK vers au moins 28. Notez que cette atténuation nécessite une communication avec des serveurs DNS publics sécurisés et bien connus, comme ceux que vous trouverez ici.
Ressources
- Résoudre les requêtes DNS
- Référence Java pour la classe DnsResolver
- Article de blog sur la sécurité Android concernant DNS-over-HTTP/3
- Présentation du transport sécurisé pour DNS
- Article de blog sur le DNS sur TLS (DoT)