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 开发者博文