Archive for the ‘011 セキュリティを補強する’ Category

WordPress ログイン画面の暗号化(https)

2014-11-03

社内からのアクセスのみ管理画面へ通すため、確率的にはとても低いもののそれでもリスクは残ります。例えば社内のパソコンにウイルスが入り、パスワード漏えい及びリモートコントロールされるなど。そして通信を暗号化することはパスワードを秘密にし、不正なログインを防ぐ補強という趣旨です。

なお、よくある不正ログインによる改ざん事故は「 admin と簡単なパスワードの組み合わせ」と「 ID とパスワードの使い回し」です。暗号化をしないためにパスワードが漏えいすることは可能性としてあるものの確率的にはとても低いと言えます。

そこでレンタルサーバのプランによっては暗号化がサポートされていない( sftp も含め)なんてこともあり、できればプラン変更したほうが良いものの、もしプラン変更をしない場合は保有リスクとします。万が一、改ざん事故が起きた場合はパスワード漏えいを疑います。

概要

暗号化(https)を行うためのサーバの設定と WordPress の設定を行います。まずサーバの設定はお使いのレンタルサーバのマニュアルを読んでください。また WordPress 側の設定はどのレンタルサーバでも共通です。 wp-config.php を編集します。

ちなみにこのサイトではさくらインターネットさんのレンタルサーバ(共用プラン)を借りています。さくらインターネットさんでは https でアクセスするための SSL が無料で使えます(共有 SSL)。そして共有 SSL で利用可能な URL は「 https://初期ドメイン/ 」となります。初期ドメイン名が「 example.sakura.ne.jp 」である場合、共有 SSL を有効にすると「 https://example.sakura.ne.jp/ 」でアクセスできるようになります。このような暗号化(https)でアクセスするための設定をサーバに行います。

なお、WordPress の設定は wp-config.php の FORCE_SSL_LOGIN 定数を true にし、WordPress のログイン画面を https で受け付けるようにします。

これまでの記事で変更した WordPress をアップロードしていません(まだローカルで作業中です)。そのため、この作業の確認はアップロード後に行います。

手順

まずは https でアクセスできるよう、使っているレンタルサーバの共有 SSL を有効にします。 Google で「レンタルサーバ名 共有ssl」と検索すると簡単に調べられます。ちなみにですがレンタルサーバのプランによってはサポートされていないこともあります。よくわからない場合はレンタルサーバのサポートにお問い合わせください。
さくらインターネットさん
ロリポップさん
ヘテムルさん
エックスサーバさん
WebARENAさん

wp-config.php に以下の記述を追記します。なお、隠ぺいしているため「 /bi400/wp-config.php 」になります。

define('FORCE_SSL_LOGIN', true);

ちなみにログインするときですが、当サイト(さくらインターネットさん)であれば「 https://初期ドメイン.sakura.ne.jp/mission500/bi400/si300/wp-login.php 」にアクセスします。独自ドメインの URL は使いません。またまだローカルで作業中です。そのため、この作業の確認はアップロード後に行います。

作業が完了したら、【 公開前の準備 】編に移りましょう(次の記事に進んでください)。

関連リンク

レジュメ: WordPress 隠ぺい方法 完成図 : 隠ぺい方法はこちらからスタートしています。
隠ぺいの総仕上げ 完成時のビデオです。
管理画面での SSL 通信 WordPress Codex(公式オンラインマニュアル)

非公式のテーマ及びプラグインの削除

2014-10-27

WordPress のバックアップを行う出力のみのプラグインでも、ファイルをアップロードできてしまう(外部からサーバーへバックドアを保存できてしまう)脆弱性が見つかるなど、WordPress の脆弱性で最も注意したいのがプラグインです。そして昔から非公式のテーマやプラグインに特に問題が多く、改ざん事故の原因だったりもします。つまりリスキーです。熟知し管理できる場合は除きますが、放置している場合は公式のものに代替するなどして削除します。

また公式サイトで入手したものであっても、使いずらい、他に良いものがあったなどの理由で、停止はしているが削除はしていないこともあるかと思います。保存してあっても一利なしで、脆弱性などのリスクだけは残ってしまいます。そこで使っていないものは削除します。

非公式であったり使っていないテーマ及びプラグインの削除は脆弱性対策がその主な趣旨です。ちなみに脆弱性の多くは上記のようにファイルを直接操作するものです。すぐの削除が難しい場合は、隠ぺいやアクセス制限で対策し(レジュメをはじめから読んでください)、準備ができたら削除してください。

なお、非公式のテーマ及びプラグインを使い続ける場合は、保有リスクとして管理し、万が一、改ざん事故が起きた場合は削除します。すぐの変更が難しければ難しいほど、事故のない時に削除の準備を進めたほうがベストでしょう。

概要

初期の導入時に非公式のテーマ及びプラグインを入れている場合は削除します(公式のものに代替する)。また停止中のテーマ及びプラグインを削除します。

なお、アップロード時にないプラグインは自動的に WordPress から登録が外れます。削除するだけで他に作業することはありません。

また公式のものに代替する場合はそのテーマ・プラグインを公式サイトからダウンロードし、保存します。アップロード後の管理画面から有効にすれば登録完了です。

ちなみに使用中プラグインのアップデートは重要ですが、アップロード後の管理画面からバージョンアップできるためここでは最新版にしません。

手順

プラグインを保存しているディレクトリ「 bi400/ti200/ki100 」を開き、非公式のものや停止中のものを削除します。公式のものに代替する場合は、そのプラグインのディレクトリを保存してください。

またテーマを保存しているディレクトリ「 bi400/ti200/themes 」を開き、非公式のものや使用していないテーマを削除します。公式のものに代替する場合は、そのテーマのディレクトリを保存してください。

なお、すべての作業が完了してからアップロードします。その際に管理画面で新規のテーマ・プラグインを有効にします。削除したものは自動的に外れますのでこのままで OK です。

作業が完了したら、ログイン画面の暗号化(https)を行います(次の記事に進んでください)。

関連リンク

レジュメ: WordPress 隠ぺい方法 完成図 : 隠ぺい方法はこちらからスタートしています。
隠ぺいの総仕上げ 完成時のビデオです。
WordPress の安全性を高める WordPress Codex(公式オンラインマニュアル)

wp-config.php のアクセス制限

2014-10-19

wp-config.php にはデータベースの設定など機密性の高い情報が記述されています。もちろん、このサイトで施している隠ぺい設定もこのファイルに記述されています。そして wp-config.php にアクセス制限を行うのは、機密性が高いのでより秘密にするという補強が趣旨です。

なお、wp-config.php をブラウザで開くことはできません。何の対策をしなくても秘密のままです。ところがサーバ側の設定で「同じサーバ内のユーザーから参照できてしまう」事故も過去にはありました。共用サーバの場合は自分で管理できないため、このアクセス制限を行って補強してください。

概要

wp-config.php へのアクセス制限は、.htaccess ファイルで行います。

手順

「 /bi400/ 」に以下の .htaccess を設置します。

<files wp-config.php>
order allow,deny
deny from all
</files>

作業が完了したら、未使用のテーマ及びプラグインの削除を行います(次の記事に進んでください)。

関連リンク

レジュメ: WordPress 隠ぺい方法 完成図 : 隠ぺい方法はこちらからスタートしています。
隠ぺいの総仕上げ 完成時のビデオです。
WordPress の安全性を高める WordPress Codex(公式オンラインマニュアル)

wp-includes ディレクトリのアクセス制限

2014-10-10

wp-includes ディレクトリ内のファイルに、改ざん事故を起こすような脆弱性が発見された時のために、wp-includes ディレクトリへのアクセスを制限します。もちろん、脆弱性さえなければ wp-includes ディレクトリへのアクセスを制限する必要はありません。脆弱性対策の補強という趣旨です。

なお、WordPress Ver3.7 から自動でアップデートが入ります。したがって脆弱性対策としては、アップデート、隠ぺい、アクセス制限の 3 本になります。

ちなみに厳密には wp-includes ディレクトリへのアクセスを一部制限することになります。完全に制限してしまうと例えばプラグインが正常に動作しないなど、不具合のオンパレードになります。あくまでも一部制限のため、アップデートが最も重要な対策です。

概要

wp-includes ディレクトリへのアクセス制限は、.htaccess ファイルで行います。一部の .php ファイルへのアクセスを制限します。

ちなみに誤解が生じないよう WordPress Codex(公式オンラインマニュアル)のままの記述にしてあります。他の対策と重複した記述がありますがこの影響はありません。

手順

「 /bi400/si300/ 」に以下の .htaccess を設置します。

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^wp-admin/includes/ - [F,L]
RewriteRule !^wp-includes/ - [S=3]
RewriteRule ^wp-includes/[^/]+\.php$ - [F,L]
RewriteRule ^wp-includes/js/tinymce/langs/.+\.php - [F,L]
RewriteRule ^wp-includes/theme-compat/ - [F,L]
</IfModule>

作業が完了したら、wp-config.php のアクセス制限を行います(次の記事に進んでください)。

関連リンク

レジュメ: WordPress 隠ぺい方法 完成図 : 隠ぺい方法はこちらからスタートしています。
隠ぺいの総仕上げ 完成時のビデオです。
WordPress の安全性を高める WordPress Codex(公式オンラインマニュアル)

ログイン画面のアクセス制限

2014-10-04

外部からのログイン画面へのアクセスをブロックします。ログイン画面にアクセスできなければパスワードクラックを試すことはできません。ログイン画面隠ぺいの補強という趣旨です。

なお、「編集スタッフが大勢いて…」というケースでは、自宅からの接続や退職後の接続はスタッフの良識に任せているというのがよくある話だったりします。隠ぺいを施しても、自宅や退職後の接続はリスクがあります。また過去には、Wordpress の脆弱性から「ログイン画面を通過せずに管理画面が開ける」問題もありました。

厳密には管理画面のアクセス制限になりますが、会社からしか接続できないように制限します。ちなみに wp-login.php に制限をするのではなく wp-admin ディレクトリに制限をかけます。

概要

ログイン画面へのアクセス制限は、.htaccess ファイルで行います。basic 認証(パスワード)による制限もできますが、ここでは IP アドレスによる制限を行います。

ちなみにサーバによっては IP アドレスによる制限が上手く機能しないなんてこともあったりします。もし改善しない場合は basic 認証(パスワード)による制限を行ってください。

手順

「 /bi400/si300/wp-admin/ 」に以下の .htaccess を設置します。

Order deny,allow
Deny from all
Allow from xxx.xxx.xxx.xxx(xは自社の IP アドレスに変更)
<FilesMatch "(admin-ajax.php)$">
Satisfy Any
Order allow,deny
Allow from all
Deny from none
</FilesMatch>

basic 認証(パスワード)による制限を行う場合です。

AuthUserFile /home/orangess/www/.htpasswd(パスワードファイルの場所)
AuthGroupFile /dev/null
AuthName "認証サイト"
AuthType Basic
require valid-user
<FilesMatch "(admin-ajax.php)$">
Satisfy Any
Order allow,deny
Allow from all
Deny from none
</FilesMatch>

作業が完了したら、wp-includes ディレクトリのアクセス制限を行います(次の記事に進んでください)。

関連リンク

レジュメ: WordPress 隠ぺい方法 完成図 : 隠ぺい方法はこちらからスタートしています。
隠ぺいの総仕上げ 完成時のビデオです。
WordPress の安全性を高める WordPress Codex(公式オンラインマニュアル)

Copyright© 2014 WordPress セキュリティ対策デモサイト - 隠ぺいによるセキュリティ対策 - All Rights Reserved.
オレンジセキュアサービス株式会社
千代田区神田佐久間河岸70 第二田中ビル5F
www.orange-ss.com