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 已透過「透過 TLS 執行 DNS」為 DNS 傳輸新增安全性,接著在 SDK 級別 30 中新增「透過 HTTP/3 執行 DNS」。
使用 SDK 等級 >=28
將 SDK 級別更新為至少 28。請注意,這項緩解措施需要與知名且安全的公用 DNS 伺服器通訊,例如這裡列出的伺服器。
資源
- 解析 DNS 查詢
- DnsResolver 類別的 Java 參考資料
- Android 安全性網誌文章:DNS-over-HTTP/3
- DNS 安全傳輸總覽
- Android 開發人員網誌文章:透過 TLS 進行 DNS 查詢