通信を識別するパケットフィルタリング
これまで紹介してきたパケットフィルタリングは、IPアドレスやTCP/UDPのポート番号などヘッダに書き込まれた制御情報を条件に用いたアクセス制御の方法である。Webやメールといった代表的なインターネットサービスはTCPを用いており、しかもあらかじめ決まったウェルノウンポート※5でサーバが待ち受けることになる。そのため、こうしたサービスはモデル化しやすく、ポリシーを容易に作成できる。
*5:ウェルノウンポート TCP/UDPで使われるポート番号のうち、よく使われるアプリケーションに割り当てられた0~1023番のポート。クライアントが指定するために、サービスごとに標準のポート番号が決まっている。
しかし、ヘッダのみの情報では、攻撃を完全に捕捉することはできない。アプリケーションが解釈するデータを転送しやすいように小分けにしたパケットは、単体では正常な通信か攻撃かを判別することが難しいのだ。そこで登場したのが、通信を識別するよりインテリジェントなパケットフィルタリングである。
従来のパケットフィルタリングでは、HTTPであれば80番ポート、SMTPであれば25番ポートといった具合に、アプリケーション(サービス)に合わせてポートを固定的に開放していた。このポートの開け閉めを動的に行なえるようにしたのが、「ダイナミックパケットフィルタリング」である。
ダイナミックパケットフィルタリングの動作
現状のパケットフィルタリングでは、単に外側から着信したTCPのコネクション開始のパケットは、攻撃の兆候とみなされることが多い。一方で、ACKフラグの付いたTCPのパケットはLANのクライアントの応答と解釈され、無条件で通過してしまう。
一方で、ダイナミックパケットフィルタリングでは、TCPのコネクションを管理し、動的にポートを開け閉めする。Webでの通信の例を見てみよう(図6)。
まずLAN内のクライアントから、インターネット上のWebサーバに対してTCPのコネクション開始のリクエストが送られる。次にはWebサーバから応答のパケットを受け取ったクライアントは、サーバとコネクションを確立する。これに対し、ダイナミックパケットフィルタリングでは、このTCPのパケットの流れをログとして記録しておき、ポートを開け閉めする。つまり、いったん家人が出かけた限りは、そのことをドアが覚えているので、締め出されることもないわけだ。もちろん家人が帰ってきたら、自動的にドアが開き、家に入ることができるのである。
また、通常のパケットフィルタリングのように外向きと内向きの2つのルールを生成することもない。ダイナミックパケットフィルタリングでは、サービスに対して1つルールを作っておけば、応答のパケットは自動的に通過させてくれる。
現在はダイナミックパケットフィルタリングを拡張したものとして、IPやTCPの情報だけではなく、アプリケーション層の情報まで捉えてアクセス制御を実現する「ステートフルパケットインスペクション(SPI)」という方法を採用している(図7)。各層の制御情報を、アプリケーションごとの特徴を登録したデータベースと照らし合わせることで、精度の高いアクセス制御が実現する。
これにより、たとえばFTPのように1つのファイルのやりとりに対して2つのコネクションを構築する通信や、IP電話で用いるSIP(Session Initiation Protocol)のように利用するポート番号を動的に決定するような通信でも、確実に制御できるわけだ。
(次ページ、「アプリケーションゲートウェイとは?」に続く)
この連載の記事
-
第11回
TECH
正規のユーザーやPCを判断する認証製品 -
第10回
TECH
社内の安全を守るセキュリティ製品の進化を知ろう -
第9回
TECH
検疫からシンクライアントまで!情報漏えいを防ぐ製品 -
第8回
TECH
ITでどこまで実現する?情報漏えい対策の基礎 -
第7回
TECH
インターネットで構築するVPNの仕組み -
第6回
TECH
通信サービスを安価にしたVPNの秘密 -
第5回
TECH
メールソフトのセキュリティとメールの認証 -
第4回
TECH
メールが抱える根本的な弱点とスパム対策 -
第3回
TECH
拡がるWebの脅威と対策を理解しよう -
第2回
TECH
巧妙化する不正プログラムを防ぐには? - この連載の一覧へ