現在,インターネット上で最も利用されているプロトコルはHTTP(Hypertext Transfer Protocol)だろう。それだけに,外部とのHTTP通信を許可している組織は多い。プロキシ・サーバーを経由させる,あるいはさせないなどの差異があっても,ファイアウオールではHTTPを通す設定にしているだろう。そのため,HTTPを下位プロトコルとして利用するプロトコルが増えている。ファイアウオールを通すためだ。HTTPは,今やWWWのためだけのプロトコルではないのだ。それに伴い,HTTPが攻撃に悪用される可能性も増加している。
HTTPが不正アクセスに利用される可能性は以前からあった(関連記事)。現在ではHTTPを利用するプロトコルが増えたために,その可能性がより高まっているのだ。そこで今回のコラムでは,HTTPを利用するプロトコルについて説明するとともに,その“隠れた”危険性を解説する。
HTTPを利用するプロトコル
まず,HTTPを下位プロトコルとして利用するプロトコル(通信)の例をいくつか挙げてみよう。
- WebDAV(RFC2518)
- SOAP
- DCOM over HTTP
- RMI over HTTP
- IIOP over HTTP
- OCSP over HTTP(RFC2560)
以上のうち,WebDAVはHTTPの拡張であるため,HTTPを利用することが前提となるが,SOAPなどはHTTP以外のプロトコルも下位プロトコルとして利用可能だ。
また,HTTPを“トンネル”として利用すれば,任意のプロトコルをHTTPとしてファイアウオールを通過させることが可能となる。そのためのソフトウエアとしては,以下の2つが有名である。
その他,あくまでも実験的(Experimental)な位置付けではあるが,HTTPを下位プロトコルに使う方法がRFCでも定義されている(RFC2774)。
HTTPを下位プロトコルとして利用するプロトコルは数多く存在し,クライアントとサーバーで特別なソフトウエアを導入していれば,任意のプロトコルをHTTPに“見せかける”ことが可能となる。そして,これらHTTPの上位プロトコルを使えば,ファイアウオールをすり抜ける攻撃が可能となる場合があるのだ。
IDSで攻撃を検出
HTTPのために空けているポートを悪用する攻撃には,次の2種類が考えられる。
- HTTP以外のプロトコルで,HTTPでよく使うポート80番を通そうとする
- HTTPのプロトコルで,HTTPでよく使うポート80番を通そうとする
1 の攻撃については簡単に回避できるので問題はない。ポートを空けていても,HTTPのプロキシ・サーバーなどを利用していれば,そのトラフィックが中継されることはない。また,IDS(侵入検知システム)で検出することも容易だ。1のトラフィックはHTTPの形式に従っていないので,単純にHTTPの形式であるかを調べるだけで判別できる。内容を調べる必要はない。
問題は 2 である。前節で述べた,HTTPを下位プロトコルとして利用するプロトコルを悪用する場合はすべて 2 に該当する。HTTPを利用したプロトコルの場合,一見通常のHTTPトラフィックに見えるので,メッセージの内容を解析しないと,正規のトラフィックであるのか攻撃であるのかを判別できない。2 による攻撃を検出するには,IDSでメッセージの中身(ボディ)部まで調べる必要があるのだ。
とはいえ,ネットワーク上を流れるトラフィックのすべてを“拾い上げて”,その中身を調べることは難しい。そこで,アプリケーション・ゲートウエイ(プロキシやファイアウオール)にIDSを組み込む方法が有効だろう。アプリケーション・ゲートウエイでは,通信内容をある程度解釈する必要があるので,そこで攻撃か否かを判断すれば,解析の負担が少なくて済む。
現状のネットワークIDS(NIDS)で,HTTPに隠された攻撃をすべて検知することは難しい。例えば,オープン・ソースのNIDSである「Snort」では,WebDAVを使った攻撃についてはシグネチャ(攻撃を検知するためのデータ)が存在するが,SOAPについては存在しない。SOAPを使った攻撃が発見されていないということもあるが,SOAPの場合には本質的に解析が困難なことも一因であると筆者は考える。また,SOAPはRPC(RemoteProcedureCall)としても利用できる仕組みがある。そのため,“素”のHTTP以上に多種多用な攻撃を受ける可能性がある。
◇ ◇ ◇ ◇ ◇ ◇
HTTPは元来シンプルなプロトコルであったが,そのシンプルさゆえに拡張が進められている。今後も,HTTPを利用する通信は増えてゆくだろう。そういった通信を使った攻撃の検出にはIDSが利用できるが,万全ではなく,検出できないケースも多数考えられる。今や業務にとって不可欠なWWWであるが,その通信を許可することは,HTTPに“隠された”通信を許すことにもなるのだ。そのリスクを心に留めておくべきである。
若居和直(WAKAI Kazunao)
株式会社ラック セキュアネットサービス事業本部
wakai@lac.co.jp
IT Proセキュリティ・サイトが提供する「今週のSecurity Check [一般編]」は,その週に起きたUNIX関連およびセキュリティ全般のニュースや動向をまとめた週刊コラムです。セキュリティ・ベンダーである「株式会社ラック」のスタッフの方を執筆陣に迎え,専門家の立場から解説していただきます。