WordPressはホームページやブログでよく使われるオープンソースソフトウェアですが、古いバージョンを使っていたり脆弱なパスワードが原因でハッキング被害にあっているサイトもよくみかけます。
そこで本記事では実際にハッキングされたWordPressを想定して、WordPressサイトの復旧手順を解説していきます。
本記事を読むにあたっての注意事項
本記事はFTPが触れる、サーバー・PHPや.htaccessの中身がある程度読める前提で説明しています。
全く意味がわからない状態で下手に触ると復旧不可能な状態になってしまうかもしれないので、自信のない方は専門業者に依頼した方が良いでしょう。
個々の環境によっては本手順以外にも必要になる作業もあれば一部不要な場合もあると思いますので、本手順はあくまで参考として自己責任で実施してください。
ハッキング被害にあったWordPressサイトの復旧手順
ハッキング被害にあったWordPressサイトの復旧手順を下記に説明します。
大まかにいうと、(1)まずバックアップを取ってから、(2)WordPressインストールディレクトリ内のファイルをすべて削除。(3)公式サイトからダウンロードしたクリーンなファイルで復元するといった手順です。
MySQLデータベースはそのまま既存のものを利用(パスワードは変更)しています。
あわせて読みたい関連記事
以下の記事ではWordPressでよくあるハッキング事例をいくつか紹介しています。自分のサイトがハッキングされているのかどうかわからないという方はまず下記記事をご参照ください。
【WordPressハッキング事例】ウイルス・マルウェア感染
【STEP1】バックアップを取得してPCにダウンロードする
まずは事前準備でバックアップをPCにダウンロードしておきましょう。
WordPressの管理画面に入れる場合であればプラグイン「BackWPup」を利用することで、WordPressのコアファイル(.htaccessファイルやwp-config.phpファイル)を始め、プラグインやテーマ、アップロードフォルダやデータベースのバックアップをまるごと取得できます。
取得したバックアップファイルをFTPソフトなとでPCにダウンロードしておきましょう。
あわせて読みたい関連記事
レンタルサーバー会社によっては自動バックアップ機能が備えられているので、サーバーの管理画面からバックアップファイルを取得することもできるでしょう。
【STEP2】WordPressのバージョンを最新にして動作確認する
次に、WordPress・プラグイン・テーマ・(PHP)のバージョンを最新にして動作することを確認しておきましょう。(念のためバージョンアップ前のWordPress・プラグイン・テーマのバージョンも確認・メモしておいてください)
古いバージョンのWordPressやプラグイン、テーマを使用していると、ここがハッキング経路になってしまうことが多いです。
これだと、復旧できたとしても再度ハッキング被害にあってしまう可能性も考えられるため、全てを最新バージョンにして動作するかどうかを確認します。
※後ほどファイル・フォルダを削除するので、動作することが確認できればOKです。
なお、バージョンを最新にしたことで動作がおかしくなった際は、バージョンアップ前のバージョンでも復旧可能ですが、セキュリティホールが改善されないリスクがあります。
エラー原因となるプラグインやテーマを、他のものに代替できないか検討してみてください。
あわせて読みたい関連記事
PHPのバージョン変更方法については以下で解説しています。
【STEP3】WordPressインストールディレクトリの中を空にする
つぎに、WordPressがインストールされている対象ドメイン内のフォルダ・ファイル類を全て削除・初期化します(※)。
※対象と違うドメインやフォルダの中を削除しないよう気をつけてください。また、個別にHTML/CSSファイルなどを設置している方は事前にバックアップしておいてください。
1度ハッキングの被害にあってしまうと、WordPressのコアファイルやその他至る箇所に不正な書き込みやマルウェアが設置されている可能性があります。
そのため、まずはWeb領域のデータを空っぽにし、公式ディレクトリからダウンロードしたクリーンなファイルで復旧していきます。
(参考)【徹底解説】WordPressのバージョンアップ・更新方法
補足:サーバー内で不正なプロセスが稼働されている場合には追加でプロセス削除も必要
以前すべてのファイル類を削除してWordPressを再設置しても、すぐにまた不正にファイルを書き換えられるハッキング事例がありました。
そのときの原因は、サーバー内で不正なプロセス(不正なphpファイルの実行状態)が稼働がまだ残っていたことが原因でした。このような場合、まずはSSH接続などして不正なプロセスを突き止めて停止をしてあげないと、初期化して再設置しても再発することがあるため注意が必要です。
■不正なプロセスの例)/home/サーバー名/ドメイン名/public_html/syzf.php
(参考記事)当WordPressブログを乗っ取りされかけた件【現在は復旧済み】
SSH接続し自分でプロセスの削除をするのが心配な方は、お使いのレンタルサーバーによってはサポートに問い合わせてみるのもありかもしれません。サーバー会社によっては、サーバー内の不審プロセスが稼働していないかなどを調べてくれる場合があります。
【STEP4】「wp-config.php」と「.htaccess」をアップロードする
海外アクセス拒否設定した.htaccessをアップロードする
次に【STEP1】でダウンロードしたファイル類のうち「.htaccess」に対して海外アクセス拒否設定を追記してアップロードしていきます。
ハッキングの大半が海外からのアクセスです。サイト復旧手順中に海外から再度マルウェアを仕込まれないよう、海外からのアクセスを遮断しておく方が安全です。
海外IPからのアクセスを制限するには、海外IP制限用「.htaccess」を生成してくれる以下のサービスを利用するのがおすすめです。
IPアドレスで日本国外(海外/外国)からのアクセスを制限する.htaccess CGI's
「.htaccessダウンロード」をクリックすると日本のIPアドレスからのアクセスだけを許可できる.htaccessファイルがダウンロードできます。
.htaccessファイルをテキストファイルで開けてすべて選択>コピーします。
コピーした内容を【STEP1】でダウンロードしたバックアップファイルの中にある.htaccessファイルの一番下の行にペーストして保存してください(※注)。
.htaccessをFTPソフトでアップロードします。
(※注)不正な記述がないか確認
.htaccessを編集する際に、もし意味不明な記述(何かをすべて許可するような記述)があれば削除しておきましょう。
wp-config.phpをアップロードする
次に、不正な記述がないことを確認してからバックアップファイルの「wp-config.php」のアップロードしてきます。
この際、一旦すべてのユーザーを強制的にログアウトさせたいので、wp-config.php内の認証用ユニークキー(cookie情報)を変更してリセットしておきます。
「https://api.wordpress.org/secret-key/1.1/salt/」にアクセスすると、認証用ユニークキーが発行されます(アクセスするたびにランダムで変更されます)ので、コピーします。
wp-config.phpの同じ箇所を上書きします。
あわせてwp-config内に不正な記述がないことを確認してwp-config.phpをFTPソフトでサーバーにアップロードします(※注)。
wp-config.phpファイル内に書き込まれた不正な記述
不正な記述は大体暗号化されている意味不明な文字列であることが多いです。もし不正な記述があるままアップロードすると再度ハッキングされてしまう恐れがあるため、不正な記述と思われる箇所を削除してアップロードするようにしましょう。
(※注)不正な記述(4行目)のあるwp-config.php。マルウェア本体らしきicoファイルを読み込む記述がされており、すでに改ざん・汚染されている
【STEP5】WordPressファイル類をサーバーにアップロードする
STEP5では公式からインストールしたWordPressファイルをFTPを使って手動でアップロードしましょう。
日本語版のWordPressは以下の公式サイトからインストール可能です。
ブログから大規模サイトまで作れる CMS | WordPress.org 日本語
WordPressの日本語版公式サイトが開いたら、ヘッダー内右側にある「WordPressを入手」をクリックします。
「WordPress ○.○をダウンロード」をクリックします。(※時期によって最新バージョンの数値が異なります。)
以上の操作でWordPress最新バージョンのzipファイルがダウンロードされるため、ダウンロードが完了したらダブルクリックして解凍してあげましょう。
解凍されたWordPressフォルダ内には様々なPHPファイルが入っていますが、全てのファイル・フォルダをドメイン内公開フォルダ(例. public_html)内にアップロードします。
なお、STEP.2で最新バージョンでの動作が確認できなかった場合は、削除前のサイトで使用していたバージョンのWordPressをアップロードしましょう。
WordPressの過去バージョンは以下のサイトからダウンロードできます。
【STEP6】有効化したいテーマをアップロードする
つぎに、以前適用していた(有効化したい)テーマをアップロードします。
WordPressの公式ディレクトリに登録されているテーマを利用していた場合は、公式から汚染されていないクリーンなファイルをダウンロードしてあげる必要があります。
WordPressの公式ディレクトリに登録されているテーマであればテーマ毎にページが存在するため、「ダウンロード」から必要なテーマをダウンロードしましょう。
Lightning - WordPress テーマ | WordPress.org
テーマのzipファイルがダウンロードされたら、ダブルクリックで解凍しましょう。
あとはオリジナルテーマの場合と同様に「wp-content」の「themes」内にアップロードすればOKです。
もし、自作テーマを利用していた場合はバックアップファイルからPHPファイルを取り出し、中身に不正な記述がないか確認してから「wp-content」の「themes」内にアップロードしましょう。
なお、STEP.2で最新バージョンでの動作が確認できなかった場合は、元々使用していたバージョンのテーマファイルをアップロードしましょう。
古いバージョンのテーマファイルのダウンロード方法は以下の記事で解説されています。
【STEP7】最新のプラグインをサーバーにアップロードする
STEP. 7では、プラグインの最新バージョンを公式からダウンロードして手動でアップロードしましょう。
バックアップファイル内にあるプラグインファイルはマルウェアが仕込まれている可能性があるため、公式からクリーンなものをダウンロードしてあげる必要があります。
WordPressの公式ディレクトリに登録されているプラグインであればプラグイン毎にページが存在するため、「ダウンロード」からプラグインをダウンロードしましょう。
WP Multibyte Patch – WordPress プラグイン | WordPress.org 日本語
そうするとzipファイルがダウンロードされるため、ダブルクリックで解凍します。
あとは、解凍されたプラグインのフォルダを丸ごと「wp-content」の「plugins」内にアップロードします。
なお、STEP.2で最新バージョンでの動作が確認できなかった場合は、元々使用していたバージョンのプラグインファイルをダウンロードして手動でアップロードしましょう。
古いバージョンのプラグインファイルのダウンロード方法は以下の記事で解説されています。
【STEP8】「uploads」フォルダの中身をアップロードする
STEP. 8では、不審なファイルがないことを確認してからバックアップファイルの「uploads」をアップロードしましょう。
バックアップファイルフォルダにある「wp-content」>「uploads」の中身を、サーバー上で公開されている方の「wp-content」>「uploads」にアップロードします。
コマンドを使ってファイルを確認
コマンドプロンプトやターミナルでコマンドの操作ができる方は、findコマンドなどを使って「.php」や「.ico」など変な拡張子のファイルがないか確認できます。画像ファイルなどの数が多い場合に有効です。
findコマンドを使うとカレントディレクトリやサブディレクトリにある特定のファイルを検索できます。
1 |
find . -name "*.php" |
【STEP9】各種パスワードを変更する
ここまでの操作で、うまく行くとWordPress自体は稼働するようになり、管理画面に入れるようになります。
パスワードを同じままにしている場合、復旧しても再度攻撃を受ける可能性があるため、一通りのパスワードを変更していきます。
1. WordPressのログインパスワードを変更する
まずWordPressから管理者ユーザーのパスワードを変更しましょう。
WordPressの管理画面の「ユーザー」から管理者ユーザーの編集画面に入ります。
管理者ユーザーの「新しいパスワード設定」から強固なパスワードを設定しましょう。(複数のユーザーがいる場合は、全てのユーザーに対してパスワード変更推奨)
2. サーバーやFTPアカウントのパスワードを変更する
次に、念の為サーバーやFTP接続アカウントやサーバー管理画面のパスワードを変更しましょう。
サーバーやFTPのパスワードが漏れている可能性は低いかもしれませんが、もし漏洩している場合は再度ハッキングされてしまうため、念の為変更を推奨します。
各レンタルサーバー毎にサーバー・FTPパスワードの変更方法は違うため、お使いのレンタルサーバーの公式サイトをご確認ください。
3.3 WordPress用データベースのパスワードを変更する
WordPress用に使っているデータベースの接続パスワードも変更しておきます。お使いのレンタルサーバーの手順をご確認ください。
参考)エックスサーバーでのデータベース接続ユーザーのパスワード変更画面
また、データベースのパスワードを変更したら必ず「wp-config.php」ファイル内のデータベース接続パスワードを再設定したパスワードに変更しましょう。
データベースのパスワード変更のみでwp-config.phpのデータベース接続パスワードが古いと「データベース接続エラー」となるため、必ず「wp-config.php」ファイル内のデータベース接続パスワードを再設定したパスワードに変更してください。
【STEP10】海外アクセス拒否の設定を解除する
ここまでの作業が終了し、何も問題がないことが確認できたら海外アクセス拒否の設定を解除しましょう。
前述までの手順で海外IPアドレス制限用のコードを.htaccessに記述しましたが、こちらを全て削除します。
これでハッキングされたWordPressサイトの復旧が一通り完了しました。
WordPressやプラグイン、テーマを最新バージョンに変更して復旧した際に、細かい設定や調整が必要になる場合も多いので、サイトの表示が問題ないか、プラグインが動作しているかなど一通り確認調整してみてください。
ハッキングされないためにはセキュリティ対策が重要
WordPressの基本的なセキュリティ対策
WordPressがハッキングされないためにはセキュリティ対策が重要です。
ハッキングされないためにできるセキュリティ対策には、大きく3つあります。
◾️ハッキングされないためのセキュリティ対策
- WordPressコアファイル・プラグインファイル・テーマファイルを最新の状態にしておく
- 強固なパスワードを設定しておく
- セキュリティ対策プラグインやセキュリティ機能を有効化しておく
手軽にできて効果があるのが、「ソフトウェアをすべて最新版のものにしておく」ということと「強固なパスワードを設定しておく」ということです。
下記はWordPressのハッキング経路に関する調査ですが、特にプラグインが原因でハッキングされる例が多いようです。有効化されていないプラグインファイルやテーマファイルなどもハッキング経路になる可能性があるため更新するか、不要であれば削除しておきましょう。
また、WordPressのセキュリティプラグインや、レンタルサーバー側でWAF(Web Application FireWall)機能がある場合は、こちらを導入することでもセキュリティを強固にできます。
補足:ハッキングされているかどうか・侵入経路をチェックする方法
なお、ハッキングされているかどうかや、ハッキングの際に使われた侵入経路はセキュリティプラグイン「Wordfence Security」のスキャン機能を使うことで簡易的に診断できます。
Wordfence Securityでは、ファイアーウォールの導入や2段階認証機能の設定などのセキュリティ対策機能に加え、サイト内のマルウェアをスキャンできる機能がついています。
スキャン機能では、WordPressのコアファイルやテーマファイル、プラグインファイル内のファイルが書き換えられたり、マルウェアが配置されると、その該当ファイルのパスまで詳しく教えてくれるため、ハッキングされているかどうかや侵入経路まで分析できます。
また、書き換えられたファイルの修復機能もついているため、(どこまでカバーしてくれるかは不明ですが)これを利用することである程度修復できるかもしれません。
ただし、1度ハッキング被害にあってしまうとWordPressやFTPのパスワード等が漏洩してしまっている可能性があるため、次回以降同様のハッキング被害を受けないために、バージョンアップやパスワードの変更など恒久対策が必要です。
まとめ
まとめです。今回はハッキングされたWordPressサイトの復旧手順を解説しました。
WordPressは、世界一のシェアで有名ですがその分、攻撃を受けやすくハッキングされる例も多々あります。
オープンソースで自由に利用できるというメリットがある一方、セキュリティ対策は不具合対応も自分でやらないといけません。
最低限やることとしては主に「ソフトウェアを最新バージョンにして脆弱性を少なくする」そして「パスワードを複雑にして不正ログインできないようにする」の2つです。
自社サイトがハッキングを受けないように基本的なセキュリティ対策は怠らないようにしましょう。
今回は以上になります。最後までご覧頂き、ありがとうございました。
&nbs;
あわせて読みたい記事
個別指導形式のスクールでは、自分の知りたいことをピンポイントで学習・達成でき、自分で更新もできるというメリットもあります。
教室の無料事前相談もしておりますので、まずはお気軽にご登録ください。
YouTubeチャンネル開設しました!
最大月間50万PVの当ブログをベースに、Youtube動画配信にてWordPress、ホームページ作成、ブログのことについてお役立ち情報を随時配信していきます。
ご興味ある方はぜひチャンネル登録をしていただけますと幸いです。