7. セキュリティに関する考慮事項
この文書は、SNMP のプロトコル操作を定義します。プロトコル操作自体はセキュリティを提供しません。代わりに、セキュリティは、RFC 3411 [RFC3411] で定義されたアーキテクチャと RFC 3414 [RFC3414] および RFC 3415 [RFC3415] で定義されたセキュリティサブシステムを使用して SNMP フレームワークによって提供されます。
管理されているリソース、管理情報の機密性、およびネットワークがさらされている脅威を考慮したセキュリティポリシーを定義することは、ネットワーク管理者の責任です。次に、これらのポリシーを施行することは、アーキテクチャ、セキュリティサブシステム、およびアクセス制御サブシステムの責任です。
具体的には、SNMP アーキテクチャは以下のメカニズムを提供します:
-
メッセージ認証 (Message authentication): メッセージが変更されたり偽装されたりしていないことを保証します。
-
メッセージプライバシー (Message privacy): メッセージの内容が権限のない者によって読み取られないことを保証します。
-
メッセージ承認 (Message authorization): 承認されたユーザーのみが管理操作を実行できることを保証します。
この文書で定義されているプロトコル操作は、以下を前提としています:
-
操作を含む SNMP メッセージが認証され、その操作が代理で実行されるプリンシパルの身元が確立されている。
-
SNMP エンジンによってアクセス制御チェックが実行され、識別されたプリンシパルが指定された管理対象オブジェクトに対して要求された操作を実行することが許可されているかどうかが判断されている。
-
プライバシーが必要な場合、SNMP メッセージは暗号化されており、権限のない者への開示を防ぐ。
これらの機能は、SNMP アーキテクチャのメッセージ処理およびセキュリティサブシステムによって実行され、プロトコル操作自体の一部ではありません。
ただし、この文書で定義されているプロトコル操作を使用するアプリケーションは、以下のセキュリティ考慮事項に注意する必要があります:
情報開示
GetRequest-PDU、GetNextRequest-PDU、および GetBulkRequest-PDU 操作は、管理対象オブジェクトから管理情報を取得します。この情報が機密である場合、メッセージプライバシーメカニズムの使用を通じて保護する必要があります。そのような保護がない場合、ネットワークトラフィックの受動的監視を通じて情報が権限のない者に開示される可能性があります。
権限のない変更
SetRequest-PDU 操作は、管理対象オブジェクトの値を変更します。特定のオブジェクトの変更がセキュリティに影響を与える可能性がある場合(たとえば、ファイアウォールルールの無効化やアクセス制御リストの変更)、そのオブジェクトへのアクセスを慎重に制御する必要があります。RFC 3415 [RFC3415] で定義されているアクセス制御メカニズムは、どのプリンシパルがどのオブジェクトを変更することが許可されているかを制限する手段を提供します。
サービス拒否
すべてのプロトコル操作は、発信および受信 SNMP エンティティの両方でリソース(ネットワーク帯域幅、処理時間、メモリ)を消費します。攻撃者は、大量の要求を送信することでサービス拒否攻撃を開始する可能性があります。レート制限とリソース管理は、実装にとって重要な考慮事項です。
GetBulkRequest-PDU は、大量のデータを取得するために特別に設計されているため、特に悪用されやすくなっています。攻撃者は、応答エンティティに過度のリソースを消費させたり、非常に大きな応答を生成させたりするために、非常に多くの繰り返し(max-repetitions)を要求する可能性があります。実装は、単一の要求によって消費されるリソースに合理的な制限を課す必要があります。
メッセージリプレイ
適切なメッセージ認証とタイムリネスチェックがない場合、攻撃者は SNMP メッセージをキャプチャし、後でそれらをリプレイする可能性があります。これは、管理対象オブジェクトを変更する SetRequest-PDU 操作の場合、特に深刻な結果をもたらす可能性があります。RFC 3414 [RFC3414] で定義されているタイムリネスメカニズムは、認証されたメッセージに時間ベースの情報を含めることでメッセージリプレイから保護します。
トラップ/通知のスプーフィング
SNMPv2-Trap-PDU および InformRequest-PDU メッセージは、イベントの通知を提供します。これらの通知が認証されていない場合、攻撃者は、ネットワーク管理者を誤解させたり、不適切な自動応答をトリガーしたりするために、偽の通知を送信する可能性があります。メッセージ認証メカニズムを使用して、通知のソースを検証する必要があります。
まとめ
要約すると、この文書で定義されているプロトコル操作は、以下を保証するために適切なセキュリティメカニズムと組み合わせて使用する必要があります:
- メッセージ発信者の認証
- メッセージ変更に対する保護
- メッセージリプレイに対する保護
- メッセージ内容のプライバシー(必要な場合)
- 管理操作の承認
- サービス拒否攻撃に対する保護
SNMP アーキテクチャは、これらのセキュリティサービスのフレームワークを提供し、実装はこれらの機能を十分に活用して、管理対象ネットワークをセキュリティ脅威から保護する必要があります。