「Acunetix WP Security」:サイトの脆弱性スキャン・パーミションの設定・データベースの接頭辞の変更・その他の安全性を高めるセキュリティ対策が総合的にできるプラグイン

WordPress › Acunetix WP Security « WordPress Plugins

WordPress › Acunetix WP Security « WordPress Plugins

WordPress のセキュリティ対策に

プラグインが指摘する全ての対策手順を書きました

WordPress は人気の CMS ですが、それだけ狙われやすいといえます。サーバーにインストールしただけの状態であれば、セキュリティ対策は不十分です。

ここでは人気のセキュリティ対策プラグインである「Acunetix WP Security」を紹介します。

このプラグインを使っているサイトを多く見られますが、プラグインが示す脆弱性に対する全ての対応策を掲載しているサイトがあまりなかったので、ここでは全ての対策手順について書いていきます。まあ、英文で手順は全て書かれているのですが・・・

【参考】

こちらは参考になる記事です。他のセキュリティ対策プラグインも考えている方はぜひご覧ください。

WordPressの5つの主要セキュリティプラグインを詳細に比較してみた | 株式会社LIG

記事では CSRF の脆弱性について指摘されていますが以前のバージョン4.0.3 です。更新された4.0.5では対策が取られたようです。

プラグインの更新履歴

インストール方法

いつものように「プラグイン」→「新規追加」→で「Acunetix WP Security」と検索します。

プラグインを追加画面

または公式サイトからダウンロードしてください。インストールしたら有効化します。完了したら管理画面の左メニューに「WP Security」欄が追加されているはずです。

メニューに追加

簡単設定

ほとんどの設定はプラグインがやってくれますし、多くのブログでもそのように説明されています。先にそちらからやってしまって、残った点をくわしく説明します。

メニュー一覧

いろいろありますが、「Blog」「About」は Acunetix 社の紹介なのでいいでしょう。気になる方はあとでご覧ください。

以下、プラグインのセキュリティ対策をやっていきます。

ダッシュボードで初期状態を確認

まず、ダッシュボードで初期状態を確認します。プラグインによる脆弱性スキャンの結果がここで表示されます。

ダッシュボードの初期表示

Current Alerts の項目が23点。マークの意味はだいたいわかると思います。

  • 赤:緊急な対応が必要
  • 黄:緊急ではないがなるべくなら解決したほうがよい
  • 緑:とくに問題なし

サイトのどこに脆弱性があるのか、英文でズラッと示されています。左横のプラスマークをクリックすると、問題点と解決方法が表示されるので、これに従っていけばいいだけです。

でも、すべての項目を手動で行うのは、かなり時間がかかりますし、英文の指示をいちいち訳して理解するのもめんどうです。このプラグインがありがたいのは、ほとんどの項目を簡単に改善できることです。ここでは初期状態の確認だけをして、先へ進みましょう。

Database Tools で接頭辞(プレフィックス)を変更

ここではデータベースのセキュリティ対策を行います。

Database Tools の画面に文字で説明あり

MySQL で管理されているデータは、WordPress がインストールされたばかりのデフォルトの状態だと接頭辞(テーブルプレフィックス)が「wp_」になっています。これはグループになっているデータを管理するための目印のようなものです。

何も変更しないならば、「wp_」のままなので、WordPress を知っているすべての人に公開しているような状態です。

table_prefix の変更: 多くの既知の WordPress を狙った SQL インジェクション攻撃は、table_prefix がデフォルトの wp_ であることを仮定しています。これを変更することは、隠蔽によるセキュリティですが、SQL インジェクション攻撃の一部は防ぐことができるかもしれません。(「隠蔽によるセキュリティ」 WordPress の安全性を高める – WordPress Codex 日本語版

これを自分で変更するには、wp-config.php ファイルを編集したり、レンタルサーバーにログインして PhpMyAdmin で書き換え作業をするなど、慣れない方には難しい作業が必要です。プラグインではこれを簡単に行えます。

まずは必ずバックアップをとりましょう。たとえ問題が起きても復旧できるようにするためです。

接頭辞の変更方法は簡単で、「wp_」を任意の文字に変更してから(たとえば「sample_」など)、「Start Renaming」ボタンをクリックするだけです。変更が完了したら、このような表示が出てきます。

接頭辞を変更した

Settings の項目にチェックを入れる

「Settings」では多くの項目を一括して設定できます。

Settings 画面

【意訳】

  • WordPress のバージョン情報を隠す
  • 管理者以外向けのヘッダー内メタタグを削除
  • 外部アプリケーションから情報を取得するためのプロトコル「RSD(Really Simple Discovery)」のメタタグを削除
  • Windows Live Writer のメタタグを削除
  • PHP とデータベースのエラー報告を管理者以外に示さない
  • 管理者以外に WordPress のアップデート通知をしない
  • 管理画面でのプラグインのアップデート通知をしない
  • 管理画面での WordPress テーマのアップデート通知をしない
  • ログイン画面でのログインエラー通知をしない
  • 管理者以外には管理者通知を隠す
  • 重要なディレクトリの一覧表示を隠すために「index.php」ファイルを作る
  • URL からバージョンのパラメーターを削除
  • ルートディレクトリにある「readme.html」ファイルの中身を空にする
  • ダッシュボードに RSS ウィジェットを表示する
  • Live Traffic ツールを有効にする

基本的には、すべての項目にチェックを入れて「update settings」をクリックします。

お使いの JavaScript やプラグインによっては競合して、サイト表示が崩れるなどの不具合が発生するかもしれません。ひとつずつチェックを外したり入れたりしながら、試してみてください。

当ブログは RSS ウィジェットの表示はいらないのでチェックを入れていません。

WP Info で重要なファイルのアクセス制限をかける

「WP Info」には「Server Report」と「WordPress Scan Report」がありますが、プラグインで設定する項目は下にある「File Scan Report」になります。

WP info のパーミション設定

ここでは重要なファイルのパーミッション設定を変更します。

ファイルパーミッションの変更 – WordPress Codex 日本語版

WordPress を動かす重要なファイルに対して、第三者からのアクセスを制限する設定をします。プラグインを使わなければ、FTP クライアントソフトなどで変更する作業です。

「Apply suggested permissions」をクリックすれば、自動的に推奨される設定に変更してくれます。

ただし、実行しても、この時点ではすべてにチェックマークが入らないと思います。理由は後述するように「.htaccess」ファイルが不在なためです。残りの手順をすべて終えてから、もういちどこちらを再クリックすれば以下のように、すべての項目が完了します。

WP Info の変更完了

WP File Scan

「WP File Scan」はとくに初期設定をすることもないので、必要なときにスキャンしてください。

WP File Scan 画面

Live Traffic

「Live Traffic」も「Settings」で有効化していれば、何かを設定する必要はありません。

Live Traffic 画面

ダッシュボードで確認するとまだ3つ残っている

ここまでの結果をダッシュボードで確認してみましょう。

改善後にダッシュボードで確認したところの画面

ほとんどの項目が緑色に変わり、緊急性を要する赤色はなくなっています。これだけでもプラグインを導入するまえに比べて、多くのセキュリティ対策がとられたことがわかりますね。

しかし、まだ3つだけ黄色のままの項目があります。

  • 「.htaccess」ファイルが「wp-admin」ディレクトリに見つからない
  • 「install.php」ファイルが「wp-admin」ディレクトリに存在する
  • 「upgrade.php」ファイルが「wp-admin」ディレクトリに存在する

これら3つの改善方法について、書いてないブログが意外に多くあったので、これからはその設定手順を書いていきます。

すべて手動で行います。修正にはエディタソフトと FTP クライアントソフトが必要で、この使い方に慣れていない方にはむずかしく感じられるかもしれません(たいしたことはやりませんが)。持っていなければ以下のリンクからダウンロードしてください。無料のものでも十分な機能を備えています。

エディタソフトはこちらのものが有名で利用者も多いです。

FTP クライアントソフトは、レンタルサーバーが提供しているサービスか、以下のものをご利用ください。

手動での設定手順

では、順番にやっていきます。

「.htaccsess」ファイルを wp-admin ディレクトリに用意する

「.htaccesss」ファイルの役割はいろいろありますが、そのディレクトリ全体へのアクセスを制限したり、ブラウザでのキャッシュ方法を決めたり、レンタルサーバーでのデータ転送方法などを設定できます。

WordPress の wp-admin ディレクトリには管理者向けの重要なファイルが満載なので、第三者からの悪意ある攻撃から防ぐ必要があります。

このプラグインに限っていえば、wp-admin ディレクトリに「.htaccess」ファイルがありさえすれば緑色のマークを出してくれますが、せっかくなので IP アドレスによる日本国外からのアクセス制限をかけてしまいましょう。

個別に、詳細な設定をしたい場合には、こちらのサイトで簡単に作ることもできます。

.htaccess ファイルを簡単作成「.htaccess Editor」

ただ、今回は「日本国外からの IP アドレスによるアクセス制限」です。日本国内の IP アドレスをいちいち調べて書いていくのは大変なので、すでにやってくれているサイトを利用します。

IPアドレスで日本国外 海外 外国 からのアクセスを制限する.htaccess CGI s ページ

 IPアドレスで日本国外(海外/外国)からのアクセスを制限する.htaccess CGI’s

「.htaccessダウンロード」をクリックすると自動的にダウンロードがはじまります。おそらくダウンロードされるファイル名は「htaccess」になっていて、はじめの「.」(ドット)が抜けているはずなので修正してください。

エディタソフトで開いて、「名前を付けて保存」で「.htaccess」に書き換えます。文字コードも「UTF-8」であることを確認しておきましょう。最後にこのファイルを FTP クライアントソフトを使って wp-admin ディレクトリにアップロードすれば完了です。

「install.php」ファイルを削除する

「install.php」ファイルは、WordPress をインストールするときに使われます。

このファイルを実行すると、再インストールが行われ、最悪の場合、記事などのデータが削除されてしまいます。「本当に実行していいですか?」といった警告もなしに実行されるので、もし第三者による不正アクセスで実行されたとすると、知らないうちにそれまでの全データが消去され、初期状態になっているかもしれません。

レンタルサーバーの運営会社によっては、手動で削除するよう推奨しているところが以前はありました(ヘテムル Heteml.jp など)。

FTP クライアントソフトで wp-admin ディレクトリにある「install.php」ファイルを削除するだけ完了です。

「upgrade.php」ファイルを削除する

「upgrade.php」ファイルも上記と同じ理由で削除します。こちらは WordPress のバージョンアップ時に利用されるファイルです。

【注意点】

覚えておきたいのは、WordPress がアップグレードすると全ファイルが新しくなることです。当然ながら、新しいバージョンの WordPress には上記3点のファイルは存在しません。したがって、更新の際には、3つのファイルの追加・削除を再度手動で行います。

  • 「.htaccess」:追加
  • 「install.php」:削除
  • 「upgrade.php」:削除

ご注意ください。ちょっとめんどうですね(;´Д`)

 最終的な状態をダッシュボードで確認

これだけのことを終えたら、すべてが緑色になっているはずです。ダッシュボードで確認しましょう。

ダッシュボードの修正を全て完了した画面

すべて緑色になっていますね。これで完了です。

反映に少し時間がかかることがあります。それでもまだ黄色が表示されている項目があるなら、再度上記の手順を試してみるか(Settings や WP Info を再度やってみるだけでよい場合があります)、あるいは黄色になっている項目だけ英文の解決方法を読んで実行してみるといいでしょう。

当ブログで躓いた点の修正手順

当ブログで初めて実施したとき、何度やっても「ルートディレクトリの readme.html ファイルの中身を空にする」項目が黄色のままでした。これは Settings でチェックを入れればプラグインがやってくれる項目であるにもかかわらずです。

いろいろ検証してみた結果、どうやら「readme.html」ファイルのパーミッション設定が「書き込み不可」になっていたようです。それが原因でプラグインによる改善を受け付けないようになっていました。

そこで、いちど FTP クライアントソフトでパーミッションを「書き込み可」にしてから、Settings の項目を再度実施。すると、うまい具合にオールグリーンになりました。さいごはパーミッションを「書き込み不可」に戻して完了です。

同じような原因で困っている方があれば参考にしてみてください。

さらにセキュリティ対策は必要

プラグインだけではできることに限界があります。こちらのページを参考にして、できるだけの対策を取るようにしてください。

WordPress の安全性を高める – WordPress Codex 日本語版

また、自分のパソコン内にあるファイルをアップロードする際に、ウイルスに感染していないかのチェックは不可欠です。有料の総合セキュリティ対策ソフトを利用されることをおすすめします。わたしはウイルスバスターを利用しています。

あらかじめセキュリティ対策の多くとられたレンタルサーバーを利用する方法もあります。当ブログは「国外IPアクセス制限設定」「ログイン試行回数制限設定」「コメント・トラックバック制限設定」の備わったレンタルサーバーを運営するエックスサーバー社と契約しています。

関連記事

「WordPress Popular Posts」:サイトの人気記事をランキング表示させることができるプラグイン

「Wordpress Popular Posts」はサイト内の人気記事をウィジェットに表示させることのできるプラグインです。 投稿した記事が溜まってくると、人気のある記事が増えてくるものです。それをランキングにしてウィジェットに表示しておけ…

「WP Social Bookmarking Light」:サイト内の投稿記事や固定ページにソーシャルボタンを設置するプラグイン

「WP Social Bookmarking Light」は、サイト内の投稿記事や固定ページに、国内外でよく使われている多くのソーシャルボタンを設置することができるWordPressプラグインです。ソーシャルボタンを設置しておくと、サイト訪…