OWASP 类别:MASVS-NETWORK:网络通信
概览
当开发者自定义应用的 DNS 传输行为、绕过设备默认设置,或者当用户在 Android 9 及更高版本中指定专用 DNS 服务器时,可能会出现不安全的 DNS 配置。偏离已知的良好 DNS 配置可能会导致用户容易受到 DNS 欺骗或 DNS 缓存中毒等攻击,从而使攻击者能够将用户流量重定向到恶意网站。
影响
如果恶意网络攻击者能够欺骗 DNS,他们就可以在不引起用户怀疑的情况下,悄悄将用户重定向到他们控制的网站。例如,此恶意网站可能会通过网络钓鱼窃取用户的个人身份信息、导致用户遭受拒绝服务攻击,或者在不通知用户的情况下将用户重定向到其他网站。
风险:DNS 传输安全性存在漏洞
自定义 DNS 配置可能会允许应用绕过 Android 9 及更高版本中针对 DNS 的内置传输安全性。
缓解措施
使用 Android OS 处理 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 开发者博文