wp.geek|世界のWordPress最新情報を届けるメディア WordPressのプロによる
情報発信メディア

セキュリティ 2022.10.26

WordPressの乗っ取りを防ぐハッキング対策【被害事例も解説】

この記事を書いた人

土井 純也

WordPressスペシャリスト・エンジニア/株式会社e2e 取締役 / CTO

1985年北海道生まれ。
200社以上の大手上場企業のWordPressサイトの制作、保守・セキュリティをサポートしている。

【 展開しているサービス一覧 】
■WordPress開発サービス「wp.make
■WordPress保守/運用サービス「wp.support
■WordPressハッキング/緊急復旧対応サービス「wp.rescue
■WordPressバージョンアップ代行サービス「wp.versionup

WordPressは世界でも圧倒的なシェアを誇っている分、乗っ取りやハッキングを狙うクラッカーも大勢います。

そのため、脆弱性の改善を行うとともに、ハッキングが行われた場合の対処法を事前に知っておくことが大切です。

本記事では、WordPressの乗っ取りやハッキングの代表的な原因を紹介するとともに、対処法も併せて解説します。

WordPressの乗っ取りやハッキング対策を行いたい方は、本記事を参考にしてください。

脆弱性は危険な乗っ取りのリスクになる

脆弱性とは、プログラムの不具合や設計ミスによって発生する、情報セキュリティ上の欠陥のことです。

この脆弱性は、危険な乗っ取りのリスクとなります。

ここでは、WordPressサイトの脆弱性が標的となった、2件の危険な乗っ取りについて解説します。

160万のWordPressサイトが脆弱性を標的とした攻撃にあった事例

2021年12月9日に、世界中のおよそ100万以上のWordPressサイトが脆弱性を標的とした攻撃に遭う被害がありました。

Wordfenceの調査によると、この一斉攻撃では、36時間のうちに1,600万以上のWordPressサイト上において、16,000以上の異なるIPアドレスからの攻撃を受けており、いずれもプラグインやテーマを狙った攻撃であるとされていました。

WordPressのバージョン更新に沿って更新が行われていない、プラグインやテーマに脆弱性が見られ、それらの弱点を突いた攻撃であったと言えるでしょう。

1.6 Million WordPress Sites Hit With 13.7 Million Attacks In 36 Hours From 16,000 IPs

2022年1月にも8万以上のWordPressサイトが乗っ取りリスクにあった事例

2022年の1月にも、ある3つのWordPressのプラグインに、乗っ取りリスクが高いとされる脆弱性が発見されました。

これらプラグインは、8万以上のWordPressサイトに影響を与えるものであったため、結果として、多くのWebサイトに乗っ取りのリスクを与えることになってしまったのです。

今回も、先述した2021年のものと同様、プラグインのアップデートが行われていないことが大きな要因の1つとされており、プラグインのアップデートが脆弱性に直結することを示しています。

8万4000超のWebサイトに乗っ取りのリスク

WordPressでありがちなハッキング(乗っ取り)被害

WordPressサイトがハッキングや乗っ取り被害に遭った場合、下記のような被害を被る可能性があります。

  • テーマファイルの改ざん
  • 悪意あるスクリプトを埋め込まれた
  • 管理者パスワードの漏洩
  • 既存ファイルの削除、不正ファイルの追加

悪意あるスクリプトを埋め込まれることによって、WordPressサイトを訪れたユーザーに対して悪影響がもたらされ、企業の大幅な信用性の低下に繋がります。

また、管理者パスワードの漏洩がある場合は、違法なコンテンツを自社WordPressサイトに入稿されてしまい、知らず知らずのうちに自社サイトが犯罪に巻き込まれるリスクもあります。

このように、WordPressのハッキングや乗っ取りを受けると、サイトに不具合が生じるだけではなく、ユーザーへの被害や犯罪の巻き込みに繋がる恐れもあるのです。

そのため、WordPressのセキュリティ対策は十分に行う必要があります。

WordPressサイトがハッキングされる主な原因

WordPressサイトがハッキングされる主な原因は、下記の通りです。

  • バージョンが古いログイン情報の安全性が低い
  • コードの安全性が低い

それぞれ順番に解説します。

バージョンが古い

WordPressそのものはもちろんのこと、プラグインやPHP、MySQL、Apacheなどのバージョンが最新でない場合、脆弱性を持っている可能性が高く、結果的にハッキングされる主な原因となります。

プラグインやサーバーソフトウェア等のバージョンアップでは、従来のバージョンで発見された脆弱性の改善も行われます。

バージョンが最新でないということは、新機能の追加・改善以外にも脆弱性の修正などを放置していることと同等であるため、新しいバージョンが出たらバージョンアップを検討しましょう。

ログイン情報の安全性が低い

ユーザー情報やパスワードといった、ログイン情報の安全性が低い場合も、ハッキングや乗っ取りのリスクが非常に高まります。

特にパスワードは覚えやすいことを理由に単純なものにしたり、他サービスのログイン情報などと同じものにしたり、自身から連想されそうなものにしたりすることは非常に危険です。

もし、上記のように危険なパスワードを使用している場合は、パスワード変更画面で「強力」と表示されるものに変更しましょう。

英数字を含めた11文字以上が目安です。

また、ユーザー情報についてはデフォルトの「admin」のままにしていることも多く見られますが、これも非常に危険です。

なぜなら、世界中にはユーザー名を「admin」にしたままサイトを運用している方が多いことを理由に、ユーザー名を「admin」に固定して、パスワードを無数に打ち続けるプログラムで不正ログインを図ろうとするハッカーが存在するからです。

WordPressサイトのセキュリティを高めるために、ユーザー名は「admin」ではなく、別のものに変更するようにしましょう。

コードの安全性が低い

WordPressのテーマやプラグインを構成するプログラムの書き方によって、安全性が損なわれているケースも考えられます。

代表的なものとして、SQLのインジェクション対策やXSS(クロスサイトスクリプティング)対策の、エスケープ処理が行われていないなどが挙げられます。

SQLインジェクションとは、不正なSQLを実行するコードが入力され、SQL上に不当なデータが入れられる攻撃のことです。

SQLインジェクションをはじめとした、多くの攻撃からWordPressサイト内にある情報を守るためのコードを記述する必要があります。

WordPressがハッキングされた場合の対処法

WordPressがハッキングされた場合、状況に応じて異なる対処を行う必要があります。

ここからは、具体的な対処法について解説します。

被害状況を確認する

WordPressサイトが乗っ取りの被害に遭うと、つい慌ててしまいがちですが、まずは被害状況を冷静に確認することが大切です。

どのような被害を受けているのかや、何が原因であると考えられるのかを把握しなければ、適切な対応はできません。

まずは、WordPressサイトの状況を俯瞰的に確認するように心がけましょう。

サイトをメンテナンスモードにする

乗っ取られている状態のWordPressサイトをユーザーに見られることは、サイトの信頼性を大幅に下げる要因となります。

そのため、サイトをメンテナンスモードにして、ユーザーに乗っ取られたWebサイトを見られない状態にすることが大切です。

WordPressでメンテナンスモードを設定するには、プラグインの「WP Maintenance Mode」を使用すると簡単に行えます。

「WP Maintenance Mode」を用いて、サイトをメンテナンスモードにする方法は、下記の通りです。

  1. 「WP Maintenance Mode」のインストールおよび有効化を行う
  2. 「WP Maintenance Mode」のプラグインページを開き、「ステータス」を「有効化」にする
  3. 「設定を保存」をクリックする

パスワードのリセット

既存のパスワードが漏洩している場合、いくら対策を行ったとしても、管理画面にアクセスされることで、同様の被害を受けてしまいます。

そのため、パスワードをリセットするとともに、上述したように強力なパスワードの再設定を行いましょう。

なお、パスワードのリセットはWordPressの管理画面へのアクセスに必要なものだけではなく、WordPressサイト関連で使用しているすべてのパスワードを再設定することを推奨します。

本体・プラグイン・テーマをアップデート

本体やプラグイン、テーマなどのアップデートが行われていないことによって、脆弱性が生まれて攻撃されているケースが非常に多く見られます。

そのため、まずはこれらのアップデートを行うか、一度削除を行ったのちに、再度ダウンロードを行うと良いでしょう。

コアファイルの改ざんが行われていた場合、アップデートや再ダウンロードを行うことによって、WordPressファイルの書き換えが行われ、乗っ取り等が改善されます。

コアファイルの改ざんの疑いがある場合は、まずはアップデートを行いましょう。

該当(特定)ファイルを削除する

もし、ここまでの対応策を打ったとしても、症状が改善されない場合は、特定のファイルが原因となっている可能性があります。

まずは、プラグインフォルダも含めてファイル全体を確認し、身に覚えのない不審なファイルがないかを確認しましょう。

そして、不審なファイルが見つかった場合、そのファイルを削除することを推奨します。

なお、自身でどのようなファイルが不審なファイルか判別できない場合は、Webサイトをスキャンして不審なファイルを特定してくれるツールなどを使用すると良いでしょう。

心当たりのないユーザーの削除

WordPressの乗っ取りが行われた場合、身に覚えのないユーザーが管理者アカウントとして入っていることがあります。

複数のアカウントが管理者や編集者として入っているサイトの場合は、それぞれのメンバーに心当たりがあるかどうかを確認しましょう。

身に覚えのない管理者アカウントがあった場合は、そのアカウントを削除しましょう。

なお、ユーザーの確認・削除方法は下記の通りです。

  1. WordPress管理画面から「ユーザー」に移動
  2. 「管理者」をクリック
  3. 心当たりのないユーザーがいた場合は、削除を行う

サイトマップの修正

sitemap.xmlがハッキングされてしまっている場合、検索エンジンがサイトについての警告を行います。

サイトマップがハッキングされて偽のリンクや外国語が埋め込まれている場合、検索エンジンが不適切と見なしてしまうのです。

サイトの評価に大きな悪影響を与えるので、必ずサイトマップの確認を行い、修正を行っておきましょう。

クロールを再リクエスト

サイトマップ等の修正が完了したら、Googleにクロールの再リクエストを行いましょう。

乗っ取りやハッキングが行われてしまった場合、SEOスパムと呼ばれるインデックス汚染系の被害を受けている可能性があります。

クロールの再リクエストを行うことで、適切に乗っ取りの原因が取り除かれていれば、インデックス汚染が改善されます。

なお、SEOスパムを受けているかどうかは、Googleの検索窓で「site:サイトのURL」で検索をすることで確認可能です。

この検索結果に、自社サイトに存在しない記事のタイトル・概要文が出る場合はSEOスパムを受けていると考えて良いでしょう。

データベースのクリーンアップ

データベースが汚染されている場合は、最後にデータベースのクリーンアップを行いましょう。

データベースのクリーンアップを自力で行うことは難しいので、「WP-Optimize」と呼ばれるプラグインを使用することを推奨します。

データベースのクリーンアップを行う手順は、下記の通りです。

  1. データベースのバックアップを行う
  2. 「WP-Optimize」をインストールし、有効化する
  3. メニューから、「WP-Optimize」を選び、任意の項目にチェックを入れて「選択したすべての最適化を実行する」を選択する

自社でWordPressのハッキングを解決できない場合は

ここまで解説してきた方法を自社で実践できないケースや、これらの方法をもってしてもハッキングが解決できないケースも多々あるでしょう。

また、強引に自社でハッキングの改善を行おうとした場合、より状況が悪化したり、必要なデータが消滅したりするリスクも十分に考えられます。

自社でWordPressのハッキングの解決ができない場合は、専門の業者に修復を依頼することを推奨します。

e2eの「wp.rescure」ではWordPressのプロフェッショナルが、状況に応じた最適解を提案するとともに、WordPressのサイトを健康に運用できるよう修復いたします。

また、修復完了後3ヶ月以内に同様の被害に遭われた場合は無償で再対応いたしますので、復旧後も安心です。

ハッキングや乗っ取りが行われているか定かではなかったとしても、WordPressのサイトの脆弱性に不安を感じている方や、不審なコードが見られる場合は、お気軽にご相談ください。

トラブルに迅速対応するwp.rescue

まとめ

本記事では、WordPressの乗っ取りやハッキングが行われた際の対処法について解説しました。

WordPressは世界的に圧倒的なシェアを誇っているが故に、脆弱性を突いた攻撃を行うハッカーも多く、確実に対策を行うことが大切です。

ぜひ本記事を参考にして、ハッキング対策を行うとともに、すでにハッキングや乗っ取りが行われている際は対処を行ってみてください。

注目記事バナー
2022.09.13