URLフィルタ(Webフィルタ/コンテンツフィルタ)とは
URL フィルタとは、社内 PC のインターネット閲覧に制限をかける機能のことです。
例えばアダルトやドラッグ等の有害サイトや、動画/SNS 等の業務に不要なサイトを社内 NW から閲覧できないようにする、もしくは閲覧者に対して警告/管理者に対してログ出力をした上で閲覧を許可する仕組みのことです。
Web フィルタやコンテンツフィルタとも呼ばれたりします。
あらゆるサイトが、URL フィルタメーカ (もしくは協力会社) によって何かしらのカテゴリに分類 (産まれ立てのサイトは"未分類"というカテゴリに分類) されますので、管理者はカテゴリ毎にどのような動作 (許可/拒否/警告など) にするかを設定します。
http の URLフィルタの仕組み
URL フィルタの仕組みは、http については http ヘッダの中身を見て、ホストの FQDN および その配下のサブディレクトリ等の情報を見れます。
例えば http://abc.xyz/ というサイトが複数のカテゴリのサイトを運営していたとします。
http://abc.xyz/adult/ は有害サービス、http://abc.xyz/sports/ は健全なスポーツ情報サイトだったとします。http であればサブディレクトリの情報も http ヘッダを見れば分かりますのでサブサイト毎にカテゴリの識別が可能です。
https の URLフィルタの仕組み
https の場合は暗号化により http ヘッダの中身を見ることができませんので、違う方法でサイト情報を見極める必要があります。
大きく 4 つのやり方があります。Web プロキシか UTM かによっても取りうる方法が異なります。
①IPアドレスによる識別
一番単純なのは"宛先 IP アドレス"によってどのサイトかを識別する方法です。ただしこれは (URL は同じだが) IP が動的に変化するサイトには弱いです。
②CONNECT メソッドによる識別 (Web プロキシのみで利用可能)
Web プロキシ付随の URL フィルタで使われるのは"宛先 IP アドレス"ではなく"CONNECT メソッドのホスト情報"です。
プロキシ経由で https 通信をする場合は http の (GET ではなく) CONNECT メソッドを使って通信します。CONNECT メソッドでは URL のホスト名が指定されるので、ホスト名までは分かります。
プロキシの CONNECT メソッドの仕組みについては以下を参考にして下さい。
ただし、CONNECT ではサブディレクトリを見ることができません。これは、CONNECTメソッドで取り次いだ後は暗号化されたデータを取り次ぐだけで、中身を見れないからです。
先の例だと、https://abc.xyz までの情報しか分からず、そのサブディレクトリが /adult/ なのか /sports/ なのか識別できないのです。
この問題への対策として、プロキシによる SSL/TLS 復号技術があります。
③TLSネゴシエーション中のSNI/CA情報による識別
https (TLS) による暗号化通信を行う前のネゴシエーションはクライアントからの Client Hello で開始します。この Client Hello の "Extension" という拡張領域に SNI (Server Name Indication , 別表記では Server_Name) という属性があり、この中にアクセス先ホスト名が格納されます。
この部分は暗号化されていないため、URL 識別に利用することが可能です。これは 2011 年に公開された RFC 6066 で定義されており、実装はかなり進んできています。
この方式の問題点は、CONNECT と同様サブディレクトリが識別できないことです。
参考1:PaloAlto では PanOS6.0 以降はこの方式が利用可能です。
参考2:FortiGate では FortiOS 5.0.6 以降はこの方式が利用可能です。
ただし、WindowsXP や IE8 以前等の古いブラウザ等、いくつかのクライアントアプリケーションによっては Client Hello に Server_Name は含まれません。
④自動生成した証明書を使ってhttps通信を取り次ぐ
Web プロキシにしても UTM にしても、通常は https は暗号化されたまま通信します。ですがこの方式では、Web プロキシや UTM がクライアントに対して (閲覧したいサイトの証明書では無く、) 偽の証明書を動的に提示し、クライアントとサーバ間の通信を盗み見します。
Web プロキシ/UTMの間で https 通信をします。その通信を復号化し、http ヘッダを検査した上で、Web プロキシ/UTM が (別の TLS コネクションで) クライアントが本来行きたいサイトと通信し、その結果をクライアントの TLS コネクションに載せて返します。
この方式の詳細 (図解) は以下ページの「1. 透過プロキシ」をご参照下さい。
この方式の問題点は、クライアントのブラウザに SSL/TLS に関する警告が表示されることです。これは https の通信の保護の観点からすれば当然のことです。
URLフィルタのメーカや製品の例
Webプロキシの URLフィルタ
BlueCoat SG シリーズやデジタルアーツの i-filter 、トレンドマイクロの InterScan、アルプスの InterSafe 等が有名です。
UTM の URLフィルタ
PaloAlto や FortiGate 等があります。
単に URL フィルタと言っても大きく 2 つのタイプに分かれます。1 つは単に特定の URL を制御するタイプ、もう 1 つはそのサイトのカテゴリ単位で制御するタイプです。
単に特定の URL をアクセス制御したい場合は基本ライセンスのみで利用可能です。(ワイルドカードも利用可能)
もし URL ではなくそのサイトの (有害サイト、成人向けといった) カテゴリ単位で制御したい場合は有償オプションライセンスを追加することで対応できます。
コメント