FreeBSD セキュリティ勧告 日本語版 ============================================================================= FreeBSD-SA-02:26.accept (2002-05-29) * Remote denial-of-service when using accept filters ============================================================================= このメールは, announce-jp に流れた Subject: ANNOUNCE: FreeBSD Security Advisory FreeBSD-SA-02:26.accept From: FreeBSD Security Advisories Date: Wed, 29 May 2002 09:36:31 -0700 (PDT) Message-Id: <200205291636.g4TGaVO40759@freefall.freebsd.org> X-Sequence: announce-jp 989 を日本語訳したものです。 原文は PGP 署名されていますが、この日本語訳は PGP 署名されていません。 修正パッチ等の内容が改ざんされていないことを確認するために PGP 署名の チェックを行なうには、原文を参照してください。 日本語訳およびミラーサイト利用の詳細については、文末の「A. FreeBSD セキュリティ勧告 日本語版について」をご覧ください。 [翻訳者: 佐藤 広生 ] --(ここから) ============================================================================= FreeBSD-SA-02:26.accept Security Advisory The FreeBSD Project トピック: accept フィルタにおけるリモートからのサービス妨害問題 (Remote denial-of-service when using accept filters) 分類: core モジュール: kernel 告知日: 2002-05-29 クレジット: Mike Silbersack 影響範囲: FreeBSD 4.5-RELEASE FreeBSD 4-STABLE (2001-11-22 以降, 修正日より前) 修正日: 2002-05-21 18:03:16 UTC (RELENG_4) 2002-05-28 18:27:55 UTC (RELENG_4_5) FreeBSD に固有か: YES I. 背景 - Background FreeBSD には、カーネルに到着する接続リクエストを アプリケーションで前処理する、accept_filter(9) という機構があります。 たとえば、accf_http(9) という accept フィルタは、完全な HTTP リクエストが バッファに蓄積されるまで accept(2) をブロックします。 accept フィルタは、デフォルトでは有効化されていません。accept フィルタを 有効にするには、システム管理者が各々の accept フィルタのオプション (ACCEPT_FILTER_HTTP など) を指定して FreeBSD カーネルをコンパイルするか、 kldload(8) を使ってフィルタをロードする必要があります。 II. 問題の詳細 - Problem Description FreeBSD に syncache が実装される過程で、未処理の listen キューの エントリを削除する処理が、誤って削除されてしまいました。現在は accept フィルタの処理中のソケットのみが、この未処理キューを 使用しています。 III. 影響範囲 - Impact accept フィルタを使っているソケットに接続し、数百のソケット (デフォルトの バックログ値では 190 程度) をオープンするだけで、誰でも サービス妨害を実現することが可能です。また、これは Code Red のように http accept フィルタの条件を満たさない URL を生成するワームによっても 影響を受けます。そのため、悪意を持ったユーザによる、 そのようなワームの利用が考えられます。 カーネルの accept フィルタ機能を有効化し、かつアプリケーションが その機能を利用しているという状態でなければ、このバグによる影響は ありません。デフォルトで accept フィルタを使用するアプリケーションは、 Apache (バージョン 1.3.14 およびそれ以降) のみが確認されています。 IV. 回避方法 - Workaround accept フィルタを使用しないでください。もし、カーネルオプションに ACCEPT_FILTER_DATA もしくは ACCEPT_FILTER_HTTP を指定している場合は、 これらのオプションを削除して に書かれている 手順にしたがってカーネルを再構築し、システムを再起動します。 kldload(8) を使ってカーネル accept フィルタをロードしている場合は、 これらのモジュールをロードしないようにスタートアップスクリプトを修正して システムを再起動してください。ロードされているカーネルモジュールは、 kldstat(8) を使うことで確認することができます。もしロードされていれば、 HTTP accept フィルタなら `accf_http.ko', Data accept フィルタなら `accf_data.ko' と表示されます。 影響を受けるバージョンの Apache では、バージョンによりますが、 設定ファイルに ``AcceptFilter off'' という指示子を追加するか、 コンパイル時のオプション設定で accept フィルタを無効にすることができます。 詳細は、Apache 添付の文書をご覧ください。 V. 解決策 - Solution 1) 弱点を持った FreeBSD システムを修正日以降の 4.5-STABLE、もしくは RELENG_4_5 (4.5-RELEASE-p6) セキュリティブランチのいずれかに アップグレードする。 2) 現在のシステムに修正パッチを適用する。 次の修正パッチは、FreeBSD 4.5-RELEASE および 4.5-STABLE に 適用できることが確認されているものです。 a) 以下の場所から修正パッチをダウンロードし、PGP ユーティリティを使って PGP 署名を確認します。 # fetch ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/patches/SA-02:26/accept.patch # fetch ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/patches/SA-02:26/accept.patch.asc b) root 権限で次のコマンドを実行します。 # cd /usr/src # patch < /path/to/patch c) に書かれている 手順にしたがってカーネルを再構築し、システムを再起動します。 VI. 修正の詳細 - Correction details 次の表は、今回修正された FreeBSD に含まれる各ファイルのリビジョン番号です。 パス名 リビジョン ブランチ - ------------------------------------------------------------------------- src/sys/kern/uipc_socket.c RELENG_4 1.68.2.21 RELENG_4_5 1.68.2.17.2.1 src/sys/kern/uipc_socket2.c RELENG_4 1.55.2.15 RELENG_4_5 1.55.2.10.2.1 src/sys/conf/newvers.sh RELENG_4_5 1.44.2.20.2.7 - ------------------------------------------------------------------------- VII. 参考資料 - References 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:26,v 1.4 2002/07/26 04:19:35 hrs Exp $