ワードプレスドクターが多数のマルウェア駆除のご依頼を受けた経験から作ったワードプレス:マルウェアスキャン&セキュリティープラグイン [マルウェア・ウィルス検出と駆除] を利用してマルウェアを除染する方法を解説いたします。

はじめにーマルウェア駆除にあたってのご注意点

マルウェアの排除には、専門的な知識が必要です。マルウェアを不用意にクリーンアップすることによって最悪サイトが表示されないなどの不具合が起こることもございます。ご自身で行われる場合は下記の点に特にお気を付けください。

1 ワードプレスに元々含まれているファイルに寄生しているタイプのマルウェアの場合は、改ざん部分のみを慎重に削除いただく必要がございます。

2 ワードプレスの正規ファイルでない場合は、そのファイル毎削除されても問題は起こりにくいと思いますが、稀にその改ざんファイルをさらに別の改ざんファイルが読み込んでいることがございます。

この場合、改ざんファイルを削除すると呼び出し元にエラーが発生し最悪サイトが表示されないなどの不具合が起こる可能性がございます。エラーが起こりましたら呼び出し元ファイルの調査とそのファイルの改ざんも削除する必要があります。

3 データベースの感染は多くの場合、投稿にやウィジェットに埋め込まれたJavascriptコードになります。行ごと削除せずに、コンテンツに含まれるマルウェアの部分だけを取り除くことで多くの場合無害化することが可能です。

マルウェアや改ざんをスキャンする

ワードプレス:マルウェアスキャン&セキュリティープラグイン [マルウェア・ウィルス検出と駆除] をインストールいただき、「今すぐスキャン開始」ボタンをクリックします。

マルウェアが検出されると、検出リストが表示されます。
検出リストは、パターンマッチと、確定診断の2種類が表示されており、確定診断によってマルウェアと表示された場合は、ほぼ確実にサイトが改ざんされているとお考えいただいてよいかと存じます。

それではこのマルウェアの例から駆除していく方法を解説いたします。

実際にプラグインでマルウェアを駆除する

手順1 このファイルがワードプレスもしくはプラグインに元々含まれているファイルかどうか確認します

マルウェアは、ワードプレスやプラグインの正規ファイルに寄生する形で含まれていることがございます。
この場合、そのファイルを消してしまうと、サイトに不具合が起こる可能性が高くなります。

最もよくこのタイプのマルウェアが感染するのは、wp-config.phpやindex.phpになります。
ハッカーにとってはwp-config.phpやindex.phpは、ページが表示される度に実行されるため、マルウェアが自動的に実行されるようにするために都合がよいためです。

正規のファイルかどうか確かめるには?
下記のような点をお確かめいただくと、大まかに正規ファイルかどうかをつかむことは可能です。

※正規ファイルでない場合
1 wp- がついていない
2 class-がついていない
3 index.phpでない
4 無意味なランダムな文字列と.phpもしくは.icoという拡張子のファイル
5 ワードプレスの正規ファイルのつづり間違いのようなファイル名 xmlrrpc.php等

その他、実際にワードプレスのコアファイルやプラグインをダウンロードして、検出されたファイル名とパスにそのファイルがあるかどうか確認されることでも正規ファイルかどうかを調べることも可能です。

手順2 寄生タイプのマルウェアを駆除する

ファイルの表示編集ボタンよりファイルを表示します。

マルウェアのコードは検出や構造をわかりにくくするために、難読化され、一行の独特のコード文字列になっているため、多くの場合、コードを見るとどこからどこまでがマルウェアかどうかすぐにわかります。

上記のコードの場合、@include  ~ ; までを消して、変更の保存ボタンを押していただけましたら、マルウェアの駆除が完了します。
※/*e4f70*/ の部分は、コメントでハッカーがマルウェアが残存するか確かめるためのフラグのようなものです。削除されてもかまいません。

PHPのコードの様式を理解したうえで削除しましょう
マルウェアの駆除の際に、PHPのコードの構造を壊してしまうと、ファイルにエラーが出ることがあります。下記の点を理解いただいたうえで削除作業をされると事故が少なくなるかと存じます。

1 PHPプログラムは<?php ~ ?> の中に入っています。このタグが閉じ忘れていたり、<?phpで始まっていない場合プログラムエラーが出ますのでご注意ください。

※マルウェアが<?php マルウェアのコード ?> という形で埋め込まれている場合は、マルウェアの部分だけのPHP開始タグ<?php から ?>閉じタグまで削除します。

2 /**/はコメントと言って、PHPコード上には表示されますが実行はされない部分(無害)です。マルウェアが自身が残存するか確認するためや、検出を避けるためにマルウェアコードに複数忍ばせることもあります。

3 マルウェア検出プラグインが、検出しているのは、あくまでもマルウェア検出パターンマッチした行であり、そのほかの行もマルウェコードの一部である可能性があります。(ハイライト行だけ削除されてもマルウェアを駆除しきれていない可能性があります)

正規ファイルと、マルウェアの切り分けが難しい場合は、ワードプレス公式サイトから素のコードをダウンロードして比較することによってもどこからどこまでがマルウェアか確認された方がよい場合もございます。

手順3 スタンドアロンタイプのマルウェアを駆除する

ワードプレスやプラグイン・テーマの正規ファイルではない、単独のマルウェアは、そのまま駆除されても多くの場合問題は起こりません。

ただ、ごく稀にinclude や requireというPHPプログラム特有の処理で、他のマルウェアを読みこんでいたり、そのファイルが読み込まれていることがございます。
この場合、そのマルウェアファイルを駆除することによって別のマルウェアがエラーを引き起こしサイトの表示ができなくなることもございますので注意が必要です

こういった処理がマルウェアに含まれていないかは、コードが難読化されてわからないこともございますが、下記のようなサイトで難読化を解除してマルウェアのコードを調査してみることも可能です。

PHP 難読化コードの復元・デコード

WordPress ワードプレスのマルウェア駆除をプロフェッショナルが代行します。お気軽にご依頼・ご相談をお送りください