- 2013年04月18日 20:00
【WordPress全ユーザー必読】最近のWPサイトに対する猛アタックの詳細と対策
5/6パフォーマンスの問題への対策
これで、サイトから「admin」が消え、推測が難しいパスワードを手に入れたことになるが、それでもサイトに頻繁にログインしようと試みるボットの問題は解決されていない。この問題の解決はさらにハードルが高い。技術的な観点では、サイトは安全だが、一部のボットがサーバーに押し寄せることで、サイトのパフォーマンスが落ちる事態を回避しておきたいところだ。
まずは、ホスティングサービスを提供する会社と話し合うことを薦める。一部の攻撃をブロックする上でユーザーを支援するため、サポートチケットを切ることを薦めるホスティング会社は多い。どのようなメソッドが用いられているのかは不明だが、効果の高い様々なメソッドが用いられている可能性がある。
自分でサーバーを管理しているなら、あるいは、ホスティングサービスが役に立たないなら、私ならまずは大量のリクエストが行われているかどうかを確認する。そのためには、サイトのアクセスログをチェックする必要がある。単純にwp-login.phpページがリクエストされる頻度を確認するだけよい。大きなコミュニティを抱えているなら、通常のサイトの運営の一部として、当該のページに対して多くのリクエストが行われている可能性がある。リクエストの数が比較的少ないなら(1分間に数回程度)なら、対策を講じる必要はないだろう。このレベルのログインの試みなら、サイトに与える影響は小さく、また、変更を加えることで、問題なく動いているサイトにダメージを与えるリスクが発生する。リクエストの回数が多いなら(特に1秒間に大量のリクエストが行われているなら)、その他の選択肢をより真剣に検討するべきである。
ホスティング会社に連絡を取る方法の次に容易な方法は、CloudFlareを利用する方法だ。CloudFlareはCDN(コンテンツデリバリネットワーク)サービスであり、今回の攻撃からサイトを守る効果も見込める。今回の状況を憂慮し、CloudFlareは、総当たり攻撃を処理する仕組みをブログの投稿で詳しく説明している。私は過去数ヶ月間に渡って無料のアカウントを利用している。CloudFlareがどれだけのトラフィックをブロックしているのかは不明だが、私のサイトのwp-login.phpページに対するリクエスト数が少ない点はハッキリしている。また、公式のCloudFlareプラグインがリリースされている。ただし、私はCloudFareのキャッシング機能を利用していないため、このプラグインのメリットを紹介することは出来ない。
ホスティングサービスが役に立たず、また、CloudFlareを利用することが出来ない場合、ハイレベルな技術、そして、サーバーでのルートの許可が必要とされる解決策に頼らざるを得なくなる(共有ホスティングまたは専有ホスティングのアカウントでは、利用することが出来ない)。サーバーの管理に関する知識が浅く、また、攻撃がサイトのパフォーマンスに悪影響を与えているなら、攻撃からサイトを守ってくれるホスティングに変えることを検討しするべきかもしれない。ホスティングサービスを変更する前に、この手の攻撃からサイトを保護する準備が整っているかどうかを、事前に確認しておこう。
技術的なソリューショの中では、アパッチでModSecurityルールを使って、ログインの試みを制限する手が最も幅広く用いられている。 当然ながら、サーバーがアパッチを用いており、ModSecurityが利用することが出来る、または、インストールすることが出来る点が前提である。
wp-login.phpファイルとwp-adminディレクトリにアクセスするパスワードを守る手も多くのサイトで用いられている。この方法のメリットは、認証されていない限り、リクエストがワードプレスに到達することはなく、攻撃の負荷をほぼゼロまで低減することが出来る点である。
wp-config.phpのキーをアップデートする
wp-config.phpファイルには、一連のセキュリティキーが含まれている。このキーは、ワードプレスが用いる各種の認証およびセキュリティのメソッドに利用される。キーは各サイトに固有のアイテムを用意するべきである。残念ながら、古いバージョンのワードプレスにはこのセットが欠けており、セキュリティホールとして悪用されるリスクがある。各種の攻撃からサイトを守る上で、キーのアップデートを強く推奨する。
キーをアップデートすることで、再び全てのユーザーがログインする必要性が生じる。このメソッドは、感染したログインが無効になるため、強力である。
処置
サイトが被害に遭った場合、何をすればいいのだろうか?残念ながら、基本的にゼロからやり直すしか完全な解決策は存在しない:
- サイトのバックアップを作成する。
- サイトの全てのファイルを削除する。
- ワードプレスを新たにダウンロードする。
- ワードプレスのファイルを解凍する。
- ワードプレスのファイルをサーバーにアップロードする。
- バックアップでwp-config.php ファイルを調べ、怪しいコードを探し出す。このファイルをダウンロードしたばかりのwp-config-sample.phpファイルと比較することで、問題を特定する上で役に立つ。
- バックアップからwp-config.phpを新しいサイトにコピーする。
- オリジナルのソースからテーマとプラグインの新しいコピーをダウンロードする。ランダムなサイトからファイルをダウンロードするべきではない。マルウェアが含まれていることが多いためだ。
- テーマとプラグインのファイルを解凍する。
- テーマとプラグインをサイトにアップロードする。
- サイトを実行し、問題なく機能するかどうかを確かめる。
- 知らないユーザーを全て削除する。
- 各ユーザーのパスワードを変更する。攻撃が原因でパスワードを変更したものの、再びサイトを脅威に晒すことなどあってはならない。全てのユーザーのパスワードを再設定して、理想的なパスワードを設けるべきである。その際は、上述した推奨事項に従ってもらいたい。「admin」ユーザーのままにしておくのは危険であり、また、単純なパスワードを利用しないように注意する必要がある。
- バックアップのwp-content/uploadsディレクトリにアクセスし、ディレクトリを新しいサーバーにコピーする。メディアファイル(イメージ、オーディオ、動画等)をコピーする必要がある。PHPファイルをコピーしないように気をつけよう。
このように、とても面倒な作業ではあるが、ハッカーによる修正を完全に排除するには、これしか方法がない。たった一つでもファイル、または、修正されたファイルが残ると、再びサーバーが攻撃を受ける可能性があるためだ。
複数のサイトを運営している場合はどうなるのだろうか?残念ながら、一つのアカウントで多くのサイトを運営しているなら、アカウント全体が影響を受けていることを前提に作業を行う必要がある。単一のサイトの修正に力を入れると、その他のサイトがハッキングされる可能性がある。



