WordPressのwp-content/ai1wm-backupsを開いたら、見覚えのないファイルや、
古いバックアップが大量に残っていて不安になっていませんか?
このフォルダはAll-in-One WP Migrationがバックアップを保存する正規の場所です。
一方で、公開領域にあり、サイト全体とデータベースを含むアーカイブが置かれるため、放置や改ざんを軽く見てはいけません。
ただし、index.phpや.htaccessを見つけたという理由だけで削除すると、
プラグインが設置した保護ファイルまで失い、かえってバックアップを外部公開するおそれがあります。
WordPressの復旧を多数手がけてきたよこやま良平です。わたしの現場経験をもとに、ai1wm-backups内の正規ファイルと不審な痕跡を分け、証拠と復旧用バックアップを安全に守る順番を解説します。
- ai1wm-backupsフォルダの役割と正規ファイルの考え方
- 不審なPHP・アーカイブ・保護設定を判定する確認軸
- 削除前に残すべき証拠とバックアップ
- 外部公開の有無を安全に確認する方法
- 感染を持ち込まずにバックアップを検証・復元する順番
- 認証情報変更と再発監視まで含む保護手順
結論から言うと、ai1wm-backupsの中身は、ファイル名だけで正常・感染を決めません。
プラグイン版と公式配布物、作成履歴、ハッシュ、アクセスログ、外部公開状態を組み合わせて判断します。
最初に現状を保全し、怪しいアーカイブを本番へインポートせず、隔離環境で検証してください。
正常な復旧元を確保したうえで公開防止、感染除去、侵入経路の停止を進めるのが安全です。
WordPressのai1wm-backupsは削除前に現状を保全する
ai1wm-backupsに不審なファイルを見つけた時は、すぐ削除・上書き・復元をせず、
フォルダ全体の一覧と属性、ハッシュ、ログを先に保存するのが最初の結論です。
削除すれば一時的に警告は消えますが、誰がいつ置いたか、バックアップが改変されたか、
外部から取得されたかを追う材料も失います。侵入口を残したままでは、別名で再作成される可能性もあります。
怪しいPHPやwpressファイルを実行・復元しない
内容を確かめるために不審PHPへブラウザーでアクセスしたり、
怪しい.wpressを稼働中サイトへインポートしたりしてはいけません。
アーカイブ内に改ざん済みテーマ、mu-plugin、不審管理者、悪意あるoptionsが含まれていれば、
復元操作そのものが再感染になります。確認は本番と認証情報を共有しない隔離環境で行います。
絶対パス・容量・日時・権限・SHA-256を残す
スクリーンショットだけでなく、ファイルごとの相対パス、容量、更新日時、所有者、権限、
SHA-256を保存します。日時は偽装されることもありますが、ログを照合する基準にはなります。
date -u
pwd
find wp-content/ai1wm-backups -maxdepth 2 -type f -print0 | sort -z | xargs -0 shasum -a 256 > ai1wm-sha256.txt
find wp-content/ai1wm-backups -maxdepth 2 -type f -exec stat -f '%N %z %Sm %Su %Sg %Sp' {} \; > ai1wm-stat.txtサーバーによってstatやfindの書式は異なります。
コマンドが難しければ、ホスティングのファイルマネージャーから一覧を保存し、取得日時とタイムゾーンを添えてください。
作業前コピーと復旧用バックアップを分ける
疑わしい現在状態のコピーは調査証拠であり、安全な復旧元とは限りません。
感染前と確認できた世代、別媒体のバックアップ、サーバー会社のスナップショットを探し、用途を明確に分けます。
- ai1wm-backupsの絶対パスと全ファイル一覧
- 各ファイルの容量・日時・所有者・権限・SHA-256
- All-in-One WP Migrationの版と更新履歴
- バックアップ画面に表示される作成日時・容量・ラベル
- Webサーバー・WAF・FTP/SFTP・SSH・管理画面ログ
- WordPress一式とDBの作業前コピー
- 感染前と確認できる別世代・別媒体の復旧用バックアップ
表示改ざんや不正転送も同時に起きている場合は、バックアップフォルダだけの問題と考えず、
サイト全体の緊急対応へ切り替えてください。

WordPressのai1wm-backupsにある正規ファイルを見分ける
ai1wm-backupsはAll-in-One WP Migrationの既定バックアップ先で、通常はサイトをまとめた.wpressと、
ディレクトリ一覧や直接取得を防ぐための保護用ファイルが置かれます。
したがって「PHPがある」「ドットファイルがある」という条件だけでは感染と断定できません。
利用中と同じプラグイン版の公式配布物や、プラグインが作成した内容と一致するかを確認します。
wpressはサイト移行用アーカイブとして扱う
.wpressはAll-in-One WP Migrationが書き出すバックアップ形式です。
ファイル名に日付やドメインらしい文字があっても、中身の安全性や作成者が正しいことの証明にはなりません。
WordPressファイルだけでなくデータベースも含み得るため、漏えいした場合は個人情報、メールアドレス、
設定値、ユーザー情報、秘密情報の手掛かりまで広がる可能性があります。通常ファイルより慎重に扱ってください。
index.php・index.html・robots.txtは存在だけで消さない
プラグインはバックアップディレクトリを守る目的で、index.php、index.html、robots.txtなどを用意する版があります。空に見えるファイルも、一覧表示やクロールを抑える役割があります。
ただし、同名なら必ず正規とは限りません。公式版とサイズ・ハッシュ・内容を比較し、
外部入力の実行、難読化コード、別PHPの読み込みなど、本来の保護目的から外れる処理がないか確認します。
.htaccess・web.configはサーバー別の防御設定
Apache系では.htaccess、IIS系ではweb.configが、直接アクセスを拒否するために使われます。
Nginxではこれらが効かないため、ファイルが存在してもサーバー設定側の拒否が必要です。
保護ファイルがあることと、実際にアクセスを拒否できていることは別問題です。
CDN、リバースプロキシ、Webサーバー、別名ホストを含め、未認証の外部経路から応答を確認します。
- プラグインが作成したwpress形式のバックアップ
- 一覧表示を防ぐindex.phpやindex.html
- 検索エンジンの巡回を抑えるrobots.txt
- Apache系で直接アクセスを拒否する.htaccess
- IIS系でアクセスを制御するweb.config
- プラグイン画面の履歴と一致する容量・作成時刻

バックアップの作り方や保存世代の基本を見直したい場合は、
プラグイン比較の記事もあわせて確認してください。

WordPressのai1wm-backupsで不審なファイルを判定する
不審と判断する時は、一つの関数や拡張子に頼らず、公式版との差分、作成履歴、処理内容、
アクセスログ、同時期のサイト症状が同じ方向を示すかを確認します。
プラグイン画面にないアーカイブと急な容量変化を調べる
バックアップ画面に表示されない.wpress、運用担当者が作っていない時刻のファイル、
普段と大きく異なる容量は調査対象です。自動バックアップや外部連携の履歴も確認して誤判定を防ぎます。
想定外のPHP・実行形式・二重拡張子を確認する
正規のindex.php以外に、見覚えのないPHP、file.php.jpgのような二重拡張子、
ランダム名、画像に見せた実行コードがあれば危険度が上がります。
ただし拡張子だけでは確定できません。Webサーバーのハンドラー設定によっては、通常と違う拡張子もPHPとして動きます。
MIMEタイプ、先頭バイト、内容、実行設定、直接リクエストの有無を合わせて確認します。
保護ファイルの改変と外部通信を確認する
.htaccessやweb.configから拒否設定が消え、特定IPやUser-Agentだけ許可する条件、
別サイトへの転送、PHP実行許可が追加されていれば、バックアップ窃取や遠隔操作を疑います。
PHP内のeval、base64_decode、可変関数、長い難読化文字列は手掛かりですが、
単独で悪意とは断定しません。外部入力がコード実行、ファイル作成、認証回避へつながる流れを追います。
周辺のWordPress改ざんと時系列を合わせる
ai1wm-backupsだけでなく、uploads、cache、mu-plugins、通常プラグイン、テーマ、
wp-config.php、WP-Cron、管理者、Application Passwordsも同じ期間で確認します。
攻撃者が先にサイトへ侵入し、その後で正常なバックアップを盗んだのか、
感染済みアーカイブを置いて復元を誘ったのかによって、止めるべき入口と認証変更の順番が変わります。
- 同じプラグイン版の公式構成にない実行ファイルがある
- バックアップ画面・担当者・自動処理の履歴にないwpressがある
- 正規の保護ファイルからアクセス拒否が削除されている
- 外部入力から任意コード実行やファイル作成へつながる
- アーカイブへの直接GETや範囲リクエストがログに残る
- 同時刻に管理者追加・転送・スパム投稿・別ファイル改ざんがある
- 隔離後も同名または別名で自動再生成される
一般的な不審PHPの読み方は、バックアップフォルダ固有の確認と組み合わせてください。

WordPressのai1wm-backupsが外部公開されていないか確認する
バックアップは公開URLから取得できない状態が正解です。
管理画面で見えない、ディレクトリ一覧が出ない、robots.txtで拒否しているだけでは保護の証明になりません。
未認証の外部回線から既知ファイルの応答を確認する
検証用に自分が管理する小さなダミーファイルを用意するか、既知バックアップ名を使い、
ログインしていない別回線から応答コードを確認します。実バックアップ全体を繰り返しダウンロードしないでください。
403や404が期待値です。200、部分取得を示す206、
認証なしのダウンロードが始まる場合は、公開中として直ちに制限を強化します。
curl -I https://example.com/wp-content/ai1wm-backups/known-test-file
curl -I -H 'Range: bytes=0-0' https://example.com/wp-content/ai1wm-backups/known-test-file一覧非表示とファイル取得拒否を別々に検証する
フォルダURLが403でも、ファイル名を知っていれば個別取得できる設定があります。
逆に一覧が表示されなくても、検索エンジン、アクセスログ、過去の漏えいから名前を推測される可能性があります。
Apache、Nginx、IIS、CDNのどこで拒否しているかを記録し、設定変更後は各経路から再確認します。
プラグインの保護ファイルだけへ依存せず、可能ならWeb公開領域外や外部ストレージへ保管してください。
漏えいの可能性があれば認証情報を安全な順番で変更する
アクセスログに成功応答や大量転送があり、アーカイブ取得を否定できない場合は、
バックアップに含まれる情報を前提に、WordPress管理者、ホスティング、SFTP・SSH、DB、メール、APIキーを見直します。
感染中の端末やサイト上で先にパスワードを変えると再取得されることがあります。
安全な端末を使い、侵入口と不審セッションを止め、重要度の高い認証から失効・再発行してください。
- バックアップURLへの未認証アクセスをサーバーまたはCDNで遮断する
- ログと対象ファイルを証拠として保全する
- アーカイブを公開領域外の隔離保管へ移す
- 成功応答・転送量・送信元・時刻をログで確認する
- 安全な端末からセッションと認証情報を失効する
- 検索キャッシュや外部保存先への露出も確認する
WordPressのai1wm-backupsから不審ファイルを安全に隔離する
悪意ある可能性が高いファイルは、証拠を残した後、公開領域外へ隔離します。
その場で拡張子だけ変える方法は、サーバー設定によって実行可能なままになるため十分ではありません。
公開領域外へ同一ハッシュのまま移す
隔離前後でSHA-256を計測し、ファイルが同一であることを記録します。
隔離先はWebから到達できず、実行権限がなく、担当者を限定できる保管場所にしてください。
正規の保護ファイルは同じ版から戻す
改変されたindex.php、.htaccess、web.configを手書きで直すより、
利用中と同じAll-in-One WP Migration版の正規ファイルや、プラグインの再生成手順を使う方が取り残しを減らせます。
サーバー側の拒否設定も確認し、Nginxで.htaccessだけを戻して完了にしないでください。
変更後は外部回線から一覧と個別ファイルの両方が拒否されることを再検証します。
サイト全体の感染源を除去してから完了とする
ai1wm-backupsから不審PHPを消しても、脆弱なプラグイン、盗まれた認証情報、
mu-plugin、Cron、別サイトのバックドアが残れば再作成されます。
WordPressコア、プラグイン、テーマ、DB、管理者、外部連携、同居サイトを調査し、
侵入経路を止めてから正常ファイルを戻します。局所的な削除だけを復旧完了にしないことが重要です。

改ざん後にバックアップを戻すだけでは危険な理由は、次の記事で詳しく整理しています。

WordPressのai1wm-backupsを感染させずに復元検証する
バックアップを復旧に使う時は、作成日が古いという理由だけで安全と決めず、
本番から分離した隔離環境でファイル・DB・挙動を検証してから採用します。
本番と認証情報を共有しない隔離環境を用意する
外向き通信を制限し、検索エンジンと一般公開を止めた検証環境を用意します。
本番のメール送信、決済、Webhook、ストレージ、APIへ接続しないよう、設定値と資格情報を置き換えます。
アーカイブのファイルとDBを両方確認する
テーマやプラグインのPHPだけでなく、uploads内の実行ファイル、mu-plugins、drop-ins、
wp-config.php相当の設定、管理者、Application Passwords、options、投稿内スクリプトを確認します。
セキュリティスキャンが正常でも、すべてのDB値と業務ロジックの安全が保証されるわけではありません。
公式ファイルとの差分、手動確認、ログ、実際の通信先を組み合わせます。
必要なデータだけを段階的に戻す選択肢を持つ
完全復元で不審要素まで戻る場合は、クリーンなWordPress、検証済みプラグイン・テーマを用意し、
画像、投稿、固定ページ、設定を必要性と安全性を確認しながら移す方法があります。
復元後はログイン、表示、投稿、フォーム、決済、予約、メール、Cron、外部APIを確認し、
直後だけでなく時間を分けてファイルハッシュと外部通信を監視してください。
- 候補アーカイブの由来・作成者・作成日時・ハッシュを確定する
- 本番と分離し外向き通信を制限した環境へ複製する
- ファイル・DB・管理者・Cron・外部通信を確認する
- コアと配布物の差分、プラグイン・テーマの出所を検証する
- 必要ならクリーン環境へ安全なデータだけ段階移行する
- 本番反映前にロールバックと業務機能テストを準備する
- 反映後に再改ざん・転送・未知の通信を継続監視する
バックアップからの安全な復元手順もあわせて確認してください。

WordPressのai1wm-backupsを再び危険にしない保護方法
復旧後は、バックアップを「あるだけで安心」と考えず、保存場所、保持世代、暗号化、権限、
復元テスト、削除手順まで運用ルールにすることが再発防止の結論です。
公開領域だけにバックアップを残さない
同じサーバーのwp-contentだけに置くと、サーバー侵害、ディスク障害、アカウント停止、
誤削除の影響を同時に受けます。暗号化した外部ストレージやオフライン媒体へ別コピーを保管します。
定期的にアクセス拒否と復元可能性をテストする
月次などの頻度で、未認証アクセスが拒否されるか、バックアップのハッシュが変わっていないか、
隔離環境で実際に復元できるかを確認します。作成成功表示だけでは復元可能性は分かりません。
プラグイン更新やWebサーバー変更、CDN導入、移転後は、保護設定が引き継がれないことがあります。
構成変更をきっかけに外部アクセス試験をやり直してください。
バックアップ管理者とインシデント時の判断を決める
誰が作成・取得・削除・復元できるかを明確にし、退職者や外注先の権限を残さないようにします。
不審ファイル発見時の連絡先、保全範囲、停止判断、復元承認者も事前に決めてください。
駆除後の監視では、バックアップだけでなくサイト全体の変更、管理者、外部通信、
検索結果、アクセス急増も確認します。攻撃者が別の場所へ永続化を移す場合があるためです。

WordPressのai1wm-backupsでよくある質問
WordPressのai1wm-backupsは証拠保全と公開防止を優先する
ai1wm-backupsに見覚えのないファイルがあっても、正規の.wpressや保護用index.phpまで、
名前だけで削除してはいけません。まず一覧、属性、ハッシュ、作成履歴、ログを保存します。
同じプラグイン版の公式構成と比較し、想定外の実行ファイル、保護設定の改変、
未認証ダウンロード、サイト全体の改ざんを確認してください。怪しいアーカイブは本番へ復元せず隔離します。
その後、外部公開を止め、侵入経路と再生成元を除去し、検証済みバックアップまたはクリーン環境から復旧します。
復旧後も外部保管、最小権限、復元テスト、時間差監視を続けることが大切です。
WordPressのai1wm-backupsを自分で安全に判断できない時は

バックアップの正規性、外部公開、感染範囲、復元に使える世代を自分で判断できない場合は、
クイックレスキューが証拠保全、感染調査、公開防止、安全な復元、再発防止まで対応します。
- ai1wm-backupsのPHPやwpressが正常か判断できない
- バックアップが外部から取得された可能性がある
- 怪しいアーカイブしか残っておらず復元に使えるか不安
- 削除しても不審ファイルが作り直される
- サイト全体と同居サイトの感染範囲も調べたい
