WordPressはコンテンツ管理システム(CMS)として、最も広く利用されています。そのWordpressを使ったWebサイトが、第三者の攻撃を受けるケースも少なくありません。
WordPressを使ったWebサイトが第三者に改ざんされる多くのケースでは、Wordpressの運用に多くの理由が見受けられます。Wordpressのインストール時からちょっとした対策を行うだけで、あなたのWordpressをよりセキュアにします。
企業のブログ担当者や、非エンジニア・プログラマーでも実施できるWordpressのインストール時に実施すべき、誰にでも簡単にできかつ効果の高いセキュリティ対策を6つにまとめました。これらを実施すれば、Wordpressのセキュリティ効果はグンと高まります。
最新のWordpressをインストールする
WordPressは最新のバージョンを必ずインストールしましょう。バージョン3.7.1から自動インストール機能が使えるようになりました。
WordPressのバージョンアップでは、新しい機能が追加されると同時に、分かっているセキュリティなどのさまざまな問題が改善されます。セキュリティ面だけでなく機能面でも優れている最新のバージョンのWordpressをダウンロードして、インストールするようにしましょう。古いバージョンのセキュリティ問題が、あなたのサイトのセキュリティ・レベルを落とす可能性があります。
あなたのWordpressのバージョンアップをする際には、必ずWordpressのWebサイトから最新バージョンをダウンロードします。運用時でも、最新バージョンのWordpressを常にインストールするようにしましょう。
WordPressの各種プラグインの対応も最新バージョンへの対応を忘れずに行います。使わないプラグインはセキュリティ上の観点から削除をおすすめします。
WordPressインストール時のデータベースのテーブル名の設定
WordPressのバックエンドの仕組みにはSQLというデータベースを利用します。Wordpressのユーザやコンテンツは、SQLに格納されており、WordpressのWebアプリケーション側からSQLへとデータを読み書きしながらコンテンツを保存、表示などをします。
同時にWordpressは、オープンソースです。SQLとのデータのやり取りは誰でも、ソースコードの中身を見ればわかります。しかしながら、いくつかの必要な情報が、ソースコードだけではわからないようになっています。
その一つがデータベースのテーブル名です。テーブル名の一部はソースコードから分かりますが、Wordpressでは、各テーブルの接頭語が設定できます。その設定内容は、ソースコードとは別のファイルに保存されているため、ソースコードを読み込んだだけではわからないようになっています。ちなみに、デフォルトの設定では「wp_」となっています。
このテーブル名の接頭語を別の文字列に変えてしまえば、悪意のある攻撃者に対してより強固なセキュリティを保てます。つまり、テーブル名がわからなくなるので、SQLインジェクションなどによるSQLへの不正なアクセスを難しくします。
前述のテーブルの接頭語をデフォルトの「wp_」のままにしておけば、容易にテーブル名が推測できます。しかし、これを任意の文字列に変更してしまえば、テーブル名が推測しずらくなり、SQLの特定のテーブルにアクセスが難しくなります。
そのため、Wordpressのテーブルの接頭語「wp_」を他の名前に変えてしまえば良いのです。
WordPressのテーブルの接頭語は、パスワードのように管理者が記憶する必要がありませんので、覚えにくいランダムな文字列でも構いません。
WordPressのインストール時に管理者名も変更しよう
WordPressのインストール時には、管理画面のログイン名がデフォルトで「admin」です。ログイン名のデフォルトの利用はやめましょう。
管理画面へと不正アクセスする場合、ログイン名とパスワードの可能な組み合わせのすべての組み合わせをコンピュータにより高速に試して、ログイン名とパスワードを探しだす方法があります。このような攻撃方法では、ログイン名をデフォルトの文字やよくある文字列で固定して、パスワードだけを試す方法があります。
WordPressの管理者名をデフォルトの「admin」に固定すれば、パスワードの組み合わせだけを試せば良いので、不正アクセスがより簡単になります。
人間の目には、文字列は複雑に見えますが、コンピュータの世界では「0」と「1」の組み合わせです。人間には読解が難しくても、コンピュータの世界では組み合わせのパターンを作るのは、コンピュータの高速化と共に比較的容易になりつつありかつ、ツールがインターネット上に公開されています。
wp-config.phpのパーミッションを変更する
wp-config.phpというファイルには、SQLへの接続のログイン名、データベース名、パスワード名が平文(人間の目にわかる文字列)で書かれています。このファイルが他人に見られてしまうと、Wordpressのデータが格納されているSQLへのアクセスが容易になってしまいます。そのため、wp-config.phpは他人に見られないような設定にしなくてはなりません。
ホスティングサービスなどの共有サーバを利用している場合には、wp-config.phpファイルのパーミッションを設定変更し、共有サーバの他のユーザからもwp-config.phpを見れないようにします。
wp-config.php はデフォルトの設定では、644や666となっている場合がほとんどです。この場合、他のユーザからwp-config.phpが見られてしまう恐れがあります。
パーミッションは、最初の一文字目から、ファイル所有者、所有グループ、その他、の閲覧・編集・実行権限を示します。6は閲覧・編集可能、4は閲覧可能、0の場合には閲覧・編集・実行のすべてが禁止されている状態を示します。
所有グループ、その他には、共有サーバの他のユーザが含まれますので、これらを「0」に設定します。つまり、wp-config.phpは、ファイルパーミッションを400(もしくは600)に設定しておきます。これで他人に大事なwp-config.phpを見られることはありません。
WordPressの余分なヘッダをインストール時に整理する
WordPressのインストール後には、各ページに余分なヘッダ情報が表示されます。特に、バージョンに関するヘッダ情報は削除しておきましょう。
常に最新バージョンにアップデートしている場合は問題ありませんが、アップデートを忘れいる場合など、このバージョン情報が問題となることがあります。
そもそもWordpressのバージョン情報は表示する必要がありありませんので、Wordpressのバージョン情報はインストール時にヘッダに表示されないようにしておきましょう。
functions.php に、「remove_action(‘wp_head’, ‘wp_generator’);」と一行追加しておくだけでOKです。
パスワードやログイン名を8文字以上にしよう
WordPressのインストール時にもログインユーザ名とパスワードを設定します。もちろん複数人でWordpressを管理する場合にも必要です。
先ほど説明した、パスワードを破る方法の対策として、少し長めの文字列を設定しておきましょう。一般的には8文字以上という制限が使われています。
パスワードやユーザ名は辞書に掲載されているような単語や文字列は避けるようにしましょう。簡単に推測されないことがポイントです。
さいごに
今回は、Wordpressインストール時に、簡単にできる強力なセキュリティ対策について解説しました。Wordpressインストール時には、これらの対策は必ず行うようにしましょう。
まだ対策が済んでいない場合は、極力対策するように心がけましょう。ただ、テーブルの接頭語に関しては設定変更が少々面倒になります。具体的な方法については、専門知識がある方に相談してみましょう。