WordPress の改ざん原因と対策
改ざんの入り口になる主な原因は、「 1. ログインパスワード」、「 2. WordPress やテーマ、プラグインのバージョン」、「 3. テーマ、プラグインの信頼性」です。また WordPress ではありませんが WEB サイト全体で捉えれば「 4. PC ウイルス」、「 5. phpMyAdmin 」も重要です。そしてこの 5 項目の対策が WordPress 改ざん対策の肝になります。そしてこれらの対策が弱かったり、抜けていれば、的を射ていない対策になってしまいます。
また WEB サイトを含めてサーバ全体で捉えると、Linux( OS )や Apache、PHP、Perl といった Web サーバ、Plesk、cPanel といったコントロールパネルも大変重要です。そしてレンタルサーバであればこれらの管理はサーバ会社で行いますので、事故などが多い場合はサーバ会社を乗り換えるなど見直してください。放置することなく定期的に評価することが大切です。
なお、その他の対策(増強や次の壁といった多層防御)については別のコラムにし、解釈の違いが起きないよう体系的に整理していきます。ここでは WordPress の最も重要な改ざん対策をご説明します。
1. ログインパスワード
パスワードクラックによる事故はとても多いです。乱暴な方法ではありますが、数字や辞書などランダムにログインを試みてパスワードが一致するまで繰り返します。そんな面倒なことをする人間がいるのか? と感じるところですが、プログラミングによる方法のため仮に 1 年かかってもハッカーに負担はありません。ちなみにログインされてしまうと、アクセスログに「 wp-settings-time 」の記録が残ります。改ざん事故が発生した場合はこの値があるかを確認し原因を切り分けます。またその他のパスワードクラックとして、どこかのサイトで登録した ID、パスワードが漏えいし、それでログインを試すケースもあります。
そこで対策としては、WordPress 専用のログイン ID とパスワードを設ける。またパスワードだけではなく ID も強力なものにし、表示名を変える。admin アカウントは削除する(削除する際は「すべての投稿を以下のユーザーにアサイン」で別のユーザーに記事を引き継いでください)。これでほとんどのパスワードクラック事故は防げますが、さらに通信経路上の事故も含めて予防すればより安全です。IP アドレスによるアクセス制限と https による認証も行います。
2. WordPress やテーマ、プラグインのバージョン
WordPress やテーマ、プラグインのプログラムに欠陥が発見されれば、修正され配信されます。そして古いバージョンのままで運用すると、欠陥を抱えたままであり改ざんの入り口になります。ちなみに当社サイトのアクセスログを見ると「 timthumb.php 」の記録が多くあります。これは過去に脆弱性のあったものですが、そういうファイルが在る無し関係なく、プログラムで無差別に攻撃しています。こちらも数うちゃ当たるの世界です。もし存在するなら… 事故発生です。
たとえば、画像などをアップするときは WordPress の管理画面にログインしそこで作業します。ところがもし管理画面にログインしなくても画像をアップできてしまう欠陥があるなら… 改ざんするためのプログラムをインストールし放題です。またプログラミングの処理でコマンドを挿入できてしまうような、クロスサイト○○脆弱性や○○インジェクション脆弱性がある場合も、コマンドを送りつけて改ざんされてしまいます。
そこで対策としては、WordPress やテーマ、プラグインのバージョンを最新にします。改ざんされてしまう欠陥がなければ、もちろん改ざんはできません。
3. テーマ、プラグインの信頼性
既にある優れたプラグインを加工したり、プログラムの一部として取り込むなど、既存のプラグインを使い回しているケースもあります。たとえば上記「 timthumb.php 」も実は、いろいろなプラグインで使い回していて問題になりました。利用者側は組み込まれていることを知らないのですから、事故に遭うまで存在に気付きません。
そして大前提としては、うかつなインストールはリスキーです。特にプラグインについては、たくさん入れているケースをよく見かけます。本当にその機能が必要かどうか、また信頼性についても調べた上でインストールするかを判断してください。
対策としては、アップロードしたときに整形してくれたり、コメントの拡張機能といった「情報やデータを受け付ける」入力系プラグインは本当に必要であるか確認してください。そしてインストールするのであればソースを確認します。もしソースを確認できない場合は利用しないことがベストです。どうしてもという場合は、「利用者数が多い」、「不具合が見つかればバージョンアップしている」といった信頼性を徹底的に調べてください。なお、twitter や Facebook のいいね!ボタンやサイトの表示を整えるような出力系のプラグインはあくまでも出力であり受け付けないので問題ありません(ただし、機能とは関係のないソースも含まれていたらアウトですので利用者数の多さくらいはチェックしてください)。ちなみにプラグインの機能によっては php ファイルを叩かれないように制限するという方法もあります。
4. PC ウイルス
FTP アカウント情報がウイルスによって漏えいし、FTP 経由で改ざんされてしまう事故もあります。ちなみに FTP でログインされてしまうと、xferlog や ftp.log (レンタルサーバによって名称が変わる)、コントロールパネルに自分以外の IP アドレスが残ります。ちなみに改ざん事故が発生した場合は、FTP からの改ざんなのかを確認し原因を切り分けます。
対策としては、パソコンのウイルス対策をしっかり行います。またウイルスはパソコンから出ていく通信を監視し、FTP であれば漏えいします。そこで FTP 通信を暗号化する SFTP を使うとさらに安全です。なお、通信経路上の事故も含めて考えれば FTP は使わないほうが良いでしょう。
5. phpMyAdmin
phpMyAdmin は、WordPress とは直接関係しません。しかし、WordPress で使うデータベースを管理するソフトです。そのため、メンテナンスなどで導入しているケースもあります。phpMyAdmin は過去のバージョンで致命的な欠陥があり、そのバージョンを狙った攻撃が非常に多くあります。
対策としては、もし phpMyAdmin を使っている場合はバージョンアップして最新のものを使ってください。導入時だけ使っていて、今は使っていないという場合は削除してください。