Cloudflare、ECサイトを標的とする未知のJavaScript攻撃を「Page Shield ML」で自動検出
要点
-
Cloudflareは、従来のセキュリティスキャンをすり抜ける4件の悪意あるJavaScript攻撃(計8ペイロード)を機械学習で検出したと発表した。
-
検出されたコードの大半はVirusTotalやURLScanで悪意判定されておらず、特定条件下でのみ動作する潜伏型の挙動を持っていた。
-
検出システムは、構文木を解析するGNNとWorkers AI上のLLMによるセカンドオピニオンを組み合わせて運用されている。
-
複雑なコードの解析には約6系統の先端AIモデルによるアンサンブル判定を活用し、結果をGNNの継続学習へフィードバックしている。
-
米Cloudflareは2026年9月16日、同社のクライアントサイドセキュリティ機能「Page Shield ML」により、ECサイトなどの実トラフィックから従来のセキュリティスキャナーを回避する4つの悪意あるJavaScript攻撃キャンペーンを自動検出したと発表した。
-
同社の調査によると、検出された8つのペイロード(攻撃コードの実体)のうち7つはVirusTotalに存在せず、URLScanでも悪意ある判定を受けていなかったという。同社は、コードの構造を解析するグラフニューラルネットワーク(GNN)と複数のAIモデルを組み合わせることで、特定の条件下でのみ活動する巧妙な攻撃コードを捉えたと説明している。
既存スキャナーの死角を突く潜伏型スクリプト
オンラインストアにおける悪意あるJavaScript攻撃は、ページの表示や決済処理が正常に見える裏で、アフィリエイト報酬の不正取得やクリックの乗っ取り、アクセス解析の改ざん、遠隔コード実行などを実行する。
今回確認された攻撃スクリプトは共通のシグネチャ(攻撃パターンの識別情報)を持たず、アクセス元の端末種別、国、時間帯、リファラ(参照元URL)、ブラウザの状態などが特定の条件を満たすまで休止状態を保つよう設計されていた。たとえば、アドインジェクター「Lnkr」ファミリーの特定ペイロードは、URLScanに約2年半にわたり「未分類」としてインデックスされており、2024年1月の直接スキャンでも検知されなかった。VirusTotalには過去に取り込まれていたものの、いつ悪意判定が付与されたかは公開履歴から確認できない状態だったという。
Cloudflareは、ハッシュ値(データから算出される一意の識別値)が判明してから悪意判定されるまでにはタイムラグが存在するため、ラベルの付与を待つ防御手法では手遅れになると指摘する。攻撃コードが標的の訪問を待って発火する性質を持つ以上、ブラウザ上で実行されるコードを継続的に可視化することが不可欠だとしている。
GNNとAIモデルによる多層的な検知アプローチ
同社の「Page Shield ML」では、コードを文字列ではなく構文木(プログラムの文法構造をツリー状に表したデータ構造)に基づくグラフとして解析するGNN(Graph Neural Network:グラフ構造データを扱うニューラルネットワーク)を採用している。関数や変数の呼び出し関係を把握することで、コードの難読化や変数名の変更、コード圧縮が行われていても、不審なパターンを特定できるという。
運用では、GNNが悪意ありと判定したスクリプト(全トラフィックの0.3%未満)を「Workers AI」上の軽量なLLM(大規模言語モデル:大量のテキストデータから学習したAIモデル)に渡し、セカンドオピニオンとして再検証を行っている。これにより誤検知を低く抑えつつ、高い検出率を維持している。
さらに複雑なスクリプトの分析には、オープンウェイトモデルを含む約6系統の先端AIモデル群をエージェントとして起動し、制限付きのJavaScript実行環境を用いてコードを展開・解析させている。今後は隔離環境「Cloudflare Sandbox」を用いた詳細解析にも拡張する予定だ。各モデルの判定結果は重み付け投票により確率分布として算出され、過半数に満たない場合や悪意判定時のみ人間のレビュアーが確認する。この結果はGNNの再学習データとしてフィードバックされているという。
検出された4つの攻撃手口
Page Shield MLが捕捉した4つの攻撃オペレーションの内容は以下の通りである。
- 営業時間外のアフィリエイト報酬乗っ取り: モバイル端末や時間帯による実行制御を行い、動的なページ監視とクリック乗っ取りを実施。数日間の休止期間を設けて検知を逃れる。
- クリック不要のアフィリエイト報酬窃盗: 画面外の見えないiframe(HTML内で別のWebページを埋め込む枠)や非表示リンクの自動クリック、不要なIP調査を組み合わせ、1時間ごとに不正先を切り替える。
- 旧型検索妨害ツールのバックドア化: 特定キーワードの無効化やローカルストレージ設定による監視回避を行いつつ、外部から任意のJavaScriptを読み込んで実行するバックドアを開く。
- 広告経由モバイルトラフィックのクローキング: キャンペーンタグが付与されたモバイルユーザーに対してストア側の監視を遮断する。
ブラウザ側で動作するクライアントサイドスクリプトは、静的なスキャンを巧妙に回避する手口が増えており、動的な振る舞いを多角的に捉えるAIによる常時監視が重要性を増している。