Cloudflareは、電子商取引サイトを標的とした4件の悪質な活動を明らかにした。これらには、訪問者のブラウザー内で店舗の挙動を操作できる8本のJavaScriptスクリプトが含まれており、サイトが壊れているように見えないまま動作した。影響には、紹介手数料の窃取、クリックの傍受、分析データの偽装、監視・サポートツールの無効化、遠隔サーバーから追加のJavaScriptを読み込むための経路の開設が含まれていた。
同社によると、Page Shieldに属するClient-Side Securityの機械学習モデルは、ライブトラフィック中に8件すべてのペイロードを検出した。後に一般的なセキュリティツールでキャンペーンを調査したところ、7件のペイロードはVirusTotalに現れず、URLScanもいずれのケースについても悪質との判定を下さなかった。Cloudflareによれば、Lnkrファミリーの一つの亜種は、2024年1月の直接スキャンを含め、判定されないまま約2年半にわたってURLScanにインデックスされた状態だった。
一時的なスナップショットを回避する攻撃
4件の活動は、統一されたシグネチャや単一の難読化手法に依存していなかった。一部のスクリプトは特定の端末、国、時刻、またはブラウザーの状態を待ち、別のスクリプトはページの読み込み後に動的に現れる要素を監視したり、不可視のフレーム内で紹介リクエストを実行したり、外部サーバーから新たな命令を読み込んだりした。こうした条件により、ページへの自動アクセスを1回行うだけでは、挙動を検出できない。
1件目の活動では、ペイロードが携帯電話ユーザーによる商品のクリックを傍受し、攻撃者が指定したページを新しいタブで開く一方、元のタブを紹介リンク経由で遷移させ、購入を手数料を受け取る資格のないアカウントに帰属させようとした。活動中の亜種は、最大3日間の待機時間と、後からページに追加される要素の監視を利用していた。
2件目の活動は、クリックを必要とせず、隠しフレームまたはプログラムによってクリックされるリンクを通じて紹介手数料を盗んだ。Cloudflareは、リクエストが実際に売上の帰属や手数料の支払いにつながったことを証明できなかったが、コードが隠れた自動紹介リクエストを実行していることは確認した。
検索の妨害からバックドアまで
3件目の活動は、以前に検索結果の傍受と関連付けられていたLnkrファミリーを再利用した亜種だった。電子商取引サイト内では、従来の機能の一部は休止したままだったが、スクリプトは訪問者に関するデータを送信し、遠隔サーバーから任意のJavaScriptを読み込んで実行する仕組みを含んでいた。Cloudflareは、第二段階でそのサーバーが実際に何を実行したのかを特定しなかった。
4件目の活動は、有料キャンペーン経由で訪れた携帯電話ユーザーを標的とした。端末、キャンペーン、ネットワーク、地理的位置に関する一連の条件を通過した後、監視・分析用の9つのツールを削除または無効化し、チャットと問い合わせフォームを隠し、広告・分析用の識別子を攻撃者が管理するものに置き換えようとした。同社は、代替の分析スクリプトの読み込みとトラッキングシグナルの送信を確認したが、セッションデータの窃取や収益の転用が成功したことは証明していない。
実務上、何が変わるのか
Cloudflareの仕組みは、既知のアドレスやフィンガープリントを探すのではなく、JavaScriptの構造とその構成要素間の関係を分析するグラフニューラルネットワークモデルに基づいている。疑わしいスクリプトは、分析対象トラフィックの0.3%未満だが、小型言語モデルに送られ、誤検知を減らすためのセカンドオピニオンを得る。その後、同社は複数の高度なモデル群を使い、コードを正常な挙動、決済情報の窃取、その他のマルウェア、ステルス型マイニングなどのカテゴリーに分類し、悪質または判定不能なケースについては人間がレビューする。
店舗運営チームにとって最も重要な点は、マーケティングチェーンと外部タグが攻撃対象領域の一部になったということだ。ただし、この記事の内容は、Google Tag Manager、AWS、またはドメインが模倣されたマーケティングプラットフォームが侵害されたことを証明するものではなく、迅速なレビューを欺くために類似ドメインが使われたことを示している。したがって、ページを1回だけ検査したり、既知のファイルの分類を待ったりするだけでは不十分である。異なる状態、端末、時刻における挙動の監視と、動的に読み込まれるコードの分析が、この種の攻撃を検出するための中核となる。