4月, 2014年

plugins のリネーム

2014-04-26
plugins のリネーム

「 plugins 」ディレクトリにはインストールしたプラグインのプログラムが保管されています。そしてたとえば問題のプラグインの URL を表示するとサーバにファイルをアップロードできてしまうような脆弱性も過去にはありました。ログインせずにウイルスをアップロードできるのですから恐ろしい限りです。そして WordPress の脆弱性情報を見ていると、そのほとんどがプラグインです。破壊力も確率も高いため、WordPress のセキュリティ対策で最も注意したい部分と言えるでしょう。

脆弱性の多くはプラグインの URL を叩いて悪用してしまうものです。標準の構成であれば「 /wordpress/wp-content/plugins/ 」であり攻撃側は既に把握しています。後は問題のあるプラグインのファイル名を指定するだけです。つまり定型文的なプログラムでどんどんアタックするだけです。そして「 plugins 」ディレクトリ名を使わなければ攻撃は届きません。これが名前を変える趣旨です。

なお、プラグインによっては「 plugins 」ディレクトリをソースに書いてしまうものもあります。もし重要ではない機能であればそのプラグインは削除したほうが得策です。ちなみに Twitter などに出力をするような出力系のプラグインばかりであれば「最新版を使う」対策だけで事足ります。そして問題なのは画像をアップロードするような入力系のプラグインです。脆弱性があれば改ざん事故に直結する可能性も。プラグインの信頼性を追求し、使う使わないを判断することも重要ですが、もし入力系を使う場合はソースに「 plugins 」ディレクトリを表示しないよう秘密に管理してください。

概要

「 ti200 」ディレクトリ内の「 plugins 」ディレクトリの名前を「 ki100 」に変更します。「 ki100 」は自由に命名してください。ランダムな英数字の組み合わせにして、推測不可能なディレクトリ名にします。

なお、入力系のプラグインを使っている場合「 ki100 」を秘密にすることは大変重要です。もしディレクトリをソースに書いてしまうプラグインがあれば削除します。もちろん、使う使わないを検討したり、使う場合は最新版を使ってください。

手順

「 plugins 」ディレクトリの名前を「 ki100 」に変更します。また不要なプラグインがあれば、そのプラグインのディレクトリを削除します(削除しておけばアップロードした際に自動的に外れ、設定は不要です)。

「 bi400/wp-config.php 」に以下を「追記」します。

define( 'WP_PLUGIN_DIR', dirname(__FILE__) . '/ti200/ki100' );
define( 'WP_PLUGIN_URL', 'http://www.wordpress-security.jp/bi400/ti200/ki100');

wp-config.php

作業が完了したらオトリの「 WordPress 」ディレクトリを設置します(次の記事に進んでください)。

関連リンク

レジュメ: WordPress 隠ぺい方法 完成図 : 隠ぺい方法はこちらからスタートしています。
概要 : wp-config.php を大公開! 完成時の設定
wp-config.php の編集

wp-content の移動とリネーム

2014-04-25
wp-content の移動とリネーム

「 wp-content 」ディレクトリにはプラグインやテーマ、アップロードした画像があります。このディレクトリへの攻撃として「脆弱性のあるプラグインやテーマへの攻撃」があります。たとえば当社サイトのアクセスログを見ると「 /wp-content/themes/timthumb.php 」の記録が数多くあります。そして標準の構成であれば攻撃側は既に把握しているため、プログラムでアタックするだけです。

ちなみに攻撃側は下手な鉄砲も数撃ちゃ当たるで無差別に脆弱性を叩きます。WordPress を使っていないサイトであっても、「 timthumb.php 」を未使用でも、アクセスログにはそのような攻撃の記録が残ります。攻撃はプログラミングの定型文ですので「 wp-content 」ディレクトリ名を使わなければ攻撃は届きません。これが名前を変える趣旨です。

なお、ソースを見ると「 wp-content 」ディレクトリの記述は数多く入ります。前記事の「 wp-admin 及び wp-includes 」ディレクトリと別々にすることで、仮に「 wp-content 」ディレクトリがわかってしまっても「 wp-admin 及び wp-includes 」ディレクトリは秘密にできます。これがあえて移動する趣旨です。

概要

「 si300 」ディレクトリ内の「 wp-includes 」ディレクトリの名前を「 ti200 」に変更します。変更したらひとつ上の「 bi400 」ディレクトリに移動します。そして「 /bi400/si300/ 」の下位に「 wp-admin 」などが収まり、「 /bi400/ti200/ 」が「 wp-content 」となります。

また「 /bi400/si300/ 」ディレクトリにある「 wp-config.php 」を「 bi400 」ディレクトリに移動します。

「 ti200 」は自由に命名してください。ランダムな英数字の組み合わせにして、推測不可能なディレクトリ名にします。

手順

「 wp-content 」ディレクトリの名前を「 ti200 」に変更し、ひとつ上の「 bi400 」ディレクトリに移動します。また「 /bi400/si300/ 」ディレクトリにある「 wp-config.php 」も「 bi400 」ディレクトリに移動します。上図のような構成にします。

移動した「 wp-config.php 」に以下を「追記」します。

define( 'WP_CONTENT_DIR', dirname(__FILE__) . '/ti200' );
define( 'WP_CONTENT_URL', 'http://www.wordpress-security.jp/bi400/ti200');

wp-config.php

作業が完了したら「 plugins 」ディレクトリの名称を変更します(次の記事に進んでください)。

関連リンク

レジュメ: WordPress 隠ぺい方法 完成図 : 隠ぺい方法はこちらからスタートしています。
概要 : wp-config.php を大公開! 完成時の設定
wp-config.php の編集

wp-admin 及び wp-includes の移動

2014-04-23
wp-admin 及び wp-includes の移動

「 wp-admin 」ディレクトリと「 wp-includes 」ディレクトリは、WordPress のコアとなるファイルが詰まっています。このディレクトリへの攻撃として「 WordPress コアファイルの脆弱性を狙った攻撃」と「パスワードクラック」があります。そして「 /wordpress/wp-admin/ 」といった標準の構成であれば攻撃側は既に把握しているため、プログラムでアタックするだけです。

なお、WordPress 3.7 からは自動的にバージョンアップされます。そのため「 WordPress コアファイルの脆弱性を狙った攻撃」は対策ができています。ところがとても例外的な事故ではあるものの、2013 年 9 月にシンボリックリンク攻撃で wp-config.php が盗まれ大量改ざん事故が発生しました。またパスワードクラックはよくある改ざん事故原因です。

「 /wordpress/wp-admin/ 」といった標準の構成であれば、攻撃側はアタックするだけです。ちなみにシンボリックリンク攻撃も wp-config.php の場所を事前に把握する必要があり、「 /wordpress/wp-config.php 」という既知の構成だからこそできた攻撃です。そこで「 wp-admin 」ディレクトリと「 wp-includes 」ディレクトリを隠してしまえば攻撃は届きません。隠ぺいすることによって防げる事故は数多くあります。これがあえて標準の場所から移動する趣旨です。隠し方を以下でガイドします。

概要

もともとの位置を「 http://www.wordpress-security.jp/wordpress/ 」とします。このすべてのディレクトリとファイルを「 http://www.wordpress-security.jp/bi400/si300/ 」に移動します。ちなみに FTP ソフトではディレクトリの移動ができません。そのため、パソコンにダウンロードし、編集したものをアップロードします。ここでの作業はパソコン上(ダウンロードしたファイル)の編集になります。

「 /bi400/si300/ 」は自由に命名してください。ランダムな英数字の組み合わせにして、推測不可能なディレクトリ名にします。

Windows のメモ帳で wp-config.php を編集すると文字コードが違うためにエラーになります。TeraPad というフリーのテキストエディタがあります。あらかじめパソコンにインストールしておいてください。

手順

予めダウンロードしておいた「 /wordpress/ 」ディレクトリを「 si300 」という名前に変更し、「 bi400 」ディレクトリ内に移動します。上図のような構成にします。

次に「 wp-config.php 」に以下を「追記」します。「 /bi400/si300/ 」にあります。

define('WP_SITEURL', 'http://www.wordpress-security.jp/bi400/si300');
define('WP_HOME', 'http://www.wordpress-security.jp');

wp-config.php

ルートディレクトリの「 index.php 」を以下のように「変更」します。

変更前
require('./wordpress/wp-blog-header.php');
変更後
require('./bi400/si300/wp-blog-header.php');

index.php

作業が完了したら「 wp-content 」ディレクトリを移動します(次の記事に進んでください)。

関連リンク

レジュメ: WordPress 隠ぺい方法 完成図 : 隠ぺい方法はこちらからスタートしています。
概要 : wp-config.php を大公開! 完成時の設定
wp-config.php の編集

概要 : wp-config.php を大公開!

2014-04-22
Wp-config.php

こちらは完成時の wp-config.php です。記事を進んでいきますと最後にはこのような設定になります。

wp-config.php の設定で隠ぺいできる!

このサイトは wp-config.php の設定で隠ぺいを行っています。したがって wordpress のバージョンアップで大がかりな変更がない限り、手直しは不要です。バージョンアップ毎にメンテナンスする必要はありません。

なお、隠ぺいするために必要な設定は、図の 90 行から 99 行までです。たったのこれだけです。ちなみに 88 行は https でログインするための設定です。また 101 行は WordPress の管理画面でテーマとプラグインの編集をできないようにする設定です。


define('WP_SITEURL', 'http://' . $_SERVER['SERVER_NAME'] . '/mission500/bi400/si300');
define('WP_HOME', 'http://www.wordpress-security.jp');

define( 'WP_CONTENT_DIR', dirname(__FILE__) . '/ti200' );
define( 'WP_CONTENT_URL', 'http://www.wordpress-security.jp/bi400/ti200');

define( 'WP_PLUGIN_DIR', dirname(__FILE__)  . '/ti200/ki100' );
define( 'WP_PLUGIN_URL', 'http://www.wordpress-security.jp/bi400/ti200/ki100');

define( 'UPLOADS', '../../wordpress/wp-content/uploads' );

補足

「 WP_SITEURL 」をレンタルサーバのディレクトリ名にしています。これはレンタルサーバの仕様の関係です。独自ドメインで設定してしまうと、https でのログイン設定で影響が出てしまい、このような設定にしています。レンタルサーバはさくらインターネットさんです。

マルチドメインのため「 mission500 」ディレクトリに「 http://www.wordpress-security.jp/ 」を割り当てています。なお、WordPress ディレクトリは「 ○○.sakura.ne.jp/mission500/bi400/si300 」となります。

ソースからディレクトリが見えてしまうため、記事中の画像はオトリの WordPress ディレクトリに保存しています。そこで画像などをアップロードするディレクトリを「 wordpress/wp-content/uploads 」に指定しています。

ちなみに、こちらもソースからディレクトリが見えてしまうため、スタイルシートをオトリの WordPress ディレクトリに保存しています。なお、スタイルシートの指定については、テーマの各ファイルの URL を書き換えます( .js なども使っている場合はオトリに置き、各ファイルの URL を書き換えます)。

Windows のメモ帳で wp-config.php を編集すると文字コードが違うためにエラーになります。TeraPad というフリーのテキストエディタがあります。あらかじめパソコンにインストールしてください。

関連リンク

レジュメ: WordPress 隠ぺい方法 完成図 : 隠ぺい方法はこちらからスタートしています。
wp-config.php の編集

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