ハッキングされたサイトの復旧
提供:MoodleDocs
最初のステップ
- ホスティングプロバイダがある場合は、そのプロバイダに連絡してください。
- 直ちにサイトを メンテナンスモード にするか、すべての修正が完了するまで完全にオフラインにしてください。攻撃者のサーバへの接続を遮断する必要があります。
- ファイアウォールのルールを作って、すべてのIPアドレスからのサーバへの接続をブロックし、自分のIPアドレスだけを許可することができます。ただし、あなたのIPアドレスは時々変更されることがありますので、その場合は自分自身をロックアウトしてしまう可能性があります。そのような場合は、あなたのIPアドレスが含まれる範囲を許可してください。
- 自分でサイトを運営している場合や、サーバに物理的にアクセスできる場合は、小型のルータを用意して、そこにサーバを接続するのが簡単な方法です。その際、他のネットワークやインターネットには接続しないでください。これで、サーバに直接アクセスすることも、同じルータに接続した別のコンピュータを経由してアクセスすることも自由にできるようになります。
- 利用可能なすべての古いデータベースとファイルのバックアップを見つけます。
- phpファイル、データベース、データファイルをバックアップします(古いバックアップを上書きしない)。
- 同じサーバにインストールされているすべてのPHPソフトウェアとプログラム/パッケージのリストを作成します。
- メインのMoodleバージョンおよび最終更新日を記録し、すべてのcontribモジュールおよびカスタム修正のリストを作成してください。
- ユーザのプライベートデータを公開する可能性がある場合、法的な影響を確認してください。あなたは、あなたのユーザに通知し、少なくとも、あなたのMoodleアカウントと同じパスワードを共有しているサービスのアカウントのパスワードを変更するよう、法律で要求されているはずです。
- 最後に、あなたがコマンドラインまたは一般的なコンピュータ/サーバに慣れていない場合、慣れている人に手伝ってもらうのが一番です。あなたは、あなたが保存しているユーザの情報に責任がありますので、リカバリが正しく行われることを確認してください。
ハッカーがどの程度侵入できたのか(サーバのルートパーミッションを持っているのか、それとも特定のファイルを変更するだけのパーミッションを持っているのか)がわかるまでは、システム上のすべてのものは信頼できないと考えてください。バックアップのリストアやウィルス対策ソフトを実行する前に、その人物(またはプログラム)がどのように侵入し、何をしたのか、フォレンジック調査を行ってください。もしかしたら、そのバックアップが修正されて、後から攻撃者が戻ってこれるようなバックドアプログラムが入っているかもしれません。このようなことが起こらないように、攻撃者が使用した脆弱性を塞ぎたいものです。
被害状況の把握
- サイトがいつハッキングされたかを確認します。
- ファイルの更新日を確認します。最初の侵入があった頃に変更されたアプリケーションファイルを探します。これらのファイルは疑わしいです。
- 奇妙なページパラメータ、失敗したログイン試行、コマンド履歴 (特にルートとして)、不明なユーザアカウントなど、その日の前後または数時間前に不審な活動がないか、サーバログをチェックしてください。
- あなたがダウンロードしたアップデートを考慮に入れるようにしてください。
- あなたのウェブサーバ上で変更またはアップロードされたファイルを探してください - Moodleに属さない最も古いファイルを探してください。
回復
- 直前のバックアップをリストアします。
- 最新の安定版をダウンロードし、アップグレードします。
- パスワードを変更してください。
- 攻撃の程度によっては、OSを完全にフォーマットして再インストールする必要があるかもしれません。
- 調査中に発見した修正を必ず実行し、サーバ上の既存のセキュリティを再確認して、改善できないかどうかを確認してください。
- これは、あなたがMoodleのために行ったカスタマイズ/アドオンをレビューすることも意味します。あなたは、すべてのユーザ入力を適切にエスケープしたと確信していますか?あなたのウェブサーバのディレクトリおよびデータベースのパーミッションはどうですか?
スパムへの対応
- プロファイルやフォーラムの投稿にスパムがあっても、実際にサイトがハッキングされたわけではありません。
- スパムクリーナーツール(設定 > サイト管理 > レポート > スパムクリーナー)を定期的に使用して、スパムを発見してください。
防止策
- 常にサイトを最新の状態に保ち、latest stable versionを使用する Gitを使うと簡単にできます。
- 定期的に セキュリティ概要 レポートを実行してください (設定 > サイト管理 > レポート > セキュリティ概要)。
- セキュリティを最大限に高めるために、パーミッションやファイルの所有権を適切に設定する方法を理解する。もしこれが謎であれば、無視してはいけません - 読んでみるか、フォーラムで聞いてみましょう
- サーバ上に適切に設定されたファイアウォール/パケットフィルタがあることを確認してください。
- あなたのサーバ上のMoodleまたは他のウェブアプリケーションをカスタマイズする場合、コードをレビューして、新しい脆弱性を追加していないことを確認してください。
- あなたのサーバ上でルートキットやその他の奇妙な出来事が発生していないかどうかを確認するのに役立つ、rkhunterのようなアンチルートキットプログラムを実行することも検討してください。RootkitRevealerは、同等のWindowsプログラムです。
- SELinuxやAppArmorは、サーバ自体への様々な攻撃を軽減するのに非常に優れています。WindowsにはEMETという同様のものがあります。
関連項目
外部リンク
- [1]: rkhunter公式サイト
- [2]: Windows Sysinternalsのサイトでは、RootkitRevealerをはじめとする便利なプログラムが紹介されています。
- [3]: SELinuxのwikipediaの記事です。References and See Alsoのセクションをご覧ください。
- [4]: Microsoft Technetに掲載された素晴らしい記事には、非常に重要なセキュリティコンセプトが詳細に記されています。どのOSを使っていても、読んで損はありません。
- [5]: 上記Microsoft Technetの記事のパート2です。
- [6]: ServerFaultのスレッドには、侵入からの回復に関するさらに優れた情報が掲載されています。Robert Moir氏のコメントには多くの良い情報があります。
- [7]: cert.orgに掲載された記事で、サーバが危険にさらされた後に取るべき手順を詳しく説明しています。2000年に書かれたものなので、プログラム固有の情報は古くなっているかもしれません。
Moodleのフォーラムディスカッションを利用する: