Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
しろおびから始める!ログ活用の第一歩
Search
Shumei Ito
October 10, 2026
Technology
130
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
しろおびから始める!ログ活用の第一歩
2026年10月9日 情報セキュリティワークショップ in 越後湯沢 車座会議資料
Shumei Ito
October 10, 2026
More Decks by Shumei Ito
See All by Shumei Ito
【インシデント入門】サイバー攻撃を受けた現場って何してるの?
shumei_ito
1
2.4k
サイバーセキュリティと認知バイアス:対策の隙を埋める心理学的アプローチ
shumei_ito
0
950
Other Decks in Technology
See All in Technology
ビジネスを止めない技術的負債の返済のための戦略とその手法 - 技術的負債と向き合う / Complexity and Simplicity
soudai
PRO
3
650
実体験から学ぶ分析エージェントの開発と運⽤
recruitengineers
PRO
1
310
生成AIで高い生産性を求められて、 悩み、乗り越えた話
mot_techtalk
2
130
ミイダス株式会社 テックチームのご紹介 / MIIDAS Tech Team
miidas
0
160
子育てエンジニアの可処分時間が減っても成長を諦めない戦い方
sudoakiy
1
1.3k
分析AIエージェントを育てる、動く環境を育てる
codatum
0
130
1万名の社員が使う認証基盤で どう信頼性を担保するか?
kairim0
0
210
OpenSharing について熱く語る〜AI アセットの共有について〜
kameitomohiro
0
230
[2026 Oracle Technical Deep Dive] Apache Iceberg × Oracle AI Database -Oracle Autonomous AI Lakehouseが実現するAI時代のデータ基盤- (2026年9月17日開催)
oracle4engineer
PRO
0
120
Deep Data Security 機能解説
oracle4engineer
PRO
2
710
AI時代のAPI開発を加速する品質ガードレール / API Quality Guardrails in the AI Era
yokawasa
0
160
2026-10-01_MagicPod_QAハーネスエンジニアリングとQA組織の未来像
ynisqa1988
1
540
Featured
See All Featured
State of Search Keynote: SEO is Dead Long Live SEO
ryanjones
0
310
Building Applications with DynamoDB
mza
96
7.2k
Discover your Explorer Soul
emna__ayadi
2
1.3k
Un-Boring Meetings
codingconduct
0
440
SEO Brein meetup: CTRL+C is not how to scale international SEO
lindahogenes
2
2.9k
Darren the Foodie - Storyboard
khoart
PRO
4
4k
Building Better People: How to give real-time feedback that sticks.
wjessup
370
20k
How to Ace a Technical Interview
jacobian
280
24k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
56
3.5k
The Power of CSS Pseudo Elements
geoffreycrofte
82
6.6k
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
920
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
50
10k
Transcript
1 しろおび セキュリティ しろおびから始める!! ログの活用 情報セキュリティワークショップ in 後湯沢車座会議
自己紹介 いとう しゅうめい 酔いどれセキュリティコンサルタント。 ログが流れる画面を見ながらお酒を飲むのが好き。 ツマミはダッシュボード。 X:@beer_nomu_nomu 趣味 : 飲み会、宴会、酒席、二次会
資格:CISSP / 情報処理安全確保支援士(登録番号:023313) / PMP
今日のゴール ログの "読み方・集め方・守り方" の 勘どころを持ち帰る 「自社のログが “使える” 状態か確認する」 を 月曜日のタスクに追加する
目次 1 2 3 ログとは何か ログを正しく 使うための条件 攻撃者が狙うログ ログは単なる記録で はなく、重要な証拠で
す。 ログは出すだけ、取る だけで終わりではあ りません。 ログは重要だからこ そ攻撃者にも狙われ ています。 実際の攻撃ログを読 んで重要性を理解し ましょう。 正しく使えるようにす るためのポイントを説 明します。 ログに対する攻撃手 法、それに対する防御 方法を解説します。
その1 ログとは何か
セキュリティにおけるログとは ログと は何か ログを 正しく使 う条件 攻撃者 が狙う ログ コンピュータの利用状況やデータ通信など履歴や情報の記録
PC Web サーバー ファイア ウォール ・監査ログ ・アクセスログ ・アクセスログ ・プロセスログ ・認証ログ ・許可/拒否ログ ・操作ログ ・アプリケー ションログ ・管理操作ログ ・アプリケー ションログ インターネット
ログを読んでみよう① Webサーバーの例 通信元 日時 リクエスト内容 処理結果 通信量 ログと は何か ログを
正しく使 う条件 攻撃者 が狙う ログ 203.0.113.255 [10/Jul/2026:14:23:51 +0900] "GET /admin/login.php?id=1' OR '1'='1 HTTP/1.1" 200 284712213 実際のログは1行で記録される 203.0.113.255 - - [10/Jul/2026:14:23:51 +0900] "GET /admin/login.php?id=1' OR '1'='1 HTTP/1.1" 200 284712213 通信元 日時 リクエスト内容 処理結果 通信量
ログを読んでみよう① Webサーバーの例 通信元 日時 リクエスト内容 処理結果 通信量 ログと は何か ログを
正しく使 う条件 攻撃者 が狙う ログ 203.0.113.255 [10/Jul/2026:14:23:51 +0900] "GET /admin/login.php?id=1' OR '1'='1 HTTP/1.1" 200 login.phpに対して、 284712213 id=1 ‘ OR ‘1’ = ‘1 という クエリを投げている リクエストに対する処理結果 (HTTPステータス) 200は成功したことを意味する 1回のリクエストで、272 MBの 通信が発生している (普通は数十~数百KB) id=1 ‘ OR ‘1’ = ‘1 は、「SQLインジェクション」という攻撃手法。 ログを読むことで攻撃が成功しているということが分かる。
ログを読んでみよう② 怪しい箇所は? ログと は何か ログを 正しく使 う条件 攻撃者 が狙う ログ
198.51.100.23 - - [10/Jul/2026:14:15:08 +0900] "GET / HTTP/1.1" 200 5124 198.51.100.44 - - [10/Jul/2026:14:15:33 +0900] "GET /products HTTP/1.1" 200 16044 198.51.100.44 - - [10/Jul/2026:14:15:34 +0900] "GET /js/app.js HTTP/1.1" 200 24518 203.0.113.14 - - [10/Jul/2026:14:16:52 +0900] "GET /products?page=1 HTTP/1.1" 200 15102 198.51.100.90 - - [10/Jul/2026:14:18:20 +0900] "GET /about.html HTTP/1.1" 200 6002 198.51.100.23 - - [10/Jul/2026:14:19:02 +0900] "GET /index.html HTTP/1.1" 200 5124 198.51.100.23 - - [10/Jul/2026:14:19:03 +0900] "GET /css/style.css HTTP/1.1" 200 8341 203.0.113.14 - - [10/Jul/2026:14:20:11 +0900] "GET /products?page=2 HTTP/1.1" 200 15230 192.0.2.88 - - [10/Jul/2026:14:21:34 +0900] "POST /contact HTTP/1.1" 302 0 203.0.113.255 - - [10/Jul/2026:14:22:47 +0900] "GET /admin/ HTTP/1.1" 403 512 203.0.113.255 - - [10/Jul/2026:14:22:58 +0900] "GET /phpmyadmin/ HTTP/1.1" 404 431 203.0.113.255 - - [10/Jul/2026:14:23:12 +0900] "GET /wp-login.php HTTP/1.1" 404 431 203.0.113.255 - - [10/Jul/2026:14:23:29 +0900] "GET /admin/login.php?id=1 HTTP/1.1" 200 3187 203.0.113.255 - - [10/Jul/2026:14:23:40 +0900] "GET /admin/login.php?id=1' HTTP/1.1" 500 617 203.0.113.255 - - [10/Jul/2026:14:23:51 +0900] "GET /admin/login.php?id=1' OR '1'='1 HTTP/1.1" 200 284712213 198.51.100.76 - - [10/Jul/2026:14:24:03 +0900] "GET /favicon.ico HTTP/1.1" 200 1150 203.0.113.14 - - [10/Jul/2026:14:24:19 +0900] "GET /products?page=3 HTTP/1.1" 200 14988 192.0.2.150 - - [10/Jul/2026:14:25:02 +0900] "GET /../../etc/passwd HTTP/1.1" 400 0 198.51.100.23 - - [10/Jul/2026:14:25:44 +0900] "GET /about.html HTTP/1.1" 200 6002 198.51.100.201 - - [10/Jul/2026:14:26:31 +0900] "POST /newsletter HTTP/1.1" 200 934 203.0.113.60 - - [10/Jul/2026:14:27:10 +0900] "GET /.env HTTP/1.1" 404 431 203.0.113.60 - - [10/Jul/2026:14:27:22 +0900] "GET /.git/config HTTP/1.1" 404 431 198.51.100.44 - - [10/Jul/2026:14:28:05 +0900] "GET /products?page=4 HTTP/1.1" 200 14760 198.51.100.112 - - [10/Jul/2026:14:29:18 +0900] "GET /contact HTTP/1.1" 200 7213 198.51.100.23 - - [10/Jul/2026:14:30:41 +0900] "GET /index.html HTTP/1.1" 200 5124
ログを読んでみよう② 答え ログと は何か ログを 正しく使 う条件 攻撃者 が狙う ログ
198.51.100.23 - - [10/Jul/2026:14:15:08 +0900] "GET / HTTP/1.1" 200 5124 198.51.100.44 - - [10/Jul/2026:14:15:33 +0900] "GET /products HTTP/1.1" 200 16044 198.51.100.44 - - [10/Jul/2026:14:15:34 +0900] "GET /js/app.js HTTP/1.1" 200 24518 203.0.113.14 - - [10/Jul/2026:14:16:52 +0900] "GET /products?page=1 HTTP/1.1" 200 15102 198.51.100.90 - - [10/Jul/2026:14:18:20 +0900] "GET /about.html HTTP/1.1" 200 6002 198.51.100.23 - - [10/Jul/2026:14:19:02 +0900] "GET /index.html HTTP/1.1" 200 5124 198.51.100.23 - - [10/Jul/2026:14:19:03 +0900] "GET /css/style.css HTTP/1.1" 200 8341 203.0.113.14 - - [10/Jul/2026:14:20:11 +0900] "GET /products?page=2 HTTP/1.1" 200 15230 192.0.2.88 - - [10/Jul/2026:14:21:34 +0900] "POST /contact HTTP/1.1" 302 0 203.0.113.255 - - [10/Jul/2026:14:22:47 +0900] "GET /admin/ HTTP/1.1" 403 512 203.0.113.255 - - [10/Jul/2026:14:22:58 +0900] "GET /phpmyadmin/ HTTP/1.1" 404 431 203.0.113.255 - - [10/Jul/2026:14:23:12 +0900] "GET /wp-login.php HTTP/1.1" 404 431 203.0.113.255 - - [10/Jul/2026:14:23:29 +0900] "GET /admin/login.php?id=1 HTTP/1.1" 200 3187 203.0.113.255 - - [10/Jul/2026:14:23:40 +0900] "GET /admin/login.php?id=1' HTTP/1.1" 500 617 203.0.113.255 - - [10/Jul/2026:14:23:51 +0900] "GET /admin/login.php?id=1' OR '1'='1 HTTP/1.1" 200 284712213 198.51.100.76 - - [10/Jul/2026:14:24:03 +0900] "GET /favicon.ico HTTP/1.1" 200 1150 203.0.113.14 - - [10/Jul/2026:14:24:19 +0900] "GET /products?page=3 HTTP/1.1" 200 14988 192.0.2.150 - - [10/Jul/2026:14:25:02 +0900] "GET /../../etc/passwd HTTP/1.1" 400 0 198.51.100.23 - - [10/Jul/2026:14:25:44 +0900] "GET /about.html HTTP/1.1" 200 6002 198.51.100.201 - - [10/Jul/2026:14:26:31 +0900] "POST /newsletter HTTP/1.1" 200 934 203.0.113.60 - - [10/Jul/2026:14:27:10 +0900] "GET /.env HTTP/1.1" 404 431 203.0.113.60 - - [10/Jul/2026:14:27:22 +0900] "GET /.git/config HTTP/1.1" 404 431 198.51.100.44 - - [10/Jul/2026:14:28:05 +0900] "GET /products?page=4 HTTP/1.1" 200 14760 198.51.100.112 - - [10/Jul/2026:14:29:18 +0900] "GET /contact HTTP/1.1" 200 7213 198.51.100.23 - - [10/Jul/2026:14:30:41 +0900] "GET /index.html HTTP/1.1" 200 5124 通信元 203.0.113.255 が複数の ページにアクセスをして、探索している SQLインジェクション成功
ログを何に使うか ログと は何か ログを 正しく使 う条件 攻撃者 が狙う ログ 同じログでも、「いつを見るか」で、取り方・残し方が変わる
過去 いま 事後調査 事後対応 リアルタイム 見逃していないか? 何が、どこまで起きたのか? 攻撃されてないか? • 潜んでいる痕跡を掘 り出す • 発生事象を突き止める • 攻撃されている最中 に気づく • アラートが出なくて も、自分から探しに行 く • 影響範囲を特定する • 事実を証跡として示し、 求めに応じて提出する • 人が見ていなくても、 自動でアラートを出す
ログがある・ない場合 ログと は何か ログを 正しく使 う条件 攻撃者 が狙う ログ ログが無いと、「何も起きなかった」
ことすら証明できない 局面 ログがある ログがない 平時 ◦ 誰が何をしたか、追える ✕ 追えない。障害の原因も不明 攻撃の最中 ◦ 異常や侵害に、気づける ✕ 気づけない 事件の後 ◦ 影響範囲を特定・説明できる ✕ 特定できず、説明もできない その先 ◦ 原因を掴み、再発を防げる ✕ 原因不明のまま、また起きる 抑止 ◦ 見られている=やりにくい ✕ 見られていない=やりたい放題
その2 ログを正しく使うための条件
ログが「使える」状態とは ログと は何か ログを 正しく使 う条件 攻撃者 が狙う ログ どれか一つでもコケると、その先がすべて無効になる
1 漏れなく集める 2 使える形に 整える 3 使える形を 保ち続ける ログを取るべき機器が把握 別々の機器のログでも 過去のログが決めた期間ぶ できており、送信でも受信で フォーマットが揃っており、 ん残っており、今も変わらず も欠落が起きていない 横断的に検索できる 利用できる
× 出している ◦ 届いている 漏れなく集める 1 出力する 使える形に整える 2 転送する
ログと は何か ログを 正しく使 う条件 攻撃者 が狙う ログ 使える形を保ち続ける 3 受信する ログが出力されるよう 設定する。デフォルト設 定では出力しない機器 もある。 ログを収集側へ転送す る。送る設定と経路が 要る。 送られたログを、受信し て保存する。受け側に も設定が要る。 ✕ 出力設定がオフのまま ✕ 平時のログは出力しない ✕ 輻輳時に捨てられる ✕ 経路変更で届かなくなる ✕ バッファが溢れて欠ける ✕ 受信側の設定漏れ 合格ライン ログを取るべき機器が把握できており、送信でも受信でも欠落が起きていない やること 出力設定を有効にして機器を一覧管理 / 再送できる方式で送る / 受信件数を監視 確かめ方 受信件数を機器ごとに時間軸でグラフ化し、ゼロや急減がないか目で見る
機器をまたいで追えるようにする 漏れなく集める ログと は何か 使える形に整える Before ログを 正しく使 う条件 攻撃者
が狙う ログ 使える形を保ち続ける After 2026-07-10T05:23:51Z web01 status=200 Jul 10 14:23:51 fw01 ACCEPT src=203.0.113.255 10/Jul/2026:14:23:51 +0900 proxy1 client=... 2026-10-09 14:23:51 +0900 web01 src=203.0.113.255 2026-10-09 14:23:51 +0900 fw01 src=203.0.113.255 2026-10-09 14:23:51 +0900 proxy1 src=203.0.113.255 → 表記もタイムゾーンもバラバラ → 同じ時刻に並び、同じ名前で引ける 合格ライン 別々の機器のログでもフォーマットが揃っており、横断的に検索できる やること 時刻を同期する / 項目名を共通化する / 文字コードをUTF-8に揃える 確かめ方 わざとログイン失敗を1回起こし、全機器のログが同じ時刻に並ぶかを見る
1年後も、同じように読めるようにする 漏れなく集める 導入直後 ログと は何か 使える形に整える 3か月後 ログを 正しく使 う条件
使える形を保ち続ける 1年後 正しい状態 全部見えている 残容量を監視し、 消える前に対処 する 担当が変わっても 管理できている 放置された状態 全部見えている 容量が埋まり 古い順に消え始める 攻撃者 が狙う ログ 担当が代わると 誰も見なくなる 当時のログが 見られる 見たい時期の ログがもう無い 合格ライン 過去のログが決めた期間ぶん残っており、今も変わらず利用できる やること 保存期間を目的から決める / 残容量と増加ペースを監視する / 担当を決める 確かめ方 半年前の日付で当時のログを検索し、出てくるか・読めるかを見る
点から線に、線から面にする 漏れなく集める ログと は何か 使える形に整える 1つのログだけでは「そ の瞬間」しか分からない 線 ログを時系列に並べる と、動きの流れが見える
面 複数機器のログを重ね ると、全体像と関連が見 える 攻撃者 が狙う ログ 使える形を保ち続ける SIEM = 3条件を仕組みで担保する ログの価値は、並べ方で決まる 点 ログを 正しく使 う条件 集める 転送先を1か所にまと め、到達状況を見張る 2 整える 機器ごとに違う形式 を、取り込むときに自動 で揃える 3 保存期間・権限・容量 保ち続ける を、1か所でまとめて管 理する 1 SIEMを入れれば解決、ではない。 3つの条件が分かった上で使うことで、初めて効果が出る。
その3 攻撃者が狙うログ
ログに残らない箇所に攻撃コードを入れる ログと は何か ログを 正しく使 う条件 攻撃者 が狙う ログ 記録・検査できる文字列の長さには上限があるため、
攻撃コードを上限値を超えた箇所に隠す。 攻撃者が送ったリクエスト /admin/login.php?id=1&pad=AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA …(約8000字)… 記録‧検査の上限 ' OR '1'='1 ← 本命の攻撃コード ログでの見え方 203.0.113.255 - - [10/Jul/2026:14:23:51 +0900] "GET /admin/login.php?id=1&pad=AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA ここで切れている(攻撃コードは残っていない)↑ クエリ文が “異常に長い” という事実そのものを記録・検知する 対策 上限超過は通さず弾く(fail-closed) アクセスログ以外(アプリケーション, 通信量)とも突き合わせる
ログそのものを消しに来る ログと は何か ログを 正しく使 う条件 攻撃者 が狙う ログ 管理者権限が取られると、ログ自体を消される
✕ まるごと消す ✕ 自分の行だけ削除 ✕ 時刻を狂わせる ログファイルを削除、ま たは中身を空にする 侵入の痕跡だけを1行 ずつ選んで取り除く タイムスタンプを改ざん し、前後関係を分からな くする 例)ログファイル自体、 イベントログを消去 例)自分のIPを含む行 を消去 例)ファイル日時を偽 装、時刻を巻き戻す 退避する 生成と同時に別サーバへ転送する。端末の権限では届かない場所に移す 守る 追記のみ許可し、書き換え不可状態で保存する。ログファイルの編集をできなくする 残す 保存期間を十分に取る。侵入が数か月気づかれなくても、当時の記録が残る
まとめ
持ち帰っていただきたいこと 4つのキーワード 集める 整える 保ち続ける 読む 何を残すか 目的から決める 時刻と形式を 合わせる
消える前に対処し、 改竄からも守る 並べ直して 点を線にする 立場ごとの、まずやる一歩 まず見る 調べることになったら 管理側になったら • 自分のPCのログを1 行、5W1Hで説明して みる • 原因を探す前に、まず時 系列に「並べる」 • 目的から逆算して「何を 残すか」を決める • 複数ログの時刻ズレを、 最初に確認する • 別の場所へ逃がす/消 せない形で保存する • 「無い」ことも情報。欠け た時間帯に注目する • 取れているか、定期的に 自分の目で確かめる • 「読める」感覚を、小さく 何度もつくる
【参考】 優先的に取っておきたいログ 左の5つが、「誰が・どこから・何をしたか」の土台になる 優先的に取るべきログ 1 認証ログ 誰が入ったか Windows 4624/4625、auth.log 2
通信ログ どこと通信したか ファイアウォール、プロキシ 3 Webアクセスログ 攻撃の入口になりやすい Apache / nginx の access_log 4 操作・実行ログ 端末で何が動いたか プロセス生成、EDR、sysmon 5 管理操作ログ 攻撃者が必ず触る 権限付与、アカウント作成 余裕ができたら ・ クラウド監査ログ 今やインシデントの主戦場 ・ DNSログ C2通信・持ち出し先の手がかり ・ メール関連ログ 侵入の入口(最初の1通)を追う ・ DBアクセスログ “何件出たか”を裏付ける ・ VPN・リモートアクセス 外からの侵入経路として要注目
【再掲】 今日のゴール ログの "読み方・集め方・守り方" の 勘どころを持ち帰る 「自社のログが “使える” 状態か確認する」 を
月曜日のタスクに追加する