NET // communication networks
LESSON 27 / 標準編

ネットワーク管理 ─ ファイアウォール・IDS/IPS

境界に置かれた1台の機器が、ネットワーク全体の信頼性を支えています。あらかじめ決めたルールに従ってパケットを許可/拒否する ファイアウォール、コネクションの状態を覚える ステートフルインスペクション、アプリ層までのぞく NGFW。さらに、ルールでは止められない攻撃の 痕跡を検知 する IDS、それを 遮断 する IPS、Web に特化した WAF。本講では境界防御の道具立てを、3区画 DMZ・実装名(iptables/nftables/pf/Windows Defender Firewall)・運用視点(SOC/SIEM)とともに、対話的な図とミニ演習で深く整理します。

学習目標

本講を終えると、以下の問いに学術的な言葉で答えられるようになります。

本講は 第10回 情報セキュリティの基礎(基礎) でたとえ話レベルで触れた「ファイアウォールという門番」を、標準編の解像度で整理し直す回です。前提として標準編の 第20回 IP/CIDR/サブネット(標準)第18回 TCP(標準)第12回 HTTP 詳細(標準) までの知識を仮定します。暗号通信(TLS/IPsec) は前々回(第25回)・前回(第26回)で扱い済み、暗号化された通信を実際に手元で観察する話題は発展編で扱います。

このレッスンの目次

01 なぜ境界防御 インターネットに繋がる全ての PC・サーバ・IoT 機器に、一つひとつ完璧なセキュリ… 02 FWの4世代 ファイアウォールは「パケットの何を見て判定するか」によって世代が分かれます。下に行く… 03 ステートフル動作 第2世代以降のファイアウォールが備える ステートフルインスペクション の動きを、内部… 04 DMZ構成 Web サーバ・メールサーバなど 外部に公開する必要があるサーバ を、内部 LAN … 05 実装と書式 ファイアウォールは専用アプライアンスだけでなく、汎用 OS に組み込まれた実装も広く… 06 IDS/IPS ファイアウォールが 事前に決めたルールに従って許可/拒否 するのに対し、 IDS(I… 07 検知方式 IDS/IPS が「攻撃かどうか」を判定する方式は、大きく シグネチャベース(sig… 08 WAF Web アプリケーションに対する攻撃 ── SQL インジェクション 、 XSS(ク… 09 SOC/SIEM ファイアウォール・IDS/IPS・WAF を入れただけで安心、というわけにはいきませ… 10 まとめと用語 本講の重要語句を整理 11 確認問題 理解度を問題でチェック

なぜ「境界に1台」を置くのか

インターネットに繋がる全ての PC・サーバ・IoT 機器に、一つひとつ完璧なセキュリティ設定を施せれば理想です。しかし現実には、古い OS が残った業務端末パッチ未適用の組み込み機器不要なポートを開いたままの初期設定機器 が必ず混在します。すべての端末を等しく堅牢にする(ホストの要塞化) のは限界がある ── そこで 「組織の出入り口に1台だけ」関門を置いて、内向き・外向き双方の通信をそこで集中検査する という発想が出てきました。これが 境界防御(perimeter defense) であり、その主役が ファイアウォール です。
POINT ファイアウォールの仕事は単純に2つです。(1) あらかじめ管理者が決めた「ルール」を適用する(2) ルールに合えば中継、合わなければ破棄(またはリセット)。これだけ。アンチウイルスでも暗号化でもありません。「決めたとおりに通す/止める」だけの装置 です。

大きな図 ① 境界に立つファイアウォール

インターネット 攻撃・正常通信が混在 攻撃者 正規ユーザ ファイアウォール 許可/拒否ルール適用 受信パケット PERMIT(許可) DROP(破棄) またはRESET 内部ネットワーク 業務PC・社内サーバ 不揃いなパッチ状況 古い IoT 機器なども混在

図の見方:インターネットから到着するパケットは正規ユーザのものと攻撃者のものが混在している。ファイアウォールは 1パケットごと にルール表と突き合わせ、合えば緑色の PERMIT で内部へ通し、合わなければ赤色の DROP/REJECT で破棄する。「インターネットと内部の唯一の関所」になることが境界防御の前提条件。

3つの設計原則

(1) 集約の原則

すべての境界トラフィックを 1 つの経路 に集めることで、ルールの設定とログ記録が一元化されます。複数の経路が並列で外と繋がっていると、どこかが緩いとそこから侵入される(バックドア経路)。

(2) 最小権限の原則

必要なものだけ通し、それ以外は全部止める。あとで述べる ホワイトリスト方式(ポジティブセキュリティ) がこれにあたります。「とりあえず全部通して、攻撃が来たら止める」では絶対に追いつきません。

(3) 多層防御(defense-in-depth)

ファイアウォールは 第1層 の関門です。すり抜けてくるものを検知する IDS/IPS、Web 攻撃を弾く WAF、端末側の EDR/アンチウイルス ── これらを重ねて初めて意味があります。本講ではその主要な層を順に見ていきます。

境界防御の限界(現代の課題)

VPN・クラウド・在宅勤務・BYOD で「内/外」の境目が曖昧になり、内部からの攻撃も増えました。「内部は安全、外部は危険」という前提自体を捨てる発想が ゼロトラスト(Zero Trust) ── ただし境界防御がなくなるわけではなく、発展編で補強する話です(発展編)。

考えてみよう: 大学のキャンパス LAN にもファイアウォールがあります。あなたが研究室から学外のサービスに接続するとき、何 GB ものトラフィックが、たった数台の関門装置を通り抜けています。「全パケットを1台で検査する」処理性能を担保するために、ファイアウォールは 専用 ASIC や高速 NIC を載せた専用機がほとんどです [要確認:機種により実装は異なる]。

ファイアウォールの4世代 ── どこまで覗くか

ファイアウォールは「パケットの何を見て判定するか」によって世代が分かれます。下に行くほど より上位レイヤの情報 を判定材料に使えるようになり、その分 処理コストも増えます。順に見ていきましょう。

パケットフィルタ型(static / stateless packet filter)

もっとも素朴なタイプ。1 パケットの IP / TCP / UDP ヘッダだけ を見て、IP アドレス・ポート番号・プロトコル番号・TCP フラグ を判定します。状態(コネクション履歴) は持ちません。「来たパケット 1 個ずつを独立に判定する」だけ。

ステートフルインスペクション型(stateful inspection)

1990年代半ば(Check Point FireWall-1 が代表) に確立された方式。コネクション(セッション) の状態を内部のステートテーブルで管理 し、「今このコネクションは確立済みか?」「内部から発信したセッションへの応答か?」を判断します。今日のファイアウォールはほぼ全てこれ以降の方式です。

アプリケーションゲートウェイ型(プロキシ型)

HTTP・SMTP・FTP など プロトコルごとに専用のプロキシ を持ち、クライアントとサーバの代わりに自分が中継して通信を再構築 します。クライアントは「ファイアウォールとコネクション確立」、ファイアウォールが「サーバとコネクション確立」── 2本のコネクションを跨ぐ仲介役です。

第4世代:次世代ファイアウォール(NGFW, Next-Generation Firewall)

2000年代末以降の主流。ステートフル機能を土台に、(a) アプリケーション識別(App-ID)(b) ユーザ識別(User-ID; Active Directory 等と連携)(c) 侵入防御(IPS) 機能の統合(d) URL フィルタリング(e) TLS インスペクション(復号して中身を見る) といった機能を組み合わせます。

判定材料の参照範囲(レイヤ別)

パケットフィルタ ステートフル アプリ層プロキシ NGFW L2 ヘッダ L3(IP) ○ 送信元/宛先IP L4(TCP/UDP) ○ ポート/フラグ ◎ 状態管理 L7(アプリ層) × 見ない × 原則見ない ◎ 全文解釈 ◎ App-ID等 ユーザID △ 認証連携可 ◎ AD連携 ○ = 参照する ◎ = 中心的に活用 △ = 限定的 × = 参照しない

図の見方:横がファイアウォールの世代、縦が参照レイヤ。世代が進むにつれ「より上のレイヤ」「コネクション状態」「ユーザ ID」までを判定材料にできるようになる。同時に必要な処理コストも増える ── たとえば NGFW で TLS インスペクションを有効にすると、暗号通信を一旦復号→検査→再暗号化するため、スループットが大きく落ちる場合がある [要確認:具体値は機種・条件依存]。

もっと詳しく:WAF と通常のファイアウォールの違い

「アプリ層を見る」という意味では アプリケーションゲートウェイ型ファイアウォールNGFWWAF も似ています。違いはどこにあるのでしょうか。

製品守備範囲知っている文法主な配置
パケットフィルタ/ステートフル FWL3/L4 中心IP・ポート・TCP状態境界(全プロトコル)
NGFWL3〜L7 全般HTTP・SMTP・FTP・SIP・暗号化アプリの識別など多数境界(全アプリ汎用)
WAFL7、特に HTTP/HTTPS に特化HTTP のメソッド・URI・パラメータ・SQL/JS の文法Web サーバの直前(リバースプロキシ)

つまり WAF は「Web アプリケーション専用に深掘りしたフィルタ」 です。' OR 1=1 -- のような SQL インジェクション ペイロードや、<script> タグを含む XSS 攻撃は、ステートフル FW では「単なる HTTPS の暗号文中にある文字列」にしか見えませんが、WAF はリクエストを HTTP として解釈し、パラメータ値を取り出して攻撃パターンと照合します。NGFW でも同様の機能を持つものがありますが、深さと精度では Web に特化した WAF が優位とされる場面が多くあります。

ステートフル動作 ── 5 ステップの判定フロー

第2世代以降のファイアウォールが備える ステートフルインスペクション の動きを、内部から外部の Web サーバへ HTTPS 接続するシナリオで追ってみます。下のステップ実行で 1 つずつ進めてください。

walkthrough:HTTPS リクエストの判定フロー

内部 PC 192.168.1.10 ステートフル FW ステートテーブル src=192.168.1.10:51234 dst=203.0.113.5:443 proto=TCP state=NEW → ESTABLISHED timeout=300s Web サーバ 203.0.113.5:443 ① SYN(内→外, dst:443) ルール 照合 ② 許可 → 状態テーブル登録 → 送信 ③ SYN+ACK 戻り 「既存セッションの応答」と判定 ④ ESTABLISHED として通過
ステップ 1. 内部 PC が外部 Web サーバ(203.0.113.5:443) に向けて SYN セグメント を送り出します。送信元ポートは PC が選んだ動的ポート(例:51234)。この時点ではファイアウォールにこのコネクションの記録はありません(state = NEW)。
ステップ 2. ファイアウォールはルール表を 上から順に 突き合わせます。ALLOW from 192.168.1.0/24 to ANY tcp dst-port 443 のような許可ルールがあれば、このパケットは PERMIT。なければ最後の DENY ALL に到達して破棄(これがホワイトリスト方式の動作)。
ステップ 3. 許可されたパケットは外へ送出される と同時に、ファイアウォールの ステートテーブル に「192.168.1.10:51234 ⇔ 203.0.113.5:443 / TCP / NEW」というエントリが書き込まれます。これがステートフルインスペクションの本質。
ステップ 4. サーバから SYN+ACK が戻ってくると、ファイアウォールはルール表を引く前に まずステートテーブルを参照 します。「あ、このコネクションは私が記録した既存セッションの応答だ」と分かれば、戻り側のルールがなくても自動的に通します。これがパケットフィルタ型との大きな違いです。
ステップ 5. 3-way handshake が完了するとステートテーブルのフラグが ESTABLISHED に変わり、以降のデータパケットは高速パスで通過します。コネクションが FIN/RST で閉じるか、タイムアウト(既定値 60〜300 秒程度) が来ればエントリは削除されます [要確認:値は実装依存]。
1 / 5

図の見方:左の内部 PC から右の Web サーバへ向かう①の SYN を、ファイアウォールが②でルール照合・状態登録・送出し、戻ってきた③の SYN+ACK は 状態を見るだけで通過(ルール照合は省略) する。これが「内→外は許可、外→内は応答だけ通す」を1行で書ける理由。

ホワイトリスト方式(ポジティブセキュリティ)

POINT ファイアウォールのルール表は 必ず最後に「すべて拒否(DENY ALL)」を置く。これにより、明示的に許可されたものだけが通る。これが ポジティブセキュリティモデル(ホワイトリスト)。攻撃手法は無限に増えるので、列挙する側を「許可」にしないと管理が破綻する。

Q. それなら、ルールに「明らかに危険な攻撃ペイロード」を片っ端から書いて DENY する ブラックリスト方式(ネガティブセキュリティ) ではダメなのでしょうか?クリックして確認しましょう。

DMZ ── 公開サーバを置く第3区画

Web サーバ・メールサーバなど 外部に公開する必要があるサーバ を、内部 LAN にそのまま置くわけにはいきません。万一そのサーバが侵害されたら、内部 LAN 全体が攻撃者の足場になってしまいます。そこで考案された配置が DMZ(DeMilitarized Zone, 非武装地帯) ── 軍事用語の「非武装緩衝地帯」を借りた呼び名です。
POINT DMZ の発想:外部からの通信を 内部に直接通さず、緩衝地帯のサーバに着地させる。ファイアウォールを2段(または1台で2つの内部ゾーンを切り分け)構成し、外部 ↔ DMZDMZ ↔ 内部 をそれぞれ別ポリシで制御する。

大きな図 ② 3区画 DMZ 構成

外部 インターネット 外部FW DMZ(非武装地帯) 公開サーバを置く緩衝区画 Web サーバ tcp/443 メール tcp/25,587 DNS(権威) udp/53 侵害されても内部LANには直接届かない 内部FW 内部LAN 業務PC・社内DB 原則として外部から到達不可 443/25/53のみ許可 必要最小限のみ 外部 → 内部直接 = 全面禁止

図の見方:外部 → DMZ は 公開サービスのポートだけ を許可。DMZ → 内部 は 業務上どうしても必要なもの(例:Web サーバが社内 DB を引く必要があるなら、DB のポートだけ) に限定。外部 → 内部直接 は完全禁止。これにより、万一 Web サーバが侵害されても、攻撃者の足場は DMZ 止まりになり、内部 LAN への横展開を遅らせられる。

2台構成と1台構成(3レッグ型)

2台のファイアウォールを直列(サンドイッチ型)

外部 FW と内部 FW を別ベンダ・別 OS にすることで、片方の脆弱性が両方を貫通しない。最も堅牢とされる古典的構成。コストは高い。

1台で3つのインタフェース(3-leg / 3-legged DMZ)

1台のファイアウォールに3つの NIC を持たせ、External / DMZ / Internal をゾーンとして区別する。設定はシンプルでコストも安いが、その1台が落ちると全停止。中小規模ではこちらが主流 [要確認:組織規模により選択は分かれる]。

小問: 次のサーバのうち、DMZ に置くのが最も適切 なものはどれか。
正解:B。DMZ は 外部から到達される必要がある公開サーバ を置く緩衝区画です。Web・メール・権威 DNS が代表例。一方、A の給与 DB / C の AD / D の社内 Git は 外部に晒す必要がない ので、内部 LAN に置くのが正解。「外部公開が必要 → DMZ」「社内専用 → 内部 LAN」のルールで切り分けます。

実装と書式 ── iptables / nftables / pf / Windows Defender Firewall

ファイアウォールは専用アプライアンスだけでなく、汎用 OS に組み込まれた実装も広く使われています。現場で目にする代表例の文法を、似たルール(「内→外の HTTPS は許可、外→内は応答のみ許可」) で並べて見比べてみましょう。

Linux: iptables(古典)

# デフォルト DROP(ホワイトリスト)
iptables -P INPUT   DROP
iptables -P FORWARD DROP
iptables -P OUTPUT  DROP

# 内→外:確立済みセッションの応答を許可(ステートフル)
iptables -A INPUT  -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -m conntrack --ctstate ESTABLISHED,RELATED,NEW -p tcp --dport 443 -j ACCEPT

# 内部 LAN からの DNS は許可
iptables -A OUTPUT -p udp --dport 53 -j ACCEPT

Linux: nftables(後継・推奨)

table inet filter {
  chain input {
    type filter hook input priority 0; policy drop;
    ct state established,related accept
    iif "lo" accept
  }
  chain output {
    type filter hook output priority 0; policy drop;
    ct state new,established tcp dport 443 accept
    udp dport 53 accept
  }
}

OpenBSD / macOS: pf(Packet Filter)

set skip on lo
block all
pass out proto tcp to any port 443 keep state
pass out proto udp to any port 53 keep state

Windows: Windows Defender Firewall(PowerShell)

New-NetFirewallRule -DisplayName "Allow HTTPS Out" `
  -Direction Outbound -Action Allow `
  -Protocol TCP -RemotePort 443

Set-NetFirewallProfile -Profile Domain,Public,Private `
  -DefaultInboundAction Block -DefaultOutboundAction Block
どの実装にも共通する「型」が見えてきます ── (1) デフォルト=DROP(2) ステートフルなコネクション継続を許可(3) 必要なポートだけ明示許可。書式は違っても考え方は同じ、というのが 標準化された設計パターンの強み です。
もっと詳しく:ステートテーブルの中身

Linux であれば conntrack -Lcat /proc/net/nf_conntrack で実際のステートテーブルを覗けます。1行はおおむね次のような形式です。

tcp  6 431999 ESTABLISHED src=192.168.1.10 dst=203.0.113.5 sport=51234 dport=443 src=203.0.113.5 dst=192.168.1.10 sport=443 dport=51234 [ASSURED] mark=0 use=2

1 つのコネクションに対して 順方向と逆方向の両タプル が記録されているのが分かります。これが「戻りパケットも自動で許可される」仕組みの実体です。タイムアウト値(431999 秒など) は state ごとに異なり、ESTABLISHED は通常 5 日、UDP は 30 秒程度といった既定値が設定されています [要確認:カーネル設定により変動]。

IDS と IPS ── ルールの外側を見張る

ファイアウォールが 事前に決めたルールに従って許可/拒否 するのに対し、IDS(Intrusion Detection System, 侵入検知システム)IPS(Intrusion Prevention System, 侵入防御システム)「通信の中身に攻撃の痕跡があるか」 を別の観点で見張ります。役割が違うので、ファイアウォールの代わりではなく 併用 するものです。

IDS(検知のみ)

  • ネットワークやホストで起きている事象をリアルタイムで監視
  • 攻撃を検知したら アラート通知・ログ記録。通信は止めない
  • 接続方式は ミラーポート / SPAN / TAP でトラフィックの コピー を受け取る(プロミスキャスモード)
  • 万一 IDS が落ちてもネットワーク自体は止まらない(可用性に影響を与えない)

IPS(検知 + 遮断)

  • IDS の機能に加えて、攻撃と判定したら その場で破棄/RST を返す
  • 接続方式は インライン ── パケットが必ず IPS を通過する経路に設置
  • 処理性能が境界スループットに直結。IPS が落ちると通信全停止のリスク
  • 誤検知(フォールスポジティブ) が 正規通信の遮断 につながる ── 運用設計が極めて重要

大きな図 ③ 接続方式の違いを動かして見る

下のアニメーションは、攻撃通信(赤いパケット) が IDS の場合は 素通り(アラートのみ)、IPS の場合は その場で遮断 される様子を示します。再生・一時停止・最初から、で観察してみてください。

上段:IDS(プロミスキャスモード ─ コピーを観察) 攻撃者 スイッチ(SPAN) 標的サーバ IDS ALERT!(検知のみ) 攻撃はサーバまで到達してしまう 下段:IPS(インラインモード ─ 経路上で遮断) 攻撃者 IPS 標的サーバ BLOCK!(検知+遮断) 攻撃はサーバまで到達しない

図の見方:上段の IDS は経路の 傍ら にいて、スイッチがミラー(SPAN) で送ってくる コピー を観察する。攻撃パケット(赤) は標的サーバまで素通りし、IDS は事後的にアラートを上げる ── 検知は早いが 止められない。下段の IPS は 経路上に挿入 されており、攻撃パケットを その場で破棄 する ── 防げるが、IPS の障害は通信全断のリスク。

Q. 「IPS のほうが強そうなのに、なぜ今でも IDS という別の製品が存在するのでしょうか?」 IDS だけ買う場面ってあるの? ── クリックして確認しましょう。

検知方式 ── シグネチャ vs アノマリ

IDS/IPS が「攻撃かどうか」を判定する方式は、大きく シグネチャベース(signature-based)アノマリベース(anomaly-based, 振る舞い検知) の2系統に分かれます。WAF にも IPS にもこの2系統が現れます。

シグネチャベース(パターンマッチング)

既知の攻撃を 「攻撃 1 つ = シグネチャ 1 つ」 として登録しておき、流れるパケットや HTTP リクエストの中身と照合する方式。たとえば「/etc/passwd という文字列を含む URL」「特定の SQL インジェクション文字列」など。

第13回スライドの言葉を借りれば、登録されていないコードは見逃す ── これがパターンマッチングの宿命です。

アノマリベース(振る舞い検知 / 統計的検知)

「平常時のトラフィックや動作の 統計プロファイル」を学習しておき、そこから 逸脱したもの を疑う方式。たとえば「深夜2時に経理サーバから100GBの外向き通信が出ているのは異常」のような検知。

ハイブリッド方式(現実の主流)

多くの実機は両方を併用します。シグネチャ で既知攻撃を高精度に止め、アノマリ で「シグネチャに載っていないが何かおかしい」事象を拾う。さらに レピュテーション(脅威インテリジェンス) ── 既知の攻撃元 IP やマルウェア配布ドメインのリスト ── を併用するのが現代の標準的な構成です。

誤検知のトレードオフ

POINT どんな検知方式にも避けられない 2 種類の誤りがあります。
フォールスポジティブ(false positive, FP):正常なものを「攻撃」と誤判定 → 利便性が低下(正規通信が止まる)
フォールスネガティブ(false negative, FN):攻撃を見逃す → 安全性が低下(被害が出る)
どちらかを下げようとすると、もう一方が上がる トレードオフ。完全な検知は理論上存在しない。
検知器の判定 × 実際の事象 ── 2×2 の真理表 実際:正常 (本当に攻撃ではない) 実際:攻撃 (本当に攻撃である) 判定:正常(通す) 判定:攻撃(止める) True Negative 正常を正しく通した(理想) False Positive 正常を誤って遮断 ── 利便性低下 False Negative 攻撃を見逃した ── 安全性低下 True Positive 攻撃を正しく止めた(理想)

図の見方:検知器を厳しくするほど右側(止める) に判定が偏り、TP も FP も増える。緩くするほど左側に偏り、TN も FN も増える。緑の対角線(TN + TP) を最大化、赤・橙(FP + FN) を最小化 するチューニングが運用者の仕事。組織のリスク許容度に応じて、止め過ぎ寄り(FP多め) か見逃し寄り(FN多め) かを決める。

もっと詳しく:シグネチャ vs 振る舞い検知 ── 実例で比較
シナリオシグネチャでの判定振る舞い検知での判定
既知の SQL インジェクション(' OR 1=1 --)○ 検知できる△ パターンを学習していれば検知
新種のゼロデイ攻撃× 見逃し(FN)○ 異常な振る舞いとして検知できる可能性
正規ユーザによる業務変化(新クラウド利用)○ 通す(TN)× 「平常から逸脱」と誤検知(FP)
低速なポートスキャン(slow scan)△ シグネチャ次第○ 統計的偏りで検知できる
暗号化チャネルでの C2 通信× 中身が見えず見逃し○ 通信間隔・データ量の異常で検知可能

これが「両方併用」が現実解になる理由です。シグネチャは 既知攻撃の番人、アノマリは 未知/インサイダーの番人 として、互いの弱点を埋めます。

WAF ── Web に特化した L7 ファイアウォール

Web アプリケーションに対する攻撃 ── SQL インジェクションXSS(クロスサイトスクリプティング)OS コマンドインジェクションセッションハイジャック ── は、ステートフルファイアウォールから見れば 「正常な HTTPS 通信」 にしか見えません。これらを HTTP の文法レベルで解析して止めるのが WAF(Web Application Firewall) です。
POINT WAF は L7 のうち HTTP/HTTPS だけ を深く理解する専用フィルタ。リクエストを HTTP として解釈し、メソッド・URI・クエリ文字列・ヘッダ・ボディの値を取り出して攻撃パターンと照合する。Web サーバの直前(リバースプロキシ位置) に置くのが定石。

WAF が止める代表的な攻撃

攻撃名簡単な仕組みWAF での検知例
SQL インジェクション入力欄に SQL 断片を埋め込み、DB のクエリ構造を改ざんする' OR 1=1 --UNION SELECT などの SQL 文法をパラメータ値に検出
XSS(クロスサイトスクリプティング)悪意ある JavaScript を他ユーザのブラウザで実行させる<script>javascript:onerror= など HTML/JS 属性を検出
OS コマンドインジェクションサーバ側で OS コマンドを実行させる; cat /etc/passwd| nc などのシェルメタ文字を検出
パストラバーサル../ でアプリの想定外ディレクトリを覗くURL に ../..%2F 等のパターンを検出
セッションハイジャック / Cookie 改ざんセッション ID を盗む・推測する・改ざんするHttpOnly/Secure 属性チェック、不審な User-Agent 切り替えの検出

WAF の主な機能(整理)

WAF と通常のファイアウォールの守備範囲

攻撃者 HTTPS / dst:443 / 正常な TCP 接続 L4 から見れば「ただの 443 接続」 中身:GET /search?q=' OR 1=1 -- ↑ SQL インジェクションペイロード FW(L4) ○ 通す WAF L7 / HTTP 解析 中身を解釈 × 止める Web サーバ WAFがここで遮断 L4 ファイアウォールは「443 への正常通信」と判定して通すが、WAF は HTTP リクエストの中身を解釈して攻撃と判定し遮断

図の見方:同じ HTTPS リクエストでも、L4 ファイアウォールは「443 番ポートへの正常な TCP 接続」としか見えない(○ 通す)。WAF は HTTP メッセージとして解釈し、クエリパラメータの値が SQL インジェクションのパターンに一致することを検出して遮断する(× 止める)。「FW がいらない」という意味ではない ── FW は前段で IP/ポート単位の攻撃を弾き、WAF はその先で HTTP の中身まで踏み込む、という 役割分担

WAF にも限界があります。(1) 暗号化された通信は復号しないと中身が見えない(TLS 終端を WAF で行う必要がある)、(2) 検知ルールの設定はサイト管理者の責任(3) 過度な遮断はアプリの正常機能を壊す(アプリの一部機能が使えなくなる事故が起きうる)。WAF を入れれば安全、ではなく セキュアコーディングを基本としつつ補完する位置づけ です(第13回スライドの言う通り、WAF は要塞化の 前段階 ではなく 補完)。

運用視点 ── SOC と SIEM の存在

ファイアウォール・IDS/IPS・WAF を入れただけで安心、というわけにはいきません。これらの装置は毎日 大量のアラートとログ を吐き出します。それを 24 時間体制で監視・トリアージし、本物の事故と誤検知を切り分け、必要なら対応するチームと仕組みが必要です。それが SOCSIEM です。

SOC(Security Operation Center)

セキュリティ 運用の人/組織。社内に置く場合(in-house SOC) と、専門ベンダに外部委託する場合(MSS / Managed Security Service) がある。アナリストが画面を見て、アラートを評価し、必要に応じて インシデント対応(IR; Incident Response) へエスカレーションする。

SIEM(Security Information and Event Management)

SOC アナリストが使う ツール。ファイアウォール・IDS・WAF・サーバ・認証基盤など 各所のログを集約 し、相関分析(「同じ IP がポートスキャン → SQLi → 認証失敗連発」のように複数装置のイベントを横串で見る) を行う。代表例は Splunk、Elastic Security、Microsoft Sentinel など [要確認:製品ラインアップは時期で変動]。

本講では SOC/SIEM は 「ファイアウォールや IDS/IPS が活きるための後段の仕組み」 として存在を押さえる程度に留めます。検知装置を入れるだけでなく、ログを集めて読み解く運用 までがセキュリティ対策の全体像です。

つながる知識(発展編予告): 「内部 LAN は安全」という前提が崩れ、すべての通信を都度認証する 発想が ゼロトラスト(Zero Trust) です。VPN に代わる SASEZTNA は発展編で扱います。また、ファイアウォールでは止めきれない大量パケット型の攻撃(DDoS) には、Anycast による スクラビングセンタ 等の別アプローチがあり、これも発展編で扱います。本講(境界防御の基本道具) はその出発点です。

まとめと用語チェック

SUMMARY 1. ファイアウォール はあらかじめ決めたルールに従ってパケットを 許可/拒否 する境界防御装置。原則 ホワイトリスト方式(ポジティブセキュリティ)
2. 4世代:パケットフィルタ → ステートフル → アプリゲートウェイ(プロキシ) → NGFW。世代が進むほど上位レイヤを参照し、判定材料が増える。
3. ステートフルインスペクション はコネクション状態をテーブルで管理。「内→外は許可、応答は自動で通す」を簡潔に書ける。
4. DMZ は外部公開サーバを置く緩衝区画。外部 / DMZ / 内部 の3区画でゾーン分割し、外部 → 内部直接到達を遮断する。
5. 実装例:iptables / nftables / pf / Windows Defender Firewall。共通の型は「デフォルト DROP + ステートフル + 必要なものだけ明示許可」。
6. IDS は検知のみ(ミラーポート / プロミスキャス)、IPS は検知+遮断(インライン)。役割が違うので IDS が消えたわけではない。
7. 検知方式は シグネチャベース(既知攻撃に強い) と アノマリベース(未知/振る舞いに強い)。両方併用が現実解。
8. FP / FN はトレードオフ。完全な検知器は存在しない。
9. WAF は HTTP/HTTPS に特化した L7 フィルタ。SQLi・XSS・OS コマンドインジェクションなど Web アプリ攻撃を遮断する。
10. SOC(運用組織) と SIEM(ログ集約・相関分析ツール) が、装置を活かす後段の仕組み。

用語チェック

用語1行説明
ファイアウォール境界に置き、ルールに従ってパケットを許可/拒否する装置
境界防御(perimeter defense)組織と外部の境目に関門を置き、入出を一括制御する考え方
パケットフィルタ型L3/L4 ヘッダだけで判定。状態を持たない最も素朴な方式
ステートフルインスペクションコネクション状態をテーブルで管理し、戻りパケットを自動許可する方式
アプリケーションゲートウェイ型プロトコルごとのプロキシで2本のコネクションを仲介。中身を解釈
NGFW(次世代ファイアウォール)ステートフル+アプリ識別+ユーザ識別+IPS統合の現代型
ホワイトリスト方式(ポジティブセキュリティ)「許可するものを列挙、それ以外は全部拒否」の設計原則
DMZ(DeMilitarized Zone)公開サーバを置く緩衝区画。外部 / DMZ / 内部 の3区画
iptables / nftablesLinux のパケットフィルタ実装。nftables が後継・推奨
pf(Packet Filter)OpenBSD 由来のパケットフィルタ。macOS にも採用
Windows Defender FirewallWindows 標準のホストベースファイアウォール
IDS(侵入検知システム)攻撃を検知してアラート/ログ。通信は止めない。ミラーポート接続
IPS(侵入防御システム)検知+遮断。インライン接続。誤検知時の影響が大きい
NIDS / HIDSネットワーク型 IDS / ホスト型 IDS。観測対象が異なる
シグネチャベース既知攻撃のパターンと照合する検知方式
アノマリベース平常時からの逸脱を異常とみなす検知方式
フォールスポジティブ(FP)正常を攻撃と誤判定。利便性低下
フォールスネガティブ(FN)攻撃を見逃す。安全性低下
WAF(Web Application Firewall)HTTP/HTTPS に特化した L7 フィルタ。SQLi・XSS 等を検知
SOC(Security Operation Center)セキュリティ運用を担う人/組織。アラート監視と対応
SIEM各所のログを集約・相関分析するツール
NEXT(発展編予告): ここから先は 発展編 ─ 手を動かしてネットワークの動作を観るシリーズです。第28回 ネットワークプログラミングとサーバの実体 から始まり、第29回 HTTP プログラミング第30回 Wireshark でパケットを観る など、日常で触れている技術を実際に動かして理解していきます。

確認問題

問1. パケットフィルタ型ファイアウォールとステートフルインスペクション型の違いとして、最も適切なものを1つ選べ。

次の選択肢から最も適切なものを選択してください。
A. パケットフィルタ型は L7 まで解析できるが、ステートフル型は L4 までしか見ない
B. ステートフル型は通信の中身を必ず復号して検査する
C. ステートフル型はコネクションの状態をテーブルで管理し、戻りパケットを自動的に許可できる
D. パケットフィルタ型はユーザ ID を Active Directory と連携して判定する
正解:C
パケットフィルタ型は 1パケットを独立に 判定するため、内→外を許可しても戻ってくる外→内のパケットに対するルールを別途書く必要がある。ステートフル型は コネクション状態(NEW/ESTABLISHED/RELATED 等) をテーブルで保持し、「既存セッションの応答」と判定すればルール照合をせずに通せる。A はどちらも本来 L4 中心(L7 解析は NGFW やプロキシ・WAF の役割)。B は誤り(中身復号は WAF や TLS インスペクションの話)。D はユーザ ID 識別を行うのは NGFW で、パケットフィルタ型ではない。

問2. DMZ(DeMilitarized Zone)に置くサーバとして最も適切なものを1つ選べ。

次の選択肢から最も適切なものを選択してください。
A. 社員の給与情報を保管する人事 DB サーバ
B. 不特定多数の顧客がアクセスする企業の公開 Web サーバ
C. 社員のログインを処理する Active Directory ドメインコントローラ
D. ファイアウォール自身の管理コンソール
正解:B
DMZ の目的は 「外部から到達される必要があるが、侵害された場合に内部 LAN への横展開を防ぎたい」 サーバの隔離。外部公開 Web・メール・権威 DNS が代表例で、B が該当する。A の人事 DB / C の AD は本来 外部から到達できてはならない ので内部 LAN に置く。D の管理コンソールはむしろ 管理用 VLAN など最も保護された区画に置くべきで、DMZ ではない。「外に晒す必要があるか?」が DMZ 配置の判断基準。

問3. IDS と IPS の違いに関する記述として、最も適切なものを1つ選べ。

次の選択肢から最も適切なものを選択してください。
A. IDS は L7 を見るが、IPS は L4 までしか見ない
B. IDS は暗号化通信を必ず復号できるが、IPS はできない
C. IDS はインラインに接続して通信を遮断し、IPS はミラーポートで観察するだけ
D. IDS は通信のコピー(ミラー)を観察して検知するだけ、IPS はインライン経路上に置いて検知+遮断する
正解:D
IDS(プロミスキャスモード/ミラーポート)は 通信のコピーを受け取って観察 するため、攻撃を検知してもアラートを上げるだけで通信自体は止められない。一方 IPS は パケットが必ず通過する経路上(インライン) に置かれ、検知時に その場で破棄/RST 送出 ができる。C はインライン/ミラーが逆。A・B は誤り(参照レイヤや復号能力は IDS/IPS の本質的差ではない)。IPS は止められるが 誤検知時は正規通信が止まるIPS 障害=通信全断 というリスクと引き換え、というのが要点。

問4. シグネチャベースの検知方式の特徴として、最も適切なものを1つ選べ。

次の選択肢から最も適切なものを選択してください。
A. 既知の攻撃パターンとの照合で検知するため、データベースに登録されていない未知攻撃は見逃しやすい
B. 平常時の統計プロファイルと比較するため、初期キャリブレーションが難しいが未知攻撃に強い
C. AI/機械学習を必須とし、ルールベースでは実装できない
D. 正規ユーザの行動変化を必ず誤検知してしまうという根本的欠陥がある
正解:A
シグネチャベースは 既知攻撃のパターン(シグネチャ)を DB に登録 しておき、流れる通信と パターンマッチング する方式。既知攻撃の検知精度は高いが、シグネチャ DB に載っていない攻撃は見逃す(フォールスネガティブ) のが宿命。B は アノマリベース の説明。C は誤り(シグネチャベースは AI 不要のルールベース実装が一般的)。D は誤り(誤検知が起きる場合があるのはアノマリベース、シグネチャは原則「登録された攻撃」しか検知しないので正規ユーザを誤検知することは少ない)。

問5. WAF(Web Application Firewall)に関する記述として、最も適切なものを1つ選べ。

次の選択肢から最も適切なものを選択してください。
A. WAF は L3/L4 のヘッダ情報のみを使って通信を判定するため、SQL インジェクションは止められない
B. WAF を導入すれば、Web アプリのソースコード品質に関係なくすべての攻撃を防げる
C. WAF は HTTP/HTTPS の中身を解釈し、SQL インジェクションや XSS など Web アプリ特有の攻撃を検知・遮断する
D. WAF は通常のステートフルファイアウォールと完全に同じ機能を持ち、置き換え可能である
正解:C
WAF は L7 のうち HTTP/HTTPS だけ を深く解釈する専用フィルタ。リクエストをパースして URL・パラメータ・ヘッダ・ボディの値を取り出し、SQL インジェクション(' OR 1=1 -- 等)・XSS(<script> 等)・OS コマンドインジェクション といった Web アプリ攻撃のパターンと照合して遮断する。A は逆(WAF は L3/L4 だけでなく L7 を見る)。B は誤り(WAF は セキュアコーディングの補完 であって万能ではない。アプリ自体の品質向上が前提)。D も誤り(L4 ファイアウォールとは 守備範囲も配置位置も異なる ため置き換えではなく 併用 する関係)。
← PREV
第26回 アプリ層のセキュア化
NEXT →
第28回 ネットワークプログラミング