ステートフルパケットインスペクション 【SPI】 Stateful Packet Inspection / ステートフルインスペクション / ステートフルファイアウォール
概要
ステートフルパケットインスペクション(SPI)とは、ルータやファイアウォールなどのセキュリティ機能の一つで、内外を出入りするパケットの情報を継続的に読み取って通信状態を把握し、外部から送信されたパケットの通過の可否を動的に判断すること。一般的なパケットフィルタリング機能では、送信元アドレスや宛先ポート番号など、管理者が事前に設定した可否判断の条件に基づいて、個々のパケットを条件に適合するか否かだけで静的に判断する方式がよく用いられる。
これに対し、SPIでは自身を通過するパケットを監視して一定の範囲で過去の通信履歴を記録しておき、そこから導き出される現在の通信状態に矛盾するパケットが届いた場合、設定された条件に適合するか否かに関わらず不審なパケットとみなして破棄する。通信の何を監視し、どのような一貫性を求めるかは管理者が設定できるようになっている。
例えば、TCP接続を開始するには接続元から接続先にSYNパケットを送信し、接続を受け付ける場合は接続先がSYN+ACKパケットを返信、最後に接続元がACKパケットを送信という3段階の手順(スリーウェイハンドシェイク)を踏む。
このとき、過去にSYNやSYN+ACKを送受信した形跡のないホストから唐突にACKパケットが送られてきたら、相手方の動作の不具合か、何らかの攻撃の一部であることが疑われる。
ACKパケットそのものは正常な通信で頻繁やり取りされるものであるため、このような不信な事例のみを拒絶する条件を静的なフィルタに記述するのは難しいが、SPIでは過去のパケットの通過履歴から不正常な通信であると判断し、接続を遮断することができる。
(2018.8.3更新)