先日会社のコーポレートサイトが WordPress を利用してリニューアルされました。
初期の構築作業と運用チームの教育を私が行うことになったため、その際に行ったセキュリティ対策を紹介します。
概要
CMS はテーマやプラグインを利用して容易におしゃれなウェブサイトを作成できるため、最近コーポレートサイトでも個人サイトでも CMS を利用して構築される場合が多く、その中でも圧倒的なシェアを誇るのが WordPress です。シェアが高いこともあり必然的にテーマやプラグイン、技術情報なども多く、それが選ばれる1つの要因かと思います。
ただ、シェアが高い分、攻撃の対象として狙われることも多く、WordPress の脆弱性を突いたり、セキュリティ対策が甘いサイトをマルウェア感染拡大の踏み台にされたり、情報が抜き取られたりします。
そういった被害にあわないために、私が行っている最低限行うべきセキュリティ対策をこの記事で紹介します。
詳細
使用しないプラグインを削除する
カスタマイズしていく際に簡単に機能を追加したりできるため、プラグインは便利な機能の一つです。様々なプラグインを試すためにインストールしたり、不要なものはいったん無効化したりすることも多くなると思います。
ただ、プラグインやそのバージョンによっては脆弱性を持っている場合があります。無効化していても何らかの脆弱性を利用した攻撃を受ける可能性がありますので、万が一のことを考えて無効化するだけではなく、削除して安全性を高めるようにします。
プラグインを個別に削除する方法
管理ページのメニュー内にある「プラグイン」をクリックします。
プラグインの管理ページが表示されますので、不要なプラグインの「削除」をクリックし、表示された確認画面で「OK」をクリックします。
削除された旨がメッセージで表示されます。
プラグインを一括で削除する方法
管理ページのメニュー内にある「プラグイン」をクリックします。
プラグインの管理ページが表示されますので、不要なプラグインのチェックボックスをクリックしてチェックを入れます。
「一括操作」と表示されているドロップダウンをクリックし、「削除」をクリックします。
その後、適用をクリックします。
表示された確認画面で「OK」をクリックします。
削除された旨がメッセージで表示されます。
不要なテーマを削除する
こちらについてもプラグインと同じ理由になりますが、脆弱性を含む可能性がありますので、不要なテーマは削除します。ただ、WordPress のデフォルトテーマである「Twenty Twenty-Two」については残すことを WordPress が推奨していますので、削除せずに残します。
管理ページのメニュー内にある「外観」をクリックします。
テーマの管理ページが表示されますので、削除したいテーマにマウスカーソルを合わせ、表示される「テーマの詳細」をクリックします。
テーマの詳細画面が表示されますので、「削除」をクリックします。
表示された確認画面で「OK」をクリックします。
管理ページへの不正ログインを防止する
WordPress はシェアが高く情報が多い分、脆弱性や設定の甘さを狙った攻撃の対象になることが多いです。ちなみに、有名ではない私のブログに対してでも見覚えのないIPアドレスからログインを試みられた履歴がありました。このプラグインを入れると、こういった不正アクセスを防ぐだけではなく、ログも確認出来るようになるため、「見える化」することで今後の対策方法も考えやすくなります。
無償で利用できる SiteGuard WP Plugin を利用して、管理画面のログインURLを初期設定から変更したり、ユーザー名の特定を防止したりして、外部から不正ログインを防ぎましょう。
インストール方法や設定方法は以下の記事で紹介しています。
ユーザー名の漏えいを防止する
WordPress ではWordPress REST API や author 情報などの機能を利用すると、これらのアカウント名を簡単に特定出来るようになっています。
例えば、ユーザー名を知らなくても、以下のURLでアクセスすることで、著者ページにリダイレクトされます。
サイトのURL/?author=1
このリダイレクトされる著者ページは ユーザー毎に/author/ユーザー名
というURLで存在するのですが、この「ユーザー名」の部分にニックネームなどではなく、ログイン時に使用するユーザー名がそのまま表示されてしまいます。
適切にユーザー名とパスワードを管理していれば問題はありませんが、ユーザー名が漏れた際にブルートフォースアタックなどの攻撃対象となる可能性もありますので、不要であれば無効化してユーザー名の漏えいを防ぎます。
これについても「管理ページへの不正ログインを防止する」で利用するプラグインで対策できますので、このプラグインで設定することをおすすめします。
設定方法などの詳細については以下の記事で紹介しています。
また、プラグインではなく function.php をカスタマイズすることで対策する方法もあります。
その方法については以下の記事で紹介していますのでご確認ください。
おわりに
はじめに行うべきセキュリティ対策を紹介しました。
インターネットに接続されているものは様々ありますが、一部の対策を行ったからといって完全に防ぐことはできません。また、日々技術も進歩していますので、今まではこの方法で防げていたとしても、今後は防げなくなることも十分にありえます。
ここでは紹介していませんが、今後運用する際にWordPress やプラグインを最新にするなど、セキュリティ対策について意識してもらえたと思います。