High

アドバイザリーID : cisco-sa-20100812-tcp

初公開日 : 2010-08-12 21:30

バージョン 1.1 : Final

CVSSスコア : 7.8

回避策 : No Workarounds available

Cisco バグ ID : CSCti18193

CVE-2010-2827

Download CVRF

Email

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

概要

Cisco IOSÂ®ソフトウェアリリース15.1(2)Tは、TCP確立フェーズにおけるサービス拒否(DoS)の脆弱性の影響を受けます。この脆弱性により、初期TCP接続がSYNRCVDまたはSYNSENT状態のままになる可能性があります。これらの状態で十分な初期TCP接続を行うと、システムリソースが消費され、該当するデバイスが新しいTCP接続（デバイスへのTCPベースのリモート管理アクセスを含む）を受け入れたり、開始したりできなくなる可能性があります。

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

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

このアドバイザリは、https://sec.cloudapps.cisco.com/security/center/content/CiscoSecurityAdvisory/cisco-sa-20100812-tcp で公開されています。

該当製品

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

脆弱性のある製品

CiscoデバイスがCisco IOSソフトウェアリリース15.1(2)Tを実行している場合、このデバイスには脆弱性が存在します。シスコ製品で稼働している Cisco IOS ソフトウェア リリースを確認するには、デバイスにログインして show version コマンドを使って、システム バナーを表示します。"Internetwork Operating System Software"、"Cisco IOS Software" あるいはこれらに類似するシステム バナーによってデバイスで Cisco IOS ソフトウェアが稼働していることを確認できます。 その後ろにイメージ名が括弧の間に表示され、続いて "Version" と 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 Â©) 1986-2010 by Cisco Systems, Inc.

Compiled Mon 19-Jul-10 16:38 by prod_rel_team

<output truncated>

Cisco IOSソフトウェアリリースの命名規則の追加情報は、『ホワイトペーパー：Cisco IOSリファレンスガイド』を参照してください。

脆弱性を含んでいないことが確認された製品

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

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

詳細

TCPは、パケット交換ネットワーク環境で信頼性の高いデータ伝送サービスを提供します。TCPは、OSI参照モデルのトランスポート層（レイヤ4）に対応します。TCPが提供するサービスには、ストリームデータ転送、信頼性、効率的なフロー制御、全二重動作、および多重化があります。

Cisco IOSソフトウェアでTCP接続が終了すると、伝送制御ブロック(TCB)が割り当てられます。割り当てられたすべてのTCB、関連するTCPポート番号、およびTCP状態は、show tcp brief allコマンドラインインターフェイス(CLI)コマンドの出力に表示されます。

Cisco IOSソフトウェアバージョン15.1(2)Tには、初期TCP接続がSYNRCVD状態またはSYNSENT状態のままになり、TCP状態がさらに遷移する可能性がある脆弱性が存在します。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コマンドの繰り返し出力で多くのTCBがSYNRCVDまたはSYNSENT状態と示される場合にも、デバイスに脆弱性が存在する可能性があります。

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

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接続とハングしているTCP接続をすべてクリアします。

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

TCPアプリケーション固有の情報の一部は、次の項で説明します。

TelnetおよびSSH

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

この脆弱性はスプーフィングされたIP送信元アドレスを使用して不正利用される可能性があるため、vtyアクセスコントロールリスト(vty)を設定することで、この脆弱性を部分的に緩和できます。

ボーダーゲートウェイプロトコル

Border Gateway Protocol（BGP；ボーダーゲートウェイプロトコル）で設定されたルータは、Generalized Time to Live（TTL；一般化存続可能時間）セキュリティメカニズム(GTSM)機能を使用して、さらに保護できます。GTSMを使用すると、送信元アドレスと宛先アドレスの間のパケットの予想されるTTLを設定できます。GTSMチェックに失敗したパケットは、TCP処理が発生する前にドロップされるため、攻撃者はBGPを介してこの脆弱性を不正利用することはできません。GTSMは、ttl-security hopsコマンドを使用して実装されます。

BGPの保護についての詳細は、『エンタープライズ向けBorder Gateway Protocol(BGP)の保護』を参照してください。

BGPのTCP MD5認証では、この脆弱性の不正利用は阻止されません。

回避策

この脆弱性を軽減する唯一の完全な回避策は、デバイスを脆弱にする特定の機能を無効にすることです（このアクションが実行可能な場合）。

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

ネットワーク内のCiscoデバイスに適用可能な他の緩和策については、このアドバイザリに関連するCisco適用対応策速報(https://sec.cloudapps.cisco.com/security/center/content/CiscoAppliedMitigationBulletin/cisco-amb-20100812-tcp)を参照してください。

Cisco IOS デバイスの強化ガイド

Cisco Guide to Harden Cisco IOS Devicesには、TCP状態の操作の脆弱性を軽減するために役立つ多くのテクニックの例が記載されています。802.11 の標準規格には以下があります。

- Infrastructure Access Control List（iACL; インフラストラクチャ アクセス コントロール リスト）

- 受信アクセスコントロールリスト(rACL)

- トランジットアクセスコントロールリスト(tACL)

- vtyアクセスコントロールリスト

- コントロール プレーン ポリシング（CoPP）

- コントロールプレーン保護(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スリーウェイハンドシェイクは必要ないため、送信側のIPアドレスをスプーフィングする可能性があり、信頼できるIPアドレスからこれらのポートへの通信を許可するアクセスコントロールリスト(ACL)を無効にする可能性があります。

前述のCoPPの例では、悪用の可能性があるパケットと「permit」アクションが一致するAccess Control Entry（ACE；アクセスコントロールエントリ）によって、これらのパケットはポリシーマップの「drop」機能によって廃棄されますが、「deny」アクション（図には示されていません）が一致するパケットは、ポリシーマップのdrop機能の影響を受けません。CoPP機能の設定と使用についての詳細は、『コントロールプレーンポリシングの実装に関するベストプラクティス』および『コントロールプレーンポリシング』を参照してください。

iACLの設定

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

BGPの考慮事項

GTSMによって設定されたTTLチェックをパスしないデバイスから送信されたパケットは、TCP処理が発生する前にドロップされるため、GTSMはBGPポートを使用してこの脆弱性の不正利用を防ぐことができます。GTSMの詳細については、『BGPによるTTLセキュリティチェックのサポート』および『BGPによる存続可能時間(TTL)セキュリティチェック』を参照してください。

Embedded Event Manager(EEM)

Tool Command Language(Tcl)に基づくCisco IOS Embedded Event Manager(EEM)ポリシーを脆弱性のあるCisco IOSデバイスで使用すると、この脆弱性によって引き起こされたハング、拡張、または未定義のTCP接続を特定して検出できます。このポリシーにより、管理者はCisco IOSデバイスのTCP接続を監視できます。Cisco IOS EEMがこの脆弱性の不正利用の可能性を検出すると、ポリシーはsyslogメッセージまたはSimple Network Management Protocol(SNMP)トラップを送信してTCP接続をクリアすることで、応答をトリガーできます。このドキュメントで紹介するポリシーの例は、定義された間隔で2つのコマンドの出力を監視および解析し、監視しきい値が設定値に達したときにsyslogメッセージを生成し、TCP接続をリセットできるTclスクリプトに基づいています。

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/go/psirt と後続のアドバイザリも参照して、問題の解決状況と完全なアップグレード ソリューションを確認してください。

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

Cisco IOS ソフトウェアの表（下掲）の各行には、Cisco IOS のリリース トレインが記載されています。リリーストレインに脆弱性が存在する場合、修正を含む最初のリリース（可能な場合、それぞれについて入手が可能になる予定日を含む）を表の「最初の修正リリース」列に記載します。「推奨リリース」列には、このアドバイザリが作成された時点で発表されているすべての脆弱性の修正を含むリリースが記載されます。特定の列に記されているリリースよりも古い（第 1 修正済みリリースより古い）トレインに含まれるリリースが稼働しているデバイスは脆弱であることが確認されています。表の「推奨リリース」列に記載されているリリース、またはそれよりも新しいリリースにアップグレードすることを推奨します。

メジャー リリース

修正済みリリースの入手可能性

該当する12.xベースのリリース

First Fixed Release（修正された最初のリリース）

12.0 ～ 12.4

12.0 ～ 12.4ベースのリリースは影響を受けません

影響を受ける 15.0 ベースのリリース

First Fixed Release（修正された最初のリリース）

15.0

影響を受ける 15.0 ベースのリリースはありません。

影響を受ける 15.1 ベースのリリース

First Fixed Release（修正された最初のリリース）

15.1T

15.1(2)T0a

15.1(2)T1（2010年8月20日に入手可能）

15.1(2)Tより前のリリースには脆弱性はありません。この脆弱性は、リリース15.1(2)T0aで最初に修正されています。

不正利用事例と公式発表

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

この脆弱性は、お客様からシスコに報告されたものです。

URL

https://sec.cloudapps.cisco.com/security/center/content/CiscoSecurityAdvisory/cisco-sa-20100812-tcp

改訂履歴

リビジョン 1.0

2010年8月12日

初回公開リリース

利用規約

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

本アドバイザリの記述内容に関して情報配信の URL を省略し、単独の転載や意訳を施した場合、当社が管理した情報とは見なされません。そうした情報は、事実誤認を引き起こしたり、重要な情報が欠落していたりする可能性があります。 このドキュメントの情報は、シスコ製品のエンドユーザを対象としています。