Network Security

PACKET FILTERING

パケットフィルタリング

Category: Network Security / Updated: 2026-05-26

📖

Overview

パケットフィルタリング(Packet Filtering)とは、ネットワーク上を流れるパケット(データの送受信単位)のヘッダ情報を検査し、あらかじめ定められたルール(ACL:Access Control List)に基づいて、そのパケットの通過を許可または遮断する技術です。ファイアウォールの最も基本的な機能であり、ネットワークセキュリティの根幹を成す技術です。

パケットフィルタリングが検査する主な情報は、送信元IPアドレス、宛先IPアドレス、送信元ポート番号、宛先ポート番号、プロトコル(TCP/UDP/ICMP等)です。これらの情報はパケットのヘッダ部分に含まれており、パケットの中身(ペイロード)は検査しません。そのため処理速度が高速ですが、アプリケーション層の攻撃(SQLインジェクション、XSS等)を検知することはできません。

パケットフィルタリングは、専用のファイアウォール機器だけでなく、ルーターやスイッチのACL機能、Linuxのiptablesやnftables、WindowsのWindows Firewall with Advanced Securityなど、多くのネットワーク機器やOSに標準的に実装されています。

🔬

Details

スタティックパケットフィルタリング

最も基本的なパケットフィルタリング方式です。個々のパケットを独立して検査し、ACLのルールに照合します。各パケットは前後のパケットとの関係を考慮されず、ヘッダ情報のみで判断されます。

この方式のメリットは処理が高速で実装がシンプルなことですが、デメリットとしてTCPの接続状態を追跡しないため、偽装されたACKパケットなどを使った攻撃を防ぐことが困難です。また、FTPのように動的にポート番号が変わるプロトコルへの対応が難しいという制限があります。

ステートフルパケットインスペクション(SPI)

ステートフルパケットインスペクションは、通信のセッション(接続状態)を追跡しながらパケットを検査する方式です。TCPの3ウェイハンドシェイクから接続終了までの状態遷移を管理する「ステートテーブル(状態テーブル)」を保持し、正当な通信フローに属するパケットのみを許可します。

  • 内部から外部への接続要求(SYN)を記録し、その応答(SYN/ACK)のみを通過させる
  • 未知の接続に属するパケット(偽装ACK等)を自動的にブロック
  • FTPのデータ接続など、動的に生成されるセッションにも対応可能

現在のほとんどのファイアウォールはステートフルインスペクション機能を搭載しています。

ACL(アクセスコントロールリスト)の基本

ACLはパケットフィルタリングのルールを定義するリストです。一般的に以下の要素で構成されます。

  • アクション:許可(permit / allow)または拒否(deny / drop / reject)
  • プロトコル:TCP、UDP、ICMP、IP(すべて)など
  • 送信元:送信元IPアドレス / ネットワーク / ポート番号
  • 宛先:宛先IPアドレス / ネットワーク / ポート番号
  • 方向:インバウンド(受信)またはアウトバウンド(送信)

ACLのルールは上から順に評価され、最初にマッチしたルールが適用されます。最後には通常「暗黙のdeny(すべて拒否)」が設定されます。ルールの順序が非常に重要であり、順序を間違えると意図しない通信を許可・遮断してしまう可能性があります。

Linux iptables / nftables

Linuxではiptablesまたはnftablesがパケットフィルタリングの標準ツールです。INPUT(受信)、OUTPUT(送信)、FORWARD(転送)の3つの基本チェーンに対してルールを設定します。nftablesはiptablesの後継として開発され、より統一的な構文とパフォーマンス改善が図られています。

🛡️

Security Measures

  • 01
    デフォルトdenyポリシーの採用:すべての通信をデフォルトで拒否し、必要な通信のみを明示的に許可する「ホワイトリスト方式」を採用する。デフォルトallow(すべて許可)は避ける。
  • 02
    ステートフルインスペクションの活用:可能な限りステートフルパケットインスペクションを使用し、偽装パケットや不正な接続を自動的にブロックする。
  • 03
    ACLの定期的な見直し:使用されなくなったルールや過度に広範なルールを定期的に確認し、最小権限の原則に基づいてACLを整理する。
  • 04
    ログの有効化と監視:パケットの拒否ログを有効にし、不審な通信パターンやルール違反を検知する。特に拒否されたパケットのログは攻撃の兆候を知る重要な情報源となる。
  • 05
    アンチスプーフィング対策:内部ネットワークから送信されるパケットの送信元IPアドレスが内部アドレス範囲であること、外部から送信されるパケットの送信元IPアドレスがプライベートアドレスでないことを検証する(Ingress/Egress Filtering)。
  • 06
    変更管理プロセスの確立:ACLの変更は承認プロセスを経て行い、変更履歴を記録する。本番適用前にテスト環境で動作確認を行う。
⚠️

Incidents

📋 Amazon Web Services S3バケットの設定ミス(2017年〜)

クラウド環境では、従来のパケットフィルタリングに相当するセキュリティグループやネットワークACLの設定ミスが深刻な問題となっています。2017年以降、AWS S3バケットやセキュリティグループの設定ミスにより、大量の個人情報や機密データが外部からアクセス可能な状態で放置される事件が多発しました。クラウドにおけるアクセス制御設定の重要性を示しています。

📋 ファイアウォールACL設定ミスによるデータ漏洩(2019年)

米国の大手金融機関Capital Oneにおいて、WAF(Web Application Firewall)の設定ミスを悪用した攻撃で約1億600万人の個人情報が流出しました。SSRF(Server-Side Request Forgery)攻撃を許したファイアウォールルールの不備が原因であり、パケットフィルタリングだけでは防げないアプリケーション層の攻撃に対して、多層防御の重要性が改めて認識されました。

📋 IPスプーフィングによるDDoS攻撃(継続的)

送信元IPアドレスの偽装(IPスプーフィング)を悪用したDDoS攻撃は、適切なIngress/Egressフィルタリングが行われていないISPやネットワークの存在によって未だに大きな問題となっています。BCP38/RFC 2827で推奨されているアンチスプーフィングフィルタの導入率は依然として不十分であり、偽装パケットを用いたDNS増幅攻撃やNTPリフレクション攻撃の温床となっています。

🔗

Related Terms