• 検索結果がありません。

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