サイト当番 ホームページ保守運用

Notes

WordPressがハッキングされたら|
まずやること

侵入後の初動隔離

最初の1時間は、修復より先に被害の広がりを止めます。ログインし直し、公開範囲を絞り、いまの状態を残してから、隔離後にファイルの掃除へ進んでください。兆候の見分けと触らない範囲は改ざんの記事に分け、こちらは直後の隔離を厚く書きます。

WordPressがハッキングされた直後

直後にやることは、時刻を残すこと、関係者へ「今は直さない」と伝えること、自分の端末がきれいだと思い込まないことです。管理画面に入り直してプラグインを消す作業は、直後の作業ではありません。入った瞬間に、残っていたセッションを上書きし、ログの並びを乱すことがあります。まず紙かメモに、気づいた時刻、知らせてくれた人、見えた画面のURLを書いてください。書いてから手を動かします。

最初の30分で止める判断

訪問者が別サイトへ飛ばされる、見知らぬ入力欄が出る、警告が検索に出ている。この3つのどれかがあるなら、公開を絞る判断を先にします。営業時間中でも、誘導が続いている公開は損失を増やします。絞り方は、ホストのメンテナンス表示、手前の配信での停止、DNSを触る前の一時ページです。DNSを急に別へ向ける判断は、戻しが複雑になるので、公開を止める手段が他にあるなら後回しにしてください。

社内の誰かが「今すぐファイルを戻せ」と言っても、きれいな世代の所在が確認できるまで待ってください。所在が分からないまま戻すと、改ざん後の世代へ戻すことがあります。バックアップの画面を開くのはよいですが、復元ボタンは押さないでください。押すのは、隔離が終わり、世代の日付を確認したあとです。

自分の端末と共有パスワード

サイトが取られたあと、同じパスワードを使っているメールやサーバーパネルも疑ってください。サイトだけ直しても、パネル側のパスワードが同じなら入り直されます。直後に変える対象は、WordPressの自分のアカウント、サーバーパネル、データベース、使用中の外部保存先です。変える順番は、今まさに開いている管理画面より、まだ開いていないパネルを先にすることもあります。すでに攻撃側が管理画面にいるなら、画面の中でパスワードを変えても、同じセッションが残ります。

共有アカウントで入っている人がいるなら、その人にも「今は入らない」と伝えてください。複数人が同時に掃除を始めると、誰が何を消したか分からなくなります。初動の窓口は1人です。制作会社とホストと社内が別々に動くと、隔離が途中で解けます。窓口の名前を先に決めてください。

ホストへ電話する前に、契約の名義と、パネルへ入れる人を確認してください。名義と作業者が違うと、停止の依頼が通りません。依頼する内容は「公開を一時的に止めたい」「ログを残したい」の2つに限り、自分で直す手順をホストへ聞かないでください。聞いた手順をその場で試すと、隔離の途中でファイルが動きます。ホストの回答は、時刻と担当の名前だけ控えて、作業は窓口の判断で進めてください。

ハッキング対策|まず隔離する

隔離は、攻撃側の操作と、訪問者の被害と、自分たちの誤操作を、同時に止めることです。完全に直すことではありません。隔離ができていれば、そのあとゆっくり範囲を切れます。隔離ができていないまま掃除を始めると、掃除の途中でまた書き込まれます。隔離の完了条件は、新しい書き込みが止まり、訪問者が不正な画面を見ず、自分たち以外が管理画面に入れない、の3つです。

公開面の隔離

ホストに「一時的に公開を止めたい」と伝え、メンテナンス画面へ切り替えられるかを聞いてください。自分でhtaccessを急いで書き換えない方が安全です。書き換えると、正規のリダイレクトまで壊し、証拠の行も消えます。手前に配信があるなら、そちらで公開を止める方が、サーバー内のファイルを触らずに済みます。止めた時刻、誰が止めたか、何で止めたかを残してください。

フォームだけ動いている状態は、隔離できていません。公開トップを止めても、直リンクの投稿やAPIが残ることがあります。主要な入口だけでなく、投稿の個別URL、旧ドメイン、テスト用サブディレクトリも見てください。検索に出ている見知らぬURLは、隔離の対象に含めてください。止められないURLがあるなら、その一覧を作ることが隔離の一部です。

管理面の隔離

全員のセッションを切れます。WordPressのログアウトは自分だけです。サーバーパネル側でアプリケーションの再起動や、セッション用の鍵を入れ直す手段があるなら、それを使います。手段が分からないなら、管理者パスワードを変え、身に覚えのないユーザーの権限を停止し、新しい管理者を自分用に1つだけ足す、という順で入口を減らしてください。古い管理者をすぐ消すと、作られた日時が分からなくなることがあります。停止を先にしてください。

FTPとSFTPとデータベースの接続も、同じパスワードのままにしないでください。接続用のアカウントが複数あるなら、使っていないものを止めます。CIや自動デプロイが残っていると、隔離したつもりでも古いファイルが戻ることがあります。自動で上がる経路があるかを、制作会社に確認してください。経路があるなら、隔離のあいだは止めてもらいます。

隔離できたかの確かめ

止めたあとに、別回線の端末でトップ、下層、見知らぬURL、フォームを開いてください。まだ誘導が出るなら、隔離は未完了です。管理画面は、止めたユーザーで入れないこと、自分の新しいパスワードでだけ入れることを見てください。サーバーの更新時刻が、隔離後に見知らぬファイルで動いていないかも見てください。動いているなら、まだ書き込める入口が残っています。その入口を自分で塞げないなら、隔離の途中で点検へ渡してください。

隔離の確認は、社内のキャッシュ付き端末だけでは足りません。閲覧履歴が残ったブラウザは、止める前の画面を出すことがあります。確認用は、履歴を使わない状態か、別のブラウザにしてください。確認で開いた見知らぬURLは、開いた事実を表に残し、その場で中のファイルをダウンロードしないでください。ダウンロードしたファイルを手元で開くと、確認の端末まで巻き込みます。URLと画面の写しで足ります。

WordPressがハッキングされた証拠

証拠は、裁判のための書類ではなく、戻したあとに同じ穴を閉じるための記録です。残すものは、画面、URL、ユーザー一覧、ログの範囲、隔離前のファイルとデータベースの写しです。残し方を間違えると、あとの範囲特定が推測になります。推測でプラグインを全部捨てると、営業に必要な機能まで消えます。

画面と一覧

おかしい公開画面、検索の警告、管理画面のユーザー、プラグイン、テーマ、メールの不正通知。それぞれ時刻が見える形で保存してください。スマホの写真でも足ります。編集して枠を消さないでください。アドレス欄と時計が写っている方が、あとで順序を組めます。関係者が別の画面を見ているなら、その人も保存して共有してください。自分の回線だけに出る表示と、社外に出る表示を混ぜないでください。

ホストのログが残る日数は短いことがあります。隔離の当日中に、アクセスログとエラーログの取得可否をホストへ聞いてください。自分でログを加工しないでください。加工したコピーは、元と並べられなくなります。取得できない場合も、聞けなかった事実を残します。無いものは無い前提で範囲を切ります。

写しの置き場

隔離前の公開ディレクトリとデータベースは、復旧用のきれいな世代とは別の名前で残してください。同じ「backup」フォルダへ上書きすると、証拠が消えます。公開領域にも置かないでください。手元か、サイトとは別の領域です。写しを取ったあとで掃除を始めると、掃除中の差分と隔離前の差分が混ざります。写しが終わるまで、ファイルの削除は始めないでください。

証拠を残す作業は、改ざんの見分けと重なります。見分けの観点は改ざんの記事にあります。こちらでは、残すタイミングが隔離の直後であることだけを守ってください。きれいにしてから残すと、残す意味が無くなります。写しのファイル名には、隔離前であることが分かる語と日付を付けてください。名前が「new」や「final」だけだと、翌週にはどれが隔離前か分からなくなります。

ハッキング事例から見る経路

経路は一般論として書きます。特定の事件名や、実在しない被害数字は使いません。よくある入口は、古いプラグイン、古いテーマ、使い回した管理者パスワード、残った管理者、むき出しのログイン画面、サーバー上に置いた古い複製です。入口は1つとは限りません。1つを塞いでも、同じ週に別の入口から戻ることがあります。

更新と配布の経路

公式以外から入れたプラグインやテーマは、中に余分な読み込みが混ざっていることがあります。一度入れたあとに公式へ差し替えても、追加で置かれたファイルが残ることがあります。更新の通知を長期間無視したサイトは、公開されている弱点の一覧と版が一致しやすいです。弱点の調べ方は脆弱性の記事と診断の記事にあります。ここでは、更新遅れが入口になり得る、という事実だけを持って隔離へ戻ってください。

制作途中の複製ディレクトリ、古いドメインのまま残したWordPress、使っていないサブドメイン。これらは、本番より更新が遅れ、同じデータベースを見ていることがあります。本番だけ隔離しても、複製から書き戻されます。ホストのアカウント一覧で、公開されているディレクトリを全部見てください。見慣れないディレクトリがあれば、隔離の対象に含めます。

人の経路

退職した担当のアカウント、制作会社の共用パスワード、パソコンに保存したログイン、メールに残したパスワード。人の経路は、ファイルの掃除では閉じません。隔離の段階で、誰が入れるかを名前で洗い出してください。洗い出せないなら、パスワードを全部変え、新しい管理者だけを残す方が早いです。メールの本文にパスワードを再送する運用は、同じ経路を開き直します。

決済や会員があるサイトは、サイトの見た目以外に、顧客の入力が取られている可能性を分けて考えてください。この記事では、入力を取る具体的な手法は書きません。疑いがあるなら、公開の隔離に加えて、決済側の事業者へ連絡する判断が先です。自分でログから個人情報を抜き出して確認する作業はしないでください。連絡した時刻と相手の窓口名だけ残し、やり取りの本文を公開領域へ置かないでください。

ハッキング復旧|範囲の特定

範囲は、公開面、管理面、ファイル、データベース、周辺の複製、外部の保存先です。全部を同時に直そうとすると、どれが終わったか分からなくなります。隔離が保てている前提で、影響が出ている面から印を付けてください。印の付け方は、自分たちで見た画面と、証拠の写しと、更新時刻の3点です。スキャンの点数だけで範囲を決めないでください。

公開と管理の範囲

誘導が出るURL、警告が出るURL、フォームの宛先、検索にだけ出る見知らぬ投稿。この一覧が公開面の範囲です。管理面は、不正ユーザー、不正なアプリケーションパスワード、身に覚えのないプラグイン、テーマの追記です。公開が無事でも管理面が残っているなら、範囲は閉じていません。逆に管理面をきれいにしても、公開の直リンクが残ることがあります。両方の一覧が空になるまで、範囲特定は終わりません。

周辺の複製と、ステージング、古いサーバーが残っていないかを、範囲に含めてください。本番だけ戻して複製を残すと、翌日に同じ内容が戻ります。外部のバックアップ置き場が同じパスワードなら、置き場の中身も疑ってください。置き場を消す前に、きれいな世代かどうかを日付で見てください。改ざん後に取られた書庫を「きれい」と扱うと、戻した瞬間に再現します。

ファイルとデータベースの範囲

核の必須ファイル、テーマ、プラグイン、アップロード、設定ファイル。更新時刻が隔離前に集中している場所を、範囲の候補にします。候補をすぐ消さないでください。消すと範囲の根拠が消えます。データベースは、ユーザー、投稿、必須設定、リダイレクト、ウィジェットです。ファイルがきれいでも、投稿本文に誘導が残ることがあります。範囲の印は、表の名前と、該当するIDの一覧まで落としてください。

ハッキング復旧|戻し方

戻し方は、きれいな世代へ戻すか、正規の部品を組み立てるか、の2つです。どちらも、隔離と証拠の写しが先です。戻す操作は、公開を絞ったまま行ってください。戻している途中の画面を訪問者に見せると、途中の壊れ方が新しい苦情になります。戻したあとの確認は、社内の端末でトップ、下層、ログイン、フォーム、決済があるなら決済の画面、の順です。

きれいな世代へ戻す

戻す前に、世代の日付がおかしくなる前であること、ファイルとデータベースが対になっていること、戻した直後にユーザーとプラグインと必須URLを見ることを確認してください。この3つが揃わない戻しは、戻したことにしません。世代の取り方はバックアップの記事にあります。プラグインの復元ボタンを、確認なしに押さないでください。押す前に、保存先の書庫を手元へコピーします。復元が失敗したときに、元の書庫まで消える製品があります。

戻したあと、隔離をすぐ解かないでください。社内確認が終わるまで、公開は絞ったままです。確認で誘導が残っていたら、世代がきれいではなかったか、周辺の複製から戻されています。その場合は、また掃除を増やすのではなく、範囲の一覧へ戻ってください。

組み立てて戻す

きれいな世代が無いときは、公式の核、公式のプラグイン、手元にあるテーマの元、データベースの必要な表を組み立てます。時間がかかります。1ファイルずつ怪しい行を消す作業は、戻し方としては薄いです。正規の置き場所へ正規を置く方が、残骸が残りにくいです。組み立ての途中で公開を戻さないでください。途中のサイトは、また入口になります。

データベースを組み立てるときは、不正ユーザーと不正投稿の一覧を先に作り、まとめて止めます。1件ずつゴミ箱へ入れる作業は漏れます。自分で一覧を切れないなら、組み立てを途中で止めて引き渡してください。中途半端な組み立ては、中途半端な削除と同じです。

ハッキング対策の再発防止

再発防止は、戻した日に始めます。パスワード、ユーザー、更新、バックアップの保存先、複製ディレクトリ、ログインの入口。この6つを名前付きの担当で閉じてください。担当が無い項目は、翌月には開いたままです。セキュリティの設定手順は管理画面から始める記事にあります。ここでは、ハッキングのあとに抜けやすい項目だけ書きます。

同じ週に閉じるもの

管理者とサーバーとデータベースと外部保存のパスワード。使っていないユーザーと接続アカウント。使っていないプラグインのファイル。公開されている複製ディレクトリ。ログイン試行の多い入口。バックアップを公開領域へ置いていないことの確認。この6つを、戻した当日か翌日に閉じてください。検索の再審査は、公開面が正規になってから出します。作業完了と警告解除は別です。

手前に配信を置いて入口を減らす判断は、Cloudflare移管の税別14,800円からで出せます。必須ではありません。ログインがむき出しで、更新が遅れがちなサイトでは、隔離の再発を短くする手段になります。移管の作業中も、サイト側の更新とパスワードは別途閉じてください。手前だけ変えて中が古い状態は、経路が残ります。

翌月から回すもの

本体とプラグインの確認、日次の別領域バックアップ、死活、改ざんの差分。死活はサイト当番の全プランで24時間365日1秒単位、マルウェアと改ざんはスタンダード月額17,800円以上です。一度ハッキングされたサイトは、月次の確認が途切れた月に戻りやすいです。確認の報告が残る運用にしてください。報告が無い運用は、また初動からやり直しになります。

ハッキングされたあと自分で難しいとき

公開を絞る判断がつかない、セッションを切れない、世代の日付が分からない、周辺の複製が見切れない。このどれかがあれば、自分での復旧を増やさないでください。隔離の途中でも渡せます。公開URL、いつ気づいたか、今公開を止めているか、管理画面に入れるか、バックアップの有無を書いて、サイト改ざん・マルウェア駆除へ送ってください。緊急は税別29,800円からです。

渡すときに残しておくもの

気づいた時刻、止めた時刻、画面の写し、ユーザー一覧、ホストへログを頼んだか。残っていない項目は「無い」と書いてください。無いものをその場で作ろうとしてファイルを触ると、初動が崩れます。改ざんの見分けで迷っている場合は、検知と応急の記事の触らない範囲を守ったまま待ってください。日常の監視へ載せる場合は、スタンダード月額17,800円以上が入口です。比較は料金ページにあります。

今日中に見てほしい場合も、届いた順と被害範囲で着手時刻が決まります。プレミアム月額34,800円は緊急対応を優先します。スポットでも、公開が止まっている事実とURLがあれば切り分けを始められます。ファイルを消したあとの相談より、隔離した状態の相談の方が、戻せる範囲が残ります。隔離の途中でも送ってください。

決済や会員がある場合は、サイトの隔離と、事業者への連絡を分けて書いてください。こちらで見るのはサイト側です。顧客への案内文を急いで出したいときも、事実が固まってからにしてください。固まっていない案内は、後から訂正が必要になり、信頼をさらに削ります。案内に書く内容は、今止めていること、問い合わせの別経路、再開の見込みがまだ無いこと、までで足ります。

相談

公開を止めたいときは先に連絡してください

公開URL、いつ気づいたか、今止めているかを書いてください。ファイルを消す前に、隔離と点検の切り分けを返します。

サイト改ざん・マルウェア駆除を相談する