ファイアウォール
ファイアウォール
ファイアウォール(防火壁、Firewall)とは、ネットワークセグメント間で設定したルール(ACL)に基づいてパケットを中継・破棄する機能を持つアクセス制御機能です。
正当なアクセス権を持つものを選別して、不要なものを除外する「フィルタリング」機能を有します。
ファイアウォールをセグメント単位で適切に配置することで、緩衝領域としてDMZ(De-Militarized Zone:非武装領域)を作ることができます。
元々ファイアウォールは、「インバウンド方向」のパケットから内部ネットワークを守る盾の役割を果たしていましたが、コンピュータウィルスなどのセキュリティ脅威の発達に伴い、内部ネットワークからの不正接続を禁止するために、「アウトバウンド方向」のパケットについてもフィルタリングされるようになりました。
ファイアウォールにアンチウイルス、コンテンツフィルタやIPS機能などの複数機能を統合したオールインワン製品はUTM(Unified Threat Management:統合脅威管理)と呼ばれています。
アクセス制御について
アクセス制御の概念として以下の2つがあります。
・デフォルトでは全て拒否して許可ルール(ホワイトリスト)を登録する概念を「ポジティブセキュリティモデル」といいます。
・デフォルトでは全て許可して拒否ルール(ブラックリスト)を登録する概念を「ネガティブセキュリティモデル」といいます。
アドレス変換
ファイアウォールには、グローバルアドレスとプライベートアドレスを相互変換する機能があります。
NAT(Network Address Translation)はパケット中継時にIPアドレスのみを変換します。
NAPT(Network Address and Port Translation)はパケット中継時にIPアドレスとポート番号を変換します。IPマスカレードとも呼ばれます。
ファイアウォールの種類
ファイアウォールは動作するプロトコル階層によっていくつかに分類されます。
スタティックパケットフィルタ型
パケットのヘッダ情報に含まれるIPアドレス、ポート番号などを監視し、あらかじめ設定した条件によって、その通信を中継・破棄・拒否などの動作で通信を制御する方式です。
OSI参照モデルにおけるネットワーク層(レイヤ3)やトランスポート層(レイヤ4)に相当するIPからTCP、UDP層の条件で、通信の許可/不許可を判断します。
ダイナミックパケットフィルタ型
宛先および送信元のIPアドレスやポート番号などの接続・遮断条件を、パケット内容に応じて動的に変化させて通信制御を行う方式です。
セッション管理テーブルで、パケット応答やコネクションを総合的に管理して、自動的に必要な処理を行います。
セッションが終了すると、動的に生成した通信ルールは破棄されます。
不正アクセスによる順序の矛盾したパケットを防ぐことが可能です。
ステートフルパケットインスペクション型
CheckPoint社が開発したファイアウォールです。
基本的な仕組みはダイナミックパケットフィルタ型と同じです。
アプリケーションごとの通信フローなどの情報を記憶して判断動作します。
「ステートフル」とは個々のセッション状態を管理して、それら情報を基にフィルタリングを行うという意味です。
アプリケーションゲートウェイ型
HTTPやFTPなどのアプリケーションごとに別々にプロキシ(中継専用プログラム)をもち、アプリケーション層のレベルで制御する方式です。
クライアントはファイアウォールとコネクションを確立し、ファイアウォールがサーバにアクセスすることで、コネクションを確立します。
一般的なプロキシサーバの仕組みと似ています。
アプリケーションの通信内容も検査できますが、検査方法によってはファイアウォールは相当な負荷が掛かるため、通信処理を遅延させる要因になります。
サーキットレベルゲートウェイ型
トランスポート層のレベルで通信を確立し、クライアントとサーバをバーチャルサーキット(仮想通信路)を確立する方式です。
代表的なソフトウェア実装としてはSOCKSがある。
Webアプリケーションファイアウォール(WAF)
WAFとは、Webアプリケーションのやり取りを把握・管理することによって不正侵入を防御することのできるファイアウォールのことです。
従来のファイヤーウォールがネットワークレベルで管理していたことに対して、WAFはアプリケーションのレベルで管理を行います。