ステートフルインスペクションとは
ステートフルインスペクションは、ネットワークを不正アクセスから保護するためにコンピューターネットワークファイアウォールで使用される手法です。 動的フィルタリングとも呼ばれるこの方法は、データパケットがネットワークに入る前にデータパケット全体を検査できます。 このようにして、ファイアウォール上の任意のインターフェースに入るすべてのパケットは、反対側への通過が許可されている接続のタイプに対して有効性が完全にチェックされます。 プロセスが名前を取得するのは、データパケットを検査するだけでなく、ファイアウォールを介して確立および許可された接続の状態も監視するためです。
ステートフル検査のアイデアは、1990年代半ばにCheckPoint®ソフトウェアによって最初に考案されました。 CheckPoint®Firewall-1 INSPECT™エンジンソフトウェア以前は、ファイアウォールは、Open Systems Interconnection(OSI)モデルの最上位にあるアプリケーション層を監視していました。 これはコンピュータのプロセッサに非常に負担がかかる傾向があったため、パケット検査はOSIモデルのレイヤーを3番目のレイヤーであるネットワークレイヤーに移動しました。 初期のパケット検査では、パケットのヘッダー情報、アドレス指定、およびプロトコル情報のみがチェックされ、新しい接続要求であるかどうかなど、パケットの状態を区別する方法はありませんでした。
ステートフルインスペクションファイアウォールでは、リソースフレンドリーで高速なパケットフィルタリング方法が、より詳細なアプリケーション情報とある程度統合されます。 これにより、パケットに何らかのコンテキストが与えられ、それにより、セキュリティの決定の基礎となる情報がさらに提供されます。 この情報をすべて保存するには、ファイアウォールがテーブルを確立する必要があります。その後、テーブルは接続の状態を定義します。 アドレス情報、ポート、プロトコル、パケットのシーケンス情報など、すべての接続の詳細がテーブルに保存されます。 リソースに負担がかかるのは、状態テーブルへの最初のエントリ中だけです。 その後、その状態と一致する他のすべてのパケットはほとんどコンピューティングリソースを使用しません。
ステートフルインスペクションプロセスは、接続を要求する最初のパケットがキャプチャされ、検査されると開始されます。 パケットはファイアウォールのルールと照合されます。ファイアウォールのルールでは、以前は未知であった、またはまだ開発されていないソフトウェア、サービス、プロトコルをサポートするために無限にカスタマイズ可能な一連の許可パラメーターと照合されます。 キャプチャされたパケットはハンドシェイクを初期化し、ファイアウォールは接続を確認する要求ユーザーに応答を送り返します。 テーブルに接続の状態情報が入力されたので、クライアントからの次のパケットは接続状態と照合されます。 これは、接続がタイムアウトするか終了するまで続き、テーブルからその接続の状態情報が消去されます。
これにより、ステートフルインスペクションファイアウォールが直面する問題の1つであるサービス拒否攻撃が発生します。 このタイプの攻撃では、接続を要求する多数の初期パケットでファイアウォールが攻撃され、状態テーブルが要求でいっぱいになるほど、セキュリティが侵害されることはありません。 いっぱいになると、状態テーブルは要求を受け入れることができなくなるため、他のすべての接続要求はブロックされます。 ステートフルファイアウォールに対する別の攻撃方法では、ファイアウォールのルールを利用して着信トラフィックをブロックしますが、発信トラフィックは許可します。 攻撃者は、ファイアウォールのセキュリティ保護された側のホストをだまして外部からの接続を要求し、攻撃者が使用するホスト上のサービスを効果的に開放することができます。