Google在設計Android系統時基於安全和隱私考慮,已經為啟用VPN加密隧道時添加始終使用加密隧道以及阻止沒有經過加密的連接,該功能原則上可以在用戶重啟系統、切換VPN以及其他情況下,僅在VPN已經成功連接時才發送DNS請求,避免相關請求直接通過非加密隧道發送。
瑞典加密隧道提供商 Mulvad VPN 的用戶反饋稱,Android系統的相關阻止選項不起作用仍然會泄露用戶的 DNS 查詢,Mulvad VPN 經過調查後確認這個問題,並且在 Android 14 上都可以復現該問題。
這意味著 Android 14 及更早版本可能都存在類似的問題,即泄露用戶的 DNS 查詢引起一些隱私問題,這個問題必須由Google發佈更新進行修復。
問題發生在哪裡:
調查發現直接調用 getaddrinfo C 函數的應用程序會碰到這個錯誤,該函數提供從域名到 IP 地址的協議轉換。
當 VPN 處於活動狀態但並未配置 DNS 服務器或者 VPN 應用重新配置加密隧道、崩潰以及被迫終止時,Android系統都沒有按照設計預期阻止 DNS 請求,也就是直接通過非加密隧道發送 DNS 請求。
DNS 請求的泄露可被攻擊者用來收集用戶訪問的網站和平臺並分析用戶的偏好以及進行針對性的釣魚等,這個問題屬於比較嚴重的隱私錯誤。
理論上說所有相關應用程序都受這個問題的影響,同時 Mulvad VPN 並未找到潛在的緩解方案,相反這個漏洞必須由上遊提供商處理。
Google回應稱正在調查:
Mulvad VPN 已經將這個問題通報給Google,Google方面回應稱 Android 系統的安全和隱私是重中之重,Google已經收到相關報告目前正在調查中。
當Google確認問題後Google應該會發佈補丁進行修復,問題在於一些老舊的 Android 版本如何修復是個問題,這些老舊版本可能已經停止支持或者搭載這些版本的手機無法獲得 OEM 提供的更新,這都會導致用戶處於不安全狀態。