本記事は広告が含まれる場合があります WordPress

ハッキング・感染したWordPressの復旧手順・対策を解説

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にダウンロードしておきましょう。

BackWPupの場合のバックアップ
 

 

レンタルサーバー会社によっては自動バックアップ機能が備えられているので、サーバーの管理画面からバックアップファイルを取得することもできるでしょう。

エックスサーバー バックアップ取得画面

エックスサーバー バックアップ取得画面


 

なお、バックアップ取得時にすでにマルウェア感染している場合、そのままバックアップファイルで復元しても改善しないため、バックアップファイルの中から必要なファイル類のみを使って復元していきます。

 

【STEP2】WordPressのバージョンを最新にして動作確認する

次に、WordPress・プラグイン・テーマ・(PHP)のバージョンを最新にして動作することを確認しておきましょう。(念のためバージョンアップ前のWordPress・プラグイン・テーマのバージョンも確認・メモしておいてください)

ダッシュボードの「更新」からWordPressのコアファイルやテーマ、プラグインファイルの更新ができる
 

古いバージョンのWordPressやプラグイン、テーマを使用していると、ここがハッキング経路になってしまうことが多いです。

これだと、復旧できたとしても再度ハッキング被害にあってしまう可能性も考えられるため、全てを最新バージョンにして動作するかどうかを確認します。

※後ほどファイル・フォルダを削除するので、動作することが確認できればOKです。

なお、バージョンを最新にしたことで動作がおかしくなった際は、バージョンアップ前のバージョンでも復旧可能ですが、セキュリティホールが改善されないリスクがあります。

エラー原因となるプラグインやテーマを、他のものに代替できないか検討してみてください。
 

 

 

【STEP3】WordPressインストールディレクトリの中を空にする

つぎに、WordPressがインストールされている対象ドメイン内のフォルダ・ファイル類を全て削除・初期化します(※)。

ドメイン内公開フォルダ(例. public_html)内のフォルダ・ファイル類を全て削除する

※対象と違うドメインやフォルダの中を削除しないよう気をつけてください。また、個別に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ダウンロード」をクリック
 

.htaccessファイルをテキストファイルで開けてすべて選択>コピーします。
海外アクセス拒否のhtaccessの記述をコピー
 

コピーした内容を【STEP1】でダウンロードしたバックアップファイルの中にある.htaccessファイルの一番下の行にペーストして保存してください(※注)。
海外アクセス拒否の設定を追記
 

.htaccessをFTPソフトでアップロードします。
.htaccessファイルをアップロードする
 

(※注)不正な記述がないか確認
.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ファイルを読み込む記述がされており、すでに改ざん・汚染されている
WordPress のハッキング事例2
 

【STEP5】WordPressファイル類をサーバーにアップロードする

STEP5では公式からインストールしたWordPressファイルをFTPを使って手動でアップロードしましょう。

日本語版のWordPressは以下の公式サイトからインストール可能です。

ブログから大規模サイトまで作れる CMS | WordPress.org 日本語

WordPressの日本語版公式サイトが開いたら、ヘッダー内右側にある「WordPressを入手」をクリックします。

「WordPressを入手」をクリック

「WordPress ○.○をダウンロード」をクリックします。(※時期によって最新バージョンの数値が異なります。)

「WordPress6.2をダウンロード」をクリック

以上の操作でWordPress最新バージョンのzipファイルがダウンロードされるため、ダウンロードが完了したらダブルクリックして解凍してあげましょう。

ダウンロードされたzipファイルをダブルクリックで解凍する

解凍されたWordPressフォルダ内には様々なPHPファイルが入っていますが、全てのファイル・フォルダをドメイン内公開フォルダ(例. public_html)内にアップロードします。

WordPressコアファイルをアップロードする

なお、STEP.2で最新バージョンでの動作が確認できなかった場合は、削除前のサイトで使用していたバージョンのWordPressをアップロードしましょう。

WordPressの過去バージョンは以下のサイトからダウンロードできます。

リリース | WordPress.org 日本語

ダウンロードしたいバージョンで「zip」をクリックする

 

【STEP6】有効化したいテーマをアップロードする

つぎに、以前適用していた(有効化したい)テーマをアップロードします。

有効化したいテーマを「wp-content」の「themes」にアップロードする

WordPressの公式ディレクトリに登録されているテーマを利用していた場合は、公式から汚染されていないクリーンなファイルをダウンロードしてあげる必要があります。

WordPressの公式ディレクトリに登録されているテーマであればテーマ毎にページが存在するため、「ダウンロード」から必要なテーマをダウンロードしましょう。

「ダウンロード」をクリック

Lightning - WordPress テーマ | WordPress.org

テーマのzipファイルがダウンロードされたら、ダブルクリックで解凍しましょう。

ダウンロードされたテーマのzipファイルをダブルクリックで解凍する

あとはオリジナルテーマの場合と同様に「wp-content」の「themes」内にアップロードすればOKです。

テーマファイルを 「wp-content」の「themes」にアップロードする
 

もし、自作テーマを利用していた場合はバックアップファイルからPHPファイルを取り出し、中身に不正な記述がないか確認してから「wp-content」の「themes」内にアップロードしましょう。

なお、STEP.2で最新バージョンでの動作が確認できなかった場合は、元々使用していたバージョンのテーマファイルをアップロードしましょう。

古いバージョンのテーマファイルのダウンロード方法は以下の記事で解説されています。

 

【STEP7】最新のプラグインをサーバーにアップロードする

STEP. 7では、プラグインの最新バージョンを公式からダウンロードして手動でアップロードしましょう。

バックアップファイル内にあるプラグインファイルはマルウェアが仕込まれている可能性があるため、公式からクリーンなものをダウンロードしてあげる必要があります。

WordPressの公式ディレクトリに登録されているプラグインであればプラグイン毎にページが存在するため、「ダウンロード」からプラグインをダウンロードしましょう。

Wp Multibyte Patchの公式サイトで「ダウンロード」をクリックする

WP Multibyte Patch – WordPress プラグイン | WordPress.org 日本語

そうするとzipファイルがダウンロードされるため、ダブルクリックで解凍します。

ダウンロードされたzipファイルをダブルクリックで解凍する

あとは、解凍されたプラグインのフォルダを丸ごと「wp-content」の「plugins」内にアップロードします。

プラグインファイルを 「wp-content」の「plugins」にアップロードする

なお、STEP.2で最新バージョンでの動作が確認できなかった場合は、元々使用していたバージョンのプラグインファイルをダウンロードして手動でアップロードしましょう。

古いバージョンのプラグインファイルのダウンロード方法は以下の記事で解説されています。

 

【STEP8】「uploads」フォルダの中身をアップロードする

STEP. 8では、不審なファイルがないことを確認してからバックアップファイルの「uploads」をアップロードしましょう。

バックアップファイルフォルダにある「wp-content」>「uploads」の中身を、サーバー上で公開されている方の「wp-content」>「uploads」にアップロードします。

バックアップファイルの「uploads」の中身をアップロードする

コマンドを使ってファイルを確認

コマンドプロンプトやターミナルでコマンドの操作ができる方は、findコマンドなどを使って「.php」や「.ico」など変な拡張子のファイルがないか確認できます。画像ファイルなどの数が多い場合に有効です。

findコマンドを使うとカレントディレクトリやサブディレクトリにある特定のファイルを検索できます。

findコマンドを使うと「.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のデータベース接続パスワードが古いと「データベース接続エラー」となるため、必ず「wp-config.php」ファイル内のデータベース接続パスワードを再設定したパスワードに変更してください。
データベース接続エラー

 

【STEP10】海外アクセス拒否の設定を解除する

ここまでの作業が終了し、何も問題がないことが確認できたら海外アクセス拒否の設定を解除しましょう。

前述までの手順で海外IPアドレス制限用のコードを.htaccessに記述しましたが、こちらを全て削除します。

海外IPアドレス制限用に記述したコードを全て削除する

これでハッキングされたWordPressサイトの復旧が一通り完了しました。

WordPressやプラグイン、テーマを最新バージョンに変更して復旧した際に、細かい設定や調整が必要になる場合も多いので、サイトの表示が問題ないか、プラグインが動作しているかなど一通り確認調整してみてください。

 
 

ハッキングされないためにはセキュリティ対策が重要

WordPressの基本的なセキュリティ対策

WordPressがハッキングされないためにはセキュリティ対策が重要です。

ハッキングされないためにできるセキュリティ対策には、大きく3つあります。

◾️ハッキングされないためのセキュリティ対策

  • WordPressコアファイル・プラグインファイル・テーマファイルを最新の状態にしておく
  • 強固なパスワードを設定しておく
  • セキュリティ対策プラグインやセキュリティ機能を有効化しておく

 

手軽にできて効果があるのが、「ソフトウェアをすべて最新版のものにしておく」ということと「強固なパスワードを設定しておく」ということです。

下記はWordPressのハッキング経路に関する調査ですが、特にプラグインが原因でハッキングされる例が多いようです。有効化されていないプラグインファイルやテーマファイルなどもハッキング経路になる可能性があるため更新するか、不要であれば削除しておきましょう。


 

また、WordPressのセキュリティプラグインや、レンタルサーバー側でWAF(Web Application FireWall)機能がある場合は、こちらを導入することでもセキュリティを強固にできます。

 

補足:ハッキングされているかどうか・侵入経路をチェックする方法

なお、ハッキングされているかどうかや、ハッキングの際に使われた侵入経路はセキュリティプラグイン「Wordfence Security」のスキャン機能を使うことで簡易的に診断できます。

Wordfence Security
 

Wordfence Securityでは、ファイアーウォールの導入や2段階認証機能の設定などのセキュリティ対策機能に加え、サイト内のマルウェアをスキャンできる機能がついています。

スキャン機能では、WordPressのコアファイルやテーマファイル、プラグインファイル内のファイルが書き換えられたり、マルウェアが配置されると、その該当ファイルのパスまで詳しく教えてくれるため、ハッキングされているかどうかや侵入経路まで分析できます。

Wordfence Securityのスキャン機能

ここで「ファイルの変更」や「マルウェアスキャン」項目にエラーが表示されている場合はハッキングの可能性が高いです。

また、書き換えられたファイルの修復機能もついているため、(どこまでカバーしてくれるかは不明ですが)これを利用することである程度修復できるかもしれません。
Wordfence Securityのリストア機能

ただし、1度ハッキング被害にあってしまうとWordPressやFTPのパスワード等が漏洩してしまっている可能性があるため、次回以降同様のハッキング被害を受けないために、バージョンアップやパスワードの変更など恒久対策が必要です。
 

 
 

まとめ

まとめです。今回はハッキングされたWordPressサイトの復旧手順を解説しました。

WordPressは、世界一のシェアで有名ですがその分、攻撃を受けやすくハッキングされる例も多々あります。

オープンソースで自由に利用できるというメリットがある一方、セキュリティ対策は不具合対応も自分でやらないといけません。

最低限やることとしては主に「ソフトウェアを最新バージョンにして脆弱性を少なくする」そして「パスワードを複雑にして不正ログインできないようにする」の2つです。

自社サイトがハッキングを受けないように基本的なセキュリティ対策は怠らないようにしましょう。

今回は以上になります。最後までご覧頂き、ありがとうございました。
&nbs;

 

「業者に任せたけど、更新ができない」「本で独学は時間がかかりすぎる・・」そんなお悩みの方も多いのではないでしょうか。

個別指導形式のスクールでは、自分の知りたいことをピンポイントで学習・達成でき、自分で更新もできるというメリットもあります。

教室の無料事前相談もしておりますので、まずはお気軽にご登録ください。

詳細はこちら

YouTubeチャンネル開設しました!

WEBST8 YouTube Channel 開設
最大月間50万PVの当ブログをベースに、Youtube動画配信にてWordPress、ホームページ作成、ブログのことについてお役立ち情報を随時配信していきます。

ご興味ある方はぜひチャンネル登録をしていただけますと幸いです。


検索して記事を見つける

探したいキーワードを入力・検索して記事を見つけたい方はこちら

-WordPress