【 項目5. 保護されていないトランスポートプロトコルを選択させられる問題 】
62
項目 5. 保護されていないトランスポートプロトコルを選択させ
63 発信
SIP端末
攻撃者の SIPサー バ、又は SIP端末
TCP(SYN) TLS手順開始 TCP(RST)
or ICMP(Protocol Unreachable) UDP
INVITE
盗聴/改竄可能
着信 SIP端末
図 5-1 UDPへのダウングレード
【原因と考察】
RFC3261の「18.1.1 リクエストの送信」にはトランスポートのダウングレードに関して
以下のような記述がある。
「端末が大きなサイズのメッセージを送る場合、UDP送信に関するメッセージサイズの 制限のために、そうでなければUDPで送られた筈のリクエストをTCP上で送った場合、
コネクションを確立する試みがICMP Protocol Not Supportedを生成するかTCPのリセッ トを招く結果になるなら、エレメントはUDPを使ってリクエストを再試行するべきである
[SHOULD]。これは、TCPをサポートしないRFC2543 準拠の実装との下位互換を提供す
るためだけである。この仕様の今後の改定において、この動作は反対されることが予想さ れる。」
RFC3261の旧バージョンであるRFC2543ではTCPのサポートがオプションであったた
め下位互換性への配慮から RFC3261 には上記のようなトランスポートのダウングレード 規定が含まれる。
TLSもTCPの接続で開始されることから、発信側SIP端末が無条件にこの記述に従って 動作した場合、悪意のある SIPサーバ/端末がTCP(RST)かICMP(Protocol Unreachable) を送信することで、TCPの接続をUDPにダウングレードさせられる可能性がある。
RFC3261の「18.1.1 Sending Requests」に記述されているトランスポートのダウングレ ードに関する記述は、あくまでもTCPでの接続に関する下位互換性を考慮した内容であり、
TLS の接続手順の一部であるTCP接続の失敗がUDP での接続を強制するものではない。
記述の前提も UDP での送信に関して安全上の懸念がない場合なので、発信側 SIP 端末は TLSをUDPにダウングレードすべきでない。
また、ネットワーク自体が安全でない環境ではTCP-RST自体の偽装は防ぐのは難しいこ とも問題である。
【 項目5. 保護されていないトランスポートプロトコルを選択させられる問題 】
64
5.3 対策
【運用ガイド】
1) 運用条件を明確にして、利用するトランスポート方式をサーバで制限する 2) IPsec、SSL-VPNなどの暗号化トンネルを使ってSIP通信を保護する 3) SIP/RTPネットワークを隔離する、閉じたネットワークを利用する
4) ファイアウォールや侵入検知システムなど、製品とネットワークとの間で、この脆弱性を狙った パケットを遮断、制限する装置を挿入する
【実装ガイド】
1) RFCの仕様に沿った実装をする
使用される状況に適合した運用条件を守ることに留意し、TCP(RST)や ICMP(Protocol
Unreachable等)の受信で無条件にUDPへのダウングレードを行わない
5.4 参考情報
公開年月 情報源
2002年6月 RFC3261 SIP: Session Initiation Protocol 18.1.1 Sending Requests
http://tools.ietf.org/html/rfc3261#section-18.1.1 2007年3月 Siperaへの報告
SIP compliant clients may be vulnerable to transport rollback vulnerability http://www.sipera.com/index.php?action=resources,threat_advisory&tid=178&
5.5 CVSS 深刻度評価(参考値)
【評価結果】
本脆弱性の深刻度 ■Ⅰ(注意) □Ⅱ(警告) □Ⅲ(危険)
本脆弱性のCVSS基本値 2.6
【CVSS基本値の評価内容】
攻撃元区分 □ローカル □ 隣接 ■ネットワー ク
攻撃条件の複雑さ ■高 □中 □低 攻撃前の認証要否 □複数 □単一 ■不要 機密性への影響 □なし ■部分的 □全面的 完全性への影響 ■なし □部分的 □全面的 可用性への影響 ■なし □部分的 □全面的
65