ワードプレスに感染するポリモーフィックマルウェア(多形性マルウェア)について解説いたします。

ポリモーフィックマルウェアとは?
ポリモーフィックマルウェアとは一言で言えば、内容は同じなのに、難読化やコードのランダム化の方法がファイルごとに違うような、コードの見た目だけが違うマルウェアの事です。
なぜこのようなマルウェアが昨今猛威を振るっているかと言いますと、このようなマルウェアは不正な機能そのものの内容は同じでもコードが違うために、パターン検出が困難となり、マルウェア検出プラグイン等の検査をすり抜けることが出来るからです。
例として下記の2つのマルウェアコードの一部を見てみます。
<?php $Vxql = 'Sy1LzNFQKyzNL7G2V0svsYYw9dKrSvOS83MLilKLizXSqzLz0nISS1K ...コードが続く
<?php $xiHfy = 'Sy1LzNFQKyzNL7G2V0svsYYw9dKrSvOS83MLilKLizXSqzLz0nISS1K ...コードが続く
この例では最初の$Vxql の部分だけ違う事が分かります。
マルウェア検出ソフトが「?php $Vxql = ‘Sy1LzNFQKyzNL7G」 という検出パターンで検出しようとしても1つしか検出できないことが分かります。
上記2つのマルウェアコードはSy1LzNFQKyzNL7G2V0svsY という共通部分はあるものの、高度なポリモーフィックマルウェアはコードほぼ全体がかなり違う場合もあります。また、このようなコードはサイトのドメインなどをマルウェアのランダム化の種として使うようなものもあり、サイト毎にマルウェアのコードが違うという極めて検出が難しい物もございます。
ポリモーフィックマルウェアを検出するには?
ポリモーフィックマルウェアは、PCのウィルスと違い、ワードプレスが構築されているPHPというスクリプト言語がコンパイル(機械語への変換)を必要とせず、かつ多様な難読化の手法があり、それをサーバー上で自動実行するようなことも可能であるという特質から生まれてきたマルウェアです。
このようなマルウェアを検出するには、下記の3つの方法論が考えられます。
1 正規ファイル群との差分を調査して検出
2 より膨大なパターンで検出
3 正規表現を使い、外形だけで検出
正規表現を使えば、例えば
<?php $Vxql = 'Sy1LzNFQKyzNL7G2V0svsYYw9dKrSvOS83MLilKLizXSqzLz0nISS1K ...コードが続く
のようなマルウェアは下記のような抽象的な正規表現の形での検出が可能です。
/\?php $[a-z]{4,5} = '^\S{1000}/i
※?PHPの後に$が出てきて、4文字ないしは5文字のアルファベットの後に = ‘がありそのあとに空白を含まない1000文字以上の文字列が続く。という意味の正規表現になります
ただ、1,2,3の方法論は難易度が高く、正規表現でマルウェア検出するプラグインでは最新のパターンが登録されていないこともあり、検出には限界がある場合もあります。
こういった場合は、マルウェア駆除の専門家にご相談いただくことをお勧めいたします。




