---
title: 明日話せるセキュリティネタ会#7
tags:  #セキュリティ #脆弱性診断 #zap  
author: [Quatrex](https://docswell.com/user/Quatrex)
site: [Docswell](https://www.docswell.com/)
thumbnail: https://bcdn.docswell.com/page/GJWGN2P372.jpg?width=480
description: OSSな脆弱性診断ツールのZAPを試してみる回。
published: September 06, 26
canonical: https://docswell.com/s/Quatrex/K8N68Q-2026-09-06
---
# Page. 1

![Page Image](https://bcdn.docswell.com/page/GJWGN2P372.jpg)

ZAP を実際に触ってみる回
EPISODE #7
― 無料の診断ツールを穴だらけのアプリに撃ってみた ―
2026-09-06 (日) 20:30〜
Quatrex × かーでぃ
#明日話せるセキュリティネタ会


# Page. 2

![Page Image](https://bcdn.docswell.com/page/4EZL3DKG73.jpg)

明日話せるセキュリティネタ会 #7 — ZAP を実際に触ってみる
今日の流れ
2026-09-06 | Quatrex × かーでぃ
1. 前々回のおさらい ― 脆弱性診断は OSS でできる
2. ZAP とは何者か ― 間に挟まるプロキシ
3. 実際に当ててみる ― 穴だらけのアプリと、対策を固めたアプリに
4. わかったこと ― 届いたところと、届かなかったところ
今日いちばん見てほしいのは、同じツール・同じ撃ち方で、 穴だらけのアプリと、対策を固
めたアプリで、結果がまるで違うこと。
2 / 31


# Page. 3

![Page Image](https://bcdn.docswell.com/page/Y76WX1QQ7V.jpg)

1. 前々回のおさらい
脆弱性診断は OSS でできる
3 / 31


# Page. 4

![Page Image](https://bcdn.docswell.com/page/G75MX4R274.jpg)

明日話せるセキュリティネタ会 #7 — ZAP を実際に触ってみる
診断は4種類。それぞれに無料の OSS がある
種類
SAST
DAST
SCA
シークレット検出
何を見る
ソースコードを静的に読む
動いているアプリを外から叩く
依存ライブラリの既知 CVE
コードに混入した鍵・パスワード
2026-09-06 | Quatrex × かーでぃ
代表 OSS
Semgrep
ZAP
Trivy
GitLeaks
このうち ZAP だけが「動かして叩く」DAST。今日はここを実際にやる。
4 / 31


# Page. 5

![Page Image](https://bcdn.docswell.com/page/9J29XVD1ER.jpg)

明日話せるセキュリティネタ会 #7 — ZAP を実際に触ってみる
脆弱性の地図 ― 8つのカテゴリ
#
1
2
3
4
5
6
7
8
カテゴリ
入力検証
認証
認可・アクセス制御
セッション管理
データ保護・暗号
設定・構成
依存・サプライチェーン
ロギング・ロジック
2026-09-06 | Quatrex × かーでぃ
代表的な攻撃 / 失敗
SQLi / XSS / コマンドインジェクション
パスワードスプレー / クレデンシャルスタッフィング
IDOR / BOLA / 権限昇格
CSRF / セッション固定 / ハイジャック
平文保存 / 弱い暗号 / TLS 不備
デフォルト設定 / ヘッダ不備 / 公開バケット
既知 CVE / typosquatting
ログ不在 / 監視不在 / ロジック悪用
IDOR = Insecure Direct Object Reference（安全でない直接オブジェクト参照）。他人の ID を指
定すると他人のデータが見えてしまう類。API 版の呼び方が BOLA。
5 / 31


# Page. 6

![Page Image](https://bcdn.docswell.com/page/DEY48324JM.jpg)

明日話せるセキュリティネタ会 #7 — ZAP を実際に触ってみる
2026-09-06 | Quatrex × かーでぃ
OSS 4本は、どこを守っているのか
#
1
2
3
4
5
6
7
8
カテゴリ
入力検証
認証
認可・アクセス制御
セッション管理
データ保護・暗号
設定・構成
依存・サプライチェーン
ロギング・ロジック
ZAP
●
○
●
○
●
Semgrep
●
●
Trivy
GitLeaks
人
●
●
●
●
●
●
3 と 8 は「人」の列にしか印が付かない。ここが今日の最後に戻ってくる場所。
● 主に担当 ○ 部分的に
6 / 31


# Page. 7

![Page Image](https://bcdn.docswell.com/page/VJNYQV8678.jpg)

2. ZAP とは何者か
間に挟まるプロキシ
7 / 31


# Page. 8

![Page Image](https://bcdn.docswell.com/page/YE9PD6KRJ3.jpg)

明日話せるセキュリティネタ会 #7 — ZAP を実際に触ってみる
2026-09-06 | Quatrex × かーでぃ
ソースを見ない。通信を見る
どういう道具か
Zed Attack Proxy
動いているアプリに外からリクエストを
投げて穴を探す
無償・オープンソース。この分野の定番
商用の Burp / AppScan / Acunetix の対
抗馬
呼び名が変わった
長く「OWASP ZAP」だった
今は ZAP by Checkmarx
中身も使い方も無償も変わらない
記事は旧名が大半。検索はどちらでも可
8 / 31


# Page. 9

![Page Image](https://bcdn.docswell.com/page/GE8D3ZRGED.jpg)

明日話せるセキュリティネタ会 #7 — ZAP を実際に触ってみる
仕組みは「間に座る」だけ
2026-09-06 | Quatrex × かーでぃ
ブラウザ ──▶ ［ ZAP プロキシ ］ ──▶ 対象アプリ
└▶ 通信を 記録・改ざん・再送
ソースコードは1行も見ない。だから言語もフレームワークも問わない
逆に、ZAP が知っているのは「通った通信」だけ。踏んでいない画面は検査されない
SAST は「こう作ったから守られているはず」という設計側の説明。DAST は「外から叩い
たらどうだったか」という結果側の確認。 この2つが揃って、はじめて「対策できている」
と言い切れる。
9 / 31


# Page. 10

![Page Image](https://bcdn.docswell.com/page/LELMVDKX7R.jpg)

明日話せるセキュリティネタ会 #7 — ZAP を実際に触ってみる
どんな形で配られているのか
デスクトップ GUI
Windows / macOS / Linux の
インストーラ
手で触って探索する用
Java 17 以上（macOS 版は
同梱）
Docker イメージ
ghcr.io/zaproxy/zaproxy
入れずに使い捨てで回せる
今日の実演はこれ
2026-09-06 | Quatrex × かーでぃ
クロスプラットフォー
ム ZIP
解凍して置くだけ
Core 版は最小構成
Java 17 以上が必要
中身は Java のアプリ ( zap-2.17.0.jar )。Docker イメージには zap-baseline.py / zap-fullscan.py / zap-api-scan.py が同梱されている。
10 / 31


# Page. 11

![Page Image](https://bcdn.docswell.com/page/4JMYGP23JW.jpg)

明日話せるセキュリティネタ会 #7 — ZAP を実際に触ってみる
Docker のタグは用途で選ぶ
タグ
stable
bare
weekly
nightly
今日
2026-09-06 | Quatrex × かーでぃ
位置づけ
通常はこれ。リリース版 + 更新されたアドオン
CI 向けの最小構成。スキャンスクリプトは入らない
毎週月曜更新。新しい機能を試したいとき
毎日更新。最新のソースから
ghcr.io/zaproxy/zaproxy:stable
(約 3.7GB / ZAP 2.17.0)
イメージは Docker Hub と GitHub Container Registry の両方にある。
11 / 31


# Page. 12

![Page Image](https://bcdn.docswell.com/page/PJR9Z1MR79.jpg)

明日話せるセキュリティネタ会 #7 — ZAP を実際に触ってみる
2026-09-06 | Quatrex × かーでぃ
無償でここまでやれるのか
価格
攻撃を撃つスキャン
自動化・CI 組込み
手で触る調査
ZAP
無償
制限なし
得意
できる
Burp Community
無償
使えない
不向き
得意
Burp Pro
有償
制限なし
可
得意
手で触る調査では Burp Pro がよく使われる。ZAP の強みは、無償で毎回まわせること。
12 / 31


# Page. 13

![Page Image](https://bcdn.docswell.com/page/PEXQ9YVYJX.jpg)

3. 実際に当ててみる
2つのアプリに、同じ ZAP を撃つ
13 / 31


# Page. 14

![Page Image](https://bcdn.docswell.com/page/3EK9P3Q4ED.jpg)

明日話せるセキュリティネタ会 #7 — ZAP を実際に触ってみる
3つの使い方。今日は上2つ
2026-09-06 | Quatrex × かーでぃ
使い方
Baseline
Full
GUI
攻撃
しない (受動)
する (能動)
任意
Docker
何をするか
巡回して、通信を眺めて分かる問題だけ報告
上に加えて実際に攻撃リクエストを送る
手で探索しながら調べる
docker run --rm -v &quot;$(pwd):/zap/wrk/:rw&quot; -t ghcr.io/zaproxy/zaproxy:stable \\
zap-baseline.py -t http://対象:8080 -j -m 3 -r report.html
Baseline は受動。SQLi や XSS のように「攻撃を撃って初めて分かる穴」は Baseline では出
ない。
14 / 31


# Page. 15

![Page Image](https://bcdn.docswell.com/page/L73WXGPD75.jpg)

明日話せるセキュリティネタ会 #7 — ZAP を実際に触ってみる
実演の題材 ― 一見、普通の業務アプリ
2026-09-06 | Quatrex × かーでぃ
社内の問い合わせを記録・共有するため
の内製ツール、という設定
担当者検索 / 申し送りメモ / 手順書 / 疎通
確認 / 伝票 / 管理メニュー
どこの会社にもありそうな画面。見た目
におかしなところは無い
15 / 31


# Page. 16

![Page Image](https://bcdn.docswell.com/page/87DK21L2JG.jpg)

明日話せるセキュリティネタ会 #7 — ZAP を実際に触ってみる
実は、穴が8個仕込んである
2026-09-06 | Quatrex × かーでぃ
さっきの画面に、古典的な穴を8個仕込んだ。
画面
ログイン
担当者検索
申し送りメモ
手順書
疎通確認
ヘッダ・Cookie
伝票
管理メニュー
仕込んだ穴
SQL インジェクション (認証バイパス)
反射型 XSS + SQLi
格納型 XSS
パストラバーサル
OS コマンドインジェクション
CSP なし / HttpOnly なし
IDOR (他人の伝票が見える)
認可チェックなし
このうち ZAP がいくつ見つけるか。答えは結果で確かめる。
16 / 31


# Page. 17

![Page Image](https://bcdn.docswell.com/page/VJPK1Q2LE8.jpg)

明日話せるセキュリティネタ会 #7 — ZAP を実際に触ってみる
Baseline と Full で結果が変わる
Baseline (受動)
High: 0件
Medium 4 / Low 8 / Info 4
ヘッダ・Cookie の不足止まり
2026-09-06 | Quatrex × かーでぃ
Full (能動・攻撃を撃つ)
High: 7件
Medium 7 / Low 9 / Info 6
SQLi・XSS・コマンド注入が挙がる
同じアプリ。撃つか撃たないかで、見
つかる穴がまるで違う。
17 / 31


# Page. 18

![Page Image](https://bcdn.docswell.com/page/2EVVY5D6EQ.jpg)

明日話せるセキュリティネタ会 #7 — ZAP を実際に触ってみる
2026-09-06 | Quatrex × かーでぃ
検知されまくる ― High の中身
High アラート
SQL Injection
Cross Site Scripting (Reflected)
Cross Site Scripting (Persistent)
Cross Site Scripting (DOM Based)
Remote OS Command Injection
Remote OS Command Injection (Time Based)
Path Traversal
指摘数
3
3
2
3
1
5
1
出た画面
ログイン・検索
検索
申し送りメモ
申し送りメモ・検索
疎通確認
疎通確認
手順書
High 7件 = アラートの「種類」が7つ。 実際の指摘箇所は合わせて 18 か所。
18 / 31


# Page. 19

![Page Image](https://bcdn.docswell.com/page/57GL96Y2EL.jpg)

明日話せるセキュリティネタ会 #7 — ZAP を実際に触ってみる
中を開ける ― 穴のあるコードはこれ
2026-09-06 | Quatrex × かーでぃ
担当者検索。入力をそのまま SQL の文字列に埋め込んでいる。
$q = $_GET[&#039;q&#039;] ?? &#039;&#039;;
// 入力をエスケープせずに SQL へ連結している
$sql = &quot;SELECT id, name, dept, tel FROM users
WHERE name LIKE &#039;%$q%&#039;&quot;;
$rows = $db-&gt;query($sql)-&gt;fetchAll();
$q
に &#039; が1つ混じるだけで、SQL の構文が壊れる。
19 / 31


# Page. 20

![Page Image](https://bcdn.docswell.com/page/4EQYW4M9JP.jpg)

明日話せるセキュリティネタ会 #7 — ZAP を実際に触ってみる
2026-09-06 | Quatrex × かーでぃ
ZAP が撃ったのは、たった1文字
送られたリクエスト
GET /search?q=%27
返ってきた証拠
evidence:
SQLSTATE[HY...
param
: q
attack : &#039;
シングルクォート1文字だけ
DB のエラーが画面に出た → 構文が壊れた
＝注入できる
このアラートには CWE-89 が付く。CWE は弱点の種類につけられた世界共通の番号（MITRE が
管理）。ZAP 独自の項目ではなく、89 番が SQL インジェクション。直し方は prepare() と
execute() に置き換えるだけ。
20 / 31


# Page. 21

![Page Image](https://bcdn.docswell.com/page/KJ4WKQ4R71.jpg)

明日話せるセキュリティネタ会 #7 — ZAP を実際に触ってみる
小ネタ ― ツールの言うことは鵜呑みにしない
2026-09-06 | Quatrex × かーでぃ
実際のレポートでは、SQLi がこう表示された。中身は SQLite なのに。
SQL Injection - Oracle
レポートに理由が書いてある。さっきの SQLSTATE[HY を、ZAP が Oracle のエラー特徴として
登録していたため。
「穴がある」ことは正しく検知した
でも「Oracle だ」はエラー文字列からの推測で、外れている
種別や深刻度は、人が最後に確かめる。この確認作業こそが専門性
21 / 31


# Page. 22

![Page Image](https://bcdn.docswell.com/page/LE1YXP4V7G.jpg)

明日話せるセキュリティネタ会 #7 — ZAP を実際に触ってみる
実務のはまりどころ ― ログインの向こう側
2026-09-06 | Quatrex × かーでぃ
業務システムはログインしないと何も見えない。 何も教えず走らせると、ログイン画面1枚だけ
診断して「問題なし」と言ってくる。
段階
① ログイン画面だけ
② セッション Cookie を渡す
③ ID / PW を渡す
やり方
素で回す
手動ログインして Cookie を差し込む
ZAP に毎回ログインさせる
位置づけ
まず1回目はこれで十分
手っ取り早い。今回やったのはこれ
本命。次のページ
22 / 31


# Page. 23

![Page Image](https://bcdn.docswell.com/page/GEWGN2X3J2.jpg)

明日話せるセキュリティネタ会 #7 — ZAP を実際に触ってみる
ID / PW を ZAP に渡してログインさせる
2026-09-06 | Quatrex × かーでぃ
できる。Context に認証方法とユーザーを登録する。GUI でも、YAML でも書ける。
env:
contexts:
- name: 社内アプリ
authentication:
method: browser
# ブラウザを動かして実際にログインさせる
parameters:
loginPageUrl: http://example/login
verification:
method: response
# ログイン済みかを見分ける目印
loggedInRegex: ログアウト
users:
- name: tanaka
credentials:
username: tanaka
password: pass123
method
は browser / form / json / script / autodetect などから選ぶ。迷ったら browser が確実。
23 / 31


# Page. 24

![Page Image](https://bcdn.docswell.com/page/47ZL3D6GJ3.jpg)

明日話せるセキュリティネタ会 #7 — ZAP を実際に触ってみる
次は、対策を固めたアプリに同じことを
2026-09-06 | Quatrex × かーでぃ
Laravel で作り、Claude Code (Opus) できっちりセキュリティ対策をした試作の Web アプ
リ。 同じ ZAP を3回当てた結果。
当て方
Baseline (未ログイン)
Cookie を渡す
Full (攻撃あり)
到達エンドポイント
7
87
89
High
0
0
0
Medium
2
2
3
Low
8
10
9
7 → 87。ログインを渡すかどうかで、診断できる範囲が12倍以上。
24 / 31


# Page. 25

![Page Image](https://bcdn.docswell.com/page/YJ6WX12QJV.jpg)

明日話せるセキュリティネタ会 #7 — ZAP を実際に触ってみる
同じツールで、この差
穴だらけアプリ
Full で High 7件
SQLi・XSS・コマンド注入
ツールは正しく穴を見つける
2026-09-06 | Quatrex × かーでぃ
対策を固めた試作アプリ
Full でも High 0件
副産物で500エラーも見つかった
教科書的な穴は無い、の一次証拠
ZAP が穴だらけアプリで7件出せる道
具だからこそ、こちらの0件に意味が
ある。
25 / 31


# Page. 26

![Page Image](https://bcdn.docswell.com/page/GJ5MX422J4.jpg)

4. わかったこと
届いたところと、届かなかったところ
26 / 31


# Page. 27

![Page Image](https://bcdn.docswell.com/page/LE3WXGK1E5.jpg)

明日話せるセキュリティネタ会 #7 — ZAP を実際に触ってみる
ZAP でも取れないもの
仕込んだのに、黙った2つ
認可なし /admin
誰でも全社員のパスワードが見える
IDOR /receipt?id=
他人の伝票が開ける
どちらも ZAP から見れば正常な 200。攻撃の形
をしていない。
2026-09-06 | Quatrex × かーでぃ
今回は仕込んでいないが、同じく届かない
ビジネスロジックの穴
業務を知らないと判定できない
踏めなかった画面
認証の奥、特定条件でしか出ない画面
ソース / 依存ライブラリの CVE
そもそも ZAP の担当外（Semgrep・Trivy）
左の2つは実際に仕込んで、実際に黙った。右は今回のアプリには無いもの（依存ライブラリを1つも使っていな
いので CVE は最初から存在しない）。
27 / 31


# Page. 28

![Page Image](https://bcdn.docswell.com/page/8EDK213K7G.jpg)

明日話せるセキュリティネタ会 #7 — ZAP を実際に触ってみる
目安 ― ツールで6割、残り4割は人
2026-09-06 | Quatrex × かーでぃ
ツール 約6割 ／ 人 約4割
ツールで潰せるのは、入力検証と設定まわりが中心
認可・業務ロジック・運用は、業務を知る人が見るしかない
これはセキュリティベンダーに頼んでも同じ。ベンダーに渡すべきは「誰が、どこまで触れて
よいか」の業務情報
28 / 31


# Page. 29

![Page Image](https://bcdn.docswell.com/page/V7PK1Q43J8.jpg)

明日話せるセキュリティネタ会 #7 — ZAP を実際に触ってみる
無料の診断にも、ちゃんと意味がある
2026-09-06 | Quatrex × かーでぃ
ZAP のレポートはセキュリティベンダーのお墨付きにはならない。そこは正直に線を引く。
得られるもの
費用
頻度
無料の自前チェック
教科書的な穴の検出
ほぼゼロ
変更のたびに回せる
セキュリティベンダーの診断
認可・ロジックまで含む評価と証明
相応にかかる
年数回が現実的
あからさまな穴を先に潰しておけば、穴を塞ぐ頻度そのものが上がる
出す前に潰してあるので、指摘が減る → 再検査の往復も減る
結果として、セキュリティベンダーにお世話になる回数と費用を抑えられる
29 / 31


# Page. 30

![Page Image](https://bcdn.docswell.com/page/2JVVY5XNJQ.jpg)

明日話せるセキュリティネタ会 #7 — ZAP を実際に触ってみる
まとめ ／ 次回予告
2026-09-06 | Quatrex × かーでぃ
ZAP は間に挟まるプロキシ。ソースを見ないから言語を問わない
受動 (Baseline) はヘッダ止まり。攻撃を撃つ Full で初めて SQLi・XSS が挙がる
穴だらけで High 7、対策を固めたアプリで High 0。ツールは正しく見つける
ただし認可とビジネスロジックは取れない。そこは人の仕事
次回: 潰しきれない、パッチも間に合わない。その間どうするか → WAF
30 / 31


# Page. 31

![Page Image](https://bcdn.docswell.com/page/5EGL96V5JL.jpg)

ご清聴ありがとうございました
質問・雑談どうぞ
明日話せるセキュリティネタ会 #7


