Ubuntu Weekly Topics

2011年6月3日号 OneiricのAlpha1・Wubiのマイグレーション機能・セキュリティアップデートによるcronの停止・bindの脆弱性

この記事を読むのに必要な時間:およそ 3.5 分

OneiricのAlpha1

Oneiricの開発が始まって約一ヶ月が経ち,最初のマイルストーンであるAlpha 1リリースのためのフリーズが行われ,Alpha 1の提供が行われる予定です。UbuntuのリリースにおいてAlphaバージョンは開発者向けリリースであり,一般的な用途には利用するべきではありません(また,Alpha1はたいてい「ひとつ前のリリース」から大きな変化はなく,一般的な用途でアップグレードする意義はほとんどありません)。

Ubuntu 11.10 “Oneiric Ocelotは,これから合計3回のアルファリリースと2回のベータを経て,2011年10月13日にリリースされる予定です。

UDS-O (4)

Ubuntu Developer Summit Oneiricで話し合われた,Ubuntu 11.10(Oneiric)の新機能(予定)を今回も見ていきましょう。

Wubi Migration

Ubuntuには,「Windowsアプリケーションのひとつとして」Ubuntuをインストールすることができる注1),「Wubi」と呼ばれる機能があります。Wubiを利用することで,NTFS内にディスクイメージファイルを準備し,「NTFS内のディスクイメージを用いて」Ubuntuを起動するもので,既存のWindows環境をそのままにした状態で,テスト的にUbuntuを利用できます。

しかしながら,現状のWubiには,「Ubuntuが気に入ったので,Wubiではなく素のUbuntuを利用したい」という要望に答える機能がありませんでした。WubiはNTFS内領域内にディスクイメージを配置する関係上,直にHDDを扱うのに比べてディスク性能が低く,継続的に利用し続けるには向きません注2)。これは,「せっかくUbuntuを本格的に使ってくれそうな人を,そのまま逃がしてしまう」ということを意味します。

これは良くないことなので,以前から「Wubi上のイメージファイルを,そのままHDD上にマイグレーションする機能が計画されていました。この機能が2年越しで実現されそうです。Ubuntu Forumに投稿されたプロトタイプをもとに,Oneiricの新機能としてブラッシュアップが行われ,新機能としてお目見えする見込みとなっています。

注1
あくまで「アプリケーションの追加と削除」インターフェースに掲載されるだけで,Ubuntuの起動はブート時にデュアルブート的に選択する必要があります。
注2
LinuxのNTFS実装はあまり完全ではなく,継続的なRead/Writeを繰り返しているとそのうち壊れる,という潜在的な問題もあります。

Upstart jobの自動起動指定

Ubuntuでは今のところ,次世代initデーモンとしてUpstartが採用されており注3),システム内のかなりの部分のdaemonが,かつてのSysV initスクリプトから,「Upstart方式の起動指定ファイル」に置き換えられています。この起動指定ファイルによって制御されるサービスは,Native jobと呼ばれます注4)。

Native jobは非常に便利なものの,若干の弱点があります。それは,「起動する・しない」を制御するラッパースクリプトが存在しないことです。古典的なSysV initによる起動の場合は/etc/rcN.d/以下にinitスクリプトへのシンボリックリンクを配置することでランレベルを定義していますが,直接シンボリックリンクの配置を調整するのではなく,sysv-rc-confやchkconfigといったラッパーコマンドを用いるのが通常です。……ですが,そうしたものは現時点ではNative jobには存在しませんので,起動の有無を設定する場合は,直接ジョブ定義ファイルを修正する,というモデルになっています。

このままでは設定作業がしにくいため,設定UIやコマンドを準備することで,手軽にサービスの「起動する・しない」を設定できるようにし,同時にサービスの依存関係を整理する,というタスクが設定されています。

注3
今後の状況次第では,systemdへの移行が行われるかもしれませんし,Upstartのまま洗練を続けるかもしれません。
注4
Native jobになることで,各種サービスの依存関係の指定(例:DNSサービスはネットワークサービスに依存する)・依存関係の自動処理(例:ネットワークが再起動されたら,自動的にDNSサービスも再起動される)・各種サービスの並行起動(例:ネットワークさえ起動していればHTTPDとDNSとNTPdは同時に起動しても特に問題はないので,並列で起動処理をかける),といった処理を効率よく行うことができます。また,SysV initスクリプトで行われていたような,pidファイルによる多重起動の防止やプロセスの特定といった処理を,設定ファイル上でキーワード(スタンザと呼ばれます)指定するだけで実現できます。

GPUバグの自動収集

現在のLinux上のX環境では多くの場合,GPUはカーネルモードドライバ(DRMドライバ)を経由して制御されています。これそのものはそれほど致命的ではないのですが注5),なんらかのソフトウェアバグによるクラッシュ時に,カーネルを巻き込んで止まる(完全にシステムが停止してしまう)ことが起きてしまいます。運良くOSは生き延びていても,クラッシュに至った原因がわからない,ということもしばしばです。また,GPU由来のクラッシュは意味不明な症状を呈することも多く,致命的な割にデバッグ手段に乏しい,というのがこれまでの状況でした。さらに言えば,これらの情報を「ふつう」のユーザーが自力で集めることはほとんど不可能です。

これらの問題に対処するため,Ubuntuではこの数リリースにおいて,「Xまわりのバグ情報の自動収集」というテーマでさまざまなフックの追加・クラッシュダンプの自動取得システムを追加しています。GPU由来のクラッシュが発生した場合,apportやubuntu-bugコマンドでのバグレポート時にダンプの送信を許可すると,自動取得されたダンプ情報が登録されるようになっています。Oneiricにおいてもこうしたフックの追加・ダンプ取得機能の追加や,GPU由来のバグへの対処手段・X周りの設定追加のためのコマンド類が多数追加される予定です。

注5
Linuxのカーネルモードドライバは,インターフェース(kABI)が変化するたびにコンパイルしなおす必要があります。この制限から,「ドライバをオープンソースで公開することで,kABIが変更されるたびにユーザーや開発者がドライバをコンパイルできる環境を整えておく」(=GPUの内部構造を類推する材料を公開する)か,「バイナリで提供する」(=GPUの内部構造は知られにくいが,Kernel側のkABIの変更ごとにGPUベンダ側でドライバをリリースしなおす必要がある)か,どちらかをGPUベンダが選択せざるを得ない,というジレンマがあります。オープンソース的な発想であればソースコードを公開すれば良い,ということになりますが,GPUベンダのビジネスとうまく噛み合わず,バイナリのみでの提供となることもしばしばです。……そして,ベンダ側の体制上の問題や,Linuxドライバ提供にかけられる工数によってはバイナリドライバの公開が遅れてしまい,「最新カーネルでは○○のGPUは動作しない」といった問題が発生することになります。

その他のニュース

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

PAMのセキュリティアップデートusn-1140-1に含まれたバグにより,システムの自動アップデート機能が停止している可能性があります。自動的にソフトウェアアップデートを適用する設定を行っていた場合,現在も自動アップデートが機能しているか確認してください。

また,bindの運用上致命的な脆弱性が報告されています。再帰検索を有効にしたDNSサーバーを運用している場合,速やかにアップデートを検討してください。検索が可能なクライアントを制限している環境においても,クライアント側からのクエリ内容を完全に制御できない場合は脆弱性の影響を受ける可能性があります(例:クライアントがSSHやHTTP等でサービスを行っていて,アクセス元の逆引きを行うような場合は,クライアントから「致命的」なオーソリティへの問い合わせをトリガするクエリが投げられるため,この脆弱性の影響を受けるおそれがあります)。

usn-1137-1:Eucalyptusのセキュリティアップデート
  • https://lists.ubuntu.com/archives/ubuntu-security-announce/2011-May/001335.html
  • Ubuntu 11.04・10.10・10.04 LTS用のアップデータがリリースされています。CVE-2011-0730を修正します。
  • CVE-2011-0730は,Eucalyptus環境において,特定のSOAPリクエストの検証が行われておらず,SOAP経由で実行可能なコマンドの実行を許す問題です。
  • 対処方法:通常の場合,アップデータを適用することで問題を解決できます。
usn-1138-1usn-1138-2:DBus-GLib・NetworkManagerのセキュリティアップデート
  • https://lists.ubuntu.com/archives/ubuntu-security-announce/2011-May/001337.html
  • https://lists.ubuntu.com/archives/ubuntu-security-announce/2011-May/001338.html
  • Ubuntu 10.04 LTS・8.04 LTS用のアップデータがリリースされています。CVE-2010-1172を修正します。
  • CVE-2010-1172は,DBus環境において,本来読み取り専用であるべきプロパティが外部から変更可能な問題です。
  • 対処方法:通常の場合,アップデータを適用することで問題を解決できます。
  • 備考:DBus-GLibの更新に伴い,NetworkManagerの更新が必要になります。同時にアップデータを適用してください。
usn-1140-1usn-1140-2:PAMのセキュリティアップデート&再アップデート
  • https://lists.ubuntu.com/archives/ubuntu-security-announce/2011-May/001339.html
  • https://lists.ubuntu.com/archives/ubuntu-security-announce/2011-May/001341.html
  • Ubuntu 11.04・10.10・10.04 LTS・8.04 LTS用のアップデータと,アップデータに含まれたバグを修正した再アップデートがリリースされています。CVE-2009-0887, CVE-2010-3316, CVE-2010-3430, CVE-2010-3431, CVE-2010-3435, CVE-2010-3853, CVE-2010-4706, CVE-2010-4707 を修正します。
  • pamに含まれる複数の脆弱性を修正します。
  • 対処方法:通常の場合,アップデータを適用することで問題を解決できます。
  • 備考:自動アップデートを適用しているシステムにおいては,影響を受けているか確認するため,「egrep 'CRON.*Module is unknown' /var/log/syslog」を実行してください。CRON.*Module is unknownのような行が出力された場合,usn-1140-1に含まれたバグの問題でcronが正常に機能しなくなっている可能性があります。「sudo service cron restart」を実行してcronを再起動することでこの問題を解決できます。
usn-1139-1:Bindのセキュリティアップデート
  • https://lists.ubuntu.com/archives/ubuntu-security-announce/2011-May/001340.html
  • Ubuntu 11.04・10.10・10.04 LTS・8.04 LTS用のアップデータがリリースされています。CVE-2010-3762, CVE-2011-1910を修正します。
  • CVE-2010-3762は,ひとつのゾーンに複数のトラストアンカーが定義されている場合に,不正な署名が行われた状態で応答を受け取った場合,正しく検証できずにプロセスがクラッシュする問題です。
  • CVE-2011-1910は,ネガティブ応答に極端に長いRRSIGが含まれていた場合に,bindプロセスがDoS状態に陥る問題です。
  • 対処方法:通常の場合,アップデータを適用することで問題を解決できます。
usn-1141-1:Linux kernelのセキュリティアップデート

著者プロフィール

吉田史(よしだふみひと)

Ubuntu Japanese Team Member株式会社創夢所属。システム管理を中心にWindows/PC Unixを併用している。Ubuntu Japanese Teamではパッケージサーバの管理や翻訳などの作業を担当。

コメント

コメントの記入