今回は、Wordpressの致命的な欠陥、そして、その対策方法について解説をしていきたいと思います。
WordPressは皆さんご存知のとおり、世界で一番シェアの高いCMSで、
全世界のウェブサイトの39%、CMSという括りでは64%という圧倒的なシェアがあり、日本国内のシェアは80%以上と、かなりの数のwebサイトがWordpressで作られています。
利便性も良いですし、プラグインも無限にあり、拡張性に非常に優れたCMSなので、僕も仕事でCMSの実装をするときはほとんどWordpressを使用しています。
ただ、一つ大きな欠陥があります。それはセキュリティですね。
そんなのとっくに知ってるよと思った方。多くいらっしゃると思います。
ただ、実際に対策をしていますか?見て見ぬ振りをしていませんか?知っているだけでは、ダメなんです。
会社やお店のサイトを制作するときに、セキュリティ対策を怠ると、
あとで、攻撃を受けたり、ウイルスなどが侵入して、サーバ内に広がったり、サイトが改ざんされたり等の被害が出てきてしまって、クレーム・作り直し・再設定・最悪の場合は、訴訟問題にもなりかねませんので、問題が発生する前に、しっかりと対策をしておきましょう!
今回紹介させていただく基本的な14の対策を実施することで、WordPressに対する攻撃のリスクを大幅に下げることが可能になります。
絶対に、Wordpressをインストールした初期状態のまま使わないということがまずは非常に大切です。
それとあわせて必要なのは、WordPress自体のセキュリティレベルを上げても、サーバーのログイン情報、ユーザーの管理などがしっかりとできておらず、チャットやメールなどで外部に情報が漏れるようなことがあっては、意味がありませんので、サイトを安全に運用するためにも、WordPressのセキュリティ対策はもちろんのこと、それも含めた運用ルールの徹底と、定期的な実施状況の確認が不可欠です。
それでは、どのようなセキュリティ対策を実施すれば良いのかというのを、14のステップに分けて、説明したあとに、簡単にできるセキュリティチェックツールをいくつか紹介させていただきたいと思います。
はい、それでは、基本的なことから順番に説明をしていきたいと思います。
コンテンツ目次
- 1 1★Wordpressのインストールディレクトリ の変更
- 2 2★ユーザー名・パスワードを簡単なものにしない
- 3 3★常に最新版にアップデートしておく。
- 4 4★Siteguardプラグインで、URLを変更
- 5 5★不要なテーマの削除
- 6 6★不要プラグインの削除・アップデートが止まっているプラグインは使用しない。
- 7 7★管理画面のアクセスを国内のみにしておく。
- 8 8★ユーザーの管理をまめに行う
- 9 9★WordPressで構築されていることを隠す処理
- 10 10★接続元のIPアドレスで制限
- 11 11★ログイン画面にBasic認証を設定する、もしくは2段階認証を入れる
- 12 12★パーミションの変更
- 13 13★ XML-RPCを無効にする
- 14 14★ REST APIを無効にする
- 15 ★チェックツール
- 16 まとめ
1★Wordpressのインストールディレクトリ の変更
まず一つ目は、WPをインストールするディレクトリの変更です。
よくあるケースとして、Wordpressをインストールする際に、
ルートディレクトリにインストールをしてしまうと、サーバの中が煩雑になる以外にも、
ログイン画面が、
〇〇〇〇.co.jp/wp-login.php
のようになってしまったり、
サブディレクトリにインストールをしても、
〇〇〇〇.co.jp/wordpress/wp-login.php
〇〇〇〇.co.jp/wp/wp-login.php
のようになり、誰でも推測ができるURLになってしまい、簡単に管理画面にアクセスが可能な状態になってしまいますので、まず最初にWordpressをインストールする際は、
・サブディレクトリ名はwpやwordpressなどの簡単な名前にはしない
このようなインストールを行いましょう。
2★ユーザー名・パスワードを簡単なものにしない
時々、クライアントの改修前のサイトの情報をいただいたときに、
ユーザー名が、初期状態の「admin」になっていたり、パスワードが簡単なものになっていたりすることがあります。
パスワード総当たり攻撃の多くは、
ユーザー名がadminのものに対して仕掛けられていますので、後はパスワードだけ破れば良いので非常に危険です。
インストール時に、
ID・PASSWORDを設定する時は、必ず、
・ID・パスワードは複雑なものに。
しておきましょう。
3★常に最新版にアップデートしておく。
WordPressの公式サイトで、
「積極的に保守されている5.6系統の最新版以外の以下のバージョンは、安全に使用することはできません。」
https://ja.wordpress.org/download/releases/
と公式サイトでこのような発表がされていますが、
現実問題は、かなり多くのサイトが、最新版にアップデートをせずに運用されていますので、かなりの数のWebサイトがセキュリティリスクを抱えたまま運用しているという状態になっています。
なので、こまめに、Wordpressのアップデート情報を確認して、常に、最新版を使用されることをおすすめします。
4★Siteguardプラグインで、URLを変更
インストール後の基本対策として、プラグインで対策をする方法があります。
- SiteGuard WP Plugin
- All In One WP Security & Firewall
- Wordfence Security
など色々とプラグインがあります。
例えば、
SiteGuard WP Pluginを使用して、ログインURLの「wp-login.php」を、別のURLに変更ができますので、ログインURLを変更することをお勧めします。
画像認証機能を使用したログイン形式にしたり、ログインの失敗回数を制限して、「5秒間に3回連続でログインに失敗すると1分ロックされる」などの設定が可能になりますので、こちらの設定をすることをお勧めします。
5★不要なテーマの削除
次に、不要なプラグイン・テーマの削除です。
Webサイト制作時に、テーマ開発をするかと思いますが、その時に、デフォルトテーマのtwentyシリーズや、リニューアル前や昔のテーマファイルなどが残っていることがあると思いますので、不要なファイルは削除しておきましょう。
使用中のテーマに不具合が起きた時の場合などを考慮して、現在使っているテーマとワードプレスのデフォルトテーマを1つだけ残せばOKです。
6★不要プラグインの削除・アップデートが止まっているプラグインは使用しない。
プラグインも使わなくなった物や、不要な物が存在している場合は、削除しておくことをお勧めします。
不要なプラグインを削除したり、アップデートが止まってしまっているプラグインをしないようにすることで、プラグインのセキュリティホールから、改ざんされるリスクなどを減らすことができます。
7★管理画面のアクセスを国内のみにしておく。
海外で編集する人がおらず、国内でしか管理者がいない場合は、海外からの管理画面へのアクセスを拒否するように設定することをお勧めします。
レンタルサーバ会社の方で、デフォルト設定でそのようになっているサーバもありますが、念のためチェックしておきましょう。
8★ユーザーの管理をまめに行う
それから、運用時の対策ですが、ユーザーの管理をまめに行うことでも、セキュリティのリスクを減らせます。
・定期的なパスワード変更など
をすることでもセキュリティリスクを減らすことができます。
もう少し頑張りたいという方は、これから紹介する対策を実施すると
より本格的にセキュリティを高めることができます。
9★WordPressで構築されていることを隠す処理
WordPressサイトへの攻撃は、WordPressの特性やセキュリティホールを狙って攻撃してくることが多くなってきます。
WordPressが自動で出力するタグを隠し、ソースを見てもサイトがWordPressで構築されていることがわからないようにすすることで、
攻撃のリスクを下げるという方法があります。
例えば、WordPressのテーマディレクトリのfunctions.phpに、このように、不要なタグの出力を停止するような設定を記述することで、対応が可能になります。
remove_action('wp_head', 'wp_generator');// WordPressのバージョン remove_action('wp_head', 'wp_shortlink_wp_head');// 短縮URLのlink remove_action('wp_head', 'wlwmanifest_link');// ブログエディターのマニフェストファイル remove_action('wp_head', 'rsd_link');// 外部から編集するためのAPI remove_action('wp_head', 'feed_links_extra', 3);// フィードへのリンク remove_action('wp_head', 'print_emoji_detection_script', 7);// 絵文字に関するJavaScript remove_action('wp_head', 'rel_canonical');// カノニカル remove_action('wp_print_styles', 'print_emoji_styles');// 絵文字に関するCSS remove_action('admin_print_scripts', 'print_emoji_detection_script');// 絵文字に関するJavaScript remove_action('admin_print_styles', 'print_emoji_styles');// 絵文字に関するCSS
10★接続元のIPアドレスで制限
ある程度の会社の規模になると、Worpressに限らず、様々なシステムの管理画面へのログインをIPアドレスで制限することも多くなってくると思いますが、Wordpressの場合も同様、必要性を感じる場合は、特定のIPアドレスからしかログインができないような状態にしておくことも非常に大切になりますので、接続元のIPアドレスで制限することで、万が一、ユーザー名とパスワードが漏洩してしまっても、IPアドレスで制限をしておくと、ログインができなくなりますので、よりセキュリティを高めることが可能になります。
11★ログイン画面にBasic認証を設定する、もしくは2段階認証を入れる
管理画面のログイン画面に、Basic認証を設定して、二重にID・PASSWORDを設定して、セキュリティを強めるという方法もありますし
2段階認証プラグインなどを使用することで、
例えば、
・ワンタイムパスワードを生成する
・ QRコードのスキャン
・Google認証アプリの使用
などで、セキュリティを高めることも可能です。
ここまでくると結構厳重に管理できるようになってきますね。
12★パーミションの変更
WordPressには、wp-config.phpという、データベースに接続するための情報やWordpressの動画に影響を大きく与える情報が記載されたファイルになりますので、パーミションを400に設定することで、
[自分に read (4) を許可、グループと他の他人は権限なし (0)]
グループや他人からの権限を許可しないような設定にしておくと、セキュリティを高めることができますので、これも設定をしておくべきポイントになります。
それから、.htaccessのパーミッションについては「604」に設定しておきます。(または606)(読み込み可能、ファイルの所有者のみ変更可能)
13★ XML-RPCを無効にする
XML-RPC(Extensible Markup Language – Remote Procedure Call)とは、
WordPressを外部から操作するための仕組みです。データをXML形式でやり取りするものになるのですが、
こちらも攻撃の的にされることがありますので、XML-RPCを使用しない場合は、アクセス制限をかけておきましょう。
.htaccessファイル内に以下の記述
Order Deny,Allow Deny from all
14★ REST APIを無効にする
REST APIもWordPressを外部から操作するための機能です。XML-RPCと同様にこの機能に対しても攻撃されることがあります。
この機能はWordPress本体にある、「wp-json」フォルダ以下に対するアクセスを制御することで無効にすることができます。
設定するためには、.htaccessファイルに記述しているWordPressのリライトルールを以下のように書き換えます。
# BEGIN WordPress RewriteEngine On RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_URI} !^/wp-json/ RewriteRule . /index.php [L] # END WordPress RewriteEngine On RewriteCond %{QUERY_STRING} rest_route= RewriteRule ^$ /? [R=404,L] Order Allow,Deny Deny from all
XML-RPCやREST APIに対するアクセス制限は、使用しているレンタルサーバによっては、レンタルサーバのコントロールパネルから設定できる場合もあります。その場合は.htaccessファイルを書き換える方法ではなく、レンタルサーバが指定する方法で設定することをお勧めします。
注意点としては、使用しているプラグインによっては、XML-RPCやREST APIを無効化すると動作しなくなるものもありますので、支障がある場合はXML-RPCやREST APIの無効化を行う必要はありません。
★チェックツール
最後に、簡単にWordpressのセキュリティをチェックするためのツールがありますので、紹介をさせていただきます。
例えば、このようなチェックツールがあります。
まとめ
はい、いかがだったでしょうか?
今回紹介した基本的なセキュリティ対策を行えば、Wordpressのセキュリティリスクをしっかりと軽減した状態で安全に運用できるようになると思いますので、皆さんもぜひ対策の方進めてください。