WordPress改ざんがロリポップで発生!セキュリティについての考察

椎名の軌跡マンガ

先日のロリポップで運営されているWordPress(ワードプレス)サイトの
大規模改ざん事件が発生しました。

ワードプレスセキュリティ

私もロリポップでワードプレスのサイトを運営していたので
慌ててチェックすることに・・・

とりあえず、被害はなく改ざんの形跡はなかったのですが、
ヒヤッとする出来事でした。

そもそもの事の発端は、2013年8月29日のことです。

レンタルサーバー大手の「ロリポップ」がこの被害の対象として狙われて、
同社で運用されているWordPressサイト8000以上が
サイトの内容を改ざんされてしまったということです。

なぜ、改ざんが起こってしまったのか?

 
原因は、「wp-config.php」のパーミッションにあったようです。
 

パーミッションとは、そのファイルへの実行権限ことです。

ファイルに対する「読み込み」「書き込み」「実行」の3つの権限を
「自分」「グループ」「他人」の3つの所有者に割り当てられます。

今回の改ざんを受けて「wp-config.php」のパーミッションを
「400」に変更したとアナウンスがありました。

早速「wp-config.php」のパーミッションを確認してみると
確かに9月2日に「400」に変更されてました。

「400」とは、自分のみがそのファイルの読み込みだけできるという
ファイルへのアクセス制限が1番厳しいものです。

もはやパーミッションを変更しないと
自分でもファイルを編集できない状態です。

では今までのパーミッションは一体何だったのか?

正直チェックしたことがなかったので今となっては分かりませんが、
「wp-config.php」のオリジナルとなる「wp-config-sample.php」
を見てみると「644」になってました。

 
これは、

自分:読み込みと書き込み可能
グループ:読み込み可能
他人:読み込み可能

という状態です。
 

今回は、

グループ:読み込み可能

の部分の権限が問題だったようです。

つまり、サーバー内で各個人アカウントが同じグループで設定されていると、
ひとつのアカウントにアクセスできれば、そのサーバーの同一グループ内の
アカウント領域の「wp-config.php」の内容を参照できてしまうというわけです。

書き換えとかは無理で、
あくまで参照だけです。

wp-config.phpとは?

「wp-config.php」内にはデータベースへの接続情報が暗号化されることなく
そのまま記載されてます。

この情報が分かれば、第3者も簡単にデータベースに接続して
内容の書き換えもできてしまいます。

今回は、ここからMYSQLDBへのアクセス情報が抜き取られたということです。

出ている情報だけ見ると今件では書き換えだけのようですが、
その気になれば全データ削除ということもできたと思うので、
もしそうなっていれば、被害はさらに大きくなっていたはずです。

WordPressのセキュリティを強化する必要性

ワードプレスを使ったサイトは、ますますその数が増え、
一般企業の公式サイトもワードプレスで作成されることも多くなってます。

もはやワードプレスはブログとしてのCMSではなく、
きちんとしたWEBサイト用のCMSであると言えます。

テンプレートも自由にカスタマイズできる上に、
さまざまなプラグインを使うことで、
プログラムに詳しくなくても、大体のことは実現できます。

 
それだけ一般化したことで、当然今回のように目も付けられやすくなるわけです。
 

ワードプレスの管理ページへの無差別アクセス攻撃も記憶に新しいです。

 
ワードプレスはデフォルトで作成すれば、
管理者のIDは「admin」になります。

そして多くのサイトのIDはデフォルトの「admin」である可能性が高いです。

ということは、あとはパスワードが分かれば
簡単に管理ページヘアクセスされてしまいます。

プログラムで機械的にパスワードを試せば、
4桁のパスワードなんかはすぐに破られます。

 
もはやワードプレスを使うのであれば、

IDはデフォルトの「admin」を使用しない

パスワードは16桁以上で設定する

というのは必須と言えます。
 

パスワードは、このサイトなんかを使えば簡単にランダム発行できるので、
今すぐにでも16桁以上に設定しなおしたほうが安全です。

パスワード自動生成 (Automated Password Generator)

 
何かあってからでは遅いので、
ファイルとデータベースのバックアップも定期的にとっておくといいですね。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です