Ubuntu Weekly Topics

2009年7月31日号サーバーの電力効率・initramfsの高速化・UWN#152・Firefoxとkernel、bindのアップデート

9.10関連

サーバーの電力効率

近年のデータセンター運用では、⁠サーバーに電力を供給する→その分の電力が熱に変わる→熱を冷却するために空調を稼働させる→電気代がかかる」という悪循環が発生しがちです。このため、サーバーの電力効率をいかに引き上げ、少ない電力でサーバーを稼働させることができるかが重要な要素になっています。こうした取り組みは主にUbuntu Server Teamが行っているのですが、Server Teamのメイン開発者の一人(兼byobuの作者)であるDustin Kirklandさんが、9.04~10.04までのUbuntuにおける、消費電力への取り組みをまとめています。

9.10・10.04はまだリリースされていませんが、9.04でサポートされるアプリケーションの中にCondorとmpich2[1]が含まれていること(これはほぼ確定⁠⁠、10.04でIntel AtomプロセッサやARMプロセッサ採用マシン用のUbuntu Serverのリリースが行われるであろうこと(こちらは「おそらく」というか、Dustinが「こうなるといいな」と思っているレベル)が見て取れます。

AtomやARMへの対応については大規模データセンター(クラウド)環境だけでなく、⁠家庭内サーバ」⁠Home Server)用途へも援用が可能なものとなるはずですが、ゲートウェイやログインノードなどのプロセッサ性能を必要としないマシンへの転用を含め、さまざまな形で利用できることが期待できます。

initramfsの高速化アプローチ

Ubuntu 9.10~10.04の2リリースを費やして、9.04で行われたものよりもさらに高速なブートが実現される予定となっています[2]⁠。

このブート時間の短縮の一環として、initramfsの不要な機能の除去がScott James Remnantさんの手によって開始されています。Ubuntuの方針は、⁠initramfsの役割は、⁠ルートファイルシステム(/)をマウントする」ことだけなので、可能な限りinitramfsからは追い出す』ことです[3]⁠。

このアプローチでinitramfsの削減(不要な機能の追い出し)にチャレンジした結果、ひとまず4秒から2.5秒への短縮に成功したようです[4]⁠。Scottのチャレンジとしては2秒の削減だったようなので、⁠あと0.4秒ほどは処理の並列化で稼げそうなので試してる」そうです。

これにより、少なくとも9.10のブート時間は2秒ほど短縮されることが確定しました。

なお、ルートファイルシステムをカーネル起動時に直接マウントできればinitramfsは不要になり、この4秒を丸ごとなくすことも可能ですが、⁠initramfsはストレージ回りとファイルシステムドライバをカーネルに組み込んでしまえば要らないってことは分かってる。⁠中略)でも、Ubuntuではできるだけ色んなハードウェアでそのまま動かせるようにしないといけないから、initramfsは必要なんだよ("we *do* need the initramfs for the default case because we have to support the widest possible hardware configuration out of the box."⁠⁠」と、Scottがしっかり釘を刺していますので、initramfsを使わないアプローチは取られないはずです。

Ubuntu Weekly Newsletter #152

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

その他のニュース

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

Linuxカーネルならびにpythonのセキュリティアップデートが行われています。ほとんどのユーザーがアップデートするべきですが、特に、RealtekのGigabit Ethernetチップが搭載されたマザーボード・ネットワークカードを利用されている方で、同一ネットワーク内でJumboFrameを利用する可能性のある方にとってはほぼ必須のアップデートとなっています。いずれも再起動が必要になりますので、一度に適用し、あわせて再起動するのが良いでしょう。なお、9.04にはABIの変更もかかっていますので、適用する際は注意が必要です。

同時に、Firefoxのアップデータもリリースされています。こちらも可能な限り早期に適用してください。適用後にFirefoxの再起動が必要です。カーネル等とあわせて適用すると手間が少なく済むでしょう。

また、DNSサーバを運用している場合、bindのアップデートに注意してください。きわめて容易にbindのプロセスを落とすことが可能な脆弱性が存在します。放置していると、気付かない間に攻撃を受け、DNSサーバが機能停止している、といった重大な問題が生じる可能性があります。できるだけ早期にアップデートを行うことを、強く推奨します。

usn-798-1:Firefox・Xulrunnerのセキュリティアップデート
  • https://lists.ubuntu.com/archives/ubuntu-security-announce/2009-July/000937.html
  • Ubuntu 8.04 LTS・8.10・9.04用のアップデータがリリースされています。Firefox 3.0.12に相当するアップデートです。CVE-2009-2462, CVE-2009-2463, CVE-2009-2464, CVE-2009-2465, CVE-2009-2466, CVE-2009-2467, CVE-2009-2469, CVE-2009-2472を修正します。
  • アップデート内容は、mozilla-japan.orgのセキュリティアドバイザリを確認してください。
  • 対処方法:アップデータを適用した上で、Firefox(またはXulrunnerを利用するアプリケーション)を再起動してください。
  • 備考:6.06LTSで利用されているFirefox 1.5にも同質の問題が存在する可能性がありますが、6.06LTSのデスクトップ向けパッケージはすでにEOLしているため、アップデータは提供されません。デスクトップ環境として6.06 LTSを利用している場合、8.04 LTSへのアップグレードまたは9.04の新規インストールを行ってください。
usn-806-1:Pythonのセキュリティアップデート
  • https://lists.ubuntu.com/archives/ubuntu-security-announce/2009-July/000938.html
  • 6.06 LTS・8.04 LTS・8.10用のアップデータがリリースされています。CVE-2008-4864, CVE-2008-5031を修正します。
  • CVE-2008-4864はpythonパッケージに含まれるimageopモジュールの問題で、imageop.cropの引数に不当な値を与えると、整数オーバーフローが発生し、バッファオーバーフローを発生させるものです。これにより、攻撃者による任意のコードの実行、またはDoS(アプリケーションのクラッシュ)を発生させられると考えられます。この問題は8.04 LTSにのみ影響します。
  • CVE-2008-5031はpythonパッケージに含まれるstringobject・unicodeobjectの問題で、expandtabsに不正な値を与えることで整数オーバーフローが発生し、バッファオーバーフローを発生させるものです。これにより、攻撃者による任意のコードの実行、またはDoS(アプリケーションのクラッシュ)を発生させられると考えられます。
  • 対処方法:アップデータを適用した上で、システムを再起動してください。UbuntuではPythonは多くのシステムコンポーネント内で利用されており、厳密な適用のためには再起動が必要となります。
  • 備考1:9.04・9.10開発版はすでにアップデートされたパッケージが導入されています。
  • 備考2:CVE-2008-4864, CVE-2008-5031ともに、詳細情報としてCESA-2008-008を参照してください。
usn-807-1:Linux kernelのセキュリティアップデート
  • https://lists.ubuntu.com/archives/ubuntu-security-announce/2009-July/000939.html
  • 現在サポートされている全てのUbuntu(6.06 LTS・8.04 LTS・8.10・9.04)向けのアップデータがリリースされています。CVE-2009-1389, CVE-2009-1895, CVE-2009-2287, CVE-2009-2406,CVE-2009-2407を修正します。
  • CVE-2009-1895は、setuid/setgidされたバイナリの実行時、権限のマスク指定がREAD_IMPLIES_EXEC|ADDR_NO_RANDOMIZEになってしまっている問題です。このことにより、⁠カーネルのNULLポインタ参照からの保護機構を回避した)NULLポインタ参照を利用したexploitの実行・mmap_min_addrによるmmap可能なアドレス制限の回避(による不正なライブラリのロード+コードの実行)が可能になり、結果としてroot権限で不正なコードを実行される可能性が生じます。6.06 LTSはこの問題の影響を受けません。
  • CVE-2009-2287はKVMの脆弱性で、KVM内のマシンからkvm_arch_vcpu_ioctl_set_sregsを用いてCR3レジスタに不正な値を投入することが可能なため、NULLポインタ参照が発生し、システムがクラッシュする問題です。
  • CVE-2009-2406CVE-2009-2407はいずれもeCryptfsのバッファ長チェックの問題で、悪意ある加工を施したeCryptfsファイルを読み込ませることで、システムのクラッシュ、あるいは権限の昇格を発生させることが可能なものです。6.06 LTSには(eCryptfsが搭載されていないので)影響しません。
  • 対処方法:アップデータを適用の上、システムを再起動してください。
  • 備考:9.048.10については、このセキュリティアップデートの直後により新しいカーネルパッケージのリリースが準備されています。厳密な運用を行っている場合、アップデートされるパッケージに注意してください。
  • 注意:9.04でのアップデートは、ABIの変更を伴います。カーネルモジュール関連のパッケージ(標準ではlinux-restricted-modules, linux-backport-modules, linux-ubuntu-modulesなど)は依存性により自動的にアップデートされるので、通常はそのままアップデートを適用しても問題ありません。もしも自分でコンパイルしたカーネルモジュールを利用している・独自のカーネルモジュールパッケージを利用している場合、それらのモジュールの再コンパイルまたはアップデートが必要です。
  • CVE-2009-1389は、Realtek RTL8169 Gigabit Ethernetチップのドライバの問題により、JumboFrame対応と謳っているにも関わらず、MTUサイズが1500を超えるパケットを受け取るとが発生し、カーネルがクラッシュする問題です。ping -S 1501などでクラッシュするため、セキュリティ上の問題だけでなく、JumboFrameの実利用においても致命的と考えられます。
usn-808-1:bindのセキュリティアップデート
  • https://lists.ubuntu.com/archives/ubuntu-security-announce/2009-July/000940.html
  • 現在サポートされている全てのUbuntu(6.06 LTS・8.04 LTS・8.10・9.04)用のアップデータがリリースされています。CVE-2009-0696を修正します。攻撃コードがすでに存在します。
  • CVE-2009-0696は、不正なdnsupdateパケットを受け取った場合に、bindのプロセスがクラッシュする問題です。これによりDNSサーバの動作を阻害することが可能です。
  • 対処方法:通常の場合、アップデータを適用することで問題を解決できます。適用時にbindが再起動されますので、高い可用性が求められるホストではアップデートタイミングに注意してください。
  • 備考1:この脆弱性は、dnsupdateパケットを受け付けるようにbindが設定されているか否かに関係なく影響します。
  • 備考2:アップデータの適用が困難である場合、Debian bug#538975のコメント#19にあるiptablesないしそれに相当するパケットフィルタを行うことで、問題の一時的な回避が可能です。ただし、dnsupdateパケットを受け付けられなくなりますので、動的な更新が必要なサービスの正常な維持にはアップデートが必須です。

おすすめ記事

記事・ニュース一覧