Archive for the ‘010 隠ぺい方法’ Category

隠ぺい作業の総仕上げ

2014-07-04

隠ぺい方法の未公開分を含めた総仕上げ動画を作成しました。隠ぺいのスタートから手順を載せていますのでぜひ確認ください。

なお、wp-config.php の設定を動画に載せていませんが、現在までの作業では下記のようになっています。

define('WP_DEBUG', false);

define('WP_SITEURL', 'http://www.wordpress-security.jp/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' );

これで隠ぺい作業は完了です。セキュリティ対策を構築しましょう(次の記事に進んでください)。

関連リンク

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

スタイルシート、その他の移動

2014-06-03
スタイルシート、その他の移動

ソースを確認すると「 http://www.wordpress-security.jp/bi400/ti200/themes/ 」ディレクトリの記述がチラホラと入ります。これはサイト全体で使うデザインのファイル(スタイルシートや画像)が「 themes 」ディレクトリにあるためです。そしてオトリの「 wordpress 」ディレクトリを設けているため、それらデザイン関係はこちらへ保管します。趣旨としては「 /bi400/ti200/ 」ディレクトリを秘密にする仕上げ作業といったところです。

概要

「 themes 」ディレクトリを設置し、スタイルシートとロゴやバナーといったデザインの画像を置くディレクトリを設置します。イメージとしては、テーマのプログラムを本丸に置き、デザインをオトリに置きます。なお、テーマのプログラムは本丸にないと使えません。

ここでは使っているテーマのディレクトリ名を「 oss 」としています。なお「 oss 」は自由に命名できますが、すべての設定を変える必要があるため、お使いのテーマのディレクトリ名を使ってください。

これらの設定はテーマのファイルにリンクで貼られています。本丸のファイルをオトリへリンクし修正します。ちなみにスタイルシートは本丸にも置いておきます。これは WordPress 管理画面でエラーになるためです。移動ではなく、コピーしてください。デザインの画像は移動で OK です。

よくわからない場合は、本丸にあるテーマのディレクトリをオトリにコピーしてください。テーマに脆弱性が発見される可能性もあるため、オトリにコピーした「 .php 」ファイルといったプログラムを削除します。以下はこちらの方法で案内します。

手順

オトリの「 /wordpress/wp-content/ 」ディレクトリに「 themes 」ディレクトリを作成します。そしてこの「 themes 」ディレクトリに本丸の「 /bi400/ti200/themes/oss/ 」ディレクトリをコピーします。

次にオトリの「 /wordpress/wp-content/themes/oss/ 」内の「 .php 」と「 .cgi 」ファイルを削除します。その他プログラム系のファイルがある場合も削除します( style.css 及び画像が残ります)。

「 /bi400/ti200/themes/oss/ 」にあるファイルを開いて、スタイルシートとデザインの画像へのリンクを「 http://www.wordpress-security.jp/wordpress/wp-content/themes/oss/ 」と絶対パスで変更します。

スタイルシートはヘッダー部にあります。
<link rel="stylesheet" href="<?php bloginfo('stylesheet_url'); ?>" type="text/css" media="screen" /> を
<link rel="stylesheet" href="http://www.wordpress-security.jp/wordpress/wp-content/themes/oss/style.css" type="text/css" media="screen" /> に変更します。

css

ロゴやバナーは各「 .php 」ファイルでリンクされています( img から始まるタグです)。
<img src="<?php bloginfo('template_directory');?>/images/mainImage.jpg" alt="メインイメージ" width="960" height="350" /> などを
<img src="http://www.wordpress-security.jp/wordpress/wp-content/themes/oss/images/mainImage.jpg" alt="メインイメージ" width="960" height="350" /> に変更します。

img

最後に「 languages 」、「 plugins 」、「 upgrade 」ディレクトリを設置し、下記「 .htaccess 」を保存してください。

【 .htaccess ファイル】
order allow,deny
deny from all

作業が完了したら隠ぺいの仕上げ作業です(次の記事に進んでください)。

関連リンク

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

uploads の移動

2014-05-10
uploads の移動

「 uploads 」ディレクトリは管理画面からアップした画像の保管場所です。そして標準のままで運用すると「 http://www.wordpress-security.jp/bi400/ti200/uploads/ 」ディレクトリにアップされます。そしてソースにも記述が入ります。オトリの「 wordpress 」ディレクトリを設けているため、オトリへ画像が保管されるように設定します。趣旨としては「 /bi400/ti200/ 」ディレクトリを秘密にする仕上げ作業といったところです。

ちなみに WordPress の管理画面を使わずに FTP で画像をアップすることも方法として考えられます。ただし FTP を使うための管理が増えます。編集スタッフが多い場合は、パスワード管理など管理する工数が増えるため WordPress 管理画面を使うことをオススメします。なお、改ざん復旧の現場では「スタッフが多く細かいところまでは目が届かない」という声も。管理する工数が増えれば必然的にセキュリティホールになりやすく、支障がない限り制限を行ってください。

概要

オトリの「 /wordpress/wp-content/ 」ディレクトリに「 uploads 」ディレクトリを移動します。移動したら「 bi400/wp-config.php 」ファイルを変更し、アップロード時にオトリに保管するよう設定します。

なお、注意点としては、アップロード時に相対パスで表示されてしまうため、記事本文中に貼り付けるときは URL を修正する必要があります。運用する際はこちら注意してください。

手順

「 /wordpress/wp-content/ 」ディレクトリに「 /bi400/ti200/ 」の「 uploads 」ディレクトリを移動します。

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

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

wp-config.php

ちなみに、アップロード時に相対パスで表示されてしまうため、記事本文中に貼り付けるときは URL を修正する必要があります。

管理画面

作業が完了したらスタイルシート、その他を移動します(次の記事に進んでください)。

関連リンク

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

オトリ WordPress ディレクトリを準備する

2014-05-07
オトリ wordpress

スタイルシートやアップした画像は「 wp-content 」ディレクトリに保存されるため、ソースには URL が入ります。そして「 http://www.wordpress-security.jp/bi400/ti200/ 」ディレクトリは公開することになります。ただし「 wp-admin 」や「 plugins 」というセキュリティで重要なディレクトリは「 si300 」、「 ki100 」と秘密にしてあるため、「 ti200 」を公開してもリスクはありません。そしてオトリの「 wordpress 」ディレクトリを設けることは、隠ぺいの多層化や補強という趣旨です。

なお、当社で受託した改ざん被害の復旧後(予防策も含む)にアクセスログを観察すると、ハッカーはちょこっと叩いたり、検索結果から叩いたりし、ボロがなければさっさと撤収します。 3、4 回叩いて検証し、二度と来ません。つまりいろいろと対策してある(改ざんは簡単にできない)とわからせることは重要であり、あえてリアルに再現したオトリを作ることには効果があります。

概要

オトリを本物のように再現し、さらに改ざん不可の状態にします。まずは空のオトリファイルを設置します。またオトリの「 wp-admin 」ディレクトリと「 wp-includes 」ディレクトリを設けてアクセス制限を施します。

なお、隠ぺい前のディレクトリが「 wordpress 」であればオトリは「 wordpress 」と、もし「 blog 」であればオトリは「 blog 」とします。これで画像の URL が同じになるため、過去記事で指定している画像の URL を変更する必要がなくなります。

ちなみにオトリの「 wp-content 」ディレクトリにスタイルシートや画像を保存します。そしてこのディレクトリについては次の記事で加工します。

手順

オトリの「 wordpress 」ディレクトリを作成し、「 license.txt 」、「 readme.html 」、「 readme-ja.html 」を「 si300 」からコピーして設置します。

その他の「 wp-config.php 」といった php ファイルは、下記内容の php ファイルを作成します(ダミーです)。また下記 .htaccess ファイルを設置します。

【 php ファイル】
<?php
?>

【 .htaccess ファイル】
<files wp-login.php>
order allow,deny
deny from all
</files>

オトリの「 wp-admin 」ディレクトリと「 wp-includes 」ディレクトリを設けて、下記 .htaccess ファイルを設置します。こちらは一切のアクセスを無効にするため、オトリの php ファイルは設けません。

order allow,deny
deny from all

オトリの「 wp-content 」ディレクトリを設置したら、次の記事に進みます。

関連リンク

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

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