FreeBSD セキュリティ勧告 日本語版 ============================================================================= FreeBSD-SA-02:13 (2002-03-07) * OpenSSH contains exploitable off-by-one bug ============================================================================= このメールは, announce-jp に流れた Subject: ANNOUNCE: FreeBSD Security Advisory FreeBSD-SA-02:13.openssh From: FreeBSD Security Advisories Date: Thu, 7 Mar 2002 06:59:49 -0800 (PST) Message-Id: <200203071459.g27ExnB68056@freefall.freebsd.org> X-Sequence: announce-jp 943 を日本語訳したものです. 原文は PGP 署名されていますが, この日本語訳は PGP 署名されていません. 修正パッチ等の内容が改ざんされていないことを確認するために PGP 署名の チェックを行なうには, 原文を参照してください. 日本語訳および, ミラーサイト利用の詳細については, 文末の「A. FreeBSD セキュリティ勧告 日本語版について」をご覧ください. [翻訳者: 佐藤 広生 ] --(ここから) ============================================================================= FreeBSD-SA-02:13 Security Advisory FreeBSD, Inc. トピック: OpenSSH に含まれる悪用可能な「一つ違い」バグの問題 (OpenSSH contains exploitable off-by-one bug) 分類: core, ports モジュール: openssh, ports_openssh, openssh-portable 告知日: 2002-03-07 クレジット: Joost Pol 影響範囲: FreeBSD 4.4-RELEASE, 4.5-RELEASE 修正日より前の FreeBSD 4.5-STABLE openssh-3.0.2_1 より前のバージョンの openssh port openssh-portable-3.0.2p1_1 より前のバージョンの openssh-portable port 修正日: 2002-03-06 13:57:54 UTC (RELENG_4) 2002-03-07 14:40:56 UTC (RELENG_4_5) 2002-03-07 14:40:07 UTC (RELENG_4_4) 2002-03-06 13:53:38 UTC (ports/security/openssh) 2002-03-06 13:53:39 UTC (ports/security/openssh-portable) CVE: CAN-2002-0083 FreeBSD に固有か: NO I. 背景 - Background OpenSSH は SSH プロトコル群を使った、フリーで利用できる ネットワーク接続用ツールです。OpenSSH は (パスワードを含む) すべてのトラフィックを暗号化することで、盗聴や接続の乗っ取り、 その他のネットワークレベルの攻撃を効果的に無力化します。 また OpenSSH には、数多くのセキュアなトンネルを作成する機能、 豊富な認証方法への対応といった特徴があります。 `ssh' がクライアントアプリケーションで、`sshd' がサーバです。 II. 問題の詳細 - Problem Description OpenSSH は X11 や TCP, エージェントの転送を実装するため、 単一の TCP 接続上で複数の「チャネル (channels)」を多重化します。 このチャネルを管理するコードには「一つ違い (off-by-one)」エラーが 含まれており、チャネル用に確保されたメモリではない場所を参照する 可能性があります。つまり、悪意を持ったクライアント、もしくは サーバから、その参照可能なメモリの内容を操作できる可能性があります。 III. 影響範囲 - Impact 認証されたリモートユーザ (接続対象のシステムにおいて正しく認証を 受けたユーザ) は、sshd を悪用し、スーパユーザの権限で任意のコードを 実行できる可能性があります。 悪意を持ったサーバは、接続している ssh クライアントを利用して、 そのクライアントのユーザ権限で任意のコードを実行することができる 可能性があります。 IV. 回避方法 - Workaround 次のいずれかに従ってください。 1) FreeBSD の malloc の実装では、malloc 管理領域 (malloc arena) に 返されるメモリを上書き、もしくはその内容を破棄するように 設定することが可能です。今回のバグを悪用する場合はこの部分を 利用するため、メモリ内容を破棄するように malloc を設定することで 攻撃に対抗することができます。 FreeBSD システムでメモリ内容を破棄するように設定するには、 root 権限で次のコマンドを実行します。 # ln -fs J /etc/malloc.conf ただし、この方法はシステムの性能を悪化させます。malloc の オプション関する完全な詳細は、malloc(3) のマニュアルページを 参照してください。 2) root 権限で次のコマンドを実行し、ベースシステムの sshd を停止させます。 # kill `cat /var/run/sshd.pid` システムが再起動した際に sshd が再起動しないように、/etc/rc.conf の 最後に次の行を追加します。 sshd_enable="NO" それらに加え、*さらに* openssh もしくは openssh-portable の port がインストール されている場合は、それらを削除してください。 V. 解決策 - Solution 次のいずれかに従ってください。 [ベースシステムに含まれている OpenSSH の場合] 1) 弱点を持ったシステムを 4.4-RELEASEp9, 4.5-RELEASEp2, あるいは 修正日以降の 4.5-STABLE に更新し、システムを再構築します。 2) 修正日より前の FreeBSD 4.x システムの場合: 次の修正パッチは FreeBSD 4.4-RELEASE, 4.5-RELEASE および、 修正日より前の 4.5-STABLE に対して適用可能なことが確認されているものです。 それよりも古いリリースや、サポートされていない FreeBSD リリースに 対しては、これらの修正パッチが正しく適用できない可能性があります。 修正パッチと PGP 署名を次の場所からダウンロードして、 PGP ユーティリティを使って PGP 署名を確認します。 # fetch ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/patches/SA-02:13/openssh.patch # fetch ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/patches/SA-02:13/openssh.patch.asc そして root 権限で以下のコマンドを実行します。 # cd /usr/src # patch < /path/to/sshd.patch # cd /usr/src/secure/lib/libssh # make depend && make all # cd /usr/src/secure/usr.sbin/sshd # make depend && make all install # cd /usr/src/secure/usr.bin/ssh # make depend && make all install [OpenSSH の port の場合] 次のいずれかに従ってください。 1) Ports Collection 全体をアップグレードし OpenSSH の port を再構築する。 2) 古い (訳注: OpenSSH の) package をシステムから削除し、 修正日以降に作成された新しい package を以下の場所から 取得してインストールする。 [i386] ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/i386/packages-4-stable/security/ [その他のプラットフォーム] 現時点ではその他のアーキテクチャ用の package は自動生成されていません。 これは、構築のためのマシンリソースが不足しているためです。 3) openssh あるいは openssh-portable の新しい 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/Latest/portcheckout.tgz ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/i386/packages-5-current/Latest/portcheckout.tgz VI. 修正の詳細 - Correction details 次の表は、今回修正された FreeBSD Ports Collection に含まれる 各ファイルのリビジョン番号です. パス名 リビジョン ブランチ - ------------------------------------------------------------------------- [ベースシステム] src/crypto/openssh/channels.c HEAD 1.8 RELENG_4 1.1.1.1.2.6 RELENG_4_5 1.1.1.1.2.5.2.1 RELENG_4_4 1.1.1.1.2.4.4.1 src/crypto/openssh/version.h HEAD 1.10 RELENG_4 1.1.1.1.2.8 RELENG_4_5 1.1.1.1.2.7.2.1 RELENG_4_4 1.1.1.1.2.5.2.2 src/sys/conf/newvers.sh RELENG_4_5 1.44.2.20.2.3 RELENG_4_4 1.44.2.17.2.8 [Ports] ports/security/openssh/Makefile 1.81 ports/security/openssh/files/patch-channels.c 1.1 ports/security/openssh-portable/Makefile 1.21 ports/security/openssh-portable/files/patch-channels.c 1.1 - ------------------------------------------------------------------------- ブランチ バージョン文字列 - ------------------------------------------------------------------------- HEAD OpenSSH_2.9 FreeBSD localisations 20020307 RELENG_4 OpenSSH_2.9 FreeBSD localisations 20020307 RELENG_4_5 OpenSSH_2.9 FreeBSD localisations 20020307 RELENG_4_4 OpenSSH_2.3.0 FreeBSD localisations 20020307 - ------------------------------------------------------------------------- sshd サーバのバージョン文字列を表示するには、次のコマンドを実行します。 % /usr/sbin/sshd -\? バージョン文字列は、クライアントがサーバに接続した時にも表示されます。 OpenSSH クライアントのバージョン文字列を表示するには、 次のコマンドを実行します。 % /usr/bin/ssh -V VII. 参考資料 - References Common Vulnerabilities and Exposures プロジェクト (cve.mitre.org) は、 この問題に CAN-2002-0083 という名前を割り当てています。 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:13,v 1.3 2002/03/10 06:59:57 hrs Exp $