100
項目13. Call-ID を予測しやすい実装の問題
13.1 概要
MAC アドレスを含む乱数性が低い値が使われるなど、Call-IDが予想されやすい実装が 存在する。
13.2 解説
【攻撃手法とその影響】
SIP端末が登録に使用するREGISTERリクエストのCall-IDを予想してREGISTERリ クエストを偽装することにより、SIPサーバに記録されているCSeq値を不当に増加させ、
正規の登録リクエストを受信しても、サーバが拒否してしまう可能性がある。
【原因と考察】
RFC3261の8.1.1.4 Call-ID には以下のようにある。
「暗号的にランダムな識別子の使用は、セッションの乗っ取りに対するある種の防御を 提供し、起こりうる意図しないCall-IDの衝突を減らす。」
INVITEなどFromヘッダやToヘッダのtag値と合わせて同一性をチェックする場合に
も攻撃の難易度が下がってしまうが、もっとも影響があると考えられるのはREGISTERリ クエストである。REGISTERリクエストは、SIP端末をサーバに登録する際に使用される が、SIP端末が連続して起動している間は同じCall-IDが使用されるべきとされている。予
測されたCall-IDを使ったREGISTERリクエストが、本物のREGISTERリクエストと衝
突した場合、認証による確認が行われたとしても、サーバがCall-IDと関連付けて記憶する CSeq 値は増加させられてしまう可能性がある。CSeq値は同じ端末間で複数のリクエスト を送受信し合うときに、連続して受信したリクエストの生成された順番を確認できるよう につけられる値である。新しいリクエストを処理した後に、古いリクエストを処理してし まうと、端末間で共有している状態が食い違うなどの問題が起こるため、古いリクエスト は破棄されてしまう。もしも、攻撃により端末が管理しているCSeqが増加してしまうと、
正規の登録リクエストを受信しても、Cseq値が小さいためサーバが拒否してしまう。
101
攻撃者の SIPサー バ、又は SIP端末
REGISTER Call-ID: 1234567 CSeq: 1
REGISTER Call-ID: 1234567 CSeq: 10
CSeqが小さい(2<10)から拒否
SIP SIP端末 サーバ
REGISTER Call-ID: 1234567 CSeq: 2
500 Server Internal Error
図 13-1 Call-IDが衝突した場合のCseqへの影響
13.3 対策
【運用ガイド】
1) IPsec、SSL-VPNなどの暗号化トンネルを使ってSIP通信を保護する 2) SIP/RTPネットワークを隔離する、閉じたネットワークを利用する
3) ファイアウォールや侵入検知システムなど、製品とネットワークとの間で、この脆弱性を狙った パケットを遮断、制限する装置を挿入する
【実装ガイド】
1) RFCの仕様に沿って実装する
根本的には、予測されないように乱数性を確保してCall-IDを生成する 2) CSeq増加のチェック
認証が必要とされている場合は、認証されていないリクエストによるCSeqの増加を一時的に保 留する
13.4 参考情報
公開年月 情報源
2002年 6月 RFC3261 SIP: Session Initiation Protocol 8.1.1.4 Call-ID
http://tools.ietf.org/html/rfc3261#section-8.1.1.4 8.1.1.5 CSeq
http://tools.ietf.org/html/rfc3261#section-8.1.1.5
2006年 7月 SIP Stack Fingerprinting and Stack Difference Attacks
http://www.blackhat.com/presentations/bh-usa-06/BH-US-06-Scholz.pdf
【 項目13. Call-IDを予測しやすい実装の問題 】
102
13.5 CVSS 深刻度評価(参考値)
【評価結果】
本脆弱性の深刻度 □Ⅰ(注意) ■Ⅱ(警告) □Ⅲ(危険)
本脆弱性のCVSS基本値 4.0
【CVSS基本値の評価内容】
攻撃元区分 □ローカル □隣接 ■ネットワー ク
攻撃条件の複雑さ ■高 □中 □低 攻撃前の認証要否 □複数 □単一 ■不要 機密性への影響 ■なし □部分的 □全面的 完全性への影響 □なし ■部分的 □全面的 可用性への影響 □なし ■部分的 □全面的
103