当ページは検証・整備中のドラフトです。
内容は実環境での検証や追加調査により変更される予定です。
参照:ページ公開・更新ポリシー

WordPressの改竄やマルウェア感染を発見した場合は、原因調査や復旧を始める前に、現在進行している被害の拡大を止める。

不正なリダイレクトやマルウェア配布、第三者による操作などが続いている状態では、調査している間にも被害が広がる可能性がある。まず外部からのアクセスや不正な操作を制限し、その後の調査に必要な情報を残す。

本Unitでは改竄や感染を除去するのではなく、それ以上の被害を抑えるための初動対応を扱う。

Webサイトへのアクセスを停止・制限する

不正なページの表示、外部サイトへのリダイレクト、マルウェア配布などが発生している場合は、一般利用者からサイトへアクセスできない状態にする。

ホスティングサービスに公開停止やアクセス制限の機能があれば、その利用を検討する。ほかにもWebサーバのBasic認証やIPアドレス制限、WAF・CDNなどのアクセス制御を利用できる場合がある。

WordPressのプラグインによるメンテナンスモードでも表示を制限できるが、侵害されたWordPress自体は動作し続ける。被害を止める目的では、可能であればホスティングやWebサーバなどWordPressの外側から制限する方法を優先する。

サイト全体を停止する必要がない場合でも、問題が発生している機能やページを外部から利用できない状態にしておく。

管理画面へのアクセスを制限する

第三者がWordPressを操作している可能性がある場合は、管理画面へのアクセスも制限する。

ホスティングサービスのWordPressセキュリティ機能、/wp-admin/ や /wp-login.php へのIPアドレス制限、Basic認証、WAF・CDN側のアクセス制御などが利用できる。

自分が調査や初動対応を行うための接続経路は確保したうえで、不要な接続元から管理機能へ到達できない状態を作る。

ユーザーと管理者を確認する

WordPressのユーザー一覧を確認し、見覚えのないユーザーや管理者が追加されていないか調べる。

不審なアカウントを発見した場合は、ユーザー名、権限、メールアドレスなどの状態を記録する。第三者による操作に利用されている可能性があれば、パスワード変更や権限の変更などによって操作できない状態にする。

原因調査の材料になる可能性があるため、確認した直後にアカウントそのものを削除することは避ける。

ログイン中のセッションを無効化する

認証情報が漏洩している場合、第三者がすでにWordPressへログインしている可能性がある。

パスワードを変更するだけで既存のログイン状態を確実に終了できるとは限らないため、ログイン中のセッションも無効化する。

WordPressには、管理画面から自分以外のログインセッションを終了する機能がある。利用しているセキュリティ機能にセッション管理や強制ログアウトの機能があれば、それらも利用できる。

悪用される可能性のある認証情報を変更する

第三者による操作が疑われる場合は、WordPressだけでなく、そのサイトを管理できる認証情報についても確認する。

WordPress、ホスティング、SFTP・SSH、データベース、外部サービスなどが対象となる。漏洩や悪用の可能性があるパスワードは変更し、APIキーなどは必要に応じて無効化・再発行する。

複数のサイトやサービスで同じ認証情報を使用している場合は、ほかの環境への影響にも注意する。

同じ管理環境への拡大を防ぐ

一つのホスティングアカウントで複数のサイトを管理している場合は、ほかのサイトへ影響が広がる可能性も考慮する。

同じサーバ領域、管理アカウント、認証情報などを共有しているサイトを確認し、必要に応じてアクセス制限や認証情報の変更を行う。

この段階で詳細な影響範囲まで調査する必要はない。まず別のサイトやサービスへ被害が広がらない状態を作る。

調査前に現在の状態を保存する

原因や影響範囲を後から調べられるよう、可能であれば変更を加える前に現在の状態を保存する。

普段からサイト全体をバックアップしている場合は、その方法を手動で実行し、調査開始時点のデータとして通常の世代管理とは別に保管する。

合わせて、取得できるものの中から次の情報を残しておく。

  • WordPressのファイル一式
  • データベース
  • Webサーバのアクセスログ
  • エラーログ
  • WAFやホスティングサービスのセキュリティログ
  • WordPressやセキュリティプラグインが記録しているログ
  • 不審なユーザー、ファイル、画面などのスクリーンショット
  • 異常に気付いた日時と確認した現象

すべてを取得できるとは限らない。利用しているホスティングサービスなどから取得できる情報を可能な範囲で保存する。

不正な動作が現在も続いている場合は、情報の保存より被害を止める対応を優先する。その場合は、公開停止、アクセス制限、認証情報の変更など、先に行った操作と時刻も記録しておく。

不審なものを不用意に削除しない

不審なファイル、ユーザー、投稿、設定などを見つけても、被害を止めるために必要でなければすぐに削除しない。

削除や上書きを行うと、いつ、どこが変更されたのかを調べる材料まで失う可能性がある。

被害を止めるための変更と、原因調査のために残しておく情報を分けて考える。不審なファイルの削除やWordPressの再インストール、バックアップからの復元などは、初動対応ではなく調査結果を踏まえて行う。

被害を止めたら調査へ進む

外部への被害や第三者による操作を抑えた後は、保存したファイル、データベース、ログなどを利用して、改竄された範囲や原因となった可能性を確認する。

調査結果から、バックアップによる復元が可能か、既存環境を引き継がないクリーンリビルドが必要かを判断する。

参考:WordPressの改竄・感染を調査する