OWASP 类别: MASVS-NETWORK:网络通信
概述
当开发人员自定义应用程序的 DNS 传输行为、绕过设备默认设置或用户在 Android 9 及更高版本中指定私有 DNS 服务器时,可能会出现不安全的 DNS 配置。偏离已知的良好 DNS 配置可能会使用户容易受到 DNS 欺骗或 DNS 缓存中毒等攻击,从而允许攻击者将用户流量重定向到恶意网站。
影响
如果恶意网络攻击者能够欺骗 DNS,他们可以秘密地将用户重定向到他们控制的网站,而不会引起用户的怀疑。例如,此恶意网站可能会诱骗用户提供个人身份信息、导致用户拒绝服务或在未经通知的情况下将用户重定向到网站。
风险:易受攻击的 DNS 传输安全性
自定义 DNS 配置可能允许应用绕过 Android 在 Android 9 及更高版本中针对 DNS 的内置传输安全性。
缓解措施
使用 Android 操作系统处理 DNS 流量
允许 Android 操作系统处理 DNS。从 SDK 级别 28 开始,Android 通过 DNS over TLS 添加了 DNS 传输安全性,然后在 SDK 级别 30 中添加了 DNS over HTTP/3。
使用 SDK 级别 >=28
将 SDK 级别更新到至少 28。需要注意的是,此缓解措施需要与众所周知且安全的公共 DNS 服务器通信,例如可以在 此处找到的服务器。
资源
- 解析 DNS 查询
- DnsResolver 类的 Java 参考
- 关于 DNS-over-HTTP/3 的 Android 安全博客文章
- DNS 安全传输概述
- 关于 DNS over TLS 的 Android 开发者博客文章