ネットワークワーキンググループ
Request for Comments: 3128
更新: 1858
分類: 情報提供
I. Miller
Singularis Ltd
2001年6月

English

タイニーフラグメント攻撃の変形に対する防護
(Protection Against a Variant of the Tiny Fragment Attack)

このメモの位置づけ

このメモは、インターネットコミュニティに情報を提供するものです。 これは、いかなるインターネット標準をも定めるものではありません。 このメモの配布には制限はありません。

著作権表記

Copyright (C) The Internet Society (2001). All Rights Reserved.

要旨

本書は、どのようにRFC 1858準拠フィルタが、 このRFCの3.1節に記述されている「タイニーフラグメント攻撃」の変形に対して脆弱性を持つ可能性があるかを検討しています。 本書は、この攻撃を記述し、矯正手段をとることを推奨しています。

1. はじめに English

RFC 1858は、 インターネットファイアウォール上の一連の攻撃についての優れた記述を提供し、 対策を提案しています。 しかし、 これらの対策のひとつである「間接的手法」(3.2.2節)は、 記述されている2つの攻撃の組み合わせに対して脆弱性をもちます。

この攻撃は、 「タイニーフラグメント攻撃」(3節)「オーバーラッピング フラグメント攻撃」(4節)の特徴を組み合わせます。

1.1 この攻撃の余地 English

フィルタリングルールが、 マシンに対して入り方向のコネクションを許可しており、かつ、 同一ホスト上に出方向コネクションのみを許可する他のポートがある場合、 この攻撃は、 その出方向のみのポートに対して入り方向コネクションを許してしまいます。

最初のコネクションメッセージだけがフラグメントされる必要があることを銘記してください。 ひとたびコネクションが確立されると、 その上の以降のトラフィックは正規のものとされます。 この弱点の重大さは、適用されているセキュリティポリシーに依存します。

2. タイニーオーバーラッピングフラグメント攻撃 English

この攻撃は典型的には 3つのフラグメントから成ります。

フラグメント1: (フラグメントオフセット = 0; 長さ >= 16)
ヘッダー全体を含み、完全に正規なものです。 典型的には、 標的ホスト上の入り方向のコネクションを受け取ることが許されているポートに対して新しいTCPコネクションを開始するSYNパケットを表現します。 (例:ポート25 SMTPに対する入り方向コネクション。)
フラグメント2: (フラグメントオフセット = 0; 長さ = 8)
最初の8バイトだけであり、 ヘッダーの他の8バイトによっては正規のものたりえますが、 フラグメント1からの対応するバイトと組み合わせると正規なものではありません。 このようなフラグメントは、 TCPヘッダーからのポート番号とシーケンス番号だけを含んでいます。 典型的には、このパケットは、 到達先ポート番号を入り方向コネクションを受け取ることが許可されていないはずの到達先ホストのポート番号に置き換えます。
フラグメント3: (フラグメントオフセット >= 2; 長さ = メッセージの残り)
ヘッダーを含まず、メッセージを完結させます。 (この3番目のフラグメントは、この攻撃の部分ではありません。 しかし、フラグメント1は、完全なメッセージたりえず、もしくは、 フラグメント2が到達する前にアプリケーションまで転送される可能性があるので、 それゆえ3番目のフラグメントは必要不可欠です。)

2.1 攻撃の例 English

入り方向パケットについて、次のような平凡な一式のルールを考えます。:

No Action Source
Port
Dest.
Port
Flags Purpose
1 Permit >1023 SMTP ANY Incoming E-mail
2 Permit >1023 ANY Ack=1 Existing FTP data
channel connections.
3 Deny ANY ANY ANY Default deny
フラグメント1:攻撃者(1234) -> 標的(SMTP) Ack=0
これは新しいSMTPコネクションであり、ルール1によって許可されます。
フラグメント2:攻撃者(1234) -> 標的(Telnet=23) Ack=absent
すべてのフィールドは、 FTPパケットの開始である可能性があるので、 ルール2への準拠を表現しています。

標的マシンのIPスタック中の精密なフラグメント再構築の実装によっては、 フラグメントBは、 下記のことを行うためにフラグメントAを上書きすることができます。:

攻撃者(1234) -> 標的(Telnet) Ack=0
(新しい telnet コネクション)

2.2 「間接的手法」の失敗 English

間接的手法は、FO=1でパケットを拒否することのみによって、 タイニーフラグメント攻撃とオーバーラッピングフラグメント攻撃の両方を解決しようとしています。 しかし、上記のフラグメントにはFO=1を持ったものはなく、 それゆえ拒否されるものはありません。

注意深く読めば失敗は明らかです。 3.2.2節「間接的手法」において、 RFC 1858 は述べています。:

間接的手法は、 0オフセットのフラグメントの外に「興味ある」ヘッダーフィールドがあるようにするためにTCP パケットがフラグメントされている場合、 FOが1であるフラグメントが存在しなければならない、 という経験則に依拠します。

これは通常、誠意あるソフトウェアによる本物のフラグメントである場合、 正しいといえます。 しかし、ハッカーが、 8バイトのFO=0フラグメントを作成してしまったのでFO=1フラグメントを作成することを強いられている、 というのは単純な誤りです。 この脆弱性は、誤った前提から発生しています。

3. 対策 English

RFC 1858の間接的手法は、 一見とてもエレガントではありますが、頑健ではありません。 FO=1パケットをブロックすることに加えて、 不完全なヘッダーを保持するFO=0をブロックすることが必要不可欠です。

if FO=0 and PROTOCOL=TCP and TRANSPORTLEN < tmin then
        DROP PACKET
if FO=1 and PROTOCOL=TCP then
        DROP PACKET
    

4. セキュリティについての考慮事項 English

このメモ全体が、 フラグメントされたIPパケットをフィルタすることについての、 セキュリティの観点からの意味合いに関するものです。

5. 著者のアドレス

Ian Miller
Singularis Ltd
32 Stockwell Street
Cambridge
CB1 3ND UK

電話: +44 1223 511943
EMail: Ian_Miller@singularis.ltd.uk

翻訳者のアドレス

宮川寧夫
情報処理振興事業協会
セキュリティセンター

EMail: miyakawa@ipa.go.jp

6. 著作権表記全文

Copyright (C) The Internet Society (2001). All Rights Reserved.

This document and translations of it may be copied and furnished to others, and derivative works that comment on or otherwise explain it or assist in its implementation may be prepared, copied, published and distributed, in whole or in part, without restriction of any kind, provided that the above copyright notice and this paragraph are included on all such copies and derivative works. However, this document itself may not be modified in any way, such as by removing the copyright notice or references to the Internet Society or other Internet organizations, except as needed for the purpose of developing Internet standards in which case the procedures for copyrights defined in the Internet Standards process must be followed, or as required to translate it into languages other than English.

The limited permissions granted above are perpetual and will not be revoked by the Internet Society or its successors or assigns.

This document and the information contained herein is provided on an "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.

謝辞

RFC編集者のための資金は現在、 Internet Societyによって提供されています。