重複するIPv6フラグメントの処理
英文を機械翻訳で日本語訳としています。日本語訳が正しくないことが考えられますので原文をメインとし、参考程度にご利用ください。
日本語訳
Network Working Group S. Krishnan Request for Comments: 5722 Ericsson Updates: 2460 December 2009 Category: Standards Track Handling of Overlapping IPv6 Fragments
重複するIPv6フラグメントの処理
Abstract
概要
The fragmentation and reassembly algorithm specified in the base IPv6 specification allows fragments to overlap. This document demonstrates the security issues associated with allowing overlapping fragments and updates the IPv6 specification to explicitly forbid overlapping fragments.
基本IPv6仕様で指定されているフラグメンテーションおよび再構成アルゴリズムにより、フラグメントをオーバーラップできます。 このドキュメントでは、重複するフラグメントの許可に関連するセキュリティの問題を示し、重複するフラグメントを明示的に禁止するようにIPv6仕様を更新します。
Status of This Memo
このメモのステータス
This document specifies an Internet standards track protocol for the Internet community, and requests discussion and suggestions for improvements. Please refer to the current edition of the "Internet Official Protocol Standards" (STD 1) for the standardization state and status of this protocol. Distribution of this memo is unlimited.
このドキュメントは、インターネットコミュニティのためのインターネット標準トラックプロトコルを指定し、改善のための議論と提案を要求します。 このプロトコルの標準化状態とステータスについては、「インターネット公式プロトコル標準」(STD 1)の最新版を参照してください。 このメモの配布は無制限です。
Copyright Notice
著作権表示
Copyright (c) 2009 IETF Trust and the persons identified as the document authors. All rights reserved.
Copyright(c)2009 IETF Trustおよびドキュメントの作成者として識別された人物。 全著作権所有。
This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the BSD License.
この文書は、BCP 78およびIETF文書に関するIETFトラストの法的規定(http://trustee.ietf.org/license-info)の対象であり、この文書の発行日に有効です。 これらのドキュメントは、このドキュメントに関するあなたの権利と制限を説明しているため、注意深く確認してください。 このドキュメントから抽出されたコードコンポーネントには、Trust Legal Provisionsのセクション4.eで説明されているように、簡略化されたBSDライセンスのテキストを含める必要があり、BSDライセンスで説明されているように保証なしで提供されます。
Krishnan Standards Track [Page 1] RFC 5722 Handling of Overlapping IPv6 Fragments December 2009 Table of Contents 1. Introduction ....................................................2 1.1. Conventions Used in This Document ..........................2 2. Overlapping Fragments ...........................................2 3. The Attack ......................................................3 4. Node Behavior ...................................................5 5. Security Considerations .........................................5 6. Acknowledgements ................................................5 7. References ......................................................6 7.1. Normative References .......................................6 7.2. Informative References .....................................6
1.はじめに.........................................................2 1.1. このドキュメントで使用されている規則.......................2 2.重複するフラグメント.............................................2 3.攻撃.............................................................3 4.ノードの動作.....................................................5 5.セキュリティに関する考慮事項.....................................5 6.謝辞.............................................................5 7.参考資料.........................................................6 7.1. 規範的な参照...............................................6 7.2. 参考資料...................................................6
1. Introduction
1.はじめに
Fragmentation is used in IPv6 when the IPv6 packet will not fit inside the path MTU to its destination. When fragmentation is performed, an IPv6 node uses a fragment header, as specified in Section 4.5 of the IPv6 base specification [RFC2460], to break down the datagram into smaller fragments that will fit in the path MTU. The destination node receives these fragments and reassembles them. The algorithm specified for fragmentation in [RFC2460] does not prevent the fragments from overlapping, and this can lead to some security issues with firewalls [RFC4942]. This document explores the issues that can be caused by overlapping fragments and updates the IPv6 specification to explicitly forbid overlapping fragments.
IPv6パケットが宛先へのパスMTU内に収まらない場合、IPv6でフラグメンテーションが使用されます。 フラグメント化が実行されると、IPv6ノードはIPv6基本仕様[RFC2460]のセクション4.5で指定されているフラグメントヘッダーを使用して、データグラムをパスMTUに適合する小さなフラグメントに分割します。 宛先ノードはこれらのフラグメントを受け取り、それらを再構成します。 [RFC2460]でフラグメンテーションに指定されたアルゴリズムは、フラグメントのオーバーラップを防止しません。これにより、ファイアウォール[RFC4942]でセキュリティ上の問題が生じる可能性があります。 このドキュメントでは、フラグメントのオーバーラップによって発生する可能性のある問題について説明し、フラグメントのオーバーラップを明示的に禁止するようにIPv6仕様を更新します。
1.1. Conventions Used in This Document
1.1。 このドキュメントで使用される規則
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in [RFC2119].
このドキュメントのキーワード「MUST」、「MUST NOT」、「REQUIRED」、「SHALL」、「SHALL NOT」、「SHOULD」、「SHOULD NOT」、「RECOMMENDED」、「MAY」、および「OPTIONAL」は、 [RFC2119]で説明されているように解釈されます。
2. Overlapping Fragments
2.重複するフラグメント
Commonly used firewalls use the algorithm specified in [RFC1858] to weed out malicious packets that try to overwrite parts of the transport-layer header in order to bypass inbound connection checks. [RFC1858] prevents an overlapping fragment attack on an upper-layer protocol (in this case, TCP) by recommending that packets with a fragment offset of 1 be dropped. While this works well for IPv4 fragments, it will not work for IPv6 fragments. This is because the fragmentable part of the IPv6 packet can contain extension headers before the TCP header, making this check less effective.
一般的に使用されるファイアウォールは、[RFC1858]で指定されたアルゴリズムを使用して、着信接続チェックをバイパスするためにトランスポート層ヘッダーの一部を上書きしようとする悪意のあるパケットを排除します。 [RFC1858]は、フラグメントオフセットが1のパケットをドロップすることを推奨することにより、上位層プロトコル(この場合はTCP)に対する重複フラグメント攻撃を防ぎます。 これはIPv4フラグメントではうまく機能しますが、IPv6フラグメントでは機能しません。 これは、IPv6パケットのフラグメント化可能な部分に、TCPヘッダーの前に拡張ヘッダーが含まれる可能性があるため、このチェックの効果が低下するためです。
Krishnan Standards Track [Page 2] RFC 5722 Handling of Overlapping IPv6 Fragments December 2009 3. The Attack
3.攻撃
This attack describes how a malicious node can bypass a firewall using overlapping fragments. Consider a sufficiently large IPv6 packet that needs to be fragmented.
この攻撃は、悪意のあるノードがオーバーラップするフラグメントを使用してファイアウォールをバイパスする方法を説明しています。 フラグメント化する必要がある十分に大きいIPv6パケットを検討してください。
+------------------+--------------------//-----------------------+ | Unfragmentable | Fragmentable | | Part | Part | +------------------+--------------------//-----------------------+ Figure 1: Large IPv6 Packet
図1:大きなIPv6パケット
This packet is split into several fragments by the sender so that the packet can fit inside the path MTU. Let's say the packet is split into two fragments.
このパケットは、パケットがパスMTU内に収まるように、送信者によっていくつかのフラグメントに分割されます。 パケットが2つのフラグメントに分割されているとしましょう。
+------------------+--------+--------------------+ | Unfragmentable |Fragment| first | | Part | Header | fragment | +------------------+--------+--------------------+ +------------------+--------+--------------------+ | Unfragmentable |Fragment| second | | Part | Header | fragment | +------------------+--------+--------------------+ Figure 2: Fragmented IPv6 Packet
図2:断片化されたIPv6パケット
Consider the first fragment. Let's say it contains a destination options header (DOH) 80 octets long and is followed by a TCP header.
最初のフラグメントを考えてみましょう。 80オクテット長の宛先オプションヘッダー(DOH)が含まれ、その後にTCPヘッダーが続くとします。
Krishnan Standards Track [Page 3] RFC 5722 Handling of Overlapping IPv6 Fragments December 2009 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+<==FH |NextHdr=DOH(60)| Reserved | FragmentOffset = 0 |Res|1| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Identification=aaaabbbb | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+<==DOH |NextHdr=TCP(6) | HdrExtLen = 9 | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | | . . . Options . . . | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+<==TCP | Source Port | Destination Port | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Sequence Number | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Acknowledgment Number | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Offset| Reserved |U|A|P|R|S|F| Window | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Figure 3: First Fragment
図3:最初のフラグメント
The TCP header has the following values of the flags: S(YN)=1 and A(CK)=1. This may make an inspecting stateful firewall think that it is a response packet for a connection request initiated from the trusted side of the firewall. Hence, it will allow the fragment to pass. It will also allow the following fragments with the same Fragment Identification value in the fragment header to pass through.
TCPヘッダーのフラグの値は、S(YN)= 1およびA(CK)= 1です。 これにより、検査中のステートフルファイアウォールは、ファイアウォールの信頼できる側から開始された接続要求に対する応答パケットであると見なされる場合があります。 したがって、フラグメントの通過を許可します。 また、フラグメントヘッダーに同じFragment Identification値を持つ次のフラグメントが通過できるようにします。
A malicious node can form a second fragment with a TCP header that changes the flags and sets S(YN)=1 and A(CK)=0. This can change the packet on the receiving end to consider the packet as a connection request instead of a response. By doing this, the malicious node has bypassed the firewall's access control to initiate a connection request to a node protected by a firewall.
悪意のあるノードは、フラグを変更し、S(YN)= 1とA(CK)= 0を設定するTCPヘッダーを持つ2番目のフラグメントを形成する可能性があります。 これにより、受信側のパケットを変更して、パケットを応答ではなく接続要求と見なすことができます。 これにより、悪意のあるノードはファイアウォールのアクセス制御を迂回して、ファイアウォールで保護されたノードへの接続要求を開始しました。
Krishnan Standards Track [Page 4] RFC 5722 Handling of Overlapping IPv6 Fragments December 2009 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+<==FH |NextHdr=DOH(60)| Reserved | FragmentOffset = 10 |Res|0| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Identification=aaaabbbb | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+<==TCP | Source Port | Destination Port | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Sequence Number | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Acknowledgment Number | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Offset| Reserved |U|A|P|R|S|F| Window | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Figure 4: Second Fragment
図4:2番目のフラグメント
Note that this attack is much more serious in IPv6 than in IPv4. In IPv4, the overlapping part of the TCP header does not include the source and destination ports. In IPv6, the attack can easily work to replace the source or destination port with an overlapping fragment.
この攻撃は、IPv4よりもIPv6の方がはるかに深刻であることに注意してください。 IPv4では、TCPヘッダーの重複部分には、送信元ポートと宛先ポートが含まれていません。 IPv6では、攻撃は簡単に機能し、送信元ポートまたは宛先ポートを重複フラグメントで置き換えることができます。
4. Node Behavior
4.ノードの動作
IPv6 nodes transmitting datagrams that need to be fragmented MUST NOT create overlapping fragments. When reassembling an IPv6 datagram, if one or more its constituent fragments is determined to be an overlapping fragment, the entire datagram (and any constituent fragments, including those not yet received) MUST be silently discarded.
フラグメント化する必要があるデータグラムを送信するIPv6ノードは、重複するフラグメントを作成してはなりません。 IPv6データグラムを再構成するとき、1つ以上の構成フラグメントが重複フラグメントであると判断された場合、データグラム全体(およびまだ受信されていないものを含む構成フラグメント)は通知なく破棄される必要があります。
Nodes MAY also provide mechanisms to track the reception of such packets, for instance, by implementing counters or alarms relating to these events.
ノードは、たとえば、これらのイベントに関連するカウンタまたはアラームを実装することによって、そのようなパケットの受信を追跡するメカニズムを提供する場合もあります。
5. Security Considerations
5.セキュリティに関する考慮事項
This document discusses an attack that can be used to bypass IPv6 firewalls using overlapping fragments. It recommends disallowing overlapping fragments in order to prevent this attack.
このドキュメントでは、重複するフラグメントを使用してIPv6ファイアウォールをバイパスするために使用できる攻撃について説明します。 この攻撃を防ぐために、重複するフラグメントを禁止することをお勧めします。
6. Acknowledgements
6.謝辞
The author would like to thank Thomas Narten, Doug Montgomery, Gabriel Montenegro, Remi Denis-Courmont, Marla Azinger, Arnaud Ebalard, Seiichi Kawamura, Behcet Sarikaya, Vishwas Manral, Christian Vogt, Bob Hinden, Carl Wallace, Jari Arkko, Pasi Eronen, Francis Krishnan Standards Track [Page 5] RFC 5722 Handling of Overlapping IPv6 Fragments December 2009 Dupont, Neville Brownlee, Dan Romascanu, Lars Eggert, Cullen Jennings, and Alfred Hoenes for their reviews and suggestions that made this document better.
著者は、Thomas Narten、Doug Montgomery、Gabriel Montenegro、Remi Denis-Courmont、Marla Azinger、Arnaud Ebalard、川村誠一、Behcet Sarikaya、Vishwas Manral、Christian Vogt、Bob Hinden、Carl Wallace、Jari Arkko、Pasi Eronen、 フランシスデュポン、ネヴィルブラウンリー、ダンロマスカヌ、ラースエガート、カレンジェニングス、アルフレッドホーネスは、このドキュメントを改善するためのレビューと提案をしてくれました。
7. References
7.リファレンス
7.1. Normative References
7.1。 規範的な参考文献
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997. [RFC2460] Deering, S. and R. Hinden, "Internet Protocol, Version 6 (IPv6) Specification", RFC 2460, December 1998. 7.2. Informative References
7.2。 参考情報
[RFC1858] Ziemba, G., Reed, D., and P. Traina, "Security Considerations for IP Fragment Filtering", RFC 1858, October 1995. [RFC4942] Davies, E., Krishnan, S., and P. Savola, "IPv6 Transition/Co-existence Security Considerations", RFC 4942, September 2007. Author's Address Suresh Krishnan Ericsson 8400 Blvd Decarie Town of Mount Royal, Quebec Canada EMail: suresh.krishnan@ericsson.com Krishnan Standards Track [Page 6]