FreeBSD セキュリティ勧告 日本語版 ============================================================================= FreeBSD-SA-02:07 (2002-01-18) * Kerberos 5 su command uses getlogin for authorization ============================================================================= このメールは, announce-jp に流れた Subject: ANNOUNCE: FreeBSD Security Advisory FreeBSD-SA-02:07.k5su From: FreeBSD Security Advisories Date: Fri, 18 Jan 2002 05:56:43 -0800 (PST) Message-Id: <200201181356.g0IDuh995329@freefall.freebsd.org> X-Sequence: announce-jp 908 を日本語訳したものです. 原文は PGP 署名されていますが, この日本語訳は PGP 署名されていません. 修正パッチ等の内容が改ざんされていないことを確認するために PGP 署名の チェックを行なうには, 原文を参照してください. 日本語訳および, ミラーサイト利用の詳細については, 文末の「A. FreeBSD セキュリティ勧告 日本語版について」をご覧ください. [翻訳者: 佐藤 広生 ] --(ここから) ============================================================================= FreeBSD-SA-02:07 Security Advisory FreeBSD, Inc. トピック: Kerberos 5 su コマンドが認証に getlogin を使用している問題 (Kerberos 5 su command uses getlogin for authorization) 分類: krb5, ports モジュール: crypto/heimdal/appl/su, heimdal 告知日: 2002-01-18 クレジット: Aaron 影響範囲: FreeBSD 4.4-RELEASE 修正日以前の FreeBSD 4.4-STABLE 修正日以前の Ports Collection 修正日: 2002-01-15 21:52:48 UTC (RELENG_4) 2002-01-17 15:45:05 UTC (RELENG_4_4) 2001-10-31 19:58:05 UTC (heimdal port) FreeBSD に固有か: NO +-------------------------------------------------------------------+ |[訳注] 原文は heimdal port の修正日が 2002-10-31 となっていますが, | | 正しくは 2001-10-31 です. 日本語版では修正してあります. | +-------------------------------------------------------------------+ I. 背景 - Background getlogin および setlogin は, ログインセションに使われる ユーザ名を管理するために使われるシステムコールです. k5su は Kerberos 5 に対応した su プログラムです. これは su と 同じように, それを許されたユーザが高い権限を得るために ユーザの切り替え (switch user) を実現します. II. 問題の詳細 - Problem Description setlogin システムコールはスーパユーザのみが利用できるもので, ログインセションにユーザ名を割り当てるために使われます. また getlogin システムコールは, その割り当てられたユーザ名を得るために 使います. setlogin システムコールは通常, login や sshd のような アプリケーションプログラムから使用されます. 4.5-RELEASE より前の FreeBSD に含まれる k5su コマンドおよび, heimdal-0.4e_2 より前の heimdal の port に含まれる su コマンドには, 現在ログインしているユーザが root かどうか調べるために getlogin システム コールを使います. しかしある条件下では, プロセスが高い権限を持たない にもかかわらず, getlogin から返されるユーザ名が root になる可能性があります. k5su コマンドは Kerberos 5 を指定した時に FreeBSD の一部として インストールすることができます. また, FreeBSD Ports Collection (ports/security/heimdal) からインストールすることも可能です. その場合, コマンド名は su になります. Heimdal の port はデフォルトでインストールされるものではなく, 「FreeBSD システムの一部」を構成するものでもありません. それらは 6000 を越えるサードパーティ製アプリケーションがすぐに インストールできる形で収められている FreeBSD Ports Collection の一部です. この問題は FreeBSD 4.4 のリリース後に発見・修正されたため, FreeBSD 4.4 にはこの問題によるセキュリティ上の弱点が含まれています. FreeBSD では, このようなサードパーティ製アプリケーションのセキュリティ 問題に対して, 特に何かを主張することはありません (訳注: Ports Collection に 入っているからといって, FreeBSD の開発者たちがそのアプリケーションが 安全であると評価したわけではありません). ただし, セキュリティ問題に対して 大きな影響を持つような ports に対するセキュリティ監査を提供すべく, 現在努力中です. III. 影響範囲 - Impact ある条件下では, root によって実行され, その後にスーパユーザ権限を 放棄したプロセスから k5su を呼び出すことで, そのプロセスが 再びスーパユーザ権限を得ることができる可能性があります. IV. 回避方法 - Workaround 以下, `#' という文字で始まっている行は root 権限で 実行しなければならないコマンドです. [ベースシステムに Kerberos 5 が含まれている場合] root 権限で次のコマンドを実行し, k5su 実行ファイルの set-user-ID ビットを削除します. # chmod u-s /usr/bin/k5su [Heimdal port] root 権限で次のコマンドを実行し, su 実行ファイルの set-user-ID ビットを削除します. # chmod u-s /usr/local/bin/su V. 解決策 - Solution [ベースシステムに Kerberos 5 が含まれている場合] 注意: /usr/bin/k5su というファイルがシステムに含まれていなければ, Kerberos 5 はインストールされていませんので, 対策の必要はありません. 次のいずれかに従ってください. 1) 弱点を持った FreeBSD システムを, それぞれ修正日以降の 4.4-STABLE, RELENG_4_4 セキュリティブランチにアップグレードする. 2) 現在のシステムに修正パッチを適用する. 次の修正パッチは, FreeBSD 4.4-RELEASE, 修正日以前の 4-STABLE に 対して適用可能なことが確認されているものです. それよりも古いリリースや サポートされていない FreeBSD リリースに対しては, これらの修正パッチが 正しく適用できない可能性があります. 修正パッチと PGP 署名を次の場所からダウンロードして, PGP ユーティリティを使って PGP 署名を確認します. # fetch ftp://ftp.freebsd.org/pub/FreeBSD/CERT/patches/SA-02:07/k5su.patch # fetch ftp://ftp.freebsd.org/pub/FreeBSD/CERT/patches/SA-02:07/k5su.patch.asc そして root 権限で以下のコマンドを実行します. # cd /usr/src # patch < /path/to/k5su.patch # cd /usr/src/kerberos5/lib # env MAKE_KERBEROS5=yes make depend # env MAKE_KERBEROS5=yes make all install # cd /usr/src/kerberos5/usr.bin/k5su # env MAKE_KERBEROS5=yes make depend # env MAKE_KERBEROS5=yes make all install [Heimdal port] 次のいずれかに従ってください. 1) Ports Collection 全体をアップグレードし heimdal の port を再構築する. 2) 古い (訳注: heimdal の) package をシステムから削除し, 修正日以降に作成された新しい package を以下の場所から 取得してインストールする. [i386] ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/i386/packages-4-stable/security/heimdal-0.4e_2.tgz ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/i386/packages-5-current/security/heimdal-0.4e_2.tgz [alpha] 現時点では alpha アーキテクチャ用の package は自動生成されていません. これは, 構築のためのマシンリソースが不足しているためです. 3) heimdal の新しい port スケルトンを以下の場所から ダウンロードし, それを使って port を再構築する. http://www.freebsd.org/ports/ 4) 上記 (3) の操作を自動的に行なう portcheckout ユーティリティを使う. portcheckout の port は /usr/ports/devel/portcheckout にあります. また, portcheckout の package が以下の場所から入手可能です. ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/i386/packages-4-stable/devel/portcheckout-2.0.tgz ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/i386/packages-5-current/devel/portcheckout-2.0.tgz VI. 修正の詳細 - Correction details 次の表は FreeBSD Ports Collection に含まれている, 今回修正されたソースファイルの $FreeBSD$ リビジョン番号です. [ベースシステムに含まれている Kerberos 5] パス名 リビジョン番号 ブランチ - ------------------------------------------------------------------------- src/crypto/heimdal/appl/su/su.c HEAD 1.1.1.4 RELENG_4 1.1.1.1.2.2 RELENG_4_4 1.1.1.1.2.1.4.1 RELENG_4_3 1.1.1.1.2.1.2.1 - ------------------------------------------------------------------------- [Heimdal port] パス名 リビジョン番号 - ------------------------------------------------------------------------- ports/security/heimdal/Makefile 1.46 ports/security/heimdal/patch-appl::su::su.c 1.1 - ------------------------------------------------------------------------- A. FreeBSD セキュリティ勧告 日本語版について 日本語訳は FreeBSD 日本語ドキュメンテーションプロジェクト (doc-jp) が 参考のために提供するものです. 過去の日本語版セキュリティ勧告は http://www.FreeBSD.org/ja/security/ にまとめられています. ただし, 翻訳者および doc-jp は, その内容についていかなる保証も いたしませんのでご注意ください. 日本語訳についてのご意見, ご要望, お問い合わせ等は doc-jp@jp.FreeBSD.org までお願いします. この勧告の中で紹介されている WWW サイト http://www.FreeBSD.org/ および FTP サイト ftp://ftp.FreeBSD.org/ には, 日本のミラーサイトが存在します. ネットワークの混雑を緩和するため, まずはミラーサイトの利用を 考慮するようお願いします. 日本のミラーサイトを利用するには, http://www.FreeBSD.org/ を http://www.jp.FreeBSD.org/www.freebsd.org/ に, ftp://ftp.FreeBSD.org/ を ftp://ftp.jp.FreeBSD.org/ に, それぞれ置き換えてください. 他の地域を含む, ミラーサイトに関する詳細は, http://www.FreeBSD.org/handbook/mirror.html (英文) http://www.FreeBSD.org/ja/handbook/mirror.html (日本語訳) にまとめられています. $hrs: announce-jp/FreeBSD-SA/02:07,v 1.4 2002/01/25 06:36:13 hrs Exp $