[WordPress]WordPressを改ざんされないためのセキュリティ(※100%では無いからな!)




さて今回のWordPress改ざん騒動、皆様は無事でしたか?
今回の改ざんはロリポップ、GMOサーバー内に構築しているWordPressがターゲットだったようですね。

なぜWordPressがターゲットになったのか。
きっと利用者多いから、流行ってるからだと思います。そしてロリポップの安さゆえのユーザーの多さ、初心者の多さなのかな?と推測。

今後、こういった被害にあわないためにWordPressのセキュリティについてまとめてみました。

ユーザー名、パスワードの強化

まずはユーザーIDに「admin」「ドメイン名」は使用しない。
お馴染みのブルートフォースアタックでパスワードを解読されるのは時間の問題です。

ブルートフォースアタックとは力づくでユーザー名、パスワードの総当たり攻撃のこと。
ユーザー名はadminでパスワードを総当りするブルートフォースアタックもあるようなので注意が必要です。
そしてドメイン名をユーザーIDで使用すると、これも推測されやすいのでアウト。

「知ってる。オレユーザーIDはadminでもドメイン名でもねーし。」って方も実は注意が必要。
WordPressで記事を書いた際に表示される投稿者。
これはデフォルトでユーザー名を表示する設定になっています。
なので、admin以外のユーザー名にしてても投稿記事を見れば簡単に分かってしまいます。
もし、投稿者の表示をする場合は「ユーザー → あなたのプロフィール → ブログ上の表示名」を変更しておきましょう。

パスワードはもちろん推測されにくいパスワードにする。
強度インジケータが「強力」になるようなパスワードにしましょう。
パスワード
面倒臭がって簡単なパスワードにすると後が大変です。

デフォルトのadminを別のユーザーIDに変更する方法

と言ってもユーザー名の変更はできません。
なので管理者アカウントをもう1つ作って、新しい管理者アカウントでログインし、adminを削除しましょう。
※必ず権限は「管理者」にしてください。
※adminのものとは別のメールアドレスが必要です。

プラグインを使う

ブルートフォースアタックから身を守るためのプラグインのご紹介。
Limit Login Attempts
ログイン失敗回数が一定に達したらそのIPアドレスからのログインを一定時間ロックするためのプラグインです。
日本語化もされていますので、ありがたく利用させていただきましょう。「Webデザイン日々独学様」(あ、ボク使ってません・・・)
ちなみに当ブログのLockout Logはこんな感じです。
Lockout Log
見事に「admin」「makurazaki(ドメイン名)」が全部です。

その他、ログインを指定IPからだけに制限するプラグイン等もあるようですが、ノマドな方々にはオススメできませんしルータリセットでIPなんてすぐに変更になるので実用的ではないかな?と思います。

wp-config.phpを守る

ご存知の通りwp-config.phpにはデータベースに関する情報が記載されています。これを守ってあげなければ元も子もないですね。
対策としてはパーミッションの変更。
サーバの仕様のよって違いますが「404」「444」を指定する。※ご自分のサーバに合った設定にしてください。
また「簡単インストール」などのレンタルサーバに付属しているサービスを利用したりするとwp-config.phpのオーナーが「Apache」になっていることがあります。
これはアナタにパーミッションの変更の権限がない状態なので変更ができません。
その場合は、一旦ローカルにwp-config.phpをダウンロードしておいてサーバ側のwp-config.phpを削除してダウンロードしておいたwp-config.phpをアップロードするとパーミッションの変更が可能になります。

.htaccessで守る

ルートディレクトリにある.htaccessに以下の内容を追記することでwp-config.phpを保護することができます。

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

ルートディレクトリに.htaccessがない場合はテキストエディタ等で作ってください。

まとめ

以上がボクが当ブログでやってるセキュリティ対策の一部です。

今回身近で2件の被害があり(どちらもロリポップ)対応させていただきましたが、一番問題だったのはロリポップだとDBのパスワードを変更しても古いパスワードが生きているということ。
何度、変更しても古いパスワードでDBに接続されてしまうという摩訶不思議なことがおきまして調べてみたらそういうことでした。
これじゃパスワード変更する意味なくね?と憤りを覚えてしまいました。
SSHでDBを直接いじることも可能みたいですが、ボクには敷居が高すぎて断念・・・。
でもまーしかし、ロリポップ側もそこは対応してくれるみたいなので少し安心しました。
以下ロリポップのお知らせを引用

2013/08/30 04:13 および 23:02 にご連絡させていただきましたとおり、ロリポップ!レンタルサーバー上にある全てのWordPressで使用しているデータベースのパスワード、および該当するデータベースを使用しているCMSの設定ファイル上のパスワードの書き換えを順次実施しております。
なお、書き換えが完了したお客様につきましては、別途メールにてご案内を送信させていただいております。

当社サービス「ロリポップ!レンタルサーバー」ユーザーサイトへの第三者による大規模攻撃について」(ロリポップ)
改ざんされたサイトの復旧方法について」(ロリポップ)

今回の改ざん騒動は、便利が故の落とし穴的なところがあったのかな?と思います。
CMSって便利ですけどWordPressのようなオープンソースだと仕組みが丸裸なわけですから悪さしようと思えば・・・ですよね。
初心者の方に「パーミッションが・・・」や「wp-config.phpが・・・.htaccessが・・・」なんて言っても通じないと思いますが、CMSを運用するってことはその辺もしっかり理解しないといけないということだと思います。

もしDBを丸っと消されたらどうします?バックアップ取ってます?
ね?お手上げでしょ?DBのバックアップってどうやっって取るの?って話しじゃないですか。

便利になればなるほど危険も付き纏う。そんな世界ですよね・・・。

※ロリポップサイトの画面キャプに悪意はありませんw

タイトルとURLをコピーしました