******************************************************************************** * ネットワークの進入フィルタリング * * IP 始点アドレスを偽装したサービス妨害攻撃を阻止する * ******************************************************************************** このメモの位置付け このメモは,インターネット共同体への情報提供である.インターネットの標準等を定め ようとするものでは無い.このメモの配付は無制限に行って良い. 著作権表示 Copyright (C) The Internet Society (1998). All Rights Reserved. 概要 始点アドレスの偽装による,最近の様々なサービス妨害攻撃(Denial of Service (DoS) attacks)は,インターネット・サービス・プロバイダやインターネット社会全体の頭痛 の種となっている.この文書では,進入トラフィックをフィルタリングすることで,DoS 攻撃を阻止するための,単純・効果的かつ直接的な方法を論じる.この DoS 攻撃は,イ ンターネット・サービス・プロバイダ (ISP) 接続点の「背後」から IP アドレスを偽装 して侵入してくるものである. 目次 1. はじめに . . . . . . . . . . . . . . . . . . . . . . . . . 2. 背景 . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 偽装トラフィックの制限 . . . . . . . . . . . . . . . . . . 4. ネットワーク装置に関する今後の機能 . . . . . . . . . . . . 5. 責任 . . . . . . . . . . . . . . . . . . . . . . . . . . . 6. 要約 . . . . . . . . . . . . . . . . . . . . . . . . . . . 7. 安全性に関する考察 . . . . . . . . . . . . . . . . . . . . 8. 謝辞 . . . . . . . . . . . . . . . . . . . . . . . . . . 9. 参照文献 . . . . . . . . . . . . . . . . . . . . . . . . . 10. 著者の住所 . . . . . . . . . . . . . . . . . . . . . . . . 11. 著作権表示全文 . . . . . . . . . . . . . . . . . . . . . . 1. はじめに インターネット上の様々な標的に向けられるサービス妨害攻撃の復活[1] により,インタ ーネット・サービス・プロバイダ (ISP)やネットワークの安全性を求める共同体内に,こ の種の攻撃を鎮静するための,新しい革新的な方法の発見に挑戦する人々が増えている. この目的を達するには多くの困難がある.これらの攻撃の効果や範囲を小さくするツール は,すでにいくつか出ているが,それを実装している機器は少ない. 攻撃方法はすでに知られてきている.しかし,防御対策については,まだ懸念が続いてい る.[2] で引用されている BillCheswick は,彼の著書である "Firewalls and Internet Security" [3] のある章を引いて,攻撃にさらされているシステムの管理者が,有効に防 御する対策に尽きた時にどうするかを述べている.彼は上記の攻撃方法に言及して,攻撃 が実行されることを懸念している. 本文書で議論するフィルタリング方法は,正当なプレフィックス( IP アドレス)から発 信される攻撃に対しては何の防御もできない.しかし,偽装始点アドレスを使うこの種の 攻撃を,別の発信源ネットワークにいる攻撃者が行うことについては,進入フィルタリン グ・ルールで阻止できるだろう.インターネットに接続する全プロバイダが,本文書で説 明するフィルタリングを実装することを推奨する.これにより,正当なプレフィックスを 逸脱した,偽装始点アドレスを使う攻撃者を阻止できる.別な言い方をすれば,複数の downstream ネットワークからルーティング情報を集めている ISP の場合は,これらのル ーティング情報から逸脱したアドレスからのトラフィックを禁止するために,厳密なトラ フィック・フィルタリングを用いるべきである. この種のフィルタリングを実装するもう一つの利点は,攻撃者は適切な,合法的に reac- hable である始点アドレスを使わざるを得ないので,その発信者の真の発信源を簡単に追 跡できることである. 2. 背景 TCP SYN flooding 問題の簡略化した図を以下にあげる: 9.0.0.0/8 host <----- router <--- Internet <----- router <-- attacker TCP/SYN <--------------------------------------------- Source: 192.168.0.4/32 SYN/ACK no route TCP/SYN <--------------------------------------------- Source: 10.0.0.13/32 SYN/ACK no route TCP/SYN <--------------------------------------------- Source: 172.16.0.2/32 SYN/ACK no route [etc.] 仮定: o "host" は標的にされたマシン. o 攻撃者は「正当な」プレフィックス 9.0.0.0/8 内にいる. o 攻撃者は始点アドレスをランダムに変化させて攻撃する.上の例では,始点アドレスは [4] の中から抜き出しており,通常のグローバル・インターネット・ルーティング・テー ブルには存在しないアドレスなので,unreachable になる.しかし,この攻撃を実行する ためには,どんな unreachable なプレフィックスも使うことができる. グローバル・ルーティング・テーブルにある別の正当なネットワークから発信されたよう に,始点アドレスを偽装した場合も述べておく必要があるだろう.たとえば,攻撃者は, 実際には攻撃の発信源ではない無実な組織から攻撃が発信されたように見せ掛けることで 正当なネットワークアドレスを使って混乱をひき起こすことができるだろう.この場合, 攻撃にさらされているシステムの管理者は,見せかけの攻撃源から来る全てのトラフィッ クをフィルタしようとするかも知れない.このフィルタを付け加えると,正当な,真の敵 ではない末端システムが,サービスを拒否されてしまうことになる.つまり,攻撃にさら されているシステムの管理者は,知らない内に攻撃の共犯者になってしまう. さらに複雑なことに,TCP SYN flood 攻撃では,この攻撃とは何の関係もない,一つない しは多くのホストにSYN-ACK パケットが送られることになる.これらのホストは二次的な 被害者である.攻撃者は,2つ以上のシステムを一度に混乱させたことになる. 同様な攻撃はUDPや ICMP floodingを使って試みられている.前者の攻撃 (UDP flooding) は,UDPサービスに接続する偽装パケットを使い,別のサイトに UDP サービスのエコーを 投げ付けさせようとするものである. システム管理者は,管理ドメイン外から,システム診断用のポートに向けたUDP パケット を,*決して*システムに到達させてはならない.後者の攻撃 (ICMP flooding) は, IP サブネット・ブロードキャスト複製機能を巧妙に利用する.この攻撃は,大きなマルチ・ アクセス・ブロードキャスト・ネットワークを受け持っているルータが, IP ブロードキ ャスト・アドレス( 10.255.255.255 宛てのような)を第二層のブロードキャスト・フレ ーム( イーサネットでは FF:FF:FF:FF:FF:FF )に組み直す働きを利用している.イーサ ネットの NIC ハードウェア(特に MAC 層のハードウェア)は,通常の動作では特定の番 号のみを聞くようになっている.通常の動作で,全ての装置が共有するMAC アドレスは, メディア・ブロードキャスト,つまり FF:FF:FF:FF:FF:FF である.この場合,装置はそ のパケットを受け取り,処理プログラムにインタラプト・シグナルを送る.ゆえに,これ らブロードキャスト・フレームの flood は,末端システムの全リソースを浪費させてし まう [9].システム管理者は,デフォルトでは境界ルータは directed ブロードキャスト をフォワードしないように設定しておくのが賢明だろう. TCP SYN 攻撃の始点アドレスが unreachable であった場合,標的になったホストはレス ポンスを待つためのシステム・リソースを確保しようとする.攻撃者は連続してパケット を送る度に始点アドレスを変更し,ホストのリソースを食い潰してしまう. また,攻撃者が始点アドレスとして,別の実際にあるホストのものを使うと,攻撃にさら されているシステムは,コネクション確立シーケンスの送信元だと思い込まされているホ ストに,大量の SYN/ ACK パケットを送ろうとする.このようにして,攻撃者は2つのシ ステム,すなわち攻撃対象のシステムと,グローバル・ルーティング・システムにある偽 装アドレスを実際に使っているシステム,に被害を与える. 上記の攻撃方法により,システムはパフォーマンスの深刻な低下を招くか,もしくはクラ ッシュしてしまう. 攻撃の脅威に対応して,ほとんどのオペレーティング・システム・ベンダは,高頻度の攻 撃ににも持ちこたえることができるようにソフトウェアを変更している.問題を解決する ための一部としては,有効で歓迎すべきことである.進入フィルタリングは,実装が普及 し,十分な効果を得るためには時間がかかるが,オペレーティング・システムの機能拡張 はすぐにできる.両者の対策をあわせて,始点アドレス偽装攻撃対策として効果があがる はずである.ベンダとプラットフォーム・ソフトウェアのアップグレード情報については [1] を参照されたい. 3. 偽装トラフィックの制限 この種の攻撃で浮かび上がる問題は多く,ホスト上のソフトウェアの欠陥から,ルーティ ング方法, TCP/IP プロトコル自体の問題まである.しかし, downstream ネットワーク から,既知のプレフィックスへ送信される通過トラフィックを制限することにより,攻撃 で始点アドレス偽装を使うことは,実質的に不可能になるだろう. 11.0.0.0/8 / router 1 / / / 9.0.0.0/8 ISP <----- ISP <---- ISP <--- ISP <-- router <-- attacker A B C D 2 / / / router 3 / 12.0.0.0/8 上記の例では,攻撃者は 9.0.0.0/8 にいて, ISP D を通じてインターネットに接続して いる.攻撃者の属するネットワークからの接続がある「ルータ 2」の進入(入力)リンク 上での入力トラフィック・フィルタは, 9.0.0.0/8 の範囲内の始点アドレスをもつトラ フィックのみ通過を許し,攻撃者が,範囲外の始点アドレスを使えないようにする. つまり,上の例の「ルータ 2 」の進入フィルタは以下のチェックを行う: もし   パケットの始点アドレスが 9.0.0.0/8 の範囲内 ならば  適切なパケットとしてフォワードする もし   パケットの始点アドレスがそれ以外 ならば  拒否する ネットワーク管理者は,拒否したパケットの記録を残しておくべきである. この記録は,疑わしい活動をモニタする基礎資料となる. 4. ネットワーク装置に関する今後の機能 将来の装置実装では,更に以下の機能を考慮すべきである.これは,注目しておく価値が ある. o リモート・アクセス・サーバ上での自動フィルタリングの実装.アクセス・サーバには 大抵の場合,一台の PC から一人の利用者が電話接続してくる.当該 PC から出されるパ ケットの,ただ一つの IP アドレスは,(それが静的でも, 動的でも) ISP から割り当 てられるものの一つである.リモート・アクセス・サーバは,全ての進入パケットをチェ ックし,彼が送信するパケットが始点アドレスを偽装していないか,確かめることができ る.もちろん利用者がリモート・ルータを使って正式にネット,サブネットとして接続し てきた場合の対応も準備しておくべきだが,これについては,オプションのパラメータと して実装した方が良いだろう.我々はいくつかのベンダとISP が,この機能をすでに実装 し始めているとの報告を受けている. 我々は,[8] の提案のように,ルータが送信者の始点 IP アドレスの認証をするよう提案 しようとも考えたが,この方法は,現実のネットワークではうまく機能しないだろう.そ の方法とは,始点アドレスを参照して,当該アドレスの戻り経路が,パケットが届いたの と同じインターフェースを通ることを確かめる,というものである.しかし,複数の経路 が存在する現在のインターネットにおいては,明らかに問題が多い. 5. 責任 このフィルタリングで,ある種の「特別な」サービスが使えなくなるかも知れない.しか し,ISP がこの特別なサービス機能をを使いたいと思うなら,進入トラフィック・フィル タリングに影響を受けないような,別の実装を考えた方が良い. [6] で定義されているモービル IP は,進入トラフィック・フィルタリングに特に影響を 受ける.仕様では,モービル・ノードへのトラフィックはトンネルされるが,モービル・ ノードからのトラフィックはトンネルされない.その結果,モービル・ノードからのパケ ットは,基地局に割り当てられているアドレスとは異なった始点アドレスを持つことにな る.MobileIP Working Groupは,この問題の解決策として,[7]で「逆トンネル("reverse tunnels") 」を仕様化している.進行中のこの作業は,モービル・ノードから送られてく るデータが,インターネットに出る前に home agent へトンネルされる方法を提供する. 逆トンネリング法のもう一つの利点は,マルチキャスト・トラフィックをうまく扱えるこ とである.モービル IP システムの実装では,この逆トンネリング方を実装することが推 奨される. 先に記したように,進入トラフィック・フィルタリングは,始点アドレス偽装攻撃をかな り有効に防ぐことができるが,フィルタで許可した範囲内ではあるが別のホストと同じ始 点アドレスを,攻撃者が偽装することについては排除できない.しかし,この種の攻撃が あった場合,ネットワーク管理者は,その攻撃が,実際にそのプレフィックス内から出さ れたものであることは確信できる.そして,犯人を追い詰めることができるし,最悪の場 合でも,問題のかたがつくまで始点アドレスのある範囲をブロックすれば良い. 進入フィルタリングが DHCP ないし BOOTP の環境で使われる場合,必要であれば,始点 アドレスが 0.0.0.0 で,終点アドレスが 255.255.255.255 のパケットがルータの relay agent に届くことを確認することを,ネットワーク管理者に助言しておく.しかし, directed ブロードキャスト複製の範囲は限定し,無闇にフォワードしてはならない. 6. 要約 インターネットに接続するネットワークの末端境界(periphery) で,進入トラフィック・ フィルタリングを行うことにより,始点アドレス偽装を用いるサービス妨害攻撃を効果的 に抑止できる.ネットワーク・サービス・プロバイダおよび管理者は,境界ルータ上でこ の種のフィルタリングを実装し始めており,全てのサービスプロバイダが,できるだけ早 く実装することが求められる.この攻撃方法を根絶することで,インターネット共同体全 体の助力になるとともに,利用者からのリンク上ですでに進入フィルタリングをしている ことを示すことで,攻撃源を追っている他のサービス・プロバイダの助けにもなる. 集合ネットワークの管理者たちは,集合ネットワークがそのような問題の源にならないよ うにしておくべきである.フィルタリングは,一つの組織内でシステムを不適切にネット ワーク接続しようとする利用者に,問題をおこさせないために使うものではある.しかし 実際には,不満分子が無闇に攻撃することを阻止するためにも使えるのである. 知らない内に,この種の攻撃源にならないようにしておくことは,全ネットワーク管理者 の責任である. 7. 安全性に関する考察 本文書の主要な目的は,安全対策能力と,インターネット共同体全体への配慮を習慣づけ ることである.より多くのインターネット・プロバイダ,集合ネットワークの管理者が進 入フィルタリングを実装し,攻撃者が始点アドレスを偽装して攻撃を仕掛ける機会を著し く減少させる.攻撃源がより「正当」になるほど,攻撃源を追いかけることが簡単になる インターネットで攻撃の数や頻度が全体として減少することで,実際の攻撃源を追いかけ るのに,より多くのリソースが使えることになる.