Joomlaサイトが改ざんされたら:最初の対応を正しい順番で
あわてず、順番どおりに。この手順にコマンドラインは必要ありません。そして、Joomlaの標準機能だけでは足りなくなる場面も、はっきりお伝えします。
Joomlaのメンテナンスモードでできること、できないこと
Joomlaには、サイトを訪問者に見せないようにするスイッチがあります。場所はホームダッシュボード›グローバル設定、サイトタブのメンテナンスモードという項目です。ここで押さえておきたい制限が2つあります。Joomlaのマニュアルは、このスイッチが管理画面には適用されず、バックエンドにログインできるユーザーにも適用されないと明記しています。もうひとつ、Googleが言う「サイトをオフラインにする」は、これより厳しい意味です。訪問者に対してコンテンツを一切配信しない状態にすること、という意味です。Googleは、4xxや5xxのステータスコードを返すだけではユーザーを守るには不十分だとも述べています。その裏で有害なコンテンツが配信され続けることがあるからです。
片づける前に、記録を確保する
Joomlaは、管理画面での操作を独自に記録しています。場所はユーザー›ユーザーアクションログです。開けるのはスーパーユーザーだけで、管理画面からそのままCSVファイルとしてダウンロードできます。ただし、次の限界を知ったうえで読んでください。IPアドレスは、該当するオプションを有効にしていないかぎり記録されません。記録されるのは、オプションで選んだ拡張機能の操作だけです。そして古い記録は、対応するプラグインで指定した日数が過ぎると削除されます。つまり、そこに残っていないことは、何も起きなかった証拠にはなりません。
身に覚えのないアカウントがないか確認する
ユーザー›管理を開きます。一覧には、アカウントごとにユーザー名、ユーザーグループ、最終訪問、登録などが表示されます。ご自身で作成した覚えのないアカウント、とくに広い権限を持つグループに入っているものに注意してください。あわせて、異変が出はじめた時期の前後に登録されたアカウントも確認します。
- パスワードを変更し、多要素認証を必須にする
管理画面にログインできるすべてのアカウントのパスワードを変更します。Joomlaには多要素認証が標準で備わっており、特定のユーザーグループに対して必須にすることもできます。公式マニュアルも、有効にすることをはっきりすすめています。
- 身に覚えのないアカウントを削除する
ご自身で作成した覚えのないアカウントを削除します。ただし、侵入口が開いたままなら、削除するだけでは足りません。
- Joomla本体とすべての拡張機能を更新する
本体はシステム›アップデート›Joomlaから、拡張機能はシステム›アップデート›エクステンションから更新します。Joomla自身が挙げている制限に注意してください。ここに表示されるのは、アップデートサーバーに対応した拡張機能だけです。それ以外は手作業で更新する必要があります。
- 脆弱性のある拡張機能の一覧と照らし合わせる
お使いの環境にインストールされているものを、公式の一覧と照らし合わせます。この一覧には、修正版が公開されていない脆弱性のためのカテゴリーもあります。そこに載っている拡張機能は、隠すのではなく取り除いてください。
- 脆弱性のある拡張機能は、隠すだけでは不十分です
Joomlaのドキュメントははっきり書いています。メニューリンクを削除したり、モジュールを非公開にしたりしても、その拡張機能に外部から到達できなくなるわけではありません。
バックアップを戻すだけでは、たいてい終わりません
昨日のバックアップに戻すのは、きれいな解決に見えますし、実際それで済むこともあります。ただ、済まないことのほうが多いのが実情です。Sucuriは自社の駆除作業の経験を次のようにまとめています。攻撃者はサイトに戻ってくるための道を必ず残しており、改ざんされたJoomlaサイトでは、種類の異なる複数のバックドアが見つかることのほうが多い、という内容です。“Hackers always leave a way to get back into your site. More often than not, we find multiple backdoors of various types in hacked Joomla! sites.”侵入前のバックアップには、侵入を許した脆弱性がそのまま残っています。そして侵入後のバックアップには、すでにバックドアが含まれているかもしれません。
どこから先は専門家に任せるべきか
Joomlaの標準機能では手が届かなくなる地点があります。Sucuriは自社のガイドでその線をはっきり引いています。手順のなかにはWebサーバーとデータベースへのアクセスを前提とするものがあり、データベースのテーブルやサーバー上のファイルを扱い慣れていないなら、手探りで試すのではなく助けを求めるべきだ、という内容です。これは失敗ではありません。中途半端に駆除したサイトが再び侵入を受ければ、はじめから一度できちんと片づけるよりも高くつきます。
出典と参考リンク
- Joomlaマニュアル – メンテナンスモード(Site Offline)スイッチの働きと、その限界
- Google – Quarantine your site「サイトをオフラインにする」が意味すること
- Joomlaマニュアル – ユーザーアクションログ開ける権限、CSVエクスポート、保存期間
- Sucuri – How to Fix, Clean & Secure a Hacked Joomla! Siteバックドアと、標準機能の限界
- Joomla – 脆弱性のある拡張機能の一覧公式の一覧。修正版のない脆弱性も掲載されています
最終的には、各開発元の公式発表が優先されます。本ページは、一般に公開されている情報を中立的な立場でまとめたものです。