Ubuntu Weekly Topics

2016年6月3日号DNSレゾルバに関する大きな変更ふたたび・UWN#467

DNSレゾルバに関する大きな変更ふたたび

Linuxの常識が少しだけ書き換わる時間が、またやってきました。

どういった変化が起きるのかを把握するため、まずは5年ほど前に行われた12.04での変更を思い出す必要があります。

12.04以前のUbuntuでは、古典的なLinux環境と同じように、⁠1)DNSサーバーの設定は/etc/resolv.confファイルを編集して行う」⁠2)名前解決の結果はキャッシュされず、毎回問い合わせる必要がある」という2つのルールに縛られていました。

12.04ではNetworkManager経由でdnsmasqを起動し、ローカルレゾルバとして動作させる修正が取り込まれています。この修正で、このうち1)のルールが破棄され、/etc/resolv.confはresolvconfパッケージによって自動的に設定されるものになりました。しかし、dnsmasqによるキャッシュ機能はさまざまな問題を含み、有効にはなっていません。名前解決の結果を単純にキャッシュさせると、複数ユーザーが利用している環境では悪意あるユーザーによって、他のユーザーの名前解決の結果が簡単に汚染されてしまいます。名前解決の結果を汚染できるということは、偽のサイトへ簡単に誘導できてしまうことを意味します[1]⁠。

また、DNSキャッシュを複数のユーザーで共有するという実装には、⁠あるFQDNがキャッシュされているかどうか」が他のユーザーから観測できることを意味します。特定のドメイン名を解決した際の速度から、他のユーザーがどのようなWebサイトを見ているかを推定することが可能になるおそれがあります[2]⁠。

こうした問題を回避するためにはUIDごとにキャッシュを分離するような実装が必要ですが、12.04時代から継続して問題が残っており、いまだに有効になっていません。

少なくとも12.04当時には十分な妥当性があったこの実装ですが、上述のような問題が残っている上、⁠DesktopやTouchとServerでは設定や挙動が異なる」という、ユーザー体験を大きく阻害する別の問題を発生させていました。また、Serverにローカルレゾルバが動作していないことで、⁠そのIPアドレスの逆引きを試みるとDNSサーバがタイムアウトするような回線」注3からSSH接続すると、接続のたびに毎回長時間待たされるという、不具合にも似た不可避の挙動をもたらしていました。

これらの問題を現状よりは良い形に解決することを目的として、yakkety(16.10)では、もう少しマトモなローカルDNSレゾルバとして機能する実装を導入することが計画されていましたfoundations-y-local-resolver⁠。

計画時点では「dnsmasqかresolvedのどちらか」という判断が下されていましたが、5月末にresolvedの投入が行われることが宣言されています。

この変更によって、⁠1)/etc/resolv.confは手で編集してよいファイルに戻り⁠⁠、⁠2)DNS応答は基本的にキャッシュされる」という挙動が実現されます。また、変更はDesktop・Touch・Serverのいずれにも適用され、環境による差が無くなります。現時点ではまだ荒削りで検討や議論が尽くされているとは言えず、今後キャッシュ機能の削除といった方向に話が進む可能性もありますが、12.04で行われたのと同じように、今後はふたたび名前解決に関する常識が変化していくことになりそうです。

UWN#467

Ubuntu Weekly Newsletter #467がリリースされています。

その他のニュース

  • 各種クラウド上で利用できる「Certified」イメージの解説ドキュメントが準備されています。
  • Meizu Pro 5のUbuntuバージョンの開封の様子

今週のセキュリティアップデート

usn-2984-1:PHPのセキュリティアップデート
usn-2950-5:Sambaの再アップデート
  • https://lists.ubuntu.com/archives/ubuntu-security-announce/2016-May/003440.html
  • Ubuntu 16.04 LTS・15.10・14.04 LTS用のアップデータがリリースされています。
  • usn-2950-1の修正で発生していたntlm_authツールの非互換性を改善します。
  • 対処方法:通常の場合、アップデータを適用することで問題を解決できます。
usn-2985-1 / usn-2985-2:GNU C Libraryのセキュリティアップデート
  • https://lists.ubuntu.com/archives/ubuntu-security-announce/2016-May/003441.html
  • https://lists.ubuntu.com/archives/ubuntu-security-announce/2016-May/003442.html
  • Ubuntu 15.10・14.04 LTS・12.04 LTS用のアップデータがリリースされています。CVE-2013-2207, CVE-2014-8121, CVE-2014-9761, CVE-2015-1781, CVE-2015-5277, CVE-2015-8776, CVE-2015-8777, CVE-2015-8778, CVE-2015-8779, CVE-2016-2856, CVE-2016-3075を修正します。
  • ttyファイルにpt_chownsした際に適切に権限が確認されず、root権限の奪取が可能な問題・NSSの処理において無限ループを誘発させることが可能な問題等を修正します。
  • 対処方法:usn-2985-2へ更新の上、システムを再起動してください。
  • 備考:libmを利用しているアプリケーションを利用できなくなる問題があったため、CVE-2014-9761への修正は差し戻されています。
usn-2987-1:GD libraryのセキュリティアップデート
  • https://lists.ubuntu.com/archives/ubuntu-security-announce/2016-May/003443.html
  • Ubuntu 16.04 LTS・15.10・14.04 LTS・12.04 LTS用のアップデータがリリースされています。CVE-2014-2497, CVE-2014-9709, CVE-2015-8874, CVE-2015-8877, CVE-2016-3074を修正します。
  • XPM, GIF, GD形式の画像を読み込んだ際、メモリ破壊を伴うクラッシュが生じる問題がありました。
  • 対処方法:通常の場合、アップデータを適用することで問題を解決できます。
usn-2986-1:dosfstoolsのセキュリティアップデート
  • https://lists.ubuntu.com/archives/ubuntu-security-announce/2016-May/003444.html
  • Ubuntu 16.04 LTS・15.10・14.04 LTS・12.04 LTS用のアップデータがリリースされています。CVE-2015-8872, CVE-2016-4804を修正します。
  • 悪意ある加工の施されたファイルシステムを処理した場合、メモリ破壊を伴うクラッシュが生じる問題がありました。
  • 対処方法:通常の場合、アップデータを適用することで問題を解決できます。
usn-2988-1:LXDのセキュリティアップデート
  • https://lists.ubuntu.com/archives/ubuntu-security-announce/2016-May/003445.html
  • Ubuntu 16.04 LTS・15.10用のアップデータがリリースされています。CVE-2016-1581, CVE-2016-1582を修正します。
  • loopマウントしたZFSバックエンド環境の場合、本来制限されるべき読み込み処理が可能でした。また、非特権コンテナを特権コンテナに切り替える際、親マシンの全ファイルが読み取れる状態になっていました。
  • 対処方法:通常の場合、アップデータを適用することで問題を解決できます。

おすすめ記事

記事・ニュース一覧