OWASP カテゴリ: MASVS-NETWORK: ネットワーク通信
概要
安全でない DNS 構成は、デベロッパーがアプリの DNS 転送動作をカスタマイズしたり、デバイスのデフォルトをバイパスしたりする場合、またはユーザーが Android 9 以降でプライベート DNS サーバーを指定する場合に発生する可能性があります。既知の適切な DNS 構成から逸脱すると、ユーザーが DNS スプーフィングや DNS キャッシュ ポイズニングなどの攻撃を受けやすくなり、攻撃者がユーザー トラフィックを悪意のあるサイトにリダイレクトできるようになります。
影響
悪意のあるネットワーク攻撃者が DNS をスプーフィングできる場合、ユーザーの疑念を抱かせることなく、ユーザーを攻撃者が制御するウェブサイトに密かにリダイレクトできます。たとえば、この悪意のあるウェブサイトは、ユーザーの個人情報をフィッシングしたり、ユーザーのサービス拒否を引き起こしたり、ユーザーに通知せずにウェブサイトにリダイレクトしたりする可能性があります。
リスク: 脆弱な DNS Transport Security
カスタム DNS 構成により、Android 9 以降でアプリが Android の DNS 用の組み込みトランスポート セキュリティをバイパスできる可能性があります。
リスクの軽減
Android OS を使用して DNS トラフィックを処理する
Android OS に 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 デベロッパー ブログの投稿