[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: NetBSD Security Advisory 2004-005: Denial of servicevulnerabilities in OpenSSL



佐藤@東京理科大学です。

KAWAMOTO Yosihisa <kawamoto@tenjin.org> wrote
  in <20040422.115138.05957901.kawamoto@tenjin.org>:

kawamoto> 「arriving on any external interface」が抜けてます。
kawamoto> 「また、外のインターフェースから届く、
kawamoto>   自分自身から送信されたパケットも受け取るべきではありません。」
kawamoto> くらいでしょうか。

 どうもです。ちょっと分かりにくかったので、全体的に修正を
 入れてみました。

---- (ここから)
-BGP システムのオペレーターは、ingress/egress フィルターを使って、これらの
-攻撃を防ぐことができます。BGP ルーターは、BGP ピアーと直接接続されていない
-インターフェースに到着する、その BGP ピアーを騙るパケットを受け取っては
-いけません。また、自分自身から送信されたパケットも受け取るべきでは
-ありません。これらのルールは、NetBSD の IP Filter 機能を使うことで、
+BGP のシステムオペレーターは、ingress/egress フィルターを使って、これらの
+攻撃を防ぐことができます。BGP ルーターは、送信元がその BGP ピアーに
+なっているにも関わらず BGP ピアーと直接接続されていないインターフェースに
+到着したパケットや、送信元が自分自身になっているにも関わらず
+外部のインターフェースに到着したパケットを、受け取るべきではありません。
+これらのルールは、NetBSD の IP Filter 機能を使うことで、
 簡単に設定することが可能です。
---- (ここまで)

 明日の朝には公開に回すつもりでいます。

--
| 佐藤 広生@東京理科大学
Index: 2004-006
===================================================================
RCS file: /home/cvs/private/hrs/announce-jp/NetBSD-SA/2004-006,v
retrieving revision 1.2
diff -d -u -I\$FreeBSD:.*\$ -I\$NetBSD:.*\$ -I\$OpenBSD:.*\$ -I\$Id:.*\$ -I\$hrs:.*\$ -r1.2 2004-006
--- 2004-006	21 Apr 2004 19:57:10 -0000	1.2
+++ 2004-006	22 Apr 2004 04:32:53 -0000
@@ -55,7 +55,7 @@
 The longstanding TCP protocol specification has several weaknesses.
 (RFC793):
 
-従来から長く使われている TCP プロトコル規格 (RFC793) には、いくつかの
+従来から長く使われている TCP プロトコル規格 (RFC 793) には、いくつかの
 弱点があります。
 
 - - fabricated RST packets from a malicious third party can tear down a
@@ -131,7 +131,7 @@
 connection being targetted. On the server end, the IP and port are
 likely to be well-known. The IP and port of a client is more obscure.
 
-攻撃者がこれらの攻撃をおこなうには、攻撃対象の接続において 5 種類の
+攻撃者がこれらの攻撃をおこなうには、攻撃対象の接続に関する 5 種類の
 情報が必要になります。サーバーの IP アドレスとポート番号は既知で
 あることがほとんどですが、クライアントの IP アドレスとポート番号を
 知ることは、簡単ではありません。
@@ -180,7 +180,7 @@
 
 現時点で NetBSD は TCP-MD5 に対応していませんが、まもなくその機能が統合される
 予定です。ただし TCP-MD5 は鍵管理と cipher 選択における問題があるため、
-BGP セションを守る目的にのみ有効です。BGP を運用しているシステムは、
+有効なのは BGP セションを守る場合だけです。BGP を運用しているシステムは、
 非常に小さな割合に限られています。
 
 BGP system operators can prevent these attacks through ingress and
@@ -190,11 +190,12 @@
 themselves, arriving on any external interface. These rules are easily
 implemented with the IP Filter functionality in NetBSD.
 
-BGP システムのオペレーターは、ingress/egress フィルターを使って、これらの
-攻撃を防ぐことができます。BGP ルーターは、BGP ピアーと直接接続されていない
-インターフェースに到着する、その BGP ピアーを騙るパケットを受け取っては
-いけません。また、自分自身から送信されたパケットも受け取るべきでは
-ありません。これらのルールは、NetBSD の IP Filter 機能を使うことで、
+BGP のシステムオペレーターは、ingress/egress フィルターを使って、これらの
+攻撃を防ぐことができます。BGP ルーターは、送信元がその BGP ピアーに
+なっているにも関わらず BGP ピアーと直接接続されていないインターフェースに
+到着したパケットや、送信元が自分自身になっているにも関わらず
+外部のインターフェースに到着したパケットを、受け取るべきではありません。
+これらのルールは、NetBSD の IP Filter 機能を使うことで、
 簡単に設定することが可能です。
 
 Malicious parties create TCP packets with forged source addresses. If
NetBSD セキュリティー勧告 日本語訳
=============================================================================
NetBSD Security Advisory 2004-006 (2004/04/21)
 * TCP protocol and implementation vulnerability
=============================================================================

 このメールは, netbsd-announce に流れた

  Subject: NetBSD Security Advisory 2004-006: TCP protocol and implementation vulnerability
  From: NetBSD Security-Officer <security-officer@NetBSD.org>
  Date: Wed, 21 Apr 2004 14:14:25 -0400
  Message-Id: <20040421181425.GP8091@mail>

 を、www.NetBSD.ORG 翻訳プロジェクトが日本語訳したものです。

 原文は PGP 署名されていますが、この日本語訳は PGP 署名されていません。
 修正パッチ等の内容が改ざんされていないことを確認するために PGP 署名の
 チェックを行なうには、原文を参照してください。

------------------------------- ここから ------------------------------------


		 NetBSD Security Advisory 2004-006
		 =================================

トピック:	TCP プロトコルと実装におけるセキュリティー上の弱点
		(TCP protocol and implementation vulnerability)

バージョン:	NetBSD-current:	2004 年 4 月 22 日より前のソース
		NetBSD 2.0:	影響あり。リリース版には修正が含まれる予定。
		NetBSD 1.6.2:	影響あり
		NetBSD 1.6.1:	影響あり
		NetBSD 1.6:	影響あり
		NetBSD 1.5.3:	影響あり
		NetBSD 1.5.2:	影響あり
		NetBSD 1.5.1:	影響あり
		NetBSD 1.5:	影響あり

影響範囲:	深刻 (TCP 接続が悪意を持った第三者によって切断されたり、
		意図しないデータが TCP ストリームに挿入される可能性がある)

		Serious (disconnected by malicious party, unwanted data
		injected into TCP stream)

修正日:		NetBSD-current:		2004 年 4 月 22 日
		NetBSD-2.0 branch:	2004 年 4 月 22 日
		NetBSD-1.6 branch:	2004 年 4 月 22 日
					(1.6.3 には修正が含まれる予定)
		NetBSD-1.5 branch:	2004 年 4 月 22 日


概要 - Abstract
===============

The longstanding TCP protocol specification has several weaknesses.
(RFC793):

従来から長く使われている TCP プロトコル規格 (RFC 793) には、いくつかの
弱点があります。

- - fabricated RST packets from a malicious third party can tear down a
TCP session

- - 悪意を持った第三者が捏造・送信した RST パケットを受け取ると、
    TCP セションが切れてしまう。

- - fabricated SYN packets from a malicious third party can tear down a
TCP session

- - 悪意を持った第三者が捏造・送信した SYN パケットを受け取ると、
    TCP セションが切れてしまう。

- - a malicious third party can inject data to TCP session without much
difficulty

- - 悪意を持った第三者は、既存の TCP セションへ比較的容易にデータを
    挿入することができてしまう。

NetBSD also had an additional implementation flaw, which made these
attacks easier.

また NetBSD には、これらの攻撃をより簡単なものにしてしまうような、
実装上の不具合も含まれています。


技術的な詳細 - Technical Details
================================

Under the current TCP protocol specification, it is impossible to make
us perfectly secure against these vulnerabilities.  Improvements have
been made to reduce the probability of successful attacks. These
improvements are based on the recently released Internet Draft,
draft-ietf-tcpm-tcpsecure-00.txt

現在の TCP プロトコル規格では、これらのセキュリティー上の弱点に対して
完全に対応することができません。そのため、攻撃の成功率を下げるための
改善が加えられました。この改善は、最近公開されたインターネットドラフト
draft-ietf-tcpm-tcpsecure-00.txt に基づいたものです。

Additionally, the 4.4BSD stack from which NetBSD's stack is derived, did
not even check that a RST's sequence number was inside the window. RSTs
anywhere to the left of the window were treated as valid.

また、NetBSD のネットワークスタックのもととなった 4.4BSD のスタックでは、
ウィンドウに含まれる RST のシーケンス番号をチェックしておらず、
ウィンドウに含まれる RST はすべて、有効なものとして扱われています。

The fact that this has gone unnoticed for so long is an indication that
there have not been a large number of RST/SYN DoS attacks ocurring in the
wild. However, the widespread nature of the larger TCP issue will likely
affect that trend.

今までは RST/SYN DoS 攻撃がそれほど多くなかったため、この事実は
長い間注目されていなかったのですが、TCP の問題が広く認識されるにつれて、
問題視されるようになってきました。

Note that security protocols on top of TCP such as SSH and SSL do not
protect you from the DoS attack. These connections are also vulnerable
to disconnection. However, since these protocols sign their payloads,
data injection is not possible, though it could cause a disconnection as
a side-effect of the attack.

SSH や SSL など、TCP をベースにしたセキュリティープロトコルは
この DoS 攻撃を防ぐことができません。これらのプロトコルを使った接続も、
切断を目的とする攻撃に対して弱点を持っています。これらのプロトコルは
ペイロード部分に電子署名を施しているため、データの挿入をおこなうことは
不可能ですが、データを挿入しようとする攻撃を受けると、その副作用として
接続が切断される可能性はあります。

To use these attacks, the attacker must know the 5 tuple of the
connection being targetted. On the server end, the IP and port are
likely to be well-known. The IP and port of a client is more obscure.

攻撃者がこれらの攻撃をおこなうには、攻撃対象の接続に関する 5 種類の
情報が必要になります。サーバーの IP アドレスとポート番号は既知で
あることがほとんどですが、クライアントの IP アドレスとポート番号を
知ることは、簡単ではありません。

For systems which provide shell access to untrusted users, be aware that
many system tools expose client IP and port information. Now that this
issue is public, developers and users may wish to discuss if any of this
information should be hidden by default.

信頼できないユーザーにシェルアクセスを提供しているシステムでは、
多くのシステムツールが、クライアントの IP アドレスとポート番号の情報を
漏洩させることに注意してください。この問題が公開された以上、
開発者やユーザーは、このような情報をデフォルトで隠蔽すべきか否かという
議論をおこなうべきかも知れません。

http://www.uniras.gov.uk/vuls/2004/236929/index.htm
http://www.us-cert.gov/cas/techalerts/TA04-111A.html
http://www.ietf.org/internet-drafts/draft-ietf-tcpm-tcpsecure-00.txt


回避方法と解決策 - Solutions and Workarounds
============================================

All NetBSD systems that use TCP are affected.

TCP を使っているすべての NetBSD システムが影響を受けます。

The only complete protection from this issue, is to use a security
protocol which runs below the TCP layer, such as IPSec, or TCP-MD5.
However, in practice, we believe the currently implemented improvements
to the stack will prevent any serious impact of this issue.

この問題を完全に解決する唯一の方法は、IPSec や TCP-MD5 など、
TCP 層よりも下位の層で動作するセキュリティープロトコルを使うことです。
しかし NetBSD プロジェクトでは、現在のスタックに実装されている改良で、
今回の問題で実際に発生する深刻な影響は回避できると考えています。

NetBSD includes support for IPSec. 

NetBSD は、IPSec にも対応しています。

NetBSD does not include TCP-MD5 support at this time, though it is being
integrated shortly. Regardless, TCP-MD5 is only particularly suitable
for protecting BGP sessions over TCP, due to key management and cipher
selection issues. Only a small percentage of systems run BGP.

現時点で NetBSD は TCP-MD5 に対応していませんが、まもなくその機能が統合される
予定です。ただし TCP-MD5 は鍵管理と cipher 選択における問題があるため、
有効なのは BGP セションを守る場合だけです。BGP を運用しているシステムは、
非常に小さな割合に限られています。

BGP system operators can prevent these attacks through ingress and
egress filtering. BGP routers should not accept packets claiming to be
from their BGP-peer, on interfaces other than those directly connected
to that peer. BGP routers should not accept packets claiming to be from
themselves, arriving on any external interface. These rules are easily
implemented with the IP Filter functionality in NetBSD.

BGP のシステムオペレーターは、ingress/egress フィルターを使って、これらの
攻撃を防ぐことができます。BGP ルーターは、送信元がその BGP ピアーに
なっているにも関わらず BGP ピアーと直接接続されていないインターフェースに
到着したパケットや、送信元が自分自身になっているにも関わらず
外部のインターフェースに到着したパケットを、受け取るべきではありません。
これらのルールは、NetBSD の IP Filter 機能を使うことで、
簡単に設定することが可能です。

Malicious parties create TCP packets with forged source addresses. If
you already have configured ingress filtering, according to RFC3013,
then your intranet TCP sessions are already protected. If not, consider
adding it, as well as egress filtering, to prevent your users from
forging source addresses to attack others.

悪意を持った第三者は、送信元アドレスを詐称した TCP パケットを作成することが
できます。RFC 3013 で説明されている ingress フィルターを設定していれば、
イントラネット上の TCP セションが今回の問題の影響を受けることはありません。
もし設定していないなら、詐称した送信元アドレスを使って外部のホストへ攻撃
できないようにするための egress フィルターを含めて、設定することを
考慮しましょう。

The following instructions describe how to upgrade your kernel binaries
by updating your source tree and rebuilding and installing a new version
of kernel. The new kernel makes the attacks much more difficult.

次に示す手順は、ソースツリーを更新してカーネルバイナリーを再構築し、
新しいバージョンのカーネルをインストールする方法を説明したものです。
新しいカーネルを使うと、攻撃の成功率をずっと低く抑えることができます。

* NetBSD-current:

	Systems running NetBSD-current dated from before 2004-04-21
	should be upgraded to NetBSD-current dated 2004-04-22 or later.

	2004 年 4 月 21 日より前の NetBSD-current は、
	2004 年 4 月 22 日、もしくはそれ以降の NetBSD-current に
	アップグレードする必要があります。

	The following directories need to be updated from the
	netbsd-current CVS branch (aka HEAD):
	CVS ブランチ netbsd-current (別名 HEAD) において
	更新が必要なファイルは、次のとおりです。
		sys/netinet

	To update from CVS, re-build, and re-install the kernel:
	CVS を使ってファイルを更新し、カーネルを
	再構築・再インストールするには、次のコマンドを実行してください。
		# cd src
		# cvs update -d -P sys/netinet
		# cd arch/ARCH/conf
		# config CONFIG
		# cd ../compile/CONFIG
		# make clean depend; make

		# cp netbsd /
		# reboot


* NetBSD 1.6, 1.6.1, 1.6.2:

	The binary distribution of NetBSD 1.6, 1.6.1 and 1.6.2 are vulnerable.
	NetBSD 1.6, NetBSD 1.6.1, NetBSD 1.6.2 のバイナリー配布物には、この
	セキュリティー上の弱点が含まれています。

	Systems running NetBSD 1.6 sources dated from before
	2004-04-21 should be upgraded from NetBSD 1.6 sources dated
	2004-04-22 or later.

	2004 年 4 月 21 日より前の NetBSD 1.6 のソースは、
	2004 年 4 月 22 日、もしくはそれ以降の NetBSD 1.6 のソースに
	アップグレードする必要があります。

	NetBSD 1.6.3 will include the fix.
	NetBSD 1.6.3 には、この弱点に対する修正が含まれる予定です。

	The following directories need to be updated from the
	netbsd-1-6 CVS branch:
	CVS ブランチ netbsd-1-6 において更新が必要なファイルは、
	次のとおりです。
		sys/netinet

	To update from CVS, re-build, and re-install the kernel:
	CVS を使ってファイルを更新し、カーネルを
	再構築・再インストールするには、次のコマンドを実行してください。

		# cd src
		# cvs update -d -P -r netbsd-1-6 sys/netinet
		# cd arch/ARCH/conf
		# config CONFIG
		# cd ../compile/CONFIG
		# make clean depend; make

		# cp netbsd /
		# reboot


* Binary Patch:
* バイナリーパッチ

  ***	The 1.6 kernels are being built. This text will be updated once
	they are available. The instructions are included here so that
	you can follow them once the patch directory is populated with
	a patch for your architecture.

	NetBSD 1.6 カーネルは現在構築中です。ここの文章は、カーネルの
	準備が完了次第、更新される予定です。
	次の説明は、バイナリパッチのディレクトリと各アーキテクチャー用の
	パッチ本体が提供された時に、従うべき手順を示したものになっています。

	For the NetBSD-1-6 branch, binary patches are being provided, in
	the form of replacement kernels built with the patches from the
	GENERIC kernel configuration. If you use a custom kernel
	configuration, these may not be suitable for you.

	NetBSD-1-6 ブランチでは、GENERIC カーネルの設定で構築された
	新しいカーネルに置き換えるための、バイナリーパッチが提供されています。
	あなたが独自に設定したカーネルを使っている場合は、使わない方が適切かも
	知れません。

	To apply the binary patch, perform the following steps,
	replacing ARCH with the NetBSD architecture you are running
	(i.e. i386):

	バイナリーパッチを適用するには、次の手順を行ないます。
	ARCH の部分は、あなたが実行している NetBSD のアーキテクチャー
	(たとえば i386 など) に置き換えてください。

	ftp://ftp.netbsd.org/pub/NetBSD/security/patches/SA2004-006-kernel/netbsd-1-6/ARCH-kernel.tgz
	cd / && cp /path/to/ARCH-kernel.gz /
	gzip -d ARCH-kernel.gz

	The tar file will extract a new copy of:
		ARCH-kernel
	この tar ファイルは、次のファイルの新しいコピーを展開するものです。

	Back up your old kernel:
	古いカーネルをバックアップします。
	mv netbsd netbsd.old

	Then either rename:
	そして、新しいカーネルのファイル名を次のように変更するか、
	mv ARCH-kernel netbsd

	or link, as per local site policy:
	もしくはハードリンクを作成します。
	どちらを選ぶかは、システムの管理ポリシーに従ってください。
	ln ARCH-kernel netbsd

	Then, reboot.
	最後に、システムを再起動します。


* NetBSD 1.5, 1.5.1, 1.5.2, 1.5.3:

	The binary distribution of NetBSD 1.5 to 1.5.3 are vulnerable.	 

	NetBSD 1.5 から NetBSD 1.5.3 までのバイナリー配布物には、
	このセキュリティー上の弱点が含まれています。

	Systems running NetBSD 1.5, 1.5.1, 1.5.2, or 1.5.3 sources dated
	from before 2004-04-21 should be upgraded from NetBSD 1.5.*
	sources dated 2004-04-22 or later.

	2004 年 4 月 21 日より前の NetBSD 1.5, 1.5.1, 1.5.2, 1.5.3 のソースは、
	2004 年 4 月 22 日、もしくはそれ以降の NetBSD 1.5 のソースに
	アップグレードする必要があります。

	The following directories need to be updated from the
	netbsd-1-5 CVS branch:
	CVS ブランチ netbsd-1-5 において更新が必要なファイルは、
	次のとおりです。
		sys/netinet

	To update from CVS, re-build, and re-install the kernel:
	CVS を使ってファイルを更新し、カーネルを
	再構築・再インストールするには、次のコマンドを実行してください。

		# cd src
		# cvs update -d -P -r netbsd-1-5 sys/netinet
		# cd arch/ARCH/conf
		# config CONFIG
		# cd ../compile/CONFIG
		# make clean depend; make

		# cp netbsd /
		# reboot



謝辞 - Thanks To
================

NISCC
JPCERT/CC
Markus Friedl
Randall Stewart


改訂履歴 - Revision History
===========================

	2004-04-21	初版公開


詳細と参考資料 - More Information
=================================

Advisories may be updated as new information becomes available.
The most recent version of this advisory (PGP signed) can be found at 
新しい情報が判明した場合、セキュリティー勧告は更新されることがあります。
PGP 署名されたこの勧告の最新版は、次の場所から入手できます。
  ftp://ftp.NetBSD.org/pub/NetBSD/security/advisories/NetBSD-SA2004-006.txt.asc

Information about NetBSD and NetBSD security can be found at
NetBSD および NetBSD のセキュリティーに関する情報は、次の場所から入手できます。
http://www.NetBSD.org/
http://www.NetBSD.org/Security/


Copyright 2004, The NetBSD Foundation, Inc.  All Rights Reserved.
Redistribution permitted only in full, unmodified form.

$NetBSD: NetBSD-SA2004-006.txt,v 1.2 2004/04/21 17:34:50 david Exp $

$hrs: announce-jp/NetBSD-SA/2004-006,v 1.3 2004/04/23 03:56:23 hrs Exp $

PGP signature