WordPressの不正アクセス調査でタイムラインを作る方法|ログ・メール・変更履歴を整理

WordPressの不正アクセス調査で複数の記録を時系列へ整理するイメージ

WordPressへの不正アクセスが疑われる時は、ファイルを消す前に調査タイムラインを作ることが重要です。
ログ、警告メール、投稿やユーザーの変更を時刻順に並べると、攻撃者が何をしたかを事実から追えます。

結論から言うと、タイムラインは「時刻・出来事・証拠・判断・対応」を一行ずつ記録し、確認済み事実と推測を分けて作ります。
怪しいIPやファイルを一つ見つけただけで侵入経路を決めると、別の入口や残存バックドアを見落とします。

よこやま良平
よこやま良平

20年以上ITエンジニアとしてWordPressの制作・保守・復旧に携わっている、よこやま良平です。復旧現場では、断片的な証拠を一枚の時系列表へまとめることで、調査のやり直しや思い込みを減らしています。

この記事で解決できること
  • 不正アクセス調査でタイムラインが必要な理由
  • ログ・メール・変更履歴から出来事を集める方法
  • UTCやJSTの違いを補正して正しく並べる方法
  • 事実と推測を分けて証拠の強さを評価する方法
  • 侵入経路・影響範囲・復旧順を絞る方法

タイムラインは犯人を特定する表ではなく、サイト内で起きたことを再現するための調査台帳です。
IPアドレスだけでは個人を断定できず、攻撃者がVPN、CDN、踏み台、盗んだ正規アカウントを使う場合もあります。

この記事では、専門ツールがなくても始められる表の作り方から、複数ログの突き合わせ、欠落区間の扱い、復旧判断への使い方まで解説します。
調査中のサイトへ不用意な変更を加えず、原本を保全してから進めてください。

【無料プレゼント】
WordPress緊急チェック50

「自分のサイトは今、安全なのか?」
自信を持って答えられますか?

WordPress緊急チェック50

こんなお悩みはありませんか?

  • ある朝、サイトを開いたら真っ白画面になっていた
  • 管理画面にログインできなくなって手が止まった
  • 身に覚えのない記事やページが勝手に増えていた
  • プラグインを更新したらサイト全体が崩れてしまった
  • 以前バックアップを取ったか自分でも覚えていない

累計1,000件以上のWordPressトラブル対応の経験から、「壊れる前に備える」ためのチェックリストを1冊にまとめました。
ログイン・本体・バックアップ・サーバー・運用の5分野を、50項目で「危険度・確認方法・対処法」まで解説しています。

セキュリティプラグイン・WordPressの教科書も含めた3大特典を、
今なら無料で受け取れます。

今すぐ無料ダウンロードする →

※登録後すぐにメールで特典をお届けします

不正アクセス調査はタイムラインを作る前に証拠を保全する

最初に行うべきことは、表を埋めることではなく、後から消える記録を保存することです。
ログローテーション、メール削除、キャッシュ消去、復元操作によって、重要な時刻や変更履歴が失われるからです。

調査用コピーと復旧用バックアップを分ける

サーバーファイル、データベース、アクセスログ、WAFログ、監査ログは、可能な範囲で読み取り専用の調査用コピーへ保存します。
復旧用バックアップとは目的が違うため、同じファイル名で上書きせず、取得日時と取得元を明記してください。

ファイルの更新日時は攻撃者が変更できるため、それだけを信頼しません。
保存したアーカイブのSHA-256、容量、ファイル数、取得コマンド、担当者を記録し、後で同じ原本か確認できるようにします。

サイトを止める判断と証拠保存を両立する

情報流出や改ざん配信が続いている場合は、完全な収集を待たずに遮断やメンテナンス表示が必要です。
ただし、実施前後の時刻、変更した設定、遮断範囲、担当者を記録し、変更前の設定も保存します。

サイト停止、WAFルール追加、管理者パスワード変更、プラグイン無効化は、タイムライン上では「調査対象の出来事」です。
対応による変化を攻撃者の操作と混同しないよう、誰が何の目的で行ったかを必ず一行にします。

保存期間とローテーションを先に確認する

共有サーバーやCDNのログは、数日から数か月で削除される場合があります。
不審な出来事の発生日だけでなく、その前後を含む期間を指定し、サーバー会社へ保存延長やエクスポート可否を早めに確認します。

取得できなかった期間は空白にせず、「ログ保存期限超過で確認不能」と記録します。
証拠がないことと異常がなかったことは別であり、欠落区間を明示するほど調査結果の信頼性は高まります。

証拠を失いやすい操作
  • 証拠コピーを取らずに不審ファイルを削除する
  • 感染後の状態へバックアップを上書きする
  • キャッシュ・一時ファイル・メールを一括削除する
  • ログの保存期限を確認せず調査を後回しにする
  • 調査中に同じログインや更新操作を何度も繰り返す

不正アクセスのタイムラインへ入れる記録を集める

タイムラインには、攻撃らしい記録だけでなく、正常操作、システム通知、調査対応も入れます。
比較対象があることで、普段の自動処理と侵入後の異常を区別しやすくなります。

Web・WAF・CDNログから入口候補を集める

Webアクセスログでは、時刻、クライアントIP、HTTPメソッド、URL、応答コード、送信量、User-Agentを確認します。
ログイン、XML-RPC、REST API、ファイルアップロード、不審なPHPへのPOSTなど、状態を変え得る通信を優先します。

WAFやCDNでは、ルールID、検知・遮断・許可の動作、リクエストID、オリジンへの転送有無を追加します。
遮断ログは侵入成功の証拠ではないため、Webサーバーへ到達した記録と分けて書きます。

WordPressの変更履歴と監査ログを集める

WordPress側では、ログイン成功・失敗、ユーザー作成、権限変更、投稿・固定ページ・ウィジェットの編集、プラグインやテーマの更新を確認します。
監査プラグインがなくても、データベース、更新メール、ファイル差分から一部を復元できます。

ユーザーIDと表示名は別々に記録してください。
攻撃者が表示名を既存管理者と同じにしても、内部ID、登録メール、作成日時、セッション、操作元IPが違えば識別できます。

投稿の最終更新者だけでは途中の改ざんが見えない場合があります。
リビジョン、バックアップ内のデータベース、検索エンジンのキャッシュ、通知メールを比較し、変更前と変更後の内容を要約します。

メールと外部サービスの通知を集める

管理者追加、パスワード変更、メールアドレス変更、自動更新、バックアップ失敗、サーバー停止、WAF検知のメールは基準時刻になります。
本文だけでなく、受信日時、Message-ID、送信元、配送ヘッダーも保存してください。

DNS、ドメイン管理、CDN、クラウド、決済、フォーム、外部ストレージにも監査履歴がある場合があります。
WordPressだけを調べると、先にメールやホスティングアカウントを奪われた経路を見落とします。

ファイル・データベース・FTP・SSHの変更を集める

ファイルでは、パス、サイズ、ハッシュ、所有者、権限、更新時刻、作成時刻、正常版との差分を記録します。
WordPress公式配布物と一致するコアファイルは、未知のPHPより調査優先度を下げられます。

FTP・SFTP・SSH・ホスティング管理画面のログには、ログイン成功、接続元、使用ユーザー、アップロード、コマンド実行が残ることがあります。
Web経由の侵入に見えても、盗まれたFTP資格情報からファイルが置かれた可能性を除外しません。

不正アクセスの記録を一つのタイムラインへ統合する

集めた記録は、共通の時刻形式へ直し、一行一イベントで統合するのが正解です。
同じ出来事を示す複数証拠は一行へまとめても構いませんが、元資料へ戻れる参照番号を残します。

すべての時刻にタイムゾーンと精度を付ける

まず各資料がUTC、JST、サーバー現地時刻、ブラウザ表示時刻のどれかを確認します。
原時刻は消さず、別列へJST換算値を作り、夏時間や時計ずれの補正根拠をメモします。

秒まで分かるログと、日付しか分からないバックアップを同じ精度として扱わないでください。
時刻精度を「秒・分・時間帯・日付・期間」のように記録すると、前後関係を断定できる範囲が明確になります。

事実・根拠・判断を別の列にする

「03:12にPOST /wp-login.phpが200」は観測事実ですが、「攻撃者がログイン成功」は判断です。
ログイン後のCookie付き通信、監査ログ、管理者操作が続かなければ、200だけで成功を断定できません。

事実欄にはログやファイルで確認できた内容、根拠欄には資料名と行番号、判断欄には意味と確度を書きます。
担当者の記憶や利用者の申告は重要ですが、「申告」と明記し、機械記録と同じ扱いにはしません。

確度は「確認済み・可能性高・要追加確認・反証あり・確認不能」など一定の語彙に統一します。
強い表現を避けるためではなく、後から新しい証拠が出た時に判断を更新しやすくするためです。

時刻: 02:12 UTC / 11:12 JST
出来事: 管理者ログイン成功候補
根拠: access.log L1842
確度: 要確認 / 対応: 後続操作を照合

時刻: 02:14 UTC / 11:14 JST
出来事: プラグインPHP作成
根拠: file-list.csv 88
確度: 確認済み / 対応: 原本保全

時刻: 02:16 UTC / 11:16 JST
出来事: 外部URLへの転送開始
根拠: WAF-2041とバックアップ差分
確度: 可能性高 / 対応: 公開遮断

上記は列の使い方を示す架空例です。実際の調査資料には、パスワード、Cookie、Authorizationヘッダー、顧客情報、完全なIPなどを不用意に貼り付けません。
機密値は安全な原本で管理し、共有表には参照番号やマスキング値を記録します。

ログ・メール・変更履歴を一つの調査タイムラインへ統合する流れ

同一イベントをID・ユーザー・対象で結び付ける

同じリクエストID、セッション、ユーザーID、投稿ID、ファイルパス、IPとUser-Agentの組み合わせを使うと、別のログを結び付けられます。
一項目だけでなく、複数の一致を確認して同一イベントと判断します。

WordPressのユーザー操作とOS上のファイル変更が数秒差で続くなら、同じ処理の可能性があります。
ただし自動更新やcronもファイルを変えるため、更新履歴、署名、配布元、実行ユーザーを合わせて確認します。

正常時点と欠落区間をタイムラインへ入れる

最後に正常だった時刻は、侵入時刻そのものとは限りませんが、調査範囲の上限を決める重要な基準です。
正常表示の監視結果、正常バックアップ、担当者が確認した日時をそれぞれ根拠付きで記録します。

最初に異常を発見した時刻も、異常が始まった時刻とは区別します。
「10時に転送を発見」「前夜23時の監視では正常」なら、まず9時間の区間を調べ、証拠が増えるたびに狭めます。

ログがない時間帯、取得に失敗した機器、監査未設定の操作は、欠落として表に入れます。
空白を埋めるために推測時刻を作らず、確認不能範囲が結論へ与える影響も記載します。

タイムラインの必須列
  • 原時刻、タイムゾーン、JST換算時刻、時刻精度
  • 出来事、対象、ユーザー、接続元、操作種別
  • 証拠名、参照番号、保存場所、ハッシュ
  • 確認済み事実と調査担当者の判断
  • 確度、反証、未確認事項、欠落区間
  • 実施した遮断・復旧操作と担当者

不正アクセスの侵入経路と影響範囲をタイムラインで絞る

タイムラインの価値は、出来事を並べるだけでなく、入口、権限拡大、永続化、目的、影響を順番に検証できる点にあります。
最初に見つけた不審ファイルを入口と決めず、それより前の認証・アップロード・脆弱性悪用を探します。

最初の異常より前へ調査を広げる

改ざんページが12時に見つかっても、不審な管理者は前日に作られ、資格情報はさらに前に漏れた可能性があります。
最初の異常から一段ずつ前へたどり、正常な基準点またはログ保存開始まで調査します。

「ファイル作成の5分前に未知IPから管理者ログイン」「直後にプラグイン編集」が続けば、関連性は高まります。
一方、ログイン成功後に操作がなく、別経路のFTPアップロードがあれば、入口候補を分けて評価します。

脆弱性悪用を疑う場合は、対象プラグインのバージョン、脆弱性公開日、攻撃ペイロード、修正適用日を並べます。
脆弱なバージョンだった事実だけでは、実際に悪用された証明にはなりません。

侵入成功・実行・影響を別々に判定する

不審なリクエストが到達したこと、サーバーでコードが実行されたこと、データが変更・持ち出されたことは別の段階です。
それぞれに必要な証拠を分けると、過大評価と過小評価の両方を防げます。

例えば不審PHPへのPOSTと200応答だけでは、命令が成功したか不明です。
直後のファイル生成、プロセス、外部通信、データベース変更が一致すれば、実行された可能性が高まります。

顧客情報へアクセス可能だったことと、実際に流出したことも区別してください。
CSV出力、管理画面閲覧、データベースクエリ、異常な送信量、外部接続を時系列で結び、確認不能ならそのまま残します。

攻撃者の永続化と再侵入を探す

攻撃者は最初の入口を修正されても戻れるよう、別管理者、cron、mu-plugins、テーマ、uploads内PHP、SSH鍵などを残す場合があります。
入口候補の後に作られた永続化項目をタイムラインで洗い出します。

削除後に同じファイルが再生成されたなら、再生成時刻の直前に動いたプロセスやHTTP通信を調べます。
復旧担当者が正常ファイルを配置した記録も入れておくと、人為的な変更と再侵入を区別できます。

同じハッシュの不審ファイルが複数サイトへ現れた場合、共通ホスティングアカウントや共有資格情報も候補です。
一つのWordPressだけでなく、同じ契約内のサブドメイン、テスト環境、古いサイトも期間を合わせて確認します。

正常な自動処理を攻撃と誤認しない

自動更新、バックアップ、画像最適化、キャッシュ生成、検索エンジン、外部監視は、夜間に大量のファイルや通信を発生させます。
導入済みサービスのスケジュールと実行ユーザーを確認し、正常時の記録と比較します。

更新された正規プラグインに難読化コードが含まれることもあるため、見た目だけでマルウェアと断定しません。
公式配布物の同一バージョン、署名、配布元ハッシュと照合し、一致しなければ差分を調べます。

相関関係だけで原因を断定しない

二つの出来事が近い時刻に起きても、片方が原因とは限りません。
共通ID、同一セッション、対象ファイル、実行ユーザー、変更内容など追加の一致を確認してください。

不正アクセスのタイムラインを初動・復旧・連絡へ使う

完成したタイムラインは調査報告書で終わらせず、封じ込め、復旧、認証情報変更、通知、再発防止の順番を決めるために使います。
未確認事項を残したままでも、現時点の根拠と確度を明示すれば安全な意思決定に役立ちます。

封じ込めと復旧の順番を決める

攻撃が続いている時間帯、使われたアカウント、対象URL、外部通信先が分かれば、遮断範囲を絞れます。
サイト全体を無期限に止めるか、特定機能を制限するかを、影響と継続リスクから判断します。

復元時点は「表示が正常だった」だけで選ばず、入口より前であること、バックアップが改ざんされていないことを確認します。
入口の修正、残存物の除去、認証情報失効を行わずに戻すと、同じタイムラインを繰り返します。

復旧後のログも同じ表へ継続して追加し、不審通信の再発、削除ファイルの再生成、未知ユーザーのログインがないか見ます。
正常確認を一度で終えず、数時間、翌日、数日後のチェック時刻を決めてください。

関係者への説明は確認済み事実から書く

経営者、顧客、サーバー会社、制作会社へ伝える時は、発見日時、影響対象、確認済み操作、現在の措置、未確認範囲を分けます。
「ハッキングされた」「漏えいした」と根拠なく断定せず、逆に不都合な欠落も隠しません。

技術ログをそのまま渡すと、個人情報や認証情報が含まれる危険があります。
共有版タイムラインでは必要最小限にマスキングし、原本の保管場所と閲覧権限を限定します。

個人情報、決済、機密情報が関係する場合は、法務、個人情報保護、保険、警察など専門窓口への相談が必要になることがあります。
期限や義務は状況で異なるため、技術担当だけで通知要否を決めないでください。

原因と再発防止策を一対一で結び付ける

原因が盗まれた管理者パスワードなら、多要素認証、セッション失効、管理者削減、メール保護まで対策します。
脆弱なプラグインなら、更新だけでなく、不要機能の削除、更新監視、外部公開範囲の見直しを行います。

原因を特定できない場合は、確認できた攻撃面ごとに防御を重ねます。
未確認の入口を「不明」と残し、ログ保存期間、監査設定、バックアップ、権限管理を改善して次回の証拠不足を減らします。

対策実施日、担当者、設定変更、検証結果もタイムラインへ追記します。
対策したつもりではなく、同じ攻撃経路が閉じたことと、正常業務が継続できることを確認して完了です。

調査版と共有版を分けて安全に保管する

調査版には詳細なログ参照、内部パス、ユーザーID、ハッシュ、判断履歴を残します。
共有版には必要な要約だけを載せ、外部へ渡す相手ごとに公開範囲を変えます。

保存先はアクセス制御とバックアップがある場所を選び、通常の公開Web領域へ置かないでください。
調査完了後は保持期限と削除手順を決め、顧客情報やログを無期限に複製し続けないことも重要です。

タイムライン完成後の確認
  • 侵入候補より前の正常時点まで確認した
  • 侵入成功・実行・影響を別々に評価した
  • 欠落ログと確認不能範囲を明記した
  • 封じ込め・復旧・認証情報変更を記録した
  • 原因と再発防止策を結び付けて検証した
  • 調査版と共有版の権限・保持期限を決めた

プラグイン設定だけでなく、更新・バックアップ・緊急復旧まで継続して任せたい場合は、
保守サービス「クイックレスキュー365」の内容も確認してください。

WordPress不正アクセス調査のタイムラインに関するよくある質問

Q
監査ログプラグインを入れていなくてもタイムラインは作れますか?
A

作れます。Web・WAF・FTP・SSHログ、メール、バックアップ差分、ファイル更新、データベース、サーバー会社の記録を組み合わせます。
ただし操作単位の詳細が欠けるため、確認不能範囲と時刻精度を明記してください。

Q
タイムラインはExcelやスプレッドシートで十分ですか?
A

小規模調査なら十分です。時刻形式、確度、証拠参照、担当者を列として固定し、並べ替えで原時刻を壊さない設計にします。
機密ログを扱うため、共有設定、閲覧権限、履歴、ダウンロード可否を必ず確認してください。

Q
アクセス元IPが分かれば侵入者を特定できますか?
A

通常はIPだけで個人を特定できません。VPN、プロキシ、共有回線、踏み台、CDN、IPv6の変更があり、IPは接続元候補の一つです。
同じ時刻の認証、操作、ファイル変更、外部通信と合わせて評価してください。

Q
不審ファイルを見つけたら先に削除してよいですか?
A

被害継続を止める必要があっても、可能なら削除前に隔離コピー、パス、ハッシュ、権限、所有者、時刻を保存します。
一つだけ削除しても再生成元や別のバックドアが残るため、サイト全体の調査と復旧を続けてください。

WordPress不正アクセス調査は事実を時系列で結ぶ

WordPressの不正アクセス調査では、怪しいIP、ファイル、メールを個別に見るだけでは全体像をつかめません。
証拠を保全し、時刻を補正し、ログ・通知・変更履歴・対応操作を一つのタイムラインへ統合してください。

各行を「確認済み事実・根拠・判断・確度」に分けると、思い込みを減らし、新しい証拠で結論を更新できます。
欠落区間や確認不能も残すことで、侵入経路、実行、影響、永続化のどこまで確認できたかが明確になります。

よこやま良平の復旧現場でも、良いタイムラインは復旧順の決定、関係者への説明、再発防止の検証まで役立ちます。
調査に自信がない時は、ログが消える前に原本を保存し、WordPressとサーバーの両方を扱える専門家へ相談してください。

この記事の要点
  • 変更前にログ・ファイル・データベースの原本を保全する
  • UTC・JST・時計ずれを補正し原時刻も残す
  • 事実と判断を分け、証拠の確度を統一する
  • 入口・実行・影響・永続化を別々に調べる
  • タイムラインを復旧・連絡・再発防止へつなげる

WordPressの不正アクセス調査・復旧が自分でできない時は

WordPress・サイト復旧クイックレスキュー

ワードプレスのWordPressエラートラブル解決をしたいなら
クイックレスキューが解決します。

こんなお悩みはありませんか?

・WordPressが真っ白画面
・WordPressがログインできない
・ホームページのマルウェアや乗っ取り
・サイトの表示くずれ
・エラーが表示されている

これらでお悩みなら最短30分ですぐに解決します!

いまなら期間限定で

3つの安心

・万一改善されない場合は全額返金保証で安心!
・30日間動作保証で安心!
・初期費・調査料 0円で安心!

\無料調査・全額返金保証付き/

今すぐ無料で相談する

この記事を書いた人

よこやま良平

こんにちは!20年以上ITエンジニアとして活動してきた
よこやま良平です。

Wordpress復旧やサイト修復、オンライン講座では
200件以上のレビューを頂いており

「すぐに復旧してくれる!」
「当日行ってくれて助かった!」など

評価は4.9/5.0と非常に高く好評です。

またWordPress、SEO、Officeなど25冊以上の書籍を出版しており、
売上ランキング1位を連続で獲得致しました。

その他これまでに3000以上のサービス・システム・サイトを作成。

多くの方の「できない」や「悩み」を解決してきました。
その観点からわかりやすく解説しています。