Cisco Security Advisory: Cisco IOS Software TCP Denial of Service Vulnerability

2010 年 8 月 13 日 - ライター翻訳版
その他のバージョン: PDFpdf | 英語版 (2010 年 8 月 12 日) | フィードバック


Advisory ID: cisco-sa-20100812-tcp

http://www.cisco.com/warp/public/707/cisco-sa-20100812-tcp.shtml

日本語による情報は、英語による原文の非公式な翻訳であり、英語原文との間で内容の齟齬がある場合には、英語原文が優先します。

Revision 1.0

For Public Release 2010 August 12 2130 UTC (GMT)


要約

Cisco IOS® ソフトウェア リリース 15.1(2)T は、TCP 確立中に Denial of Service(DoS; サービス拒否)の脆弱性の影響を受けます。この脆弱性によって、TCP 初期接続が SYNRCVD 状態または SYNSENT 状態のままにされてしまう可能性があります。相当数の TCP 初期接続がこれらの状態にあると、システム リソースを消費するほか、該当するデバイスが新規の TCP 接続を受け入れられない、または開始できなくなる可能性があります。デバイスに対する TCP ベースのリモート管理アクセスも同様です。

この脆弱性の不正利用において、認証は必要ありません。攻撃者は、この脆弱性を引き起こすために 3 ウェイ ハンドシェイクを確立する必要がありません。そのため、この脆弱性はスプーフィングされたパケットを使って不正利用できます。この脆弱性は、通常のネットワーク トラフィックで引き起こされる可能性もあります。

シスコは、この脆弱性に対応するための Cisco IOS ソフトウェア リリース 15.1(2)T0a をリリースしました。

このアドバイザリは次のリンクに掲載されます。 http://www.cisco.com/warp/public/707/cisco-sa-20100812-tcp.shtml

該当製品

この脆弱性に該当するのは、Cisco IOS ソフトウェア リリース 15.1(2)T だけです。他の Cisco IOS ソフトウェア リリースは、この脆弱性の影響を受けません。Cisco IOS XE ソフトウェア、Cisco IOS XR ソフトウェア、および Cisco NX-OS ソフトウェアは、この脆弱性の影響を受けません。

脆弱性が存在する製品

シスコ デバイスは Cisco IOS ソフトウェア リリース 15.1(2)T を稼動しているときに、この脆弱性の影響を受けます。シスコ製品で稼動している Cisco IOS ソフトウェア リリースを確認するには、デバイスにログインし show version コマンドを実行してシステム バナーを表示させます。「Internetwork Operating System Software」、「Cisco IOS Software」、あるいはこれらに類似するシステム バナーによってデバイスで Cisco IOS ソフトウェアが稼動していることを確認できます。 その後ろにイメージ名が括弧の間に表示され、続いてバージョンと Cisco IOS ソフトウェア リリース名が表示されます。他のシスコ デバイスでは、 show version コマンドがない場合や、表示が異なる場合があります。

次の例は、シスコ製品で Cisco IOS ソフトウェア リリース 15.1(2)T が稼働し、インストールされているイメージ名が C2800NM-ENTSERVICES-M であることを示しています。

Router#show version
Cisco IOS Software, 2800 Software (C2800NM-ENTSERVICES-M), Version 15.1(2)T, 
    RELEASE SOFTWARE (fc1)
Technical Support: http://www.cisco.com/techsupport
Copyright (c) 1986-2010 by Cisco Systems, Inc.
Compiled Mon 19-Jul-10 16:38 by prod_rel_team

<output truncated>

Cisco IOS ソフトウェアのリリース命名規則の追加情報は『 White Paper: Cisco IOS Reference Guide』で確認できます。

脆弱性が存在しない製品

その他の Cisco IOS ソフトウェア バージョンは、この脆弱性の影響を受けません。

他のシスコ製品において、このアドバイザリの影響を受けるものは現在確認されていません。

詳細

TCP はパケット スイッチド ネットワークに、信頼できるデータ転送サービスを提供します。TCP は、OSI 参照モデルのトランスポート レイヤ(レイヤ 4)に対応します。TCP が提供するサービスの中には、ストリーム データ転送、信頼性、効率的なフロー制御、全二重通信、および多重化通信があります。

Cisco IOS ソフトウェアでは、TCP 接続が終端される際に Transmission Control Block(TCB; 転送制御ブロック)が割り当てられます。割り当てられた TCB は TCP のポート番号と関連付けられ、TCP の状態とともに show tcp brief all command-line Interface(CLI; コマンドライン インターフェイス)コマンドの出力にすべて表示されます。

Cisco IOS ソフトウェア バージョン 15.1(2)T には、TCP 初期接続を SYNRCVD 状態または SYNSENT 状態のままに留めて、そこからの状態の移行が妨げられる脆弱性が含まれます。何度も show tcp brief all コマンドの出力を確認することで、TCP セッションがこれらの状態のいずれかに留まっているかどうかを確かめることができます。

この脆弱性は、デバイスが TCP トラフィックを終端または送信した場合にだけ引き起こされます。機器を通過するトラフィックは、この脆弱性のトリガーとはなりません。

ルータに対する接続、およびルータからの接続のいずれにおいても、この脆弱性が引き起こされる可能性があります。ルータに対する接続の例では、ルータに ping を送信することはできても、デバイスと Telnet 接続または SSH 接続を確立できないことが挙げられます。たとえば、管理者はデバイスに ping を送信できても、デバイスとの Telnet 接続または SSH 接続を確立できません。CLI プロンプトからリモート デバイスに Telnet 接続または SSH 接続を試みた場合では、セッションがハングし、「Trying <ip address|hostname> ...」というプロンプトが表示されます。ルータから開始または終端された接続をソケット テーブルから削除するには、 clear tcp tcb 0x<address> コマンドで関連する TCB を消去します。

CLI コマンド debug ip tcp transactions の出力を確認したとき、エラー メッセージの connection queue limit reached: port <port number> または No wild listener: port <port number>が表示されている場合は、デバイスに脆弱性が存在する可能性があります。

また、show tcp brief all CLI コマンドの出力に何度も SYNRCVD 状態または SYNSENT 状態にある TCB が多数存在すると表示された場合は、デバイスが脆弱である可能性があります。

次の例は、複数の HTTP セッション、SSH セッション、および Telnet セッションが TCP SYNRCVD 状態にあるデバイスを示しています。

Example#show tcp brief all
TCB       Local Address               Foreign Address             (state)
07C2D6C8  192.168.0.2.443             192.168.0.5.11660           SYNRCVD
07C38128  192.168.0.2.23              192.168.0.5.35018           SYNRCVD
07C2DD60  192.168.0.2.443             192.168.0.5.19316           SYNRCVD
07C2A8A0  192.168.0.2.80              192.168.0.5.13818           SYNRCVD

<output truncated>

どの TCP セッションも、 clear tcp tcb 0x<address> で関連する TCB を消去すれば削除できます。このほか、 clear tcp tcb * を発行することで、すべての TCB を一度に消去することができます。

注:このコマンドは、アクティブおよびハングしている TCP 接続すべてを消去します。

この脆弱性は Cisco Bug ID CSCti18193 登録ユーザのみ)として文書化されています。この脆弱性に対して Common Vulnerabilities and Exposures(CVE)ID CVE-2010-2827 が割り当てられています。

アプリケーション固有の TCP 情報は、次のセクションで解説します。

Telnet および SSH

Cisco IOS デバイスでは、Telnet を明示的に無効化することはできません。脆弱性のあるデバイスの vty line に transport input none を設定することで、TCP ポート 23 の不正利用を防ぐことができます。ただし、Cisco IOS SSH サーバ機能がデバイスに設定されている場合、 transport input none は TCP ポート 22 の不正利用を防ぐことができません。

この脆弱性はスプーフィングされた IP 送信元アドレスで不正利用されるため、vty アクセス コントロール リストを設定することでその一部を軽減することができます。

Border Gateway Protocol

Border Gateway Protocol(BGP; ボーダー ゲートウェイ プロトコル)は、Generalized Time to Live(TTL)Security Mechanism(GTSM; 一般 TTL セキュリティ メカニズム)機能を利用することで、保護を強化できます。GTSM を利用すると、送信元アドレスと宛先アドレス間のパケットの TTL を設定できます。GTSM チェックで拒否されたパケットは TCP 処理の前に破棄され、攻撃者が BGP でこの脆弱性を不正利用できないように防ぎます。GTSM は、ttl-security hops コマンドで実装します。

BGP の保護の詳細については、『 Protecting Border Gateway Protocol for the Enterprise 』参照してください。

BGP の TCP MD5 認証は、この脆弱性の不正利用を防ぐことはできません。

脆弱性スコアの詳細

シスコはこのアドバイザリでの脆弱性に対して Common Vulnerability Scoring System(CVSS)に基づいたスコアを提供しています。このセキュリティ アドバイザリでの CVSS スコアは CVSS バージョン 2.0 に基づいています。

CVSS は、脆弱性の重要度を示唆するもので、緊急性および対応の優先度を決定する手助けとなる標準ベースの評価法です。

シスコは基本評価スコア(Base Score)および現状評価スコア(Temporal Score)を提供しています。お客様はこれらを用いて環境評価スコア(Environmental Score)を算出し、個々のネットワークにおける脆弱性の影響度を導き出すことができます。

シスコは次の URL にて CVSS に関する FAQ を提供しています。

http://www.cisco.com/web/about/security/intelligence/cvss-qandas.html

また、シスコは個々のネットワークにおける環境影響度を算出する CVSS 計算ツールを以下の URL にて提供しています。

http://tools.cisco.com/security/center/cvssCalculator.x

CSCti18193 ( registered customers only) : Cisco IOS Software TCP Denial of Service Vulnerability

Calculate the environmental score of CSCti18193

CVSS Base Score - 7.8

Access Vector

Access Complexity

Authentication

Confidentiality Impact

Integrity Impact

Availability Impact

Network

Low

None

None

None

Complete

CVSS Temporal Score - 6.4

Exploitability

Remediation Level

Report Confidence

Functional

Official-Fix

Confirmed

影響

この脆弱性の不正利用に成功した場合、Cisco IOS ソフトウェア上のいくつかの TCP アプリケーションは新規接続を受け付けられなくなる可能性があります。また、vty から該当システムにリモート アクセスすることも妨げられることがあります。アウトオブバンド接続を経由して、該当デバイスのコンソール ポートへリモート アクセスすることは可能です。

ソフトウェアのバージョンおよび修正

ソフトウェアのアップグレードを検討する際には、 http://www.cisco.com/go/psirt/ および本アドバイザリ以降に公開のアドバイザリも参照して、起こりうる障害と完全なアップグレード ソリューションを判断してください。

いずれの場合も、アップグレードするデバイスに十分なメモリがあること、および現在のハードウェアとソフトウェアの構成が新しいリリースで引き続き適切にサポートされていることの確認を十分に行ってください。情報が不明確な場合は、Cisco Technical Assistance Center(TAC)もしくは契約しているメンテナンス プロバイダーにお問い合わせください。

Cisco IOS ソフトウェア テーブル(下記)の各行は Cisco IOS のリリース トレインを示します。あるリリーストレインが脆弱である場合、修正を含む最初のリリースは、表の「First Fixed Release」列に示されます(入手可能予想日が示される場合もあります)。「Recommended Release」列は、このアドバイザリの公開時点において公開済みである全ての脆弱性についての修正を含むリリースを示します。実行しているリリースが、そのトレインで「First Fixed Release」以前のものである機器は脆弱であることが知られています。シスコはテーブルの「Recommended Releases」列のリリース、またはそれ以降のリリースにアップグレードすることを推奨します。

Major Release

Availability of Repaired Releases

Affected 12.x-Based Releases

First Fixed Release

12.0 - 12.4

12.0 through 12.4 based releases are not affected

Affected 15.0-Based Releases

First Fixed Release

15.0

There are no affected 15.0 based releases

Affected 15.1-Based Releases

First Fixed Release

15.1T

15.1(2)T0a

15.1(2)T1; available on 20-AUG-2010

Releases prior to 15.1(2)T are not vulnerable.The vulnerability is first fixed in release 15.1(2)T0a.

回避策

この脆弱性を完全に回避する唯一の方法は、可能な場合、デバイスを脆弱にする特定の機能を無効化することです。

正当なデバイスだけが該当するデバイスに接続できるようにすることで、この脆弱性による問題の発生を制限することができます。詳細については、次のコントロール プレーン ポリシングおよびインフラストラクチャ アクセス コントロール リスト(iACL)の設定に関するサブセクションを参照してください。TCP 3 ウェイ ハンドシェイクは必要ないため、効果を高めるには、この緩和策をネットワーク エッジにおけるアンチスプーフィングと組み合わせて利用する必要があります。

ネットワーク内のシスコ デバイスに適用可能な他の対応策は、このアドバイザリの付属ドキュメントである『Cisco Applied Mitigation Bulletin』にて参照できます。 http://www.cisco.com/warp/public/707/cisco-amb-20100812-tcp.shtml

Cisco Guide to Harden Cisco IOS Devices(シスコの IOS デバイスを強化するためのガイド)

『The Cisco Guide to Harden Cisco IOS Devices』は、TCP 状態が操作されてしまう脆弱性に対処するために役立つ、さまざまなテクニック例を紹介しています。たとえば、次が含まれます。

  • Infrastructure Access Control List(iACL; インフラストラクチャ アクセス コントロール リスト)
  • Receive Access Control List(rACL; 受信アクセス コントロール リスト)
  • Transit Access Control List(tACL; トランジット アクセス コントロール リスト)
  • vty Access Control List(vty アクセス コントロール リスト)
  • Control Plane Policing(CoPP; コントロール プレーン ポリシング)
  • Control Plane Protection(CPPr; コントロール プレーン保護)

これらのトピックの詳細については、『 Cisco Guide to Harden Cisco IOS Devices』を参照してください。

CoPP

TCP サービスを提供する必要のあるデバイスについては、CoPP を使用して、該当するデバイスに宛てられた信頼されていない発信元からの TCP トラフィックを遮断することができます。CoPP 機能は、Cisco IOS ソフトウェアリリース 12.0S、12.2SX、12.2S、12.3T、12.4、および 12.4T にてサポートされています。管理およびコントロール プレーンを保護するために CoPP をデバイスに設定し、既存のセキュリティーポリシーとコンフィギュレーションに従って認定されたトラフィックだけがインフラストラクチャデバイス宛に送信されることを明示的に許可することで、インフラストラクチャへの直接攻撃のリスクとその効果を最小限に抑えることができます。次の例は、特定のネットワーク設定に適用できます。


!
!-- The 192.168.1.0/24 network and the 172.16.1.1 host are trusted.
!-- Everything else is not trusted. The following access list is used
!-- to determine what traffic needs to be dropped by a control plane
!-- policy (the CoPP feature.) If the access list matches (permit),
!-- then traffic will be dropped. If the access list does not
!-- match (deny), then traffic will be processed by the router.
!-- Note that TCP ports 22 and 23 are examples; this 
!-- configuration needs to be expanded to include all used
!-- TCP ports.
!


access-list 100 deny tcp 192.168.1.0 0.0.0.255 any eq 22
access-list 100 deny tcp 192.168.1.0 0.0.0.255 any eq 23
access-list 100 deny tcp host 172.16.1.1 any eq 22
access-list 100 deny tcp host 172.16.1.1 any eq 23
access-list 100 permit tcp any any



!
!-- Permit (Police or Drop)/Deny (Allow) all other Layer3 and Layer4
!-- traffic in accordance with existing security policies and
!-- configurations for traffic that is authorized to be sent
!-- to infrastructure devices.
!-- Create a class map for traffic that will be policed by
!-- the CoPP feature.
!


class-map match-all drop-tcp-class
  match access-group 100



!
!-- Create a policy map that will be applied to the
!-- Control Plane of the device, and add the "drop-tcp-traffic"
!-- class map.
!


policy-map control-plane-policy
 class drop-tcp-class
  drop



!
!-- Apply the policy map to the control plane of the
!-- device.
!



control-plane
 service-policy input control-plane-policy

警告 警告:この脆弱性の悪用に TCP 3 ウェイ ハンドシェイクは必要ないため、信頼された送信元 IP アドレスからこれらのポート宛の通信を許可するアクセス コントロール リスト(ACL)が、偽造された送信元 IP アドレスによって回避される可能性があります。

上記の CoPP の例では、「permit」アクションによってアクセス コントロール リスト エントリ(ACE)に該当し、攻撃である可能性のあるパケットは、policy-map の「drop」機能により廃棄されますが、一方、「deny」アクション(記載されていません)に該当するパケットは、policy-map の「drop」機能の影響を受けません。CoPP の設定と使用法についての追加情報は、以下のリンクの「 Control Plane Policing Implementation Best Practices」および「 Control Plane Policing」を参照してください。

iACL の設定

ネットワークを通過するトラフィックを遮断することはしばしば困難ですが、インフラストラクチャ デバイスをターゲットとした許可すべきではないトラフィックを特定し、そのようなトラフィックをネットワークの境界で遮断することは可能です。インフラストラクチャ ACL はネットワーク セキュリティのベスト プラクティスと考えられており、ここでの特定の脆弱性の回避策としてだけでなく、優れたネットワーク セキュリティへの長期的な付加機能として考慮する必要があります。ホワイト ペーパー の『 Protecting Your Core: Infrastructure Protection Access Control Lists』には、ACL によってインフラストラクチャ デバイスを保護するガイドラインと、推奨される導入方法が記載されています。

BGP における検討事項

GTSM は、BGP ポートを用いてこの脆弱性の不正利用を防ぐことができます。これは、デバイスから送信されたパケットは GTSM で設定された TTL チェックを通過できず、あらゆる TCP 処理が行われる前に破棄されるからです。GTSM については、「 BGP Support for TTL Security Check」および「 BGP Time To Live Security Check」を参照してください。

Cisco IOS Embedded Event Manager(EEM)

ツール コマンド言語(Tcl)に基づいた Cisco IOS Embedded Event Manager(EEM)ポリシーを、脆弱性のある Cisco IOS デバイス上で使用することによって、この脆弱性によって引き起こされた TCP 接続のハング、繰り返し、またはエラーを識別し、検知できます。管理者は、このポリシーで Cisco IOS デバイス上の TCP 接続を監視できます。Cisco IOS EEM がこの脆弱性による不正利用の可能性を検知すると、ポリシーはそれに対応する形で Syslog メッセージまたは Simple Network Management Protocol(SNMP)トラップを送信し、TCP 接続を消去します。このドキュメントで提供されるポリシー例は、定義された間隔で 2 つのコマンドの出力を監視および解析する Tcl スクリプトに基づいたものです。このスクリプトは、監視しきい値が設定された値に達したとき Syslog メッセージを生成するほか、TCP 接続をリセットすることもできます。

Tcl スクリプトは、「 Cisco Beyond: Embedded Event Manager (EEM) Scripting Community」の次のリンクで入手可能です: http://forums.cisco.com/eforum/servlet/EEM?page=eem&fn=script&scriptId=2041。また、デバイスの設定例を次に示します。


!
!-- Location where the Tcl script will be stored
!


event manager directory user policy disk0:/eem


!
!-- Define variable and set the monitoring interval
!-- as an integer (expressed in seconds)
!


event manager environment EEM_MONITOR_INTERVAL 60


!
!-- Define variable and set the threshold value as
!-- an integer for the number of retransmissions
!-- that determine if the TCP connection is hung
!-- (a recommended value to use is 15)
!


event manager environment EEM_MONITOR_THRESHOLD 15


!
!-- Define variable and set the value to "yes" to
!-- enable the clearing of hung TCP connections
!


event manager environment EEM_MONITOR_CLEAR yes


!
!-- Define variable and set to the TCP connection
!-- state or states that script will monitor, which
!-- can be a single state or a space-separated list
!-- of states
!


event manager environment EEM_MONITOR_STATES SYNRCVD SYNSENT


!
!-- Register the script as a Cisco EEM policy
!


event manager policy monitor-sockets.tcl


!

修正済みソフトウェアの取得

シスコはこの脆弱性に対処する無償のソフトウェア アップデートをリリースしました。ソフトウェアの導入を行う前にお客様のメンテナンス プロバイダーにご相談いただくかソフトウェアのフィーチャ セットの互換性およびお客様のネットワーク環境に特有の問題に関してご確認下さい。

お客様がインストールしたりサポートを受けたりできるのは、ご購入いただいたフィーチャ セットに対してのみとなります。そのようなソフトウェア アップグレードをインストール、ダウンロード、アクセスまたはその他の方法で使用した場合、お客様は http://www.cisco.com/en/US/docs/general/warranty/English/EU1KEN_.html または Cisco.com ダウンロード サイト http://www.cisco.com/public/sw-center/sw-usingswc.shtml に説明のあるその他の条項に従うことに同意したことになります。

ソフトウェアのアップグレードに関し、psirt@cisco.com もしくは security-alert@cisco.com にお問い合わせいただくことはご遠慮ください。

サービス契約をご利用のお客様

サービス契約をご利用のお客様は、通常のアップデート チャネルからアップグレード ソフトウェアを入手してください。ほとんどのお客様は、シスコのワールドワイド Web サイト上の Software Center からアップグレードを入手することができます。 http://www.cisco.com

サービス契約をご利用でないお客様

シスコから直接購入したがシスコのサービス契約をご利用いただいていない場合、また、サードパーティ ベンダーから購入したが修正済みソフトウェアを購入先から入手できない場合は、Cisco Technical Assistance Center(TAC)に連絡してアップグレードを入手してください。TAC の連絡先は次のとおりです。

  • +1 800 553 2447(北米内からのフリー ダイヤル)
  • +1 408 526 7209(北米以外からの有料通話)
  • 電子メール:tac@cisco.com

無償アップグレードの対象であることをご証明いただくために、製品のシリアル番号と、このお知らせの URL をご用意ください。サービス契約をご利用でないお客様に対する無償アップグレードは、TAC 経由でご要求いただく必要があります。

さまざまな言語向けの各地の電話番号、説明、電子メール アドレスなどの、この他の TAC の連絡先情報については、 http://www.cisco.com/en/US/support/tsd_cisco_worldwide_contacts.html を参照してください。

不正利用事例と公式発表

Cisco PSIRT では、本アドバイザリに記載されている脆弱性の不正利用事例とその公表は確認しておりません。

この脆弱性はお客様からのお問い合わせへの対応の際に発見されました。

この通知のステータス:FINAL

本アドバイザリは無保証のものとしてご提供しており、いかなる種類の保証を示唆するものでもありません。本アドバイザリの情報およびリンクの使用に関する責任の一切はそれらの使用者にあるものとします。またシスコシステムズはいつでも本ドキュメントの変更や更新を実施する権利を有します。

後述する情報配信の URL を省略し、本アドバイザリの記述内容に関して、単独の転載や意訳を実施した場合には、事実誤認ないし重要な情報の欠落を含む統制不可能な情報の伝搬が行われる可能性があります。

情報の配信

本アドバイザリは、次のシスコのワールドワイド Web サイト上に掲載されます。

http://www.cisco.com/warp/public/707/cisco-sa-20100812-tcp.shtml

ワールドワイド Web 以外にも、次の電子メールおよび Usenet ニュースの受信者向けに、この通知のテキスト版が Cisco PSIRT PGP キーによるクリア署名つきで投稿されています。

  • cust-security-announce@cisco.com
  • first-bulletins@lists.first.org
  • bugtraq@securityfocus.com
  • vulnwatch@vulnwatch.org
  • cisco@spot.colorado.edu
  • cisco-nsp@puck.nether.net
  • full-disclosure@lists.grok.org.uk
  • comp.dcom.sys.cisco@newsgate.cisco.com

このアドバイザリに関する今後の更新は、いかなるものもシスコのワールドワイド Web サイトに掲載される予定です。 しかしながら、前述のメーリング リストもしくはニュースグループに対し 積極的に配信されるとは限りません。この問題に関心があるお客様は上記 URL にて最新情報を ご確認いただくことをお勧めいたします。

更新履歴

Revision 1.0

2010-August-12

Initial public release.

シスコのセキュリティ手順

シスコ製品におけるセキュリティの脆弱性の報告、セキュリティ事故に関する支援、およびシスコからセキュリティ情報を入手するための登録方法について詳しく知るには、シスコ ワールドワイド Web サイトの http://www.cisco.com/en/US/products/products_security_vulnerability_policy.html にアクセスしてください。このページには、シスコのセキュリティ通知に関してメディアが問い合わせる際の指示が掲載されています。すべてのシスコ セキュリティ アドバイザリは http://www.cisco.com/go/psirt/ で確認することができます。