ワードプレスのマルウェアによくみられるbase64_decode,base64_encodeについて、なぜよくこの関数が現れるのかと、この復元方法について解説いたします。

なぜワードプレスのマルウェアにはbase64_decode,base64_encodeが良く含まれる?

base64_encodeは文字列などのデータを特定の長さで区切って 64 種類の文字に対応付ける方式です。この事により、様々なデータを文字列として取り扱い、データベースに記録しやすくしたり、文字化けやデータの破損を防ぐために使われます。
base64_decodeはそれを元に戻すための関数です。

※特定の長さで区切ると字足らずになるデータはbase64_encodeでは==で埋められます。また、base64_decode,base64_encodeはPHP(ワードプレスが作られているプログラム言語)の関数ですが、JAVASCRIPT(ブラウザーで実行されるスクリプト言語)ではbtoa,atobという関数名になり、こちらもよく不正なコードに使われます。

この、エンコードされたbase64文字列は、元の内容が一見してわかりにくくなるという特性があります。この為コードが何をしているかわからないようにするためや、マルウェアの検出(パターンマッチング)から逃れる為にマルウェアの難読化処理によく使われます。

base64_encodeされた文字列を元に戻す

base64_encodeを元に戻して内容を見てみるにはhttps://www.base64decode.org/ 等のオンラインサービスが便利です。

下図はマルウェアのbase64_decodeされている文字列をデコード(複合化)してみた画像です。
この文字列には、ワードプレスのHTACCESSファイルを改ざんして、ログインできなくする設定が含まれていることが分かります。

上記の例では1段階のbase64_decodeで難読化解除できましたが、マルウェアによっては何重にもbase64_encodeされていたりgzinflate(データの圧縮処理)やstr_rot13(文字列をずらす)などが組み合わされて難読化処理されている場合もあります。

str_rot13(base64_rncode(base64_encode(gzinflate(隠したい文字列)))

base64系の難読化されたマルウェアを検出して駆除

base64系の難読かパターンは当社開発の【無料】ワードプレス:マルウェアスキャン&セキュリティープラグイン [マルウェア・ウィルス検出と駆除] で高い精度で検出可能です。

ワードプレスのマルウェアはPCウィルスと違い、きわめて多様な難読化処理による膨大なパターンがあります。WPDoctorワードプレス:マルウェアスキャン&セキュリティープラグインではこの特性に合わせ、短くて大量の検出パターンで数千ファイルを高速に検査できるよう設計されています。
よろしければご利用いただけましたら幸いです。

また、マルウェアの影響で管理画面にログインできなくなってしまっていたり、プラグインだけでは検出できないマルウェア等をより完全に駆除されたい場合は、年間数百サイトのマルウェア駆除を代行させていただいているWPドクターまでお気軽にご相談お送りください。

WordPress ワードプレスのマルウェア駆除の専門家集団WPドクターまでお気軽にご依頼・ご相談お送りください