High
High
日本語による情報は、英語による原文の非公式な翻訳であり、英語原文との間で内容の齟齬がある場合には、英語原文が優先します。
概要
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ソフトウェアリリースの命名規則の追加情報は、『White Paper: Cisco IOS Reference Guide』で確認できます。
脆弱性を含んでいないことが確認された製品
他の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コマンドの繰り返し出力で、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接続とハングしている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でのデバイスの不正利用は阻止されません。
vtyアクセスコントロールリストを設定することで、この脆弱性を部分的に軽減できます。これは、スプーフィングされたIP送信元アドレスを使用して脆弱性を不正利用できるためです。
ボーダーゲートウェイプロトコル
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の3ウェイハンドシェイクは必要ないため、効果を高めるには、この緩和策をネットワークエッジでのアンチスプーフィングと組み合わせて使用する必要があります。
ネットワーク内のCiscoデバイスに適用可能な他の緩和策については、このアドバイザリに関連するCisco適用対応策速報(https://sec.cloudapps.cisco.com/security/center/content/CiscoAppliedMitigationBulletin/cisco-amb-20100812-tcp)を参照してください。
Cisco IOS デバイスの強化ガイド
『Cisco IOSデバイスのセキュリティ強化に関するガイド』には、TCPの状態操作の脆弱性を緩和するために役立つ多くのテクニックの例が紹介されています。これには次のものがあります。
-
Infrastructure Access Control List(iACL; インフラストラクチャ アクセス コントロール リスト)
-
受信アクセスコントロールリスト(rACL)
-
トランジットアクセスコントロールリスト(tACL)
-
vtyアクセスコントロールリスト
-
コントロール プレーン ポリシング(CoPP)
-
コントロールプレーン保護(CPPr)
これらのトピックの詳細については、『Cisco IOSデバイスのセキュリティ強化に関するガイド』を参照してください。
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アドレスをスプーフィングする可能性があり、信頼できるIPアドレスからこれらのポートへの通信を許可するアクセスコントロールリスト(ACL)を無効にする可能性があります。
前記のCoPPの例では、access control entries(ACE;アクセスコントロールエントリ)の潜在的な悪用パケットに「permit」アクションが一致する場合、これらのパケットはポリシーマップの「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)
脆弱性のあるCisco IOSデバイスでは、Tool Command Language(Tcl)に基づくCisco IOS Embedded Event Manager(EEM)ポリシーを使用して、この脆弱性によって引き起こされたハング、拡張、または無期限の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
改訂履歴
リビジョン 1.0 |
2010年8月12日 |
初回公開リリース |
利用規約
本アドバイザリは無保証のものとしてご提供しており、いかなる種類の保証も示唆するものではありません。 本アドバイザリの情報およびリンクの使用に関する責任の一切はそれらの使用者にあるものとします。 また、シスコは本ドキュメントの内容を予告なしに変更したり、更新したりする権利を有します。
本アドバイザリの記述内容に関して情報配信の URL を省略し、単独の転載や意訳を施した場合、当社が管理した情報とは見なされません。そうした情報は、事実誤認を引き起こしたり、重要な情報が欠落していたりする可能性があります。 このドキュメントの情報は、シスコ製品のエンドユーザを対象としています。