2017.02.01 2017.02.11

効果を検証!WordPress不正コード(マルウェア)検知するウィルス・スキャンプラグイン

LINEで送る
Pocket

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

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

不正コード(マルウェア)を検知した!

ウィルスに感染した!

サイトが改竄されている!
そんな困った時に使える便利なウィルスチェックのプラグインを紹介します。実際に不正コードを埋め込んだWordPressサイトで本当にウィルスを検知するかを検証してみました。

不正コード(マルウェア)検知プラグイン検証の構成

以下のファイルに不正コード(マルウェア)を埋め込みました。マルウェアのコードは感染したサイトから抽出した本物のマルウェアコード。このコードを埋め込んだサイトを公開しているとGoogleからマルウェア感染の通知が飛んでくる実績ありの本物です。

  1. デフォルトテーマ(Twenty Fourteen version 1.9)のfooter.php内にマルウェアコードを記述
  2. プラグインAll in One SEO Packのindex.phpにマルウェアコードを記述
  3. プラグインAll in One SEO Packフォルダに新規マルウェアファイルを設置
  4. WordPressインストールディレクトリーのindex.phpにマルウェアコードを記述
  5. wp-adminディレクトリーにマルウェアファイルを設置
  6. wp-includesディレクトリーにマルウェアファイルを設置
  7. wp-contentディレクトリーにマルウェアファイルを設置

 

クリーンインストールしたWordPressを検証時に利用可能な最新バージョン(4.7.2ja)にアップグレード。システム上から本検証に不要なテーマ、プラグインを削除し、検証用のプラグインンを都度有効化しウィルススキャンンを行いました。

 

1.Theme Authenticity Checker (TAC)

tacプラグイン

このプラグインはテーマのみを対象にウィルススキャンしてくれるプラグインです。プラグインなどのテーマ外のファイルについてはチェックしません。使い方は非常にシンプルです。インストールするとダッシュボード上の「外観」に「TAC」と表示されますこのボタンをクリックするとテーマのチェックをしてくれます。

tac2

 

有効化しているテーマだけでなく、テーマディレクトリーに存在するテーマ全てが対象です。

「TAC」をクリックすると、インストールされているテーマの結果が表示されます。ウィルススキャンにありがちな、対象を選択するオプションなど一切ありません。スキャンの結果については異常がなければ「Theme OK」、異常がある、つまりマルウェアと思わしきファイルがあるとピンク色で表示されます。

tac3

異常があるテーマの「Detail」をクリックすると対象ファイルを表示してくれます。

tac4

 

検証用にマルウェアを埋め込んだ、Twentyfourteenテーマのfooter.phpが対象だと特定してくれました。このプラグインの動作はここまでです。テーマのみのウィルス検知を行ってくれますが、マルウェアの削除やテーマ外のマルウェアの検知は行いません。

 

Theme Authenticity Checker (TAC)の使いどころ

サイトにマルウェアが埋め込まれたいるかのチェックという意味では、マルウェア検知の対象がテーマに限定されていることから十分とは評価できません。サイトを制作する際の調査として外部から入手したテーマのチェックや、外注して制作したWordPressを受け取る際に自社でチェックを行うといった利用には十分かもしれません。※ただしあくまでテーマのチェックです。

 

2.Exploit Scanner

ex

 

このウィルススキャンプラグインの対象はかなり広範囲です。

This plugin searches the files on your website, and the posts and comments tables of your database for anything suspicious. It also examines your list of active plugins for unusual filenames.
プラグイン公式ページ:https://ja.wordpress.org/plugins/exploit-scanner/

 

サイトのファイル、データベースに保存されている投稿やコメントの怪しいコード。有効化しているプラグインや、一般的でない名前を持つファイルです。不正なコードを検知してくれますが、マルウェアを駆除してくれるプラグインではありません。

 

プラグインを有効化すると、ダッシュボード「ツール」の項目に「Exploit Scanner」が表示されます。このボタンからプラグインのスキャン画面へ移動します。プラグインの画面ではスキャン対象のファイルについて一部絞り込み機能があります。設定を行った後「Run the Scan」をクリックすると、ウィルススキャンを実行してくれます。

Exploit Scanner

 

マルウェアを全て検知した!

スキャンした結果、今回人工的に埋め込んだマルウェアを全て検知することに成功しました。以下はその画面です。左側が対象のファイル、右側が不正コードです。例えば一行目のメッセージはプラグインAll in One SEO Packのindex.phpのにマルウェア(base64_decode~)が存在することを示してくれています。テーマだけがウィルススキャンの対象ではなく、プラグインファイル、本来存在しないファイル名のファイルまでチェックしていることを確認できました。(3行日目が、プラグインファイル内に生成した本来存在しないファイルです。5行目がテーマ内のfooter.phpのマルウェア。6行目はWordPressインストールディレクトリーにあるindex.phpです)。

ウィルススキャンの結果

 

このプラグインが最高のウィルスチェックプラグインか?

広範囲に不正コードをチェックしてくる優れたプラグインですが、初心者向けではありません。

不正コードを埋め込んだファイル以外にも、警告を表示することがわかりました。エラー内容が表示されますが、そのエラーの内容を理解する最低限の知識がないとマルウェアを駆除するのは困難です。

エラーの内容がわかり、プラグインの警告を一つずつ確認するレベルの管理者がいるサイトでは非常に使えるプラグインと言えます。

もう1点注目したい点として、「ウィルスチェックの対象にWordPressのデータベースが含まれる」という点です。他のウィルスチェックプラグインは、テーマファイル、プラグイン、WPコアファイルなどディレクトリーに存在するファイルに限定されているものが多いのですが、このExploit Scannerプラグインはデータベースもチェックしてくれる機能があります。

攻撃者は実ファイルへの攻撃だけでなく、データベースの改竄を行うこともあります。他のプラグインでチェックしきれないデータベースの改竄をチェックすることを忘れてはいけません。

 

3.Anti-Malware

AntiMalware

プラグインを有効化すると、ダッシュボードに専用メニューが表示され、ここからこのプラグインの操作を行います(Anti-Malwareプラグインはウィルスのチェックだけでなく、ファイヤーウォールの機能も提供しています。これらの機能もここから操作できます)。

 

antimalware

 

ウィルスのチェックを行うには「Scan Settings」ページへ移動します。

ウィルススキャンの対象はテーマ、プラグイン、WPコアファイル。以下はウィルスチェックの設定画面です。対象のディレクトリーの選択、階層、ファイル(拡張子)などを細かく設定できます(このディレクトリーは対象外なんてオプションもあります)。

 

Anti-Malware

 

設定が煩わしい場合は、何も選択せず「Run Complete Scan」をクリックしましょう。初期設定されているオプションでウィルススキャンが実行されます。

 

ウィルスチェックで全てのマルウェアが検知出来た!

スキャンの設定項目を初期状態のままスキャンした結果です。全ての不正コードを含むマルウェアを検知することができました。怪しいと思われるファイルを16個表示しています。この中に検証の為に設置した不正コードを含むファイルが7個全て含まれています。

マルウェアのスキャン結果

 

このAnti Malwareプラグインも不正コードの検知は行いますが、不正コードの除去を行ってくれるわけではありません。ファイル内部を確認し、不正なコードを削除する必要があります。

また、このAnti Malwareプラグインの対象にデータベースは含みません。実ファイルへの改竄被害がない場合でもデータベースへの攻撃を受けている可能性がありますので、データベースについても別途確認を行う必要があります。

 

ウィルスチェックプラグインのまとめ

WordPressへ埋め込まれた不正コード(マルウェア)を発見してくれるプラグインは多々あります。

それぞれスキャンしてくれる対象が異なる点について注意する必要があります。不正なコードを検知してくれる便利なプラグインですが、それらが不正なコードであるかの確認と、その後の対応は管理者が行うことになります。専門の担当者がいない場合は、常日頃からバックアップファイルを取得し、検知後のファイルの差異を比較するなど対応を行う準備をしておきましょう。

もし、マルウェアコードが一か所でその他の感染がないのであればテンプレートファイル上からマルウェアのコードを削除しましょう。データベースやその他のファイルも感染している場合があるので、自分で特定できない場合は可能な限りのバックアップを取得し、WordPressをデータベースから削除し、サイトを再構築することをお勧めします(経験上、マルウェアのコードが一か所見つかると、他のファイルも感染しているケースが殆どです)。

最後に、本検証は安全に十分な対策を行ったうえで専門家が実施しています。



LINEで送る
Pocket



この記事の関連記事