WordPressのセキュリティー対策

更新:

WordPressのセキュリティー対策として気をつけるのは次の3つです。

  • WordPressブログにログインするパソコン等の脆弱性をなくす
  • WordPressの脆弱性をなくす
  • WordPressへの不正ログインを防ぐ

WordPressブログを更新するパソコンやスマートフォンの脆弱性をなくす

WordPressのセキュリティー対策ができていても、ブログ更新に使うパソコンやスマホに脆弱性(ぜいじゃくせい) (セキュリティ上の欠陥)があれば、そこからログインパスワードが漏れたり、WordPressへ不正な操作がされる危険があります。

使用しているOS、インストールしているアプリケーションなどのバージョンをできるだけ新しくしておきましょう。最新バージョンが安心ですが、ハードウエアの制約もあるので可能な限りで。しかし、あまりにも古すぎるOSや開発が中止されているアプリケーションは使用を避けるのが無難です。

コンピュータウイルスやマルウェアに感染しない

感染すると深刻な問題が起こる可能性が高い。

Emotetは多くのマルウェアと同様に、被害者にメールに添付されたファイルやリンクを開かせることで感染し、(中略)現在ログオンしている被害者のシステムに保存されているすべてのネットワークパスワードを窃取

進化し続けるマルウェア「Emotet(エモテット)」が米国等で感染拡大中 - 富士通

参考:マルウエア Emotet の感染に関する注意喚起(2019-11-27)

公衆Wi-FiでWordPressにログインしない

また、WordPressにログインするときに、安全性の低いWi-Fi(無線LAN)で接続すると、ログインURLとログインパスワードを他者に知られる可能性があります。

駅や施設などで誰でも使うことができる公衆Wi-Fiなどに接続しているときは、WordPressにログインしないようにするか、ログインするなら信頼性の高いVPNサービスを使うべきです。

WordPressの脆弱性をなくす

WordPress、テーマ、プラグインは常に最新版に。過去に不具合が報告されたバージョンも存在します。

プラグインの脆弱性はまだ発見されていないだけかもしれず、プラグイン数が増えると脆弱性がある危険も増すことを考慮しておきましょう。必要なもの以外はインストールしないように。インストールしたものの使わないものはアンインストールして、必要になったときに再インストールすれば大丈夫です。

WordPressへの不正ログインを防ぐ

WordPressの不正ログインを許してしまいサイトを乗っ取られると、内容を書き換えられる、内容の完全消去、アクセスした人のパソコンやスマホにコンピュータウイルスなどを感染させる、そのほか未知の危険もあります。

ログインパスワードを類推不可能なものにする

WordPressへのログインは、「ユーザー名またはメールアドレス」と「パスワード」が必要になりますが、ユーザー名は簡単に調べられるので、パスワードを安易なものにしていると、サイトが乗っ取られる危険が増します。

ユーザー名は、
http://example.com/?author=1
で判明します(example.comは仮のドメイン)。

類推不可能とは一般的にはランダムな文字列で「WAGvo@3T0yiA8fNMUK」などですが、これだと暗記できないので、例えば「kyounobangohandousuru(今日の晩ご飯どうする)」のように日本語の文章を英文字で書いたものにしておけば、日本語話者以外には意味不明な文字列ですし、さらに独自の文体にしておけば安全性の高いパスワードになるでしょう。

ログインするIPアドレスを限定する

WordPressにログインする場所が決まっているときは、その場所のIPアドレスからのみログインできるようにできます。

ログインページ(wp-login.php)に対して特定IP以外からのアクセス制限をするには、次の記述を .htaccessファイルに追加します。

<Files wp-login.php>
order deny,allow
deny from all
allow from xx.xx.xx.xx(アクセスを許可するIPアドレス)
</Files>

IPアドレスは、「確認くん」などのサイトや「バリュードメインのお問い合わせフォーム(ログイン不要)」でも確認することができます。

数日間、IPアドレスを確認してみてIPアドレスの数値が同じなら固定IPと考えていいでしょう。ただし、ルーターの再起動などでIPアドレスが変更される可能性があるので注意してください。

ログイン画面にBasic認証を掛ける

ログイン画面を表示するのにパスワードを必要にすることで、安全性を高めることができます。

参考:Basic認証を設定する方法 - WordPressのログイン画面にパスワードをかける

SiteGuard WP Pluginを使用する

日本語対応のセキュリティープラグイン。IPアドレスによるログイン制限をおこなえない場合にお薦めです。

参考:SiteGuard WP Plugin 開発元による解説ページ

WordPress のダッシュボード > プラグイン > 新規追加 からインストールすることができます。

SiteGuard WP Plugin

SiteGuard WP Plugin

そのほかのセキュリティー対策

WordPressファイルのパーミッションを変更する

重要ファイルに与えられているパーミッション(ファイルに対するアクセス権)を変更して、さらに安全性を高めることができます。

ファイル名 設定するパーミッション
.htaccess 604
wp-config.php 400

コアサーバーでの設定方法

コントロールパネルのサイト設定から、セキュリティ対策をおこなうドメインを選び、ファイルマネージャーを起動します。

最初のページ(ルートディレクトリ)にある .htaccess ファイルを選択して、「属性変更」ボタンをクリック。

✓を外し「604」に属性変更して、✓クリックで確定

元のディレクトリに戻ります。

wp-config.php も同様にして属性値を「400」に変更します。

xmlrpc.phpを無効にする

xmlrpc.phpファイルを利用したDDoS攻撃がおこなわれる可能性があるので、ファイルへのアクセスを制限します。ただし、メール投稿機能やピンバック機能を利用する場合は設定できません。

参考:今度はWordPressが踏み台に、Pingback機能を悪用しDDoS攻撃:多数の.JPサイトも踏み台化 - @IT

次の記述を .htaccessファイルに追加します。

<Files xmlrpc.php>
order deny,allow
deny from all
</Files>

あるいは、xmlrpc.phpファイルのパーミッションを「400」へ変更します。

関連記事