FreeBSD セキュリティ勧告 日本語版 ============================================================================= FreeBSD-SA-02:20 (2002-04-16) * syncache/syncookies denial of service ============================================================================= このメールは, announce-jp に流れた Subject: ANNOUNCE: FreeBSD Security Advisory FreeBSD-SA-02:20.syncache From: FreeBSD Security Advisories Date: Tue, 16 Apr 2002 14:03:49 -0700 (PDT) Message-Id: <200204162103.g3GL3nT44369@freefall.freebsd.org> X-Sequence: announce-jp 965 を日本語訳したものです。 原文は PGP 署名されていますが、この日本語訳は PGP 署名されていません。 修正パッチ等の内容が改ざんされていないことを確認するために PGP 署名の チェックを行なうには、原文を参照してください。 日本語訳およびミラーサイト利用の詳細については、文末の「A. FreeBSD セキュリティ勧告 日本語版について」をご覧ください。 [翻訳者: 佐藤 広生 ] --(ここから) ============================================================================= FreeBSD-SA-02:20 Security Advisory FreeBSD, Inc. トピック: syncache/syncookies におけるサービス妨害 (syncache/syncookies denial of service) 分類: core モジュール: net 告知日: 2002-04-16 クレジット: Alan Judge Dima Ruban 影響範囲: FreeBSD 4.5-RELEASE FreeBSD 4.4-STABLE (2001-12-14 19:53:01 UTC 以降) FreeBSD 4.5-STABLE (修正日より前) 修正日: 2002-02-20 16:48:49 UTC (RELENG_4) 2002-02-21 16:38:39 UTC (RELENG_4_5, 4.5-RELEASE-p1) FreeBSD に固有か: YES I. 背景 - Background SYN cache ("syncache") および SYN cookie 機構 ("syncookie") とは、 SYN flood として知られる、ある種のサービス妨害攻撃に対する耐性を 向上させるための、TCP/IP スタックの機能です。 II. 問題の詳細 - Problem Description syncookies が実装されたことにより、syncache に二つの問題が発生しました。 1) syncookie 経由で SYN パケットを受けとった時、新規ソケットの TCP オプションを 調べるために使われるポインタが初期化されていません。このポインタは マシンクラッシュの原因となる null ポインタである可能性があります。 2) syncache では、listen しているソケットに到着する SYN パケット 一つに対して、エントリが一つ生成されます。listen ソケットを生成した アプリケーションが kill され、再実行された --- つまり、その アプリケーションは異なる inpcb (訳注: カーネル内部でソケットの管理に 使用されている Protocol Control Block、具体的には struct inpcb のこと) で listen ソケットを再生成する --- 場合を考えてみましょう。その後に syncache エントリと一致した ACK (あるいは重複した SYN) パケットが届いたとすると、 そのパケットは古い inpcb ポインタを参照することになります。その時の ポインタの値にもよりますが、そのポインタ参照によってシステムが クラッシュする可能性があります。 syncache および syncookies 機能は FreeBSD 4.5-RELEASE の公開の前に 追加されたものです。したがって、それ以外のリリースには影響ありません。 III. 影響範囲 - Impact 正規の TCP/IP トラフィックにより、マシンがクラッシュする可能性があります。 IV. 回避方法 - Workaround 最初に説明した問題は sysctl を使って syncookies を無効化することで 回避することが可能です。それには root 権限で次のコマンドを実行します。 # sysctl -w net.inet.tcp.syncookies=0 ただし、二番目の問題には回避方法がありません。 V. 解決策 - Solution 1) 弱点を持った FreeBSD システムを修正日以降の 4.5-STABLE、もしくは RELENG_4_5 セキュリティブランチにアップグレードする。 2) 現在のシステムに修正パッチを適用する。以下の場所から対応する修正パッチを ダウンロードし、root 権限で次のコマンドを実行します。 # fetch ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/patches/SA-02:20/syncache.patch # fetch ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/patches/SA-02:20/syncache.patch.asc この修正パッチは FreeBSD 4.5-RELEASE にのみ、適用可能なことが 確認されています。 PGP ユーティリティを使って PGP 署名を確認します。 そして root 権限で次のコマンドを実行します。 # cd /usr/src # patch -p < /path/to/patch その後 http://www.freebsd.org/handbook/kernelconfig.html に 記載されている手順にしたがってカーネルを再構築・再インストールし、 変更を有効化するためにシステムを再起動してください。 VI. 修正の詳細 - Correction details 次の表は、今回修正された FreeBSD に含まれる各ファイルのリビジョン番号です。 パス名 リビジョン ブランチ - ------------------------------------------------------------------------- src/sys/conf/newvers.sh RELENG_4_5 1.44.2.20.2.2 src/sys/netinet/tcp_syncache.c RELENG_4 1.5.2.5 RELENG_4_5 1.5.2.4.2.1 - ------------------------------------------------------------------------- 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:20,v 1.4 2002/05/15 21:27:34 hrs Exp $