最終更新日:2002年 2月15日
広範囲に該当する SNMP の脆弱性について
概要
SNMP(Simple Network Management Protocol)v1 の実装の多くに、複数の脆弱性が報告されています。これらの脆弱性を 攻略する攻撃を受けた場合、権限を越えた不正なアクセスやサービス妨害攻撃(DoS攻撃)を許したり、システム動作が不安定になるなどの影響を受ける可能性があります。
SNMP は、オペレーティングシステムをはじめ、ルーターなどのネットワーク機器を含む多くの実装があるため、システム管理者/ネットワーク管理者はベンダーからの情報に注意し、早急に対策を講ずる必要があります。
前提知識
SNMP について
SNMP は、ネットワーク接続デバイスを管理するのに最も普及したプロトコルです。SNMP は、ネットワーク管理者/システム管理者がリモートから(スイッチやルーター等の)ネットワーク上のデバイスを監視・設定できるようにします。ネットワーク用に設計されたソフトウェア/ファームウェア製品の多くは、SNMP プロトコルを使用しています。SNMP は、複数のデバイス上/オペレーティングシステム上で動作します。
SNMP は、RFC1157 第 3 章で規定されています。:
SNMP のアークテクチャとしてのモデルにおける暗黙の前提事項は、ネットワーク管理ステーションとネットワークエレメントの組み合わせであるということです。ネットワーク管理ステーションは、ネットワークエレメントを監視/コントロールする管理アプリケーションを実行します。ネットワークエレメントは、ホスト/ゲートウェイ/ターミナルサーバーのようなデバイスで、ネットワーク管理ステーションによって要求されるネットワーク管理機能を行う管理エージェントを持つものです。SNMP は、ネットワーク管理ステーションとネットワークエレメント内のエージェントとの間で管理情報を通信するために使用されます。
これらの脆弱性について
OUSPG( Oulu University Secure Programming Group)によって発見・報告された複数の脆弱性は、いずれも SNMP v1 レベルの機能である ASN.1 構文のメッセージのデコード処理と、そのデコードされたデータの例外処理における欠陥です。
対策
この脆弱性は非常に多くの機器やシステムに影響するため、すべてに対応できる対処方法はありません。システム管理者/ネットワーク管理者はベンダーのサポートと連絡を取り個々の対処を実行してください。
以下に、緊急対策として実施可能な対処法を掲げます。:
ベンダーから修正プログラムが提供されている場合には、入手し適用する必要のない(使用していない) SNMP の機能を停止するSNMP 実装があり影響を受ける可能性のある機器、システムは以下のように広範囲であるため、該当すると思われる機器、システムを使用している場合は各ベンダーのサポートと連絡を取ってください。
- ルータ、スイッチ、ハブ、ブリッジ
- ファイアウォール製品
- 無線アクセスポイント
- 一般ユーザ用ブロードバンドネットワーク機器
- ケーブルモデム、xDSL モデム
- 一般ユーザ用電子機器
- 監視カメラ
- ネットワークオフィス機器
- プリンター、コピー機、FAX 機
- ネットワーク管理システム
- サーバー、ネットワークスニファ、アナライザー
外部からの SNMP サービスのアクセスをフィルタリングによってブロックするデフォルト設定で SNMP の機能が有効になっている機器を確認する必要もあります。いくつかの製品では SNMP の機能を停止しても攻撃により サービスを提供できない状態になることが確認されています。この場合、以下に示すフィルタリング対策と組み合わせて対処することが望まれます。
SNMP と関連する RPC サービスへのアクセスをブロックする少なくとも境界ルーターでこの対処を行う必要がありますが、この対処では内部からの攻撃には対応できないことに注意してください。偽造パケットのフィルタリングや SNMP パケットの送信元 IP アドレスの制限も有効です。 SNMP が使用するポートは 161/UDP、162/UDP、161/TCP、162/TCPです。以下のサービスのような一般的ではありませんがこの脆弱性に影響を受ける製品が使用しているポートのブロックも考慮してください。
- smux 199/tcp # SNMP Unix Multiplexer
- smux 199/udp # SNMP Unix Multiplexer
- synoptics-relay 391/tcp # SynOptics SNMP Relay Port
- synoptics-relay 391/udp # SynOptics SNMP Relay Port
- agentx 705/tcp # AgentX
- snmp-tcp-port 1993/tcp # cisco SNMP TCP port
- snmp-tcp-port 1993/udp # cisco SNMP TCP port
(注)上のポートをブロックしても以下に示すような IP アドレスを使った直接的な攻撃には効果がないことを考慮してください。
- "all-ones" broadcast address
- subnet broadcast address
- internal loopback addresses (通常ルーターが管理用に使用するもので IP スタック・ループバック・アドレスの127.0.0.1ではないことに注意)
(注)上のポートをブロックする場合は使用している他の機器やシステムに影響がないかを十分に考慮してください。
権限のない内部ホストからの SNMP トラフィックをフィルタリングする以下のような SNMP と関連する RPC サービスへのアクセスをブロックすることも考慮する必要があります。(リストは name、programID、alternate names の順です 。)
- snmp 100122 na.snmp snmp-cmc snmp-synoptics snmp-unisys snmp-utk
- snmpv2 100138 na.snmpv2 # SNM Version 2.2.2
- snmpXdmid 100249
デフォルトの community strings を変更する多くのネットワークでは限られたネットワークマネージメントシステムだけが SNMP リクエストメッセージを必要とします。したがって SNMP エージェントシステムは権限のないシステムからのリクエストを拒否することが可能であると考えられます。この対処は内部からの攻撃を、完璧ではないにせよ、減らすことができます。ただしこのフィルタリングによりネットワークのパフォーマンスに影響がでる可能性があるので注意してください。
別のマネージメント用ネットワークに SNMP トラフィックを隔離する多くの SNMP が有効な製品で使用されている community strings のデフォルト設定値を変更してください。ただし今回の脆弱性の中には community strings を評価する前に発生するものもあり、この対処だけでは対応できないことに注意してください。
外向けのパケットをフィルタリングするSNMP を停止することやブロックすることが難しい場合、すべての SNMP トラフィックを隔離された、一般にアクセスすることが出来ない、マネージメントネットワークのみに制限することによる対処も考えられます。物理的に別のネットワークとすることが好ましいですが、バーチャル LAN (VLAN)を使用することで、完全ではないにせよ、攻撃を難しくさせることが可能です。これ以外に SNMP トラフィックを VPN に隔離し、暗号化された強い認証を用いることも対処の一つです。ただしこれらの対処を行うにはネットワーク構成に大幅な変更が必要であることに注意してください。
上で示すポートの外向けパケットを境界ルーター等でフィルタリングすることで、そのネットワークが他のサイトに対する攻撃のために踏み台として使用されるのを防ぐことができます。
参考資料
JPCERT/CC SNMPv1 の実装に含まれる脆弱性に関する注意喚起
CERT® Advisory CA-2002-03 Multiple Vulnerabilities in Many Implementations of the Simple Network Management Protocol (SNMP)
2002年 2月15日 参考資料に「JPCERT/CC SNMPv1 の実装に含まれる脆弱性に関する注意喚起」を追記。
Copyright © 2002 Information-technology Promotion Agency, Japan. All rights reserved.