【タイムライン構築編】複数ソースを統合してインシデント全体を再構成する|CTF思考フレームワーク #49
こんにちは、アンペンです!
今回はフォレンジック編の総まとめ、タイムライン構築です。これまでの4領域(ディスク・メモリ・ネット・ログ)+ステガノ・カービング・マルウェア解析の結果を、1本の物語に統合する作業を扱います。
個々の証拠をいくら集めても、時系列に並べて『何が起きたか』を再現しなければインシデント対応は完結しません。最終工程として位置付けましょう。
なぜこれが“最終工程”なのか。個々の証拠は、いわば“点”です。『10時にログイン失敗があった』『10時半に外部通信があった』——単体ではただの事実の羅列にすぎません。でも時刻順に並べると、『侵入→権限奪取→横移動』という“線”が浮かび上がる。点を線にして初めて、『何が起きたのか』という問いに答えられるんです。

4領域それぞれ調べた後って、どうまとめるの?

『同じ時刻軸+同じUTC』に揃えて全部マージ。Plaso+Timesketchが定番。最後にMITRE ATT&CKのキルチェーンに対応付けて、攻撃の流れを物語にするんだ。
フォレンジック編もいよいよ最終回。ここまでディスク・メモリ・ネット・ログを調べ、ステガノやマルウェア解析も学んできました。でも——証拠を山ほど集めただけでは、まだ“事件”は解けていません。探偵ものでいう、バラバラの手がかりを並べて『犯人はこうやった』と語る“解決編”。それが今回のタイムライン構築です。集めた点を、1本の線につなぐ仕上げの工程ですね。
タイムライン構築は『収集→正規化→マージ→フィルタ→注釈』の5ステップ。複数ソースを同じ時刻軸(UTC)に揃え、Plaso/Timesketchで統合します。最後にMITRE ATT&CKのキルチェーンに対応付けると、攻撃の物語として共有しやすくなります。守りは平時から『時刻同期・フォーマット統一・タグ付け規約』を整備しておくのが効きます。
この記事で分かること
- 複数ソース統合の5ステップ
- Plaso / Timesketch / MISPの役割
- MITRE ATT&CKでの物語化
- 平時の準備(時刻・フォーマット・タグ)
📖 はじめてのWebセキュリティ #49|タイムライン構築編
複数ソースを統合してインシデント全体を再構成する手法を扱います。 シリーズ一覧を見る →
⚠️ 大事なお約束
他者システムのフォレンジック証拠を無断で取得・統合する行為は、業務上の権限や法律に違反する可能性があります。CTFや自分の検証環境のみで確認してください。
『証拠を物語に変える』5ステップ
4領域+応用編で集めた証拠は、そのままだとバラバラの紙切れです。これを1冊の事件簿に綴じるのがタイムライン構築の仕事です。
もう少しイメージを足すと、調べ終わった直後の証拠は、机にぶちまけた付箋の山のような状態。1枚1枚は意味があるのに、全体としては何も語っていません。タイムライン構築は、その付箋を時間順に貼り直して『事件簿』に綴じ直す作業。並べ替えるだけで、ぐちゃぐちゃだった情報が急に“物語”として読めるようになるんです。
図解:構築フローの5ステップ
『収集→正規化→マージ→フィルタ→注釈』の5ステップを順に進めると、最終的に攻撃の全体像が見える状態になります。
5ステップを一言ずつ押さえておきましょう。『収集』はバラバラのログを集める、『正規化』は時刻や項目の書式を揃える、『マージ』は1本の年表に合流させる、『フィルタ』は関係ないノイズを削る、『注釈』は『これは攻撃の侵入段階だ』と意味づけをする。要は“集めて・揃えて・混ぜて・絞って・意味を書く”。この流れさえ覚えれば、もう迷いません。

歴史書は『日記・新聞記事・証言・遺跡』など複数の一次資料を集め、同じ年表上に並べて『この年に何が起きたか』を語る形式です。タイムライン構築もまったく同じ作業。バラバラのログや痕跡を1つの年表に並べ、『この日のこの時刻に何が起きたか』を物語として紡ぎます。

ここで覚える用語:キルチェーン / MITRE ATT&CK
キルチェーンは攻撃の段階(偵察→武器化→配送→侵入→…)を整理したフレームワーク。MITRE ATT&CKはその発展版で、Initial Access / Execution / Persistence / Privilege Escalation / Defense Evasion / Credential Access / Discovery / Lateral Movement / Collection / Exfiltration / Impact という12フェーズで攻撃手口を体系化しています。タイムライン上でこのタグを付けると、報告書がぐっと読みやすくなります。
主要ツール:Plaso + Timesketch + MISP
役割分担を覚えよう
- Plaso(log2timeline):ディスクイメージから巨大なタイムラインCSVを生成する『収集』担当
- Timesketch:Webで複数タイムラインを統合・検索・コメント付け。チーム作業の『マージ&注釈』担当
- Elastic / Splunk:ログ系の正規化・検索基盤として併用
- MISP:抽出したIOCを構造化(STIX)して他組織と共有
- 表計算/Jupyter:小規模ならExcelやJupyter Notebookでも十分
規模が小さければExcel+ピボット、中規模でTimesketch、組織横断ならMISP連携、という選び方が現実的です。
ツール選びでつまずく必要はありません。コツは“規模で決める”だけ。数十件のイベントを並べるだけなら、正直ExcelやGoogleスプレッドシートで十分です。イベントが数千・数万に膨らんで、チームで分担するならTimesketch。さらに他社やJPCERTと手がかりを共有する段階になったらMISP——という具合に、必要になってから重い道具へ上げていけば大丈夫です。
MITRE ATT&CKでタイムラインを『物語』にする
イベントを時刻順に並べただけでは『何が起きたか』は分かっても、『なぜ・どうつながったか』が伝わりません。キルチェーンのタグ付けをすると、報告書が一気に物語化します。
なぜタグ付けで“物語”になるのか。時刻順に並べただけのログは、外国語の文章を単語だけ拾い読みしているようなもの。『10:02 PowerShell起動』と言われても、それが良いことか悪いことか、初見では判断できません。そこに『これは攻撃の“実行”段階だよ』というMITRE ATT&CKのタグを添えると、各イベントに“役割”が与えられ、一連の流れがストーリーとして読めるようになるんです。
タグ付け例:典型的なランサム攻撃
- 10:00 不審なメール添付 → Initial Access (T1566)
- 10:02 マクロでPowerShell起動 → Execution (T1059)
- 10:15 LSASSメモリダンプ → Credential Access (T1003)
- 10:30 PsExecで隣接サーバへ → Lateral Movement (T1021)
- 11:00 大量ファイル暗号化 → Impact (T1486)
この形にまとめると、経営層・他組織・JPCERT等にも『起きた攻撃』を共通の言語で伝えられます。
この“共通言語”という点が、地味にとても重要です。「PsExecで隣のサーバに移動した」と技術用語で説明しても、経営層にはピンと来ません。でも『Lateral Movement(横展開)の段階です』と世界共通のラベルで言えば、社内・他組織・JPCERTまで、みんな同じ理解で会話できる。タイムラインをATT&CKで語る最大のメリットは、この“伝わりやすさ”にあるんです。

CTFでやってみよう:小さなタイムラインを組む
自分のVMで簡単なタイムライン構築を体験する
目的は『複数ソースを同じ時刻軸に並べる』を体感することです。
- VMで操作のシナリオを実行(SSHログイン失敗→成功→ファイル作成→外部通信)
- ディスクイメージから
log2timeline.pyでタイムラインを抽出 - journalログ・auth.log・pcapも個別に取得
- Timesketch(またはExcel)に全て読み込み、同じUTCでソート
- 各イベントにMITRE ATT&CKのタグ(T番号)を付与
- 『何時に何が起きて何につながったか』を1段落で要約
守る側:『マージしやすい状態』を平時に作る
タイムライン構築の難しさの9割は『フォーマット不揃い・時刻ズレ・タグなし』に由来します。平時から整えておきましょう。
ここで効いてくるのが“平時の仕込み”です。タイムライン構築でいちばん時間を溶かすのは、難しい解析ではなく『サーバごとに時刻が数分ズレていて、順番がぐちゃぐちゃ』という地味な事故。本番の真っ最中に時刻合わせをやり直すのは、まさに悪夢です。だからこそ、NTP同期やUTC統一は“事件が起きる前に”済ませておく。これだけで、いざというときの構築スピードが段違いになります。
- すべてのサーバ・端末・クラウドでNTP同期を厳守
- ログのタイムスタンプはUTC統一+ISO 8601形式
- 共通フィールド(host/user/pid/event_type)を事前に正規化
- EDR/SIEMでMITRE ATT&CK自動タグ付けを有効化
- 過去のインシデントタイムラインをテンプレ化して再利用
- 定期的に『過去事案の再現演習』でタイムライン構築の練度を維持

4領域それぞれを学んだ意味が、最後に繋がるね。

そう。これでフォレンジック編は完結。次回からは新章、暗号(Cryptography)。古典暗号から始まって、RSA・AES・楕円曲線まで進むよ。
これでフォレンジック編は完結です。バラバラに学んできた4領域+応用が、最後にこのタイムラインで1つにつながる——そういう構成でした。『証拠を集める』のがゴールではなく、『集めた証拠で物語を語る』のがゴール。この視点を持っておくと、個々の調査の意味も腑に落ちるはずです。
まとめ:『5ステップ+ATT&CK』で事件を物語化
- 構築は収集→正規化→マージ→フィルタ→注釈の5ステップ
- 主要ツール:Plaso / Timesketch / MISP
- MITRE ATT&CKのタグ付けで物語化
- 守りは平時のNTP同期・UTC統一・正規化・自動タグ
今日の持ち帰りは『点を集めるな、線でつなげ』。どんなに優れた個別調査も、時系列に統合しなければ“事件の全体像”にはなりません。同じ時刻軸に揃え、意味のタグを添え、物語として語る。この仕上げができて初めて、フォレンジックは“報告”として完成します。
次回からは新章、暗号(Cryptography)編。まずは古典暗号(シーザー・ヴィジュネル・換字式)の崩し方から入ります。
