OptinMonster WordPress plugin hacked in CDN supply-chain attack

WordPressプラグインの「OptinMonster」、「TrustPulse」、「PushEngage」が、Awesome Motive社のコンテンツ配信ネットワーク(CDN)を標的としたサプライチェーン攻撃により侵害されました。

これら3つの製品のうち、リード生成およびコンバージョン最適化プラットフォームである「OptinMonster」が最も人気が高く、少なくとも120万のウェブサイトで利用されています。

ECセキュリティ企業のSansecが週末にこの攻撃を発見し、金曜日の22:17 UTCから22:42 UTCにかけて、OptinMonsterおよびTrustPulseのユーザーに対し、悪意のあるスクリプトが配信されていたことを突き止めました。

image

PushEngageについては、土曜日の19:02(UTC)まで悪意のあるJavaScriptコードの配信が続いていました。

このマルウェアは、WordPress管理者が感染したウェブサイトのページにアクセスした際にのみ作動し、認証トークンやノンスを収集して、それらを利用して不正な管理者アカウントを作成していました。

その後、侵入者は自己隠蔽型のバックドアプラグインをインストールし、Tidioを装ったドメインとの通信チャネルを確立して、新たに取得したデータを送信しました。

このプラグインは、Webシェル(「WPM File Manager & Shell」)や任意のPHPコードの実行を含む完全なリモートアクセス機能も提供しており、攻撃者に侵害されたウェブサイトの完全な制御権を与えていた。

「攻撃者は、プラグインの偽装名を変更しつつ、リネーム後もロジックをバイト単位で同一に保っている」とSansecは述べている

「これまでに『Content Delivery Helper』(content-delivery-helper、v2.7.1)として、また現在は『Database Optimizer』(database-optimizer、v2.9.4)として配布されているのを確認しています。」

Awesome Motiveは本日早朝、この事件に関するセキュリティアドバイザリを発表し、ハッカーがWordPressプラグイン「UpdraftPlus」の既知の脆弱性を悪用して、同社の環境内にあるサーバーへのアクセス権を取得したと説明した。

このサーバーはマーケティング用ウェブサイトをホストしており、同社の本番インフラやデータシステムには接続されていませんでしたが、同社のCDNアカウントの認証情報を保管しており、ハッカーはこれを盗み出しました。

攻撃者は盗んだCDN APIキーを使用して、Awesome MotiveのCDN経由で配信されるJavaScriptファイルを改ざんし、ウェブサイトがCDNから直接、気付かれないうちに悪意のあるコードを読み込むように仕向けました。

影響を受けたファイルは以下の通りです。

  1. a.omappapi.com/app/js/api.min.js – OptinMonster
  2. a.opmnstr.com/app/js/api.min.js – OptinMonster
  3. a.optnmstr.com/app/js/api.min.js – OptinMonster
  4. a.trstplse.com/app/js/api.min.js – TrustPulse

Awesome Motiveの報告によると、6月12日にOptinMonsterおよびTrust Pulse向けに悪意のあるスクリプトが短期間配信されたとのことですが、PushEngageへの影響については確認されていません。

「その後、マーケティングサイトを修復し、新しいサーバーへ移行するとともに、CDN APIキーを含むすべての認証情報を更新しました」とAwesome Motiveは述べています

同社はまた、アプリケーションサーバー、ソースコード、およびプラグインのホスティングサーバーが侵害されていないことも保証した。

「当社のアプリケーションサーバー、ソースコード、およびOptinMonsterやTrustPulseのアカウント情報を保管するシステムは別々にホストされており、侵害されていません」と同社は述べた。

「当社が保有するアカウントデータや個人情報にアクセスされたという証拠は一切ありません。」

影響を受けた可能性があるサイト運営者には、以下の対応を推奨します:

  • 不正な管理者アカウント「developer_api1」または「dev_xxxxxx」の有無を確認し、削除する
  • wp-content/plugins 直下のファイルシステムを点検し、隠されたバックドアプラグインがないか確認する
  • サーバーサイドでのマルウェアスキャンを実行する
  • 管理者パスワード、APIキー、データベース認証情報、およびWordPressのセキュリティソルトを更新してください。

悪意のあるコンテンツは削除されましたが、不正な管理者アカウントや隠されたバックドアプラグインが残っている限り、攻撃者は侵害されたウェブサイトへのアクセス権を維持し続けます。