重複する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]