ワードプレスがハッカーによって改ざんされたときにどのようなマルウェア(不正な動作を行うプログラム)がサイトに埋め込まれるかを解説いたします。
ワードプレスに埋め込まれるマルウェアの特徴
ワードプレスに含まれる古いプログラムの脆弱性や、管理者権限の奪取によってサーバーに不正に侵入したハッカーは様々なファイルに様々な不正なプログラムを埋め込みます。
マルウェアのコードは、その多くが、一定の特徴を持っています。
1 難読化処理による、多数のコメント、ユニコード文字、Base64
マルウェアコードは、そのコードが何をしているかわからないようにしたり、マルウェアの検出を防ぐために、多くの場合難読化されています。
この為、コメント(/*で囲まれた部分)が大量にさしはさまれていたり、ユニコード(スラッシュと数字)という特殊な表記法や、Base64エンコード(文字を16進数に変換したもの)が含まれることが多いです。
2 長い1行
1の難読化には、難読化のためのソフトウェアが利用される場合が多く、そのソフトウェアは出力を1行にしてしまう事が多いため、マルウェアが埋め込まれたファイルは、非常に長い1行のコードが含まれる場合が多いです。
3 evalが最終処理に含まれる
evalとは、PHPプログラムの関数で、文字列をプログラムとして解釈して実行する命令です。この関数は、ワードプレス本体やテーマプラグインでめったに使われることはないのですが、マルウェアの場合、難読化処理をした文字列を実行するための最終処理として高確率で含まれます。
4 @include
include文は別のプログラムを読み込むための処理です。マルウェア本体を様々なファイルから読み込むためにこのinclude文が使用されます。@includeとなっている場合もあります。
5 意味のない文字列のファイル名、または$変数
一般的なプログラムは、そのファイルや含まれるプログラムが何をしているのかわかりやすいように、保守性を考えられて、名称が決められています。
翻ってマルウェアは、それを一目でわからないように秘匿するのが目的であるため、ランダムな文字列のファイル名や関数がコードで多数使われている場合が多いです。
上記のような文字列を含むファイルがサイトに含まれていたら?
上記のようなコードがサイトのプログラムに含まれている場合、マルウェアである可能性が高いものの、正規のコードでも何らかの理由によって難読化されていたり、コードの書き方が一見してマルウェアっぽく見えてしまうものもございます。
このため、すぐに削除を行ったりせずに、一旦、マルウェアを検出するプラグイン等で、マルウェア判定されるかをお調べいただくことをお勧めいたします。