2019.10.03 2019.10.03

【解決済み】ワードプレスのマルウェア駆除

LINEで送る
Pocket

この記事を書いた人
しんまい君

しんまい君 元ネットワークエンジニア。WordPressのカスタマイズを主に担当。
難しそうな顔をするのが得意。福島県南相馬市出身。好きなものは柴犬。

ワードプレスサイト上でマルウェアを特定し、駆除した実例をご紹介します。

当社では保守契約の無いお客様についてもワードワードプレスの障害対応を行っております。「サイトが表示されなくなった」「ダッシュボードにログイン出来なくなった」「サーチコンソールでエラーが検知された」など多々対応させていただいております。

特に多いのが今回ご紹介するマルウェア(ウィルス)感染の対応です。

病気のウィルス同様、症状は様々です。

変なサイトに移動する、知らない広告が表示される等、マルウェアが原因で意図しない動作をしてしまいます。場合によっては、警告が表示され、サイトが一切閲覧できなくなることもあります。

 

状況の確認

今回対応させていただいたサイトの環境です。
割と有名どころのレンタルサーバーを利用。ワードプレス本体も最新バージョンを保った状態で運用していました。

ワードプレスの環境

  • 一般的な共有レンタルサーバー
  • WordPress 5.2.1(当時最新バージョン)
  • 外注して作成したオリジナルテーマ
  • ワードプレス公式ディレクトリーからダウンロードしたプラグイン(カスタマイズ無し)
  • コアファイルのカスタマイズ無し
  • 制作した制作会社との保守契約無し、自社で運用
  • 運用担当者は一人(他の業務を兼任する専門家ではないスタッフ)

 

サイトの症状

  • ダッシュボードへのログインは可能
  • トップページのみ表示される(固定ページ、投稿が表示されない)
  • パーマリンクが変更できない
    ※更新しようとすると「.htaccessを更新する必要があります。」の表示
  • .htacessファイルの権限が本来のパーミッションではない
  • .htacessファイルのパーミッションを適切なものに変更し、パーマリンクを更新すると一時的に更新ができるがしばらくするとなぜか戻っている
  • グーグルサーチコンソールでエラーが表示されるがいずれも対象のURLは、存在しないページ
  • グーグルサーチコンソールでマルウェアの検知は無し

 

マルウェアの有無の確認

FTPによる簡易調査

FTPで調査する方法は非常に簡単です。マルウェアを発見する際に気にすべき点は以下2点です。

更新日が他のファイルと違うファイルがないか?

FTPでアクセスすると、ファイル名とともに更新された「日付」が表示されます。他のファイルと比較して更新日が新しいものをチェックしましょう。特に、ワードプレスの更新やプラグインのアップグレード日とはかけ離れた更新日のものはかなり怪しいです。

 

 

特に各ディレクトリーにある「index.php」や、テーマ内の「index.php」、「functions.php」はよく改ざんの対象になるので要チェックです。

 

 

更新日が他のファイルと比べて新しいファイルはダウンロードして、中身を確認しましょう。マルウェアに感染しているファイルは、本来存在しないコードが羅列しています。以下のようなコードがあり、アルファベッドで意味不明なコードが書いてあったらマルウェアコードの可能性があります。


base64_decode()


eval()

 

もし特定が難しようであれば、本来のファイルと見比べてみると良いでしょう。ワードプレスのコアファイルであれば、運用中のバージョンと同一のバージョンのワードプレスを公式サイトからダウンロードし、上書きすればOKです(コアファイルにカスタマイズしている場合は、設定が消えてしますのでご注意ください)。

 

不正なファイルが設置されていないか

既存のファイルにマルウェアを埋め込むコードだけでなく、新規にマルウェアコードを含むファイルが設置されるケースもあります。

FTPで各ディレクトリーを確認します。既存のファイルの確認同様に、更新日の新しいものをダウンロードし中身を確認しましょう。不正なファイルだけでなく、ディレクリーとして存在する場合もあります。

特に、不正なファイルと思われないよう「存在しそうな名前」がついているので、注意が必要です。

 

ダッシュボード内の調査

ファイルがマルウェア(ウィルス)感染しているだけの場合もあれば、不正なユーザーアカウントをシステム上に作成されているケースもあります。

ダッシュボードにログインし、「ユーザー」→「ユーザー一覧」へアクセスし、不正なユーザーが作成されていないかを確認します。もし不正なユーザーアカウントが存在する場合は、速やかに削除します。

 

マルウェア(ウィルス)の感染を確認

感染していたファイルを特定

今回の調査で以下の通り、マルウェアを確認しました。

  • .htaccess
  • ルートディレクトリー直下のindex.php
  • wp-content/本来存在しないフォルダ(感染ファイル有)

 

.htacess、ルートディレクトリー直下のindex.phpは更新日が他のファイルと異なり最近更新されていました。FTPでダウンロードして中身を確認すると、マルウェアコードが埋め込まれていました。

本来存在しないファイルについては中身を確認すると、.htaccess同様にマルウェアコードを含む内容。

 

発見したマルウェアへの対応

以下の作業を行いました。

  • .htaccessを以前のものに置き換えて、パーミッションを設定
  • ルートディレクトリー直下のindex.phpは、同一のバージョンのワードプレスをダウンロードし上書き
  • 本来存在しないファイルは削除
  • 全ユーザーのパスワード変更(念の為)
  • FTPパスワードの変更(念の為)

マルウェア駆除作業を行っても、不正なファイルやコードが残っている場合再発する可能性があります。作業後しばらく時間をおいて、再度マルウェアがないかを確認しましょう。

 

ちなみに、以上の作業後にマルウェアは確認できませんでした。

 

原因は脆弱性のあるプラグイン?

サーバー上の変更を記録しているログがない為、原因は調整できませんでした。
ダッシュボードを調査する限り、最新バージョンにアップグレードしていないプラグインがありました。

・EWWW Image Optimizer
・WP Fastest Cache

過去にクロスサイトスクリプティングの脆弱性が報告されていたバージョンで運用していました。お客様に確認し、削除し公式ディレクトリーから最新バージョンをインストール後有効化しました。

※プラグインによっては、削除するとサイトの一部やサイト全体が表示されなくなる可能性がありますので作業前に確認しましょう。

 

 

ワードプレスサイト運営でマルウェアを未然に防ぐ対応

マルウェアに限らず、ワードプレスのサイトを安全に運用する対策をご紹介します。

  1. ワードプレスの本体は最新バージョンに保つ
  2. プラグインは最新バージョンに保つ
  3. 不必要なプラグインを使わない
  4. 不必要なユーザーアカウントを作成しない
  5. 不必要な管理者権限ユーザーを作成しない
  6. テーマ、プラグインの脆弱性情報を収集する
  7. 利用中のプラグインで脆弱性が見つかった場合、速やかに利用を停止する
  8. ダッシュボードへ、海外ネットワークからアクセス禁止にする
  9. ワードプレスファイルのパーミッションを適切なものに保つ
  10. adminユーザーを使わない
  11. ユーザーアカウントのパスワードを誕生日など、推測可能なものにしない
  12. FTPアカウントのパスワードを推測可能なものにしない
  13. ブラウザを最新バージョンにアップグレードする
  14. 怪しいサイトにアクセスしない
  15. PCのOSを最新バージョンに保つ
  16. PCにウィルス対策ソフトをインストール
  17. 怪しいメール内に記載したリンクをクリックしない
  18. バックアップを定期的に取得する

ワードプレスサイト上だけでなく、怪しいサイトにアクセスしないといった点も重要なポイントです。
ご存知の方も多い方も思いますが、怪しいサイトにアクセスた際にブラウザからパスワードを抜かれてしまうといった攻撃(クロスサイトスクリプティング:XSS)がある為ですね。

運用しているサイトが万全の状態でもあっても、他のサイトやメールに仕掛けられたリンクをトラップにする巧妙な罠があり、そこからパソコンの情報が抜かれてしまうという可能性があることにも注意しましょう。

 

サイトの調子がおかしい、マルウェア感染かもとお悩みの場合は、ぜひカスタマイズネットにお知らせください。



LINEで送る
Pocket



この記事の関連記事