« 2009年11月 | トップページ

freebsd-update を使ってみる

 去る 2009-11/26 に、FreeBSD 8.0-RELEASE が、めでたくリリースされましたが(^^;、今日はその話ではなく、「セキュリティ勧告SA-09:16 の対策をしよう、という、ちよっと深刻なお話です(-_-;


■ FreeBSD のセキュリティ情報のありか

 FreeBSD では、絶えず新しいバージョンの開発が続いていますが、最新以外のバージョンに対しても(新しい機能が追加されることはありませんが)セキュリティ メンテナンスは、随時、行われています。

 そして、それらの情報は、SA =「セキュリティ勧告」という形で、公開されています。

 ◆ FreeBSD セキュリティ勧告:
  http://www.jp.freebsd.org/www.FreeBSD.org/ja/security/

 ◆ FreeBSD Security Advisories:
  http://security.freebsd.org/advisories.html

 (どちらも、リストアップされている SA 自体は同じもので、英語で書かれた原文(^^;が公開されています。)


■ 「セキュリティ勧告 SA-09:16」って、何?

 命名規則の解説を見た覚えがない(^^;のですが、SA-09:16 とは、「2009年に公表された、16件目の SA(セキュリティ勧告)」という意味で、まず間違いないと思います。

 先ほど紹介したページでは、「FreeBSD-SA-09:16.rtld」という番号(名前?)が振られ、内容の概略は、『実行時リンクエディタ (rtld) と FreeBSD 本体の連携にマズイところがあって、ローカルユーザが root 権限を盗ることが可能になっている』、ということです。


 ここで、「セキュリティホールの技術的な詳細について、多くを語らないのが紳士・淑女のたしなみ」(ついでに、「技術を語らずに、正しく危険度を伝えるのがエンジニアの使命」)ということなので(^^;;;、私の力の及ぶ範囲で SA-09:16 の危険度を説明すると、

・FreeBSD のベースシステムにセキュリティホールがある
・有効な対処療法あるいは影響緩和策がない
・セキュリティホール発動の前提条件が緩い(ゆるい)
・セキュリティホールを突かれた場合の影響が大きい

 …つまり、自分以外の人のログインを許している、あるいはネットワーク越しにアクセス可能な FreeBSD では、すぐに根本的な対策をしないと、とっても危険なセキュリティホールに思えます。


■ freebsd-update を使って対策する

 freebsd-update は、FreeBSD のシステムを最新のものに更新してくれるプログラムです。

 freebsd-update を使うには、多少の条件があったり(バイナリアップデート方式を採用しているので、自分でカスタマイズしたシステムには使えない)、すべての SA に有効なわけでもありませんが(ほぼ、FreeBSD のベースシステム関連の修正に限る)、今回の SA-09:16 には当然、有効ですし、何よりお手軽(^^;なので、これを使って対策してみます。


 ここで、一応、FreeBSD のバージョンの表し方ですが、7.2-RELEASE を例にとると、7.2 がバージョンを表し、それぞれ、

7 … メジャー バージョン
2 … マイナー バージョン

 と呼ばれます。

 さらに、freebsd-update などを使ってセキュリティ対策を行うと、7.2-RELEASE-p1 のように、バージョンの後ろにパッチレベルという番号が付きます。

 freebsd-update は、通常、同じバージョン内での小さな変更(パッチレベル)の更新に使いますが、FreeBSD のバージョンアップに使うこともできます。

 ただし、パッチレベルの更新ならともかく、バージョンアップ(特にメジャーバージョンアップ)に使うには、それなりのリスクが伴いますので、よく考えてから実行しましょう(^^;;


 …前置きが長くなりましたが、では、freebsd-update を使って、FreeBSD 7.2-RELEASE を最新版にしてみましょう。

 なお、「The following files will be updated …」が表示された後は、新しく置き換えられるファイルが1画面分ずつ表示されるので、[SPC] を押して、画面をめくっていきましょう。
 《 FreeBSD のバージョンを確認 》
# uname -r[Enter]
7.2-RELEASE
 《 更新用のデータを取得 》
# freebsd-update fetch[Enter]
Looking up update.FreeBSD.org mirrors... 3 mirrors found.
Fetching public key from update5.FreeBSD.org... done.
Fetching metadata signature for 7.2-RELEASE from update5.FreeBSD.org... done.
Fetching metadata index... done.
Fetching 2 metadata files... done.
Inspecting system... done.
Preparing to download files... done.
Fetching 40 patches.....10....20....30....40 done.
Applying patches... done.

The following files will be updated as part of updating to 7.2-RELEASE-p5:
/boot/kernel/if_bce.ko
/boot/kernel/if_bce.ko.symbols
 
/lib/libthr.so.3
/libexec/ld-elf.so.1 ← SA-09:16 対策で更新されるファイル
/rescue/[
 
/usr/src/sys/netinet6/in6.c
/var/db/freebsd-update
 《 更新用のデータをインストール 》
# freebsd-update install[Enter]
Installing updates... done.
 《 コマンド検索テーブルを更新 》
# rehash[Enter]
 《 一度、再起動する 》
# reboot[Enter]

 《 再び、FreeBSD のバージョンを確認 》
# uname -r[Enter]
7.2-RELEASE-p4
#  

 う~ん、7.2-RELEASE-p5 に更新されると期待していたのですが、なぜか -p4 どまりですね…

 でも、この状態で、SA-09:16 の対策が済んでいるようなので、これで良しとしましょう(^-^;;

| | コメント (130) | トラックバック (0)

« 2009年11月 | トップページ