設定の見直しとプラグインで簡単に強化できる WordPressセキュリティ施策 UZUREA編集部 公開:2017年9月24日(7年前) / 更新:2022年4月8日 コメント 0件 Web技術webWordPressセキュリティ SNS X Facebook B! はてブ Pocket 当記事の内容および記事中のリンクには、広告目的や当サイトが収益を得るためのものが含まれており、これらの収益によってuzurea.netは運営されています。 ブログサイトはもちろん、コーポレートサイトやサービスサイトのCMSとして利用するにも便利なWordPressですが、その利用サイトの増大に伴い、不正アクセスや悪用を試みる攻撃も増えてきています。 そこで今回は、既に運用中のWordPrssサイトで実行できるセキュリティの強化施策として、基本機能の中で対応できる対策と、無料プラグインなどでの対策方法に絞って紹介していきます。 記事の索引1 基本な対策1.1 ユーザー名に『admin』を使用しているアカウントを変更する1.2 パスワードを強化する1.3 .htaccessやwp-config.phpへのアクセスを制限する1.4 運用者の権限を必要最低限に変更する1.5 管理画面からのテーマやプラグインの編集を無効に1.6 不要なテーマをサーバー上から削除する1.7 不要なプラグインをサーバー上から削除する1.8 プログラム本体やプラグイン、テーマは常に最新版にする2 プラグインを利用したセキュリティ向上施策2.1 ログイン時の2段階認証を導入する2.2 スパムや悪意のあるログインを防ぐ総合プラグインを導入する3 まとめ 基本な対策 まずは、プラグインは不要、WordPressの基本的な設定やちょっとした作業で非常に効果があるセキュリティ向上施策をご紹介します。 ユーザー名に『admin』を使用しているアカウントを変更する 管理者権限をもつ、ユーザー名(ログインID)を『admin』を使ったアカウントを利用している場合、IDとパスワードの総当たり攻撃(ブルートフォースアタック)に対して脆弱になります。 WordPressではユーザーIDは変更できませんが、その場合は新しく管理権限のある別のIDを作成し、新しいIDでログイン後に、古い『admin』名のアカウントを削除するだけです。 この手順の中で、古いアカウントで作成した記事や固定ページなどを別のアカウントの所有者として引き継がせる事ができますので、殆ど手間はかかりません。 パスワードを強化する こちらも簡単。WordPressサイトに限らずパスワードを強化する事は、単純ながら十分な効果が有ります。 Passwordとかアカウントと同じ語句を使っていたりといったものは、総当たり攻撃に対して脆弱です。パスワードは管理画面のユーザー設定から変更可能なので、最低でも英数大文字小文字が混在したものに変更しましょう。 最新のWordPressではパスワードの自動生成やセキュリティ強度もチェックできるので「強力」なパスワードにすれば万全です。 .htaccessやwp-config.phpへのアクセスを制限する WordPrssに限りませんが、.htaccessファイルや設定ファイルへのアクセスを制限する事は重要です。 下記のような記述をサイトルートの.htaccessに追記する事で対応が可能です。 <files wp-config.php> order allow,deny deny from all </files> <Files .htaccess> order allow,deny deny from all </Files> ただし、利用サーバーの設定や機能によっては記述は異なります。また、正しく設定しないと、サーバーエラーなどでサイト全体にアクセスできなくなる事がありますので、必ず公開中の.htaccessファイルをバックアップの上、設定を行いましょう。 運用者の権限を必要最低限に変更する 複数人、多人数でWordPressで構築されたサイトを運用する場合、それぞれ別のアカウントを用意し、権限を最小限に絞って運用しましょう。 記事を投稿するだけのユーザーに、設定やプラグイン、テーマなどの編集機能は不要な場合が多いのでそういったユーザーに『管理者』権限は不要です。デフォルトの権限グループの設定として『投稿者』や『編集者』といったものを設定出来るユーザーレベルを利用しましょう。 独断でプラグインをインストールされてしまったり、不慮の操作で致命的な辞退になってしまったりと、管理者が不要なメンテナンスや労力を強いられるのを防ぐのにも有効です。 参考 ユーザーの種類と権限 – WordPress Codex 日本語版 権限についてより細かい設定が必要な場合、function.php の編集や、プラグインなどを利用する事で可能です。 Function Reference/add cap -WordPress Codex(英語)WordPressプラグイン User Role Editor 管理画面からのテーマやプラグインの編集を無効に WordPressは管理画面からテーマやプラグインのコードを編集する事が可能です。(一見便利な様ですが、この機能を実際に利用している人ってどれ位いるのでしょうか?) 万が一、悪意あるアクセスにより管理画面へされてしまった場合、この機能は攻撃者にとっては非常に有用な機能です。 この機能を無効にするのも非常に簡単です。 define('DISALLOW_FILE_EDIT', true); と記述をするだけでOK。 管理画面からのプラグイン&テーマの編集を無効に 編集が必要な時は、ローカル環境でカスタマイズし、FTPなどでアップロードするというオペレーションを行っている方なら、ほぼ影響は無いでしょう。 不慮の操作で……というリスクも軽減するので是非適用しましょう。 不要なテーマをサーバー上から削除する ご存じのようにWordPressでは管理画面からテーマを切り替える事が可能です。 また、インストール時にはTwenty Seventeen、Twenty Sixteenなど毎年新しいデフォルトテーマが自動的にインストールされていますし、管理画面から新しテーマを検索し簡単に導入する事もできるので、つい使用していないテーマがインストールされたまま、という方も多いかもしれません。 ですが、テーマによってはそもそもセキュリティ上のリスクが有る物や、新たにセキュリティーホール発見により致命的な脆弱性を孕んでいるものなどもあります。これはWordPressのデフォルトテーマであっても同様です。 特に企業にCMSとして導入されるWordPressであれば、メインテーマ意外はほぼ不要となる事が多いはずですので、不要なテーマはサーバー上から削除してしまいましょう。 削除は管理画面からも行えますが、保存しておきたい場合はFTPでアクセスし /wpインストールディレクトリ/wp-content/themes/ にアクセスし、ローカル環境に保存の上、削除しておけば万全です。 不要なプラグインをサーバー上から削除する こちらも同様に、一時的に利用したプラグインや、動作テストやレビューの為にインストールしたプラグインもサーバー上から削除しておきましょう。 管理画面から『無効』にするだけでは不正に実行される可能性がありますので、削除してしまう方がより安全です。 必要な時に『必要なプログラムだけをサーバー上にインストールし、不要プログラムは削除する』というのはwebサイトの運営上の基本的かつ重要な方針です。 プログラム本体やプラグイン、テーマは常に最新版にする 基本中の基本ですが、プラグインやテーマ、そしてWordPress本体については常に最新のバージョンを利用する事を心がけましょう。 WordPressは管理画面へバージョンアップ通知表示される優秀なシステムですので、これを無視せず、小まめにアップデートしましょう。前述した不要なテーマやプラグインを削除する事でアップデートの手間も軽減されますし、カスタマイズを行っていないテーマやプラグインやであれば、影響が出る事は少ないでしょう。 反面、WordPressの本体のアップデートがなどについては念のためDBのバックアップをとる事が推奨されていますし、テーマやプラグイン、独自のカスタマイズ内容によってはアップデート後の修正が必要な場合もあります。高度なカスタマイズを行ったサイトであれば、構築した制作者、制作会社に相談し、定期的な保守管理を行うべきです。 プラグインを利用したセキュリティ向上施策 WordPressではセキュリティを向上させる為のプラグインも多く公開されていますので、それらの一部をご紹介いたします。 ログイン時の2段階認証を導入する ログイン時に、スマートフォンなどの他の端末にコードを送信し、それを入力させる……といった2段階認証は、総当たり攻撃に対しては非常に有効な対策です。 WordPressプラグインとしていくつか公開されていますので、多数のユーザーがアクセスする環境で、且つ強固な認証環境を構築したい場合は、導入を検討しましょう。 WordPressプラグイン Google AuthenticatorWordPressプラグイン Rublon Two-Factor Authentication 運用者・管理者にとってログイン時の手間は増えますが、中~大規模な企業サイトやサービスサイトであれば、必要となってくる機能でしょう。 スパムや悪意のあるログインを防ぐ総合プラグインを導入する 総当たり攻撃に対する為、連続ログインの制限や画像認証などを実装するプラグインもあります。 Jetpack アクセス統計などが行える統合プラグイン 『Jetpack』では、無料プランでも悪意のある攻撃をブロックする機能が利用可能です。 Jetpack セキュリティ画面 Jetpack by WordPress.com — WordPress プラグイン SiteGuard WP Plugin また、『SiteGuard WP Plugin』は、ログイン画面に画像認証を付与したり、ログイン時に毎回管理アカウントに通知メールが届くような設定が可能です。 SiteGuard WP Plugin 設定可能機能一覧 特にSiteGuard WP Pluginの画像認証は日本語認証なども設定可能なので、日本語圏外からの攻撃に対しても有用そうです。 SiteGuard WP Pluginによる日本語、ひらがなでの画像認証 SiteGuard WP Plugin — WordPress プラグイン まとめ 以上、いくつかのセキュリティ向上施策を掲載いたしました。 WordPressは非常に便利で高性能なCMSですので適切に保守管理・運用する事でwebサイトの運営や構築の手間や労力を大幅に軽減させる事ができます。 常に最新版を利用する事を前提条件とした上で、上記のような基本的な施策や、プラグイン導入なども検討する事で大幅にリスクを軽減させる事が可能ですので、必要以上にWordPressに拒絶反応を示したり(とはいえ慢心せず)、利用してほしいと思います。 尚、セキュリティ向上という意味では、FTPアカウントのパスワードやサーバーの基本設定などについても重要な事項ですが、本記事ではWordPress関連に絞る事を重視し、割愛いたしました。 ちなみに、uzurea.net編集部の運営会社、株式会社オルトスタックはWordPress利用としたwebサイトの構築、運用を得意としています。 WordPress関連の構築、運用、カスタマイズのご相談も随時承っております。:)