WordPressの脆弱性とは?リスクや攻撃手法、対策方法をまとめて解説!

WordPressの脆弱性に驚く男性
  • このエントリーをはてなブックマークに追加
  • Pocket
  • LINEで送る

WordPressは脆弱性がありセキュリティに弱いと言われていますが、どんな被害があって、脆弱性の被害に合わないようにするにはどうしたら良いのでしょうか。

本記事では、過去にあった被害と攻撃手法、対策方法について初心者の方でもわかるように解説していきます。

弊社では、保守サポートも行なっておりますので参考にしてみてください。
WordPressの保守はこちらから

WordPressの脆弱性

脆弱性とは、OSやソフトウェアなどプログラムで作成された対象物の不具合や設計ミスで起こる、セキュリティの欠陥です。
今回WordPressの脆弱性でいうと、WordPressの不具合や設計ミスなどで起こるセキュリティの問題ということになります。

WordPressはOSS(オープンソースソフトウェア)として提供されているもので、どこの誰でもプログラムコードを閲覧することができるため、脆弱性を発見する可能性も高くなります。

OSSのおかげでテーマやプラグインが豊富で拡張性が高く便利ではありますが、その反面脆弱性問題があったりします。

ではWordPressの脆弱性を狙われた事例についてみてみようと思います。

WordPress脆弱性を狙った改ざん被害

近年で最も大きなWordPressの脆弱性被害は、2017年にあった150万サイト以上が改ざん被害にあったという脆弱性を狙われた事案です。

脆弱性を悪用された場合に、遠隔でサイトの改ざんが行われてしまうという被害が起こりました。

WordPressのバージョン4.7.2以下であるサイトが標的とされ、「攻撃に対する認証が不要」、「リクエストを送るだけで改ざん可能」でバージョンアップしていない状態だと、改ざんされ続けるといった大きなセキュリティ問題が発生しました。

この問題は、脆弱性対策を行なったバージョンにアップデートすることで対策することが可能でした。
すでに提供されているものは、全て最新となっていますのでご安心ください。

参考情報:WordPressの脆弱性対策について

WordPress脆弱性対策の即時アップデート推奨

WordPress公式サイトでも、バージョン4.9.6から4.9.7へのアップグレードが強く推奨された事案です。

脆弱性バージョン4.9.6で起きた特定の権限を持つユーザーがuploadディレクトリ外のファイルを削除できてしまうという被害が起こりました。
ユーザーの権限やデータベースの内容まで変更を加えることができてしまうので、アップデートが強く推奨されました。

この問題は、脆弱性対策を行なったバージョンにアップデートすることで対策することが可能でした。
すでに提供されているものは、全て最新となっていますのでご安心ください。

参考情報:WordPress 4.9.7 セキュリティ・メンテナンスリリース

WordPressの脆弱性は頻繁に発見されている

2017年の改ざんや2018年の権限状態が変更してしまうような問題が起こるのは、近年では稀です。

次に紹介する脆弱性情報を扱っているサイトでも紹介しますが、WordPressは脆弱性が日々発見されています。
2017年や2018年の大きな問題のようなことは起こっていませんが、小さい脆弱性は発見されているので注意が必要です。

WordPress脆弱性の情報収集に役立つサイトのご紹介

WordPressの脆弱性は日々確認されており、情報を事前に得ることでサイトを脆弱性から守ることが可能です。
脆弱性を確認した場合に情報を提供しているサイトをご紹介します。

JVN iPedia 脆弱性対策情報データベース

JVN iPedia 脆弱性対策情報データベースは、国内外問わず脆弱性の情報が日々公開されているサイトです。

トップページの検索からWordPressと検索することで、WordPressに関する脆弱性情報を閲覧することができます。
より詳細に情報を得たい場合は、詳細検索からベンダ名や製品名、深刻度など指定して検索することも可能ですので、ぜひ活用してみてください。

もちろん、WordPressだけでなく他の脆弱性情報も取得することができます。

JVN iPedia 脆弱性対策情報データベースはこちら

IPA 情報処理推進機構

IPA 情報処理推進機構では、情報セキュリティという項目について見ることが多くなります。
2017年の改ざんの情報も本サイトにて注意喚起が行われており、影響を受けるバージョンや対策、参考情報など詳しく掲載されています。

セキュリティ関連の情報を集める場合に便利です。

IPA 情報処理推進機構はこちら

JPCERT コーディネーションセンター

JPCERT コーディネーションセンターでは、注意喚起や脆弱性情報やWeekly Reportなどセキュリティ関連の情報が配信されています。

JPCERTコーディネーションセンターに届けられた報告件数も記載してあるので、参考にしてみてください。

JPCERT コーディネーションセンターはこちら

WordPressの脆弱性を狙った攻撃手法

WordPressの脆弱性を狙った様々な事案がありました。
ここでは、WordPressの脆弱性を狙った攻撃手法をご紹介します。

クロスサイトスクリプティング(XSS)

クロスサイトスプリングは、サイトにスクリプトコードというものを埋め込むことで他のサイトへの誘導を行ったり、個人情報の流出などを狙ったものです。

WordPressの脆弱性を狙った攻撃者が作成したスクリプトコードが、Webサイトを訪問したブラウザ内で実行されるといったものです。
そのため、気づかないうちにスクリプトコードが実行され、情報が漏れてしまっているような状態になることもあります。
多くの訪問者のいるサイトであれば、より多くの情報が漏れてしまうことに繋がるので注意が必要です。

クロスサイトリクエストフォージェリ(CSRF)

クロスサイトリクエストフォージェリは、ユーザーが意図していないリクエストを送信してしまうことです。

例えば、
攻撃者が、不正なリクエストを送信できる攻撃用Webページを作成し、それを他者のサイト内のリンクに設置します。
設置したリンクをユーザーがクリックすることで、意図していない処理が行われ、情報がもれてしまったり、不正書き込みが行われたりといった攻撃を行うことができます。

クロスサイトリクエストフォージェリで、勝手な投稿により誤認逮捕や投稿者の定型文が乗っ取られてしまうようなことが起きてしまっているので注意が必要です。

SQLインジェクション

SQLインジェクションは、データベースから情報を抜き取られたり、改ざん・消去されてし
まう攻撃です。

SQL文を入力した場合に単なる文字列ではなく、SQL文として実行してしまうことでデータベースから情報を受け取ったりすることができてしまいます。

他者の情報など管理しているサイトが、データベース関連の脆弱性をそのままにしている状態だと、会員情報の漏洩にも繋がるので、注意が必要です。

ブルートフォースアタック

ブルートフォースアタックは「総当たり攻撃」ともいい、その名の通り総当たりして解読するという攻撃です。

例えばですが、ユーザーログイン画面のパスワードなどを総当たりして割り出すのに用いられています。
ブルートフォースアタックが成功してしまうとアカウントが乗っ取られたりしてしまうので、パスワードを簡単なものや同じものを使い回すといったことは避けましょう。

ここで少し前のものになりますが、パスワードの文字数と解読されてしまう時間を見てみましょう。

password解読時間

出典:情報処理推進機構 表1-1: 使用できる文字数と入力桁数によるパスワードの最大解読時間

英字の大文字小文字の区別をしたとしても、4文字であれば2分で破られてしまうことがわかると思います。
英字の大文字小文字の区別をし、数字や記号を合わせ8文字以上にしておくことで解読されにくいでしょう。

今では、難しい文字列のパスワードを生成してくれたり、パスワードマネージャーなどあります。複雑にしすぎて忘れてしまうこともありませんし、破られにくくもなります。

今後、コンピュータの処理スピードなどのパフォーマンスが 上がってくると時間はさらに短縮される可能性はあります。
1千年が2分になるのは相当先になると思いますが、パスワードは厳重にして対策しましょう。

WordPressの脆弱性を放置した際に起こること

サイトの記述の改ざん・削除

すぐにわかるものでいうと、投稿した記事の内容が改ざん・削除される場合です。
2017年にWordPressの脆弱性を狙った事案でも同じことが起きています。

他にも不正ログインされた場合も起こり得るので、ログイン状態の確認など身近な対策から行いましょう。

管理画面やサーバーにアクセスできなくなる

簡単にいうとWordPressが乗っ取られた状態です。
WordPressの画面だけでなく、サーバーの管理画面を乗っ取られてしまうと管理情報だけでなく、支払いやサイトの設定情報まで全て抜き取られてしまうので大きな被害になってしまいます。

WordPressやサーバー管理画面に不正なログインをさせないように、設定しましょう。

Googleのブラックリストに登録される

悪質なサイトが改善されないまま放置されていると、Googleのブラックリストに登録されてしまいます。
登録されると、Googleの検索結果に表示されなくなるので、注意が必要です。

ユーザー情報の漏洩

不正ログインや権限の変更が行われると、攻撃者がなんでもできてしまうような状態になってしまいます。
WordPressで個人サイトの場合とECサイトや掲示板サイトでは、全く規模も変わってきてしまうので、注意しましょう。

WordPress脆弱性の対策

WordPressの脆弱性対策ですが、初心者でも簡単に行えるものを紹介しています。
小さいことかもしれませんが、一つ一つ行なっていくことが脆弱性対策にとって重要なことです。

WordPressを最新にする

まず、WordPressのバージョンを最新にしておくことです。
WordPressは日々アップデートされ脆弱性対策を行なっています。
メジャーアップデートとマイナーアップデートと両方ありますが、マイナーアップデートは積極的に行なった方がよいでしょう。

マイナーアップデート(1.9.◯の◯部分の数字変更です。例:1.1.8から1.1.9など)は、軽微な修正ですので大きくレイアウトが崩れたりテーマやプラグインが使えなくなるといったこともあまりありません。

メジャーアップデート(1.◯.9の◯の部分です。例:1.5.9から1.6.9)は、大きな変更や修正ですので、場合によってはテーマやプラグインに影響が出る場合があります。

アップデート前には必ずバックアップをとっておくことをおすすめします。

アップデートを行わないと、WordPressをアップデートする前の脆弱性を放置することになるので、危険な状態が続いてしまうので注意が必要です。

テーマ・プラグインを最新に保つ

WordPress本体同様に、テーマやプラグインも最新の状態に保つことが重要です。
テーマやプラグインをアップデートすることも重要なのですが、物によっては更新がされていない場合があります。
そうした状態を放置していると脆弱性を狙われてしまうので、アップデートがないテーマやプラグインは停止しましょう。
使わなくても問題ないようなテーマやプラグインは削除することをおすすめします。

削除することで、脆弱性の標的ではなくなるだけでなくサイトの読み込みスピードも早くすることができます。

アップデート状況は、最終更新日や開発ログから確認することができるので、参考にしてみてください。

不正ログイン対策

WordPressの不正ログインは以下のようなポイントに注意して不正ログインを防ぎましょう。

  • ユーザー名とパスワードを複雑にする
  • ログインページのアドレスを変更する
  • 秘密の質問を設置する
  • 表示された文字列の入力による認証
  • Google Authenticator設置する

ユーザー名とパスワードを複雑にする

当初作成した状態だと、ユーザー名が投稿欄に公開されてしまっていることが多いので、ユーザー名の変更から行わなければいけません。
ユーザー名がログインと同様であると、ブルートフォースアタックで脆弱性を狙われ簡単にログインすることができてしまいます。

では画像を使ってユーザー名とパスワードの変更方法を6つの手順で説明します。
ユーザー名変更画面

新規ユーザー追加画面

ユーザー追加後画面

前のユーザーを削除する

新規追加ユーザーに権限を譲渡する

新規追加したユーザーになっていること確認

ログインページのアドレスを変更する

理由はサイトのアドレス変更していないと、初期の状態であるhttp://自分のドメイン名/wp-login.phpというURLになり脆弱性を狙われ誰でもログイン画面に到達できる状態になってしまいます。

そうなると、ブルートフォースアタックの対象にもなってしまうので、脆弱性対策が必要です。
ログインページを変更することは、有効な対策なので実際に行ってみてください。

秘密の質問を設置する

WordPressのログイン画面に秘密の質問を設定することで、管理者にしかわからない情報になるのでよりセキュリティが高くなります。

セキュリティ対策用のプラグインを導入します。
WP Security Questionのダウンロードはこちら
WP Security QuestionはWordPressのプラグイン画面からもダウンロード可能です。

以降は画像を使って各種設定を5つの手順で説明します。

セッティングページに遷移する

秘密の質問を追加、削除する

ユーザー画面にて秘密の質問を設定する

ログアウトすると設定が反映されていることを確認する

秘密の質問が設定されているか確認のためのエラー画面

表示された文字列の入力による認証

WordPressのログイン画面で文字入力認証を行うことで、表示された文字をみている人にだけログインすることができる状態になります。

文字列を使った認証を行うためのプラグインを導入します。
SiteGuard WP Pluginのダウンロードはこちら
SiteGuard WP PluginはWordPressのプラグイン画面からもダウンロード可能です。

以降は画像を使って各種設定を3つの手順で説明します。

文字認証を行うための設定画面に遷移する

表示する文字の選択

ログアウトして設定が反映されていることを確認する

他にもログイン履歴を確認できます

SiteGuard WP Pluginは、他にもログインアドレス変更や管理ページアクセス制限やログインロックなども設定することができます。

Google Authenticator設置する

WordPressのログインを2段階認証を行うことで、不正ログインを防ぐことが可能です。
いわゆるワンタイムパスワードを発行し、発行された番号とユーザー名パスワードの3点を知っている人のみログインできるというものです。

ログインするために、Googleが提供しているGoogle AuthenticatorをiPhoneかAndoidでダウンロードします。

Apple StoreでGoogle Authenticatorをダウンロードする

Play StoreでGoogle Authenticatorをダウンロードする

次にWordPressにGoogle Authenticator用のプラグインを導入します。
Google Authenticatorのダウンロードはこちら

以降は画像を使って各種設定を手順で説明します。

Google Authenticatorを設定するためにQRコードを表示する

スマートフォンのGoogle Authenticatorを起動する

QRコードを読み取った後の、ワンタイムパスワード画面

ログアウトしてワンタイムパスワードを使ってログインできるか確認

SSL対応

「このサイトへの接続は保護されていません。」といったような表示が出てきたことが誰しも一度はあるのではないでしょうか。

通信保護されていない画面

URLがhttpという表記になっており、このサイトは安全ではありませんという警告を表しています。
SSL化の方法は、サイト運営者さん本人が契約しているサーバーごとにSSL化する項目がありますので、各サーバー会社のよくある質問などで確認してください。
SSL化した後にWordPressの一般設定から変更を行う必要があります。

WordPress側のSSL設定

SSL化が完了したら、実際にサイトを開いてみましょう。
保護されていない通信が、この接続は保護されていますに変わっているのがわかると思います。

SSL設定後の通信保護表示

httpとhttpsの違い

httpとhttpsの違いは、保護されている通信かそうでないかという点です。
保護されていない通信だと、攻撃者が妨害をして内容を変えてしまったり、情報を盗んだりすることができてしまいます。

安心してサイト内を閲覧し信頼してもらうためにも、SSL化は必須だといえます。

セキュリティ機能があるプラグインを導入

WordPressには、今までに紹介したようなセキュリティ機能を持ったプラグインがあります。
そうしたプラグインを導入するのも一つの手段ではあります。
しかし、セキュリティ機能がついたプラグインだからと安心せず、アップデートが行われているかなども確認することを忘れないことが大切です。

定期的にバックアップ

定期的なバックアップを行うことで、万が一脆弱性を狙われたとしても復元できるようにしましょう。
また、テーマやプラグインのアップデート時やWordPressのメジャーアップデート時にもバックアップしておくことで、レイアウト崩れやバグなど発見した時に復元することができます。

プラグインによるバックアップ方法

WordPressの保守をプロに任せる

WordPressの脆弱性で起きた事案を含め、対策を紹介していきました。

小さいものから大きいものまで、多岐にわたって脆弱性問題が起きています。
WordPressの脆弱性を防ぐためにも、日々の脆弱性対策が重要です。

セキュリティ面で不安を感じていたり、今後の対策とかはどうしたらいいなど悩みがある場合は一度ご相談ください。

WordPressの保守はこちらから

  • このエントリーをはてなブックマークに追加
  • Pocket
  • LINEで送る

記事が気に入ったら
wp.supportを "いいね!"
Facebookで更新情報をお届け。

WordPressの保守・セキュリティ対策なら「wp.support」

WordPressのプロによる保守サービス

ワードプレスのバージョンアップセキュリティ対策
お悩みではないですか?
「何かが起きる前に!」
WordPressのプロフェッショナル集団が対応します。
初期費用は一切頂きません。月額4万円〜
SSL対応、定期バックアップもお任せ下さい。