Wordpress脆弱性対策基本のキ

「Wordpressには脆弱性がある!」昨今、情報漏洩やネットのセキュリティに関するニュースをよく目にするようになりました。そんな中でよく見かけるのがWordpressの脆弱性に関する警鐘やネガティブな意見です。

今年6月にはTwitterやYoutubeで料理研究家として知られているリュウジさんのサイトが攻撃され、ランディングページにアクセスすると外部の違法なサイトへリダイレクトされてしまうという事件が発生しました。

もちろん、運用や費用に合わせてWordpress以外のサービスを使う事は全く問題ありません!しかし、これだけ見るとWordpressがとんでもなく危ないサイトのようですね?
ですがWrodpressはしっかり対策と運用をすれば安全で、拡張性の高いCMSとなっています。今回はWrodpressを使うにあたって抑えておきたい脆弱性対策についてご紹介します。


Wordpressが狙われるのはなぜ?

端的に言ってしまえばその理由は2点。「みんなが使っているから」「オープンソースコードだから」です。

Wordpressのシェア率

まずは「みんなが使っているから」という点に関して見てみましょう。2023年8月時点で日本国内のCMSで作成されたサイトにおけるWordpressのシェア率は82.3%。Shopify、Wixなど多種多様なCMSが出てきてなお圧倒的なシェア率を誇っています。

シェア率が高いという事は1つ脆弱性を突いた攻撃方法がわかれば、そのCMSを使っている多くのサイトを攻撃対象にできるという事です。不正行為を行う側にしてみれば1つのセキュリティが強固なサイトを狙うよりも、攻撃方法が確立している多数のサイトを狙う方が(言い方は悪いですが)効率的というわけです。

Wordpressは無料で使えるオープンソースコード

では次にオープンソースコードという点に関して。オープンソースコードとは「無償で公開されたソースコード」のことです。改変や再配布が可能となっているため、Wordpressは拡張性が高い、と言われます。
サイトも、サイトにのせる記事を作成する管理画面も自由にカスタマイズできるのはこれに所以します。
カスタマイズをするという点では利点になりますが、逆にソースコードの全てが公開されているという事はどこがセキュリティ的に脆いかもソースコードを見る事でわかってしまうという事です。
サイトを作るのに大事な情報(ログイン情報、ユーザー情報etx)が入った金庫の鍵が自由に配布されているのと同じですね。

Wordpressを利用するメリット・デメリット

以上のことを踏まえて、Wordpressを利用するメリット・デメリットをまとめてみましょう。
メリットとしては以下の3点があげられます。

  • 使用する人が多いため、他言語はもちろん日本語でのノウハウ、トラブルシューティングの実例情報を得やすい

  • 拡張性が高くテンプレートも豊富にあるので、カスタマイズで様々なレイアウト、用途に対応可能

  • 多くのサーバー会社がwordpressを使用することを想定したサービスを用意していて、サーバー選択の幅が広がる

次にデメリット3点です。

  • オープンソースのため、構造を理解しやすく攻撃されやすい

  • wordpress公式の個別サポートがない

  • 本体、プラグインのアップデートが頻繁にあるため、公開後の運用頻度が高い

Wordpressを採用してのサイト作成を行う場合は、上記のメリット・デメリットを知った上で他のCMSやサーバー会社の選択を検討することをお勧めします。
それでは次から本題の脆弱性対策に関してみていきましょう。

サイト公開前の脆弱性対策

前提

Wordpress、プラグイン共に最新のバージョンのものを使用するようにしましょう。
前述した通り、Wordpressはオープンソースコードであるため攻撃手法が出回りやすいです。ですが、Wordpressも日々そうしたセキュリティ攻撃への対策を講じてアップデートを行っています。
古いバージョンのWordpressほど、セキュリティホールが多いので、サイト構築時点で最新のバージョンを使用するようにしましょう。
プラグインも同様に、脆弱性のあるプラグインだと攻撃対象になりやすいです。Wordpressのバージョンがプラグインの稼動対象かをチェックして数多くあるプラグインから取捨選択をしましょう。

Wordpressのサイトを構築する際にはサーバー選びも重要です。シェア率の高いWordpressは多くのサーバーで専用のサービスが提供されています。
例えば、サーバーのWeb管理画面から簡単にWordpressのインストールができたり、海外IPからのアクセスをはじけたり、DBの自動バックアップ機能があったり…。
サーバーがWordpressを使うにあたってどのようなセキュリティ対策を行っているかも事前に調べることをお勧めいたします。

パスワード

パスワードは長く、複雑なものを採用し、他のサービスと同一のものを使用しない
以下のようにあらゆる数字と英字、記号の組み合わせでパスワード解析を試みる、いわゆる「総当たり攻撃(ブルートフォースアタック)」をAIが行った場合にかかる時間を算出した結果があります。
皆さん予想されていたかと思いますが、当然、文字が長いほど、使う文字の種類が多い方が解析には時間がかかります。また、1つのパスワードが漏洩することで、同じパスワードを使用しているサービス、システム全てが危険に晒される可能性があります。

あらゆる文字種を含む10文字のパスワードが解読に5年かかるのに対し、数字のみで構成された18文字のパスワードは10カ月で解読できるという。あらゆる文字種を含む18文字のパスワードであれば、突き止めるのに要する時間は600京年だ。

出典:よくあるパスワード、約半数がAIツールで1分以内に解読可能

複雑なパスワードの作成や管理に関しては以下、IPA(独立行政法人情報処理推進機構)が参考になるかと思います。
パスワードは一意の、長く複雑なものを採用しましょう。可能であれば、定期的に変更を促すプラグインの導入などを検討してみてください。

ログインURLの変更

/wp-admin、/wp-login.php。Wordpressに触れた事がある方なら一度は目にしたアドレスかと思います。Wordpressで構築されたサイトはWebブラウザ上でアクセスする管理画面から、投稿した記事やサイトの内容を編集可能になっています。その管理画面へのログインページはデフォルトで上記が指定されています。
ログインURLがわかっていれば、前述した「総当たり攻撃(ブルートフォースアタック)」によって管理画面に不正にログインされ、サイトの内容が書き換えられる恐れがあります。その危険をなくすためにログインURLの変更を行いましょう。

変更に関してphpを書き換える方法と、プラグインを導入する方法とがあります。前者はハードルが高く、間違えればサイト全体に影響が出る恐れがあります。ここでは具体的な方法の記述は避け、後者の機能を提供しているプラグイン2選をご紹介します。
どちらも代表的かつ、インストール数の多いものとなっています。

XMLRPC防御

パスワード、ログインURLとここまでは一度必ず目にしたものかと思います。次のXMLRPCはおそらくWordpressを構築しただけでは目にすることはないのではないでしょうか?
簡単に説明するとXMLRPCとは「WordPressと他のシステム間の通信を可能にする仕様」のことです。ピンバック、トラックバックなどにも使用されています。
WordpressにはこのXMLRPC機能を制御するxmlrpc.phpがあります。このxmlrpc.phpはリクエストごとにユーザー名とパスワードの認証情報を送信するため、「総当たり攻撃(ブルートフォースアタック)」が行われる可能性があるのです。
こちらもプラグインで対策可能ですが、詳しい事は後述します。XMLRPCについてや、その対策に関しては以下の記事が参考になります

ユーザー名の秘匿

Wordpressの管理者は決して1人でなければならない、というわけではありません。
Wordpressでは管理画面にログインできる複数のユーザーアカウントを作成でき、それぞれに権限を付与することで管理画面上で行える操作に制限をかける事が可能です。

ユーザーが増えれば、その分ログインを行うためのIDとパスワードが増えることになります。ここで問題となるのが、Wordpressは投稿者アーカイブのページを自動的に作成されてしまうということです。これの何が問題かと言うと、Wordpressが作成する投稿者アーカイブのURLにはログインユーザー名が表示されてしまうという点です。
ログインユーザー名がわかれば、パスワードを総当たりすることで侵入がたやすくなってしまいます。
そのため、管理者が1人だけの時は投稿者アーカイブを作成しないようにすることをお勧めします。

管理者が複数で投稿者アーカイブ自体は作成したい場合にはアーカイブページのURLを書き換えるプラグインの導入などを行うと良いでしょう。

セキュリティ対策オススメプラグイン

公開前の脆弱性対策だけで、ここまでやる事が多いと気が滅入りますね。必要な対策を行うにしても、それぞれを個別のプラグインで行うと今度はそれぞれのプラグインのバージョン管理が必要になります。
上述した「ログインURLの変更」、「XMLRPC防御」、「ユーザー名の秘匿」は「ログインURLの変更」でも紹介したこちらのプラグイン1つで全て行えます。
日本企業が開発しているので、ローカライズを行わなくても最初から日本語での操作が可能なのでセキュリティ対策を始めたい方が最初に触れるのにも適したプラグインと言えます。

上記以外にも、ログイン時の画像を使った認証の追加、ログイン失敗に応じてログインをロックする機能、ログイン通知など様々なセキュリティに特化した機能が用意されています。

サイト公開後の脆弱性対策

さて、公開前の脆弱性対策を行って無事サイトが公開されました。あとは安心して多くの方にサイトを閲覧してもらうだけ…。

残念ながら、セキュリティ対策はこれだけでは終わりません。むしろ、ここからが本番と言えます。
「Wordpressを利用するメリット・デメリット」にはデメリットとしてあげましたが、Wordpressとそのプラグインはアップデートが頻繁にあります。これは運用、管理する上でのデメリットにすぎず、むしろWordpressは積極的に脆弱性をなくしたりより拡張性の高い機能を提供するための開発を続けていると言えます。
Wordpressのアップデートを行うと言う事は過去の脆弱性を克服してより強固なセキュリティを築くことになります。Wordpressだけでなくプラグインも同様です。

とは言え、Wordpressのアップデートは頻繁にあるものではありません。逆にプラグインの方は更新の頻度が高いものですと1ヶ月の間に2回アップデートがあるということも…。
体感ですが、1ヶ月に1回、Wordpressやプラグインのアップデートがあるかを確認して適時アップデートを行うと言う運用を行うのが一番バランスが良いかと思います。併せてログイン履歴などを確認して、不正なログインがないかをチェックするとより強固なセキュリティとなるでしょう。

脆弱性対策を行うべきだというセキュリティに対する意識の改革は良いですが、一時的な対策はその時の対策にしかなりません。素晴らしいマイホームを建てたとしても定期的なメンテナンスが必要になりますよね?
Wordpressに関わらずサイトを長く、安全に維持するには長期的、かつ継続的な運用・保守が最重要と言えます。

オマケ

なお、便利なプラグインですがセキュリティの関連はアクセス制限などに関わるもののため、.htaccessファイルを書き換えるものが多いです。
ここで一つ気をつけないといけないのが、Wordpressが稼動するサーバーとしてnginxを選択すると.htaccessファイルがないため一部のプラグインが稼働しない事があります…。

今回ご紹介したSiteGuard WP Pluginは残念ながらnginxのサーバーではログインURLの変更が動かず、ログインURLの変更は別途他のプラグインを導入が必要になった事がありました。
そうなると管理するプラグインが増えたりプラグイン同士の競合が発生しないかを気を付ける必要が出てきてしまいます。サーバーをレンタルされる場合には、そうしたサーバーの違いにもお気をつけください!


この記事が気に入ったらサポートをしてみませんか?