既存ファイアウォールはSIP未対応

 攻撃や侵入は,ファイアウォールがあればある程度防げそうに思える。しかし既存のファイアウォールは,SIP/RTPの守りとしては十分とは言えない。現状では,SIP/RTPについては単純なパケット・フィルタリングしかできないためである。

 理由の一つはSIPがUDP上で動作すること。ステートレスのプロトコルであるため,単純にUDPポート番号(通常は5060)を基に通過/遮断を判断することしかできない。上位アプリケーションの動作シーケンスまで識別するステートフル・インスペクション方式のファイアウォールもあるが,現状ではSIPに対応していない製品がほとんど。SIPパケットの内容を識別して不審な通信を遮断するといった高度な制御は難しい。

 もう一つの理由は,RTPのポート番号が動的に変わること。通常のパケット・フィルタリングでIP電話のトラフィックを通そうとすると,広範囲のポート番号を開放しておかなければならない。これではファイアウォールの効果は薄れてしまう。

ポート開閉とパケット遮断で防御

図2●セキュリティ・ゲートウエイがSIPサーバーや社内ネットを守る
セッション・ボーダー・コントローラなどを利用する。SIP/RTP用のファイアウォール/プロキシとして動作し,不正なトラフィックを拒否できる。また,SIPパケットの内容やシーケンスを解析して,不審なSIPパケットを遮断する機能も持つ。

 こうした課題を解決するのが,セッション・ボーダー・コントローラをはじめとする,IP電話/SIP向けのセキュリティ機能を備えた製品。社内側から見てファイアウォールの手前,あるいは既存のファイアウォールと並列に設置して利用する一種のプロキシだ。

 セキュリティ面から見たセッション・ボーダー・コントローラの役割は大きく分けて2つある。一つは,VoIP(ボイス・オーバーIP)通信用のファイアウォールとしてSIP/RTPを安全に通過させる機能。もう一つはDoS攻撃や不正アクセスを検知してブロックする機能である(図2[拡大表示])。

 VoIP用ファイアウォールとしては,まずUDPの5060ポートだけを通過させる。この際,端末のIPアドレスや,RTPで利用するポート番号など,SIPパケット(INVITE)のペイロード(データ部分)に記述されている情報を読み取り,それを基にアクセスを制御する。具体的には,SIPパケットに記述されたポート番号を一時的に開放し,IP電話を利用できるようにする。SIPの切断要求(BYE)を検出すると,そのポートを閉じる仕組みである。

 ブロック機能では,特定のIPアドレスから,一斉にINVITEが送られてきた場合などに,トラフィックを遮断する。製品によっては,SIPパケットに不正な要求が含まれていないかをチェックできる。例えば,必要以上に長いデータが含まれていれば,バッファ・オーバーフローを狙ったパケットとみなして破棄するという具合だ。

富士通研は独自プロトコルで中継

 ほかのアプローチをとる製品/技術もある。例えば富士通研が開発したVoIPセキュアゲートウエイは,2台で構成するアプリケーション・レベル・ゲートウエイ。「社内ネットワークとDMZ(非武装セグメント)に1台ずつゲートウエイを設置し,それぞれで社内側と社外側のIP電話のセッションを終端。独自のメタIP電話プロトコルを使って,ゲートウエイ間を橋渡しする」(富士通研究所のITコア研究所Web&IPサービス研究部主任研究員である福山 訓行氏)。

 外部からはDMZのゲートウエイまでしか接続できない。不審なパケットはここで破棄するし,ファイアウォールではメタIP電話プロトコル以外のポート番号を使うパケットは通さない。ゲートウエイ間は,必ず社内側からTCPコネクションを確立する仕組みで,DMZのゲートウエイが乗っ取られても,社内側のゲートウエイには接続できないようになっている。

写真2●アプリケーション別に通信を制限できる製品もある
アプリコのASA3800は,SIPベースのアプリケーションでも,IP電話,インスタント・メッセージ,アプリケーション共有など,アプリケーションのタイプごとに通信を制限できる。

 一方NTTコムウェアのIP-TOSは,SIPのパケットと同時にシーケンスを把握して,トラフィックを制御する機能を持つ。実際にはセキュリティ専用の仕組みではなく,大量の同時接続などを検知して,SIPサーバーやVoIPネットワークに障害が起こらないようにトラフィックを自動制御するシステムである。この仕組みを使って,DoS攻撃をはじめとする不審なIP電話トラフィックを止められる。

細かな制御が可能な製品も

 ここまで見てきた製品は,ほとんどがIP電話を意識した製品である。ただ,SIPはIP電話以外の用途でも利用する。この点を強く意識しているのが,アプリコのASA3800である(写真2[拡大表示])。

 例えばインスタント・メッセージ(IM)でユーザー同士が接続する際にもSIPサーバーを使う。ホワイトボード機能やヘルプデスク用のデスクトップ共有など,ほかのアプリケーションにも利用される。今のところ社内でIMを利用する企業はごくわずかだが,今後は企業にSIPサーバーが入り込む可能性は大いにある。

 そこで,ASA3800は,同じSIPを使うアプリケーションでも,やり取りするデータの形式(MIMEタイプ)からアプリケーションを判別し,種類に応じてアクセス制御できる仕組みを持つ。

 厳密には,セッション・ボーダー・コントローラも,制御対象はあくまでもSIPやRTPといったプロトコル。IP電話というアプリケーションを対象としているわけではない。このため,IMに利用する場合でも,SIPのトラフィックだけは制御できる。IMの場合は,相手を見つけた後はHTTPなどを使って通信するため,既存のファイアウォールでトラフィックを制御できる。ただ,MIMEタイプまで識別できる製品は,ほかにはほとんど見当たらない。