![]() | Home |
||||||||
|
|
|
||||||||
|
|
|||||||||
|
|
Cisco Security Advisory: TCP Vulnerabilities in Multiple IOS-Based Cisco Products文書 ID:50960Revision 1.0 For Public Release 2004 April 20 21:00 UTC (GMT) 目次要約 要約Transmission Control Protocol の仕様 (RFC793) に脆弱性があることが、 外部のある研究者によって発見されました。不正利用された場合は、かつて広く認知されていたよりもはるかに短時間で任意の確立されたTCP コネクションをリセットできます。アプリケーションによっては、コネクションは自動的に再確立されます。その他の場合は、ユーザは再度操作(Telnet や SSH セッションの新規オープン)を行う必要があります。攻撃を受けるプロトコル によっては、攻撃の成功によるコネクションの切断後の考慮が必要な派生的な 影響があります。この攻撃は装置(例、ルータ、スイッチ、コンピュータ)で 終端するセッションのみが該当し、装置を通過するトラフィック(例、ルータ によって転送されるトランジット(通過)トラフィック)は影響を受けません。 さらに、これによって直接的にデータの完全性や機密性が損なわれることは ありません。 TCP プロトコルスタックを有する全てのシスコ製品は本脆弱性の影響を受けます。 本アドバイザリは Cisco IOS ソフトウェアが稼動するシスコ製品の脆弱性 について記述したもので、以下にて確認可能です。 http://www.cisco.com/warp/public/707/cisco-sa-20040420-tcp-ios.shtml 対となるアドバイザリは Cisco IOS ソフトウェアが稼動する以外の製品の 脆弱性についた記述したもので、以下にて確認可能です。 http://www.cisco.com/warp/public/707/cisco-sa-20040420-tcp-nonios.shtml 日本語による情報は、英語による原文の非公式な翻訳であり、英語原文との 間で内容の齟齬がある場合には、英語原文が優先いたします。 該当製品TCP プロトコルスタックを有する全てのシスコ製品は本脆弱性の影響を受け ます。全てのシスコ製品、モデルが影響を受けます。起こりうる障害の深刻 度は、TCP を使用する(上位)プロトコルやアプリケーションに依存します。この攻撃は装置(例、ルータ、スイッチ、コンピュータ)で終端するセッショ ンのみが該当し、装置を通過するトラフィック(例、ルータによって転送さ れるトランジット(通過)トラフィック)は影響を受けません。 詳細TCP はトランスポート層のプロトコルで、コネクション型で信頼性のある Internet Protocol (IP) パケットの配送を提供するように設計されています。 この実現のために、TCP は状態 (state) とパケットの再構築 (reassemble) するための順序を特定する順序番号 (sequence number) の混在するフラグを 使用します。また、TCP は応答番号 (acknowledgement number) と呼ばれる 期待する次のパケットの順序番号 (sequence number) を提供します。 パケットは"window" と呼ばれる、ある範囲の応答番号 (acknowledgement number) に順序番号 (sequence number) が入る場合にのみ、受信側の TCP スタック によって再構築されます。リセット (RST) フラグが設定される際は、戻り のパケットはないため、応答番号 (acknowledgement number) は使用されま せん。TCP の完全な仕様は以下より入手可能です。 http://www.ietf.org/rfc/rfc0793.txt RFC793 の仕様によると、確立された TCP コネクションは、reset (RST) もしくは synchronize (SYN) フラグをセットしたパケットを送信すること によってリセットすることが可能です。これを実行するには 4-tuple(送信元、 宛先のIP と ポート)とともに順序番号 (sequence number) が既知あるいは 推測できることが前提となります。しかし、順序番号 (sequence number) は完全に一致する必要がなく、広告された window に収まっていれば十分で す。このことにより、敵対者が必要な労力は低減することとなります。 window が大きいほど、コネクションのリセットが容易となります。 送信元、 宛先 IP アドレスが比較的容易に特定できるのに対して、送信元 TCP ポー トは推測しなくてはなりません。宛先 TCP ポートは通常、標準的なサービ ス(例、Telnet の 23、HTTP の 80)に関しては既知です。Cisco IOS は予 測可能な一時的なポート(番号)を予想可能な増分(後続のコネクションに は次のポート(番号)が使用されます)で既知のサービスに使用します。こ れらの値は特定の IOS バージョンやプロトコルでは一定であってもリリースによって異なります。
以下は通常の TCP セッションの終了の例です:
Host(1) Host(2)
| |
| |
| ACK ack=1001, window=5000 |
|<----------------------------|
| |
Host(1) がセッションを終了
| RST seq=1001 |
|---------------------------->|
| |
Host(2) がセッションを終了
さらに、以下のシナリオもありあえます:
Host(1) Host(2)
| |
| |
| ACK ack=1001, window=5000 |
|<----------------------------|
| |
Host(1) がセッションを終了
| RST seq=4321 |
|---------------------------->|
| |
Host(2) がセッションを終了
2つめの例で、順序番号 (sequence number) が次の期待するもの(すなわち 1001) でないにもかかわらず、どのように RST パケットがセッションを終了できたか 注目してください。広告された範囲の window に順序番号 (sequence number) が収まっていれば十分なのです。この例では、Host(2) が順序番号 (sequence number) 1001 から 6001 を受信対象としています。そして4321 はその範囲内にあります。 一般的には、TCP コネクションが1分以上確立されたままのプロトコルは影響が あると考えるべきです。セッションは再確立されるため、不正利用は多くの場合、 単に迷惑な行為にすぎません。 * Cisco IOS Cisco IOS が稼動するすべての装置に脆弱性があります。 セッションのエンド・ポイントのみがこの脆弱性によって影響を受けるため、 装置そのもので終端するTCP セッションのみが影響を受けます。 装置を通過するセッションは、起点または終点の装置に脆弱性がある場合のみ 影響を受けますが、通過するルータそのものの上では攻撃不可能です。 本脆弱性によって、データの完全性や機密性は影響を受けません。影響を受ける のは可用性のみです。 本脆弱性は Cisco Bug Toolkit(登録のあるお客様のみ)で BugID CSCed27965 と CSCed38527 でドキュメントとして提供しております。 * Cisco IOS FireWall (IOS FW) IOS FW はルータを通過するパケットを監視し、セッションの状態を内部的に 保持します。したがって、必要なポートを open し、トラフィックを通過させ セッション終了後にそれらを close することが可能です。IOS FW は 装置を通過するパケットすべてを傍受 (intercept) し調べるため、IOS FW を通過する TCP セッションはすべて攻撃の影響を受けることになります。 起点もしくは終点の装置に脆弱性がなくともこの事実はあてはまります。 本脆弱性は Cisco Bug Toolkit(登録のあるお客様のみ)で BugID CSCed93836 でドキュメントとして提供しております。 * Network Address Translation (NAT) 本脆弱性は NAT に関して一切影響はありません。NAT 機能は単純に ポート (番号)や IP アドレスを書き換えます。この機能は TCP フラグの解釈は 行わず、したがってこの攻撃に対して脆弱性はありません。しかし、攻撃 パケットはルータを通過し、受信する装置は影響されることがあります。 影響影響は個別のプロトコルごとに異なります。ほとんどの場合において TCP コネクション は自動的に再確立される一方で、いくつかの特定のプロトコルではコネクション の切断による派生的な影響のほうがより大きい場合があります。Border Gateway Protocol (BGP) Cisco PSIRT では、BGP への影響が潜在的に最も影響が大きいとみています。 External (eBGP)、Internal (iBGP) セッションのいずれも同等に影響を受けます。 もし敵対者が2つのルータ間の BGP セッションを切断した場合、2つのルータ間で 互いに広告 (advertise) されたすべての経路は消去 (withdraw) されます。この 動作は、ルータが攻撃され、次のアップデート (update) もしくは キープアライブ (keepalive) パケットが対向のルータ送信された直後に発生します。 BGP ピアリングセッションそのものは1分以内に再確立されます。ルーティングの 設定によって、経路の消去 (withdraw) によって以下のような派生的影響がありえ ます。 * 影響を受けるセッションの両側で適切なスタティック・ルートが設定されている 場合は悪影響はありません。 * トラフィックは他の経路に迂回します。これによりいくつかの経路が輻輳します。 * ネットワークの一部分が完全に分断され、到達不可能になります。 BGP ピアリングセッションが短時間に数回切断された場合、BGP 経路の抑制 (route dampening) が引き起こされることがあります。抑制 (dampening) とは影響を受けた経路が ルーティングテーブルから一定時間消去されることを意味します。その時間はデフォルト で 45 分です。その間、攻撃を受けた BGP セッション上で広告 (advertise) された 経路のすべてのトラフィックは、迂回するか、その部分のネットワークが到達不能に なります。経路の抑制 (route dampening) はデフォルトの設定では有効になって いません。 IOS FireWall Feature Set TCP エンドポイントに脆弱性がない場合でも、TCP ベースのコネクションを 攻撃で終了させることが可能です。 ソフトウェアバージョンおよび修正下記の表中の各列は、対象となるリリーストレインとプラットフォーム、あるいは製品を 表しています。もし、あるリリーストレインが脆弱である場合、最も早く利用可能な修正 済みリリースと利用可能予定日付が、それぞれ "Rebuild", "Interim", "Maintenance" 欄 に記載されています。それぞれのトレインにおいて、特定の欄のリリースよりも以前の リリース(最も早い修正リリースよりも前)を使用している装置は、脆弱であると みなすことができます。その場合は表示されているリリースか、それ以降のバージョン (最も早い修正リリースか後)へのアップグレードが必要です。リリースを選択する際には、次の IOS リリース定義にご留意ください。 * Maintenance もっとも厳密に試験されており、下記表の列のいずれのラベルのリリースにおいて高 く推奨されます。 * Rebuild 同じトレイン内で、一つ前の Maintenance またはメジャーリリースから構築された もので、ある特定の問題の修正を含むものです。試験項目は少なくなっていますが、 修正に必要なごく少ない変更のみを含んだものです。 * Interim Maintenance リリース間に定期的に構築され、試験項目は少なくなっています。 Interim は脆弱性に対処した適切なリリースが存在しない場合に選択されるべきで、 Interim イメージを使用した場合には、次の Maintenance リリース後に迅速にアッ プグレードされなければなりません。Interim リリースは通常経路からの入手は不可 能で、事前に Cisco Technical Assistance Center (TAC) に手配を行わない限り、 お客様が CCO からダウンロードすることはできません。 IOS FireWall の修正 IOS イメージ
修正 IOS イメージと移行パス
修正ソフトウェアの入手契約を有するお客様通常の経路でアップグレードのためのソフトウェアを入手してください。ほとんどの お客様は、シスコのワールドワイドウェブサイト上のソフトウェアセンターから入手 することができます。http://www.cisco.com/tacpage/sw-center/ サードパーティによるサポートを受けているお客様シスコパートナー、正規販売代理店等と、過去または現在の契約を通じてシスコ製品を購入、保守管理しているお客様は、その正規販売代理店を経由して無償ソフトウェアアップグレードを入手してください。 シスコサービス契約を結んでいないお客様 シスコから直接購入するもシスコサービス契約を結んでいないお客様、およびサード
パーティーベンダーから購入し、そのベンダーから修正済ソフトウェアを入手できな
いお客様は、次に示す連絡先を通じてシスコ Technical Assistance Center (TAC) に
連絡し、修正済ソフトウェアを入手して下さい。TAC への連絡先は以下の通りです。
回避策RST フラグ(リセットパケット)を利用した本脆弱性の不正利用は、OSVDB.org の Paul (Tony) Watson によって発見されました。それを SYN フラグの利用に拡張 した攻撃方法については、解決に協力するベンダーによって発見されました。 回避策の効果は、お客様の状況、使用製品、 ネットワークトポロジー、トラフィックの性質や組織の目的に依存します。影響製品が 多種多様であるため、回避策を実際に展開する前に、対象とするネットワークで適用 する回避策が最適であるか、お客様のサービスプロバイダーやサポート組織にご相談 ください。IOS FireWall では影響を緩和する利用可能な回避策はありません。 BGP に関しましては回避策と、数種類の緩和策を提供いたします。 BGP セキュリティ・リスクアセスメント、緩和策、展開のベスト・プラクティスに 関しますさらなる情報は以下より入手可能です。 ftp://ftp-eng.cisco.com/cons/isp/security/BGP-Risk-Assesment-v.pdf * BGP MD5 secret、BGP に対する回避策はセッションごとにピア間に MD5 secret を 設定することになります。設定例としましては以下のようになります。 router(config)#router bgp <AS-_number> router(config-router)#neighbor <IP_address> password <enter_your_secret_here> 両方のピアで同時に同一の MD5 secret 設定する必要があります。さもなくば 確立されている BGP セッションが切断され、両方の装置で同一の secret が 設定されるまで、新しい BGP セッションが確立されません。BGP の設定方法に 関する詳細な議論は、以下のドキュメントをご参照ください。 http://cisco.com/en/US/products/sw/iosswrel/ps1828/products_configuration_guide_chapter09186a00800ca571.html 一旦 secret が設定された後は、定期的に変更するのが無難といえます。変更 間隔はセキュリティーポリシーに依存しますが、2〜3ヶ月以内であるべきと いえます。secret を変更する場合には、やはり両側の装置で同時に実行する必要 があります。例外は使用する IOS リリースに CSCdx23494 が組み込まれている場合 になります。この修正によって、片方のみで MD5 secret が変更されても、BGP セッションは切断されません。しかし、その場合でも BGP update は、両側の装置で 同一の secret が設定されるか、secret が両側の装置から削除されるまで、処理 されません。 以下の攻撃を成功させるために必要なスプーフィング(捏造)の可能性を 低める対策の1つないし複数を適用することにより、この脆弱性による BGP への 影響を緩和することが可能です。 * 基幹設備へのアクセスの遮断 通過するトラフィックを遮断するのはしばしば困難ですが、基幹設備宛ての 許可されていないトラフィックを特定し、そのトラフィックをネットワークの 境界で遮断することは可能です。Infrastructure ACLs (iACL) はネットワーク セキュリティのベスト・プラクティスと考えられ、本脆弱性の回避策としてのみ ならず、ネットワークセキュリティ向上に長期的にも貢献すると考えるべきです。 "Protecting Your Core: Infrastructure Protection Access Control Lists" のホワイトペーパーにはアクセスリストによって基幹装置を守るためのガイドラインと、 推奨される実施方法が記載されています。 http://www.cisco.com/warp/public/707/iacl.html 例外は基幹設備にアクセスする正当な理由がある装置(例 BGP ピア、NTP ソース、 DNS サーバー など)です。 * スプーフィング対策のネットワーク境界への設定 敵対者が本アドバイザリに記述されている攻撃を実行するためには、BGP ピア のうちのいずれかと同一の送信元 IP アドレスでパケットを送らなくてはなり ません。スプーフ(捏造)パケットは Unicast Reverse Path Forwarding (uRPF) 機能か Access Control Lists (ACL) を用いて阻止することができます。uRPF を 有効にすれば、すべてのスプーフ(捏造)パケットは、機能が有効になっている 最初の装置で破棄されます。uRPF を有効にするには以下のコマンドを使用します。 router(config)#ip cef router(config)#ip verify unicast reverse-path uRPF がどのように動作し、様々な状況に応じてどのように設定するかにつきま しては、以下をご参照ください。 http://cisco.com/en/US/products/sw/iosswrel/ps1835/products_configuration_guide_chapter09186a00800ca7d4.html ftp://ftp-eng.cisco.com/cons/isp/security/URPF-ISP.pdf これは、特に非対称ルーティング (asymetric routing) を使用している場合は 特に重要です。 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||