00 学習目標
01 なぜ境界防御
02 FWの4世代
03 ステートフル動作
04 DMZ構成
05 実装と書式
06 IDS/IPS
07 検知方式
08 WAF
09 SOC/SIEM
10 まとめと用語
11 確認問題
学習目標
本講を終えると、以下の問いに学術的な言葉で答えられるようになります。
ファイアウォール(firewall) の役割を 境界防御(perimeter defense) と 許可/拒否ルールの適用 の観点から説明できる
パケットフィルタ型 、ステートフルインスペクション型 、アプリケーションゲートウェイ型(プロキシ型) 、次世代ファイアウォール(NGFW) の4世代を、参照するレイヤと判定材料の観点から区別できる
ホワイトリスト方式(ポジティブセキュリティモデル) と ブラックリスト方式(ネガティブ) の違いを述べ、ファイアウォールがホワイトリストを採る理由を説明できる
DMZ(DeMilitarized Zone) の3区画構成(外部 / DMZ / 内部) と、公開サーバを DMZ に置く設計上の理由を説明できる
iptables / nftables / pf / Windows Defender Firewall 等の実装名と、その書式の例を読める
IDS(Intrusion Detection System) と IPS(Intrusion Prevention System) の違いを、ミラーポート(プロミスキャスモード) vs インライン の接続方式と 検知のみ vs 検知+遮断 の機能差で説明できる
シグネチャベース(パターンマッチング) と アノマリベース(振る舞い検知) の長所短所、および フォールスポジティブ / フォールスネガティブ のトレードオフを述べられる
WAF(Web Application Firewall) が L7 で検知する攻撃(SQL インジェクション・XSS など) の例と、通常のファイアウォールとの守備範囲の違いを述べられる
運用視点として SOC(Security Operation Center) と SIEM(Security Information and Event Management) の役割を概説できる
このレッスンの目次
なぜ「境界に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 個ずつを独立に判定する」だけ。
判定材料: 送信元 IP / 宛先 IP / 送信元ポート / 宛先ポート / プロトコル(TCP・UDP・ICMP) / TCP の SYN・ACK ビット
長所: 高速・実装シンプル・ルータ機能との親和性が高い
短所: 戻りパケットの判定が困難。「内→外の TCP 通信は許可するが、外→内のすべての TCP 開始を拒否」のようなルールを書こうとすると、戻ってくる ACK パケットまで止まってしまう。これを避けるためにルールが複雑化しやすい
例: 古典的な Cisco IOS の ACL、Linux の旧 ipchains
ステートフルインスペクション型(stateful inspection)
1990年代半ば(Check Point FireWall-1 が代表) に確立された方式。コネクション(セッション) の状態を内部のステートテーブルで管理 し、「今このコネクションは確立済みか?」「内部から発信したセッションへの応答か?」を判断します。今日のファイアウォールはほぼ全てこれ以降の方式です。
判定材料: 上記に加えて コネクション状態(NEW・ESTABLISHED・RELATED・INVALID)
長所: 「内部→外部の発信は自由、その応答パケットだけ自動で許可」という直感的なルールが書ける。戻りパケットを書かなくて済む
短所: ステートテーブルがメモリを消費。大量同時接続で枯渇するリスク。L7 の中身までは見ない
例: Linux iptables/nftables、OpenBSD pf、Cisco ASA、Check Point
アプリケーションゲートウェイ型(プロキシ型)
HTTP・SMTP・FTP など プロトコルごとに専用のプロキシ を持ち、クライアントとサーバの代わりに自分が中継して通信を再構築 します。クライアントは「ファイアウォールとコネクション確立」、ファイアウォールが「サーバとコネクション確立」── 2本のコネクションを跨ぐ仲介役です。
判定材料: アプリケーション層のメッセージ全体(HTTP のメソッド・URI・ヘッダ・ボディなど)
長所: プロトコルごとのきめ細かな制御、不正な書式や危険なコマンドの遮断、ログの粒度が細かい
短所: プロトコルごとにプロキシを実装する必要があり、新規プロトコルへの追従が遅い。コネクション 2 本分の処理で性能低下
例: Squid(HTTP プロキシ)、メールゲートウェイ製品全般
第4世代:次世代ファイアウォール(NGFW, Next-Generation Firewall)
2000年代末以降の主流。ステートフル機能を土台に、(a) アプリケーション識別(App-ID) 、(b) ユーザ識別(User-ID; Active Directory 等と連携) 、(c) 侵入防御(IPS) 機能の統合 、(d) URL フィルタリング 、(e) TLS インスペクション(復号して中身を見る) といった機能を組み合わせます。
判定材料: L3〜L7 すべて。ポート番号ではなく 「これは Skype のトラフィックだ」「これは社員 山田 の通信だ」 といった意味的な識別ができる
長所: ポート番号偽装をすり抜ける現代的な攻撃に対応。1 台で IDS/IPS/URL/AV まで集約できる(運用が楽)
短所: 高価。TLS インスペクションはプライバシ・性能・証明書管理の課題。誤検知時の影響が大きい
例: Palo Alto Networks PA シリーズ、Fortinet FortiGate、Cisco Firepower、Check Point Quantum [要確認:製品ラインアップは年々変動]
判定材料の参照範囲(レイヤ別)
パケットフィルタ
ステートフル
アプリ層プロキシ
NGFW
L2 ヘッダ
L3(IP)
○ 送信元/宛先IP
○
○
○
L4(TCP/UDP)
○ ポート/フラグ
◎ 状態管理
○
◎
L7(アプリ層)
× 見ない
× 原則見ない
◎ 全文解釈
◎ App-ID等
ユーザID
−
−
△ 認証連携可
◎ AD連携
○ = 参照する ◎ = 中心的に活用 △ = 限定的 × = 参照しない
図の見方:横がファイアウォールの世代、縦が参照レイヤ。世代が進むにつれ「より上のレイヤ」「コネクション状態」「ユーザ ID」までを判定材料にできるようになる。同時に必要な処理コストも増える ── たとえば NGFW で TLS インスペクションを有効にすると、暗号通信を一旦復号→検査→再暗号化するため、スループットが大きく落ちる場合がある [要確認:具体値は機種・条件依存]。
もっと詳しく:WAF と通常のファイアウォールの違い
「アプリ層を見る」という意味では アプリケーションゲートウェイ型ファイアウォール も NGFW も WAF も似ています。違いはどこにあるのでしょうか。
製品 守備範囲 知っている文法 主な配置
パケットフィルタ/ステートフル FW L3/L4 中心 IP・ポート・TCP状態 境界(全プロトコル)
NGFW L3〜L7 全般 HTTP・SMTP・FTP・SIP・暗号化アプリの識別など多数 境界(全アプリ汎用)
WAF L7、特に 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 する ブラックリスト方式(ネガティブセキュリティ) ではダメなのでしょうか?クリックして確認しましょう。
解答を見る
結論:ファイアウォール本体ではダメ です。理由は3つ。
未知の攻撃に追従できない :列挙した攻撃しか止められず、明日生まれる新しい攻撃は素通り
ルール数が爆発する :既知攻撃を全部列挙するとルール表が膨大になり、性能と保守性が破綻
「許可するもの」のほうが圧倒的に少ない :組織で使うサービスは限られている(HTTP/HTTPS/DNS/SSH 等)。許可リスト方式のほうが本質的に短くて済む
例外的に、IDS/IPS や WAF の検知シグネチャ はブラックリスト的な発想で動きます(「この攻撃文字列を検知したら止める」)。役割分担:ファイアウォール=ホワイトリスト / IDS/IPS=ブラックリスト と覚えると整理しやすいです。両者を組み合わせるのが 多層防御 の発想。
DMZ ── 公開サーバを置く第3区画
Web サーバ・メールサーバなど 外部に公開する必要があるサーバ を、内部 LAN にそのまま置くわけにはいきません。万一そのサーバが侵害されたら、内部 LAN 全体が攻撃者の足場になってしまいます。そこで考案された配置が DMZ(DeMilitarized Zone, 非武装地帯) ── 軍事用語の「非武装緩衝地帯」を借りた呼び名です。
POINT
DMZ の発想:外部からの通信を 内部に直接通さず 、緩衝地帯のサーバに着地させる。ファイアウォールを2段(または1台で2つの内部ゾーンを切り分け)構成し、外部 ↔ DMZ ・DMZ ↔ 内部 をそれぞれ別ポリシで制御する。
大きな図 ② 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 に置くのが最も適切 なものはどれか。
A. 給与計算データを保管する社内 DB サーバ
B. 一般顧客向けに公開する企業 Web サイトのサーバ
C. 社員のドメイン認証を行う Active Directory ドメインコントローラ
D. 開発者だけが使う社内 Git リポジトリ
正解: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 -L や cat /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 だけ買う場面ってあるの? ── クリックして確認しましょう。
解答を見る
IDS が今も使われる主な理由は次のとおりです。
可用性最優先の場面 :基幹業務系・医療・金融のように 「数秒の通信断も許されない」 ネットワークでは、IPS のフォールスポジティブによる正規通信の遮断が深刻な事故になりうる。検知だけにとどめてオペレータが判断する運用が好まれる
事後分析・フォレンジック :発生した事象の 記録 を残して後から分析する用途では、リアルタイムで止める必要はなく、むしろ「全部観察して残す」 IDS が向く
暗号化通信の観測 :中身を復号できない通信では遮断判断が難しい。挙動の異常検知 (セッション数の急増・通信パターンの変化) を IDS で行い、SOC で分析するアプローチがとられる
レガシーネットワークの観察 :既存のネットワーク構成を変えずに「とりあえず観察を始めたい」場合、ミラーポート 1 本で済む IDS は導入が容易
現代の NGFW では IPS 機能が標準で内蔵 されているケースが多いものの、専用の IDS / NDR(Network Detection and Response) 製品で深い解析を別途行う構成も一般的です。要するに「IDS と IPS は『止めるかどうか』の違いだけで、どちらが上位 という関係ではない」のが実情です。
検知方式 ── シグネチャ vs アノマリ
IDS/IPS が「攻撃かどうか」を判定する方式は、大きく シグネチャベース(signature-based) と アノマリベース(anomaly-based, 振る舞い検知) の2系統に分かれます。WAF にも IPS にもこの2系統が現れます。
シグネチャベース(パターンマッチング)
既知の攻撃を 「攻撃 1 つ = シグネチャ 1 つ」 として登録しておき、流れるパケットや HTTP リクエストの中身と照合する方式。たとえば「/etc/passwd という文字列を含む URL」「特定の SQL インジェクション文字列」など。
長所: 既知の攻撃を 確実に 検知できる。誤検知が比較的少ない
短所: 未知の攻撃(ゼロデイ) や独自実装サイトへの攻撃は見逃す 。シグネチャ DB の更新が止まると陳腐化する
例: Snort・Suricata・OSS WAF の ModSecurity + OWASP CRS
第13回スライドの言葉を借りれば、登録されていないコードは見逃す ── これがパターンマッチングの宿命です。
アノマリベース(振る舞い検知 / 統計的検知)
「平常時のトラフィックや動作の 統計プロファイル 」を学習しておき、そこから 逸脱したもの を疑う方式。たとえば「深夜2時に経理サーバから100GBの外向き通信が出ているのは異常」のような検知。
長所: 未知の攻撃にも対応できる可能性 。インサイダー脅威・データ持ち出しの検知に有効
短所: 平常を学習する 初期キャリブレーション が難しく、フォールスポジティブが多くなりがち 。「最近うちの社員が新しいクラウドサービスを使い始めた」という普通の変化が異常と判定されることも
例: 機械学習を組み込んだ商用 NDR/EDR 製品、UEBA(User and Entity Behavior Analytics)
ハイブリッド方式(現実の主流)
多くの実機は両方を併用します。シグネチャ で既知攻撃を高精度に止め、アノマリ で「シグネチャに載っていないが何かおかしい」事象を拾う。さらに レピュテーション(脅威インテリジェンス) ── 既知の攻撃元 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 の主な機能(整理)
攻撃の検知・防御: 接続元 IP のチェック、HTTP リクエスト/ヘッダの検査、攻撃ペイロードの遮断、アラート通知、ログ記録
SSL アクセラレータ機能: HTTPS の暗号化されたパケットを WAF で復号 し、平文の HTTP として検査(中身を見るには復号が必須)。Web サーバの暗号処理負荷も軽減できる
ブリッジ型 / モニタ型 / リバースプロキシ型: 配置形態。多くは リバースプロキシ型 (Web サーバの前段に置き、クライアントからは WAF が Web サーバに見える)
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 時間体制で監視・トリアージし、本物の事故と誤検知を切り分け、必要なら対応するチームと仕組みが必要です。それが SOC と SIEM です。
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 に代わる SASE ・ZTNA は発展編で扱います。また、ファイアウォールでは止めきれない大量パケット型の攻撃(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 / nftables Linux のパケットフィルタ実装。nftables が後継・推奨
pf(Packet Filter) OpenBSD 由来のパケットフィルタ。macOS にも採用
Windows Defender Firewall Windows 標準のホストベースファイアウォール
IDS(侵入検知システム) 攻撃を検知してアラート/ログ。通信は止めない。ミラーポート接続
IPS(侵入防御システム) 検知+遮断。インライン接続。誤検知時の影響が大きい
NIDS / HIDS ネットワーク型 IDS / ホスト型 IDS。観測対象が異なる
シグネチャベース 既知攻撃のパターンと照合する検知方式
アノマリベース 平常時からの逸脱を異常とみなす検知方式
フォールスポジティブ(FP) 正常を攻撃と誤判定。利便性低下
フォールスネガティブ(FN) 攻撃を見逃す。安全性低下
WAF(Web Application Firewall) HTTP/HTTPS に特化した L7 フィルタ。SQLi・XSS 等を検知
SOC(Security Operation Center) セキュリティ運用を担う人/組織。アラート監視と対応
SIEM 各所のログを集約・相関分析するツール
確認問題
問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 ファイアウォールとは 守備範囲も配置位置も異なる ため置き換えではなく 併用 する関係)。