エグゼクティブサマリー
完全に安全に見えるWebページにアクセスすることを想像してみてください。悪意のあるコードや不審なリンクは見当たりません。しかし、数秒後にはパーソナライズされたフィッシングページに変貌します。
これは単なる幻想ではありません。これはWeb攻撃の次のフロンティアであり、攻撃者は生成AI(GenAI)を使用して、被害者が一見無害なWebページを訪問すると読み込まれる脅威を構築します。
この記事では、一見問題がなさそうに見えるWebページが、信頼できる大規模言語モデル(LLM)サービスに対するクライアント側APIコールを利用して、悪意のあるJavaScriptをリアルタイムで動的に生成するという、新しい攻撃手法を検証します。攻撃者は、巧妙に作られたプロンプトを利用して、AIの安全ガードレールをバイパスし、LLMを騙して悪意のあるコードスニペットを返すように仕向けることができます。これらのスニペットはLLMサービスAPIを介して返され、被害者のブラウザで実行時にアセンブル・実行され、完全に機能するフィッシングページを作成します。
このAIを活用したランタイムアセンブリ技術は、回避(バイパス)できるように設計されています:
- フィッシングページのコードはポリフォーミック(多形)であるため、各アクセスに対して固有の構文的に異なるバリアントが存在します
- 悪意のあるコンテンツは信頼できるLLMドメインから配信され、ネットワーク分析を回避します
- 実行時にアセンブルされ、実行されます
この新しいクラスの脅威に対する最も効果的な防御策は、ブラウザ内で直接、実行時点で悪意のあるアクティビティを検出しブロックできるランタイム行動分析です。
Palo Alto Networksの顧客は、以下の製品とサービスを利用することにより強固な保護を構築することができます:
- Advanced URL Filtering
- Prisma AIRS
- Prisma Browser (Advanced Web Protection付き)
Unit 42 AI Security Assessmentは、組織全体での安全なAIの使用と開発を支援します。
侵害された可能性があると思われる場合、または緊急の案件がある場合は、Unit 42 インシデントレスポンスチームにご連絡ください。
| 取り上げる脆弱性 | avaScript, LLMs, フィッシング |
LLM強化型ランタイムアセンブリ攻撃モデル
当社の 以前の研究では、攻撃者がLLMを効果的に利用して、悪意のあるJavaScriptサンプルをオフラインで難読化する方法を示しています。他の情報源からの報告では、侵害されたマシン上でランタイム実行中にLLMを利用し、攻撃をカスタマイズするキャンペーンが報告されています(例えば、LLMで駆動する マルウェアや ランサムウェア)。
また、Anthropicの研究者も、LLMがサイバー犯罪者を支援していることを示す報告書を発表しています。 LLMがサイバー犯罪者を支援し、AIが組織したサイバースパイキャンペーンに一役買っていることを示す報告もあります。.このような最近の発見に触発され、脅威アクターがどのようにしてLLMを利用し、実行時にWebページ内でフィッシング攻撃のペイロードを生成、アセンブル、実行し、ネットワーク分析による検出を困難にするかを研究しました。以下では、この攻撃シナリオの概念実証(POC)の概要について説明し、この攻撃リスクの影響を軽減するための手順を示します。
PoC(概念実証)による攻撃モデル
攻撃シナリオは、一見安全に見えるページから始まります。被害者のブラウザにロードされると、最初のウェブページは、広く利用され信頼できるLLMクライアント(たとえば、DeepSeekやGoogle Geminiなど、ただしPoCは多くのモデルで有効化できます。)に対してクライアント側のJavaScriptをリクエストします。
攻撃者は、LLMを騙して悪意のあるJavaScriptスニペットを返させ、安全なガードレールをバイパスするよう巧妙に作られたプロンプトを利用することができます。これらのスニペットはブラウザーの実行時(ランタイム)にアセンブルされ、実行され、完全に機能するフィッシングページをレンダリングします。このため、静的で検出可能なペイロードは残りません。
図1に、LLMを利用して既存の攻撃を強化し、防御を回避するPoCを開発した方法を示します。最初の2つのステップでは初期準備を行い、最後のステップでは実行時にブラウザ内でフィッシングコードを生成し実行します。

ステップ1:悪意のあるWebページまたはフィッシングWebページの選択
攻撃者の最初のステップは、アクティブなフィッシングや悪意のあるキャンペーンによりWebページを選別し、目的の機能を実行する悪意のあるコードタイプのモデルとして利用することでする。そこから、ユーザーに表示される最終ページを動的にレンダリングできるようにするため、リアルタイムで生成されるJavaScriptのコードスニペットを作成します。
ステップ2:悪意のあるJavaScriptコードのLLMプロンプトへの変換
攻撃者の次のステップは、JavaScriptコードの機能をプレーンテキストでLLMに説明するプロンプトを作成することです。彼らはプロンプトを繰り返し改良し、既存のLLMガードレールをバイパスする悪意のあるコードを生成します。こうして生成したスニペットは、構造的にも構文的にもさまざまに異なり、攻撃者は同じ機能を持つポリモーフィックコードを作ることができます。
ステップ3:実行時における悪意のあるスクリプトの生成と実行
次に、攻撃者は巧妙に細工を施したこれらのプロンプトをWebページに埋め込み、被害者のブラウザに読み込ませます。Webページはこのプロンプトを使って、広く使われている正規のLLM APIエンドポイントに悪意のあるコードスニペットを生成するよう要求します。これらのスニペットは、広く使われ信頼できるドメイン経由で送信することにより、ネットワーク分析を回避することができます。その後、生成されたスクリプトをアセンブルして実行し、悪意のあるコードやフィッシングコンテンツをレンダリングすることができるようになります。
この攻撃手法がいかに回避を助けるか
このテクニックは、フィッシングやマルウェアの配信URLでよく見られる、既存の回避的なランタイムアセンブリ動作に基づいています。例えば、日々検出される悪意のあるWebページの36%は、eval関数を使用して構築された子スクリプト(たとえば、取得、デコード、またはアセンブルされたペイロード)を実行するなど、ランタイムのアセンブリ動作を提示しています。Webページの実行時にLLMを利用することで、攻撃者は次のようなメリットを得ることができます :
- ネットワーク分析の回避:一般的なLLM APIエンドポイントのドメインへのアクセスはクライアント側から許可されることが多いため、LLMによって生成された悪意のあるコードは、信頼できるドメインからであればネットワーク経由で転送できる可能性があります。
- 悪意のあるスクリプトの多様性は、アクセスのたびに増加:LLMはフィッシングコードの新しいバリアントを生成して、ポリモーフィズムを高めることができます。そのため、発見がより困難になる可能性があります。
- ランタイムアセンブリとJavaScriptコード実行を使用した検知の複雑化: 実行時にこれらのコードスニペットを組み立てて実行することで、被害者の場所やメールアドレスに基づいてターゲットブランドを選択するなど、よりカスタマイズされたフィッシングキャンペーンが可能になります。
- プレーンテキストによるコードの難読化:コードをテキストに変換してWebページ内に隠すことは、難読化の一形態と見なすことができる。攻撃者は一般的に、悪意のあるコードを視覚的に隠し、検出を回避するために、さまざまな従来技術(エンコード、暗号化、コードの断片化など)を採用します。高度な分析では、式を評価することで従来の難読化手法を特定することが多いが、各スニペットをLLMにかけることなくテキストを実行コードとして評価することは、防御側にとってより困難です。
PoCの例
PoCのリサーチにおいて、この拡張機能が実際のフィッシングキャンペーンにどのように適用できるかを実証し、上記で概説したステップを通して回避技術を強化することができることを示しました。このPoCの概要は以下の通りです。
ステップ1:悪意のある/フィッシングWebページの選択
PoCでは、Logokitとして知られている高度な実際のフィッシングキャンペーンによるWebページを再現しました。実際のフィッシング攻撃では、静的なJavaScriptのペイロードを使用して、一見安全に見えるWebフォームを説得力のあるフィッシングルアーに変貌させます。このスクリプトは、アドレスバーにある被害者の電子メールに基づいてページをパーソナライズする機能と、取得した認証情報を攻撃者のWebサーバーに流出させる機能という、2つの重要な機能を提供します。
ステップ2:悪意のあるJavaScriptコードのLLMプロンプトへの変換
このPoCでは、広く使われているLLMサービスを利用することで、ブラウザのJavaScript内からチャットAPIクエリでアクセスすることができます。攻撃者による悪用の可能性を低減させるため、この特定のAPIの名前は公開しません。このLLM APIを使って、クレデンシャルハーベスティングに必要なコードを動的に生成し、ターゲットのウェブページに埋め込みました。悪意のあるペイロードはブラウザ内で動的に生成されるため、ネットワーク経由で送信される最初のページは良性であり、ネットワークベースのセキュリティ検知機能を本質的に回避することができます。
攻撃の成功は、LLMの内蔵セーフガードを回避するための入念なプロンプトエンジニアリングにかかっています。私たちは、単純な言い換えが驚くほど効果的であることに気が付きました。
たとえば、一般的な$AJAX POST関数に対するリクエストは許可されましたが(図2参照)、「認証情報を流出させるコード」に対する直接のリクエストはブロックされました。さらに、侵害のインジケーター(IoC)(Base64方式でエンコードされた流出URLなど)をプロンプト自体に隠すことで、初期ページをクリーンに保つことも可能だでした。

モデルの非決定論的な出力は高度な多態性を提供し、各クエリは構文的に固有でありながら機能的には同一の悪意のあるコードのバリアントを返します。たとえば、図3は赤でハイライトしたコードスニペットの違いを示している。この絶え間ない変異が、検出をより難しくしている。

特筆すべきは、LLMが生成したコードにはハルシネーションが含まれることがありますが、私たちはプロンプトの改良と特異性を向上させることでこれを軽減し、構文エラーを効果的に削減しました。その結果、最終的に非常に特殊なプロンプトは、ほとんどのケースで有効なコードを生成することに成功しました。
ステップ3:実行時における悪意のあるスクリプトの実行
生成されたスクリプトはアセンブルされ、Webページ上でランタイムに実行され、フィッシングコンテンツをレンダリングします。このプロセスにより、機能的でブランド名を偽装したフィッシングページを構築することに成功し、この攻撃が実行可能であることを証明しました(図4)。生成されたコードの実行に成功し、フィッシングページがエラーなく表示されたことから、今回のPoCの有効性が確認されました。

脅威の一般化と攻撃対象領域の拡大
LLM APIをリクエストする代替手法
PoCを通じて実証された我々の攻撃モデルは、様々な方法で実装することができます。しかし、PoCで説明されている各手法は、攻撃者がどのようにLLM APIに接続し、ランタイムにブラウザで実行されるスニペットとして悪意のあるコードをいかに転送するかについて説明しています。
PoCで示したように、攻撃者はブラウザからよく知られたLLMサービスのAPIエンドポイントに直接接続してコード生成プロンプトを実行することで、セキュリティ対策を回避することができます。あるいは、信頼できるドメインやコンテンツ配信ネットワーク(CDN)上のバックエンドプロキシサーバーを経由して、LLMサービスに接続し、迅速に実行することもできます。さらに、WebSocketのような非HTTP接続でバックエンドのプロキシサーバーに接続する方法もある。これはフィッシングキャンペーンで以前報告した方法です。
信頼されたドメインのその他の悪用
攻撃者は、過去にもEtherHidingの事例に見られるように、検知を回避するため正当なドメインの信頼を悪用してきました。EtherHidingでは、攻撃者は評判に優れ信頼できるスマートコントラクトプラットフォームに関連するパブリックブロックチェーン上に悪意のあるペイロードを隠ていました。
この記事で詳述する攻撃では、LLMが生成した多様な悪意のあるコードスニペットと、この悪意のあるコードを信頼されているドメインを通じて送信することを組み合わせて使用し、検知を回避します。
さらなる攻撃のための悪意のあるコードのテキストプロンプトへの変換
この記事では、フィッシングWebページのレンダリングを容易にするために、悪意のあるJavaScriptコードをテキストプロンプトに変換することに焦点を当てています。この方法論では、悪意ある行為者が多様な形態の敵対的コードを生成するベクトルのリスクを提示します。たとえば、マルウェアを開発したり、感染したマシン上にコマンド・アンド・コントロール(C2)チャネルを確立することにより、広く使われているLLMに関連する信頼できるドメインで悪意のあるコードを生成して、そこから送信したりすることができます。
ブラウザ内ランタイムアセンブリ動作を活用した攻撃
ここで紹介する攻撃モデルでは、悪意のあるウェブページがブラウザ内で動的に構築するランタイムアセンブリの動作を例証しています。先行研究でも、フィッシングページやマルウェア配信のためのランタイムアセンブリのさまざまなバリアントが報告されています。たとえば、この 記事では、攻撃者が悪意のあるコードをより小さなコンポーネントに分解し、その後、ブラウザ内でランタイムに実行するためにそれらのコンポーネントをリアセンブルする手法について言及しています(SquareX社はこれをラストマイル再構成攻撃と呼んでいます)。各種報告書によると、攻撃者は HTMLスマグリング技法を使ってマルウェアを配信しています。
この投稿で概説した攻撃モデルはさらに進化しており、新しいスクリプトのバリアントをランタイムに生成し、それを後でアセンブルして実行することで、検知の難易度を著しく高めています。
セキュリティ担当者への提言
この攻撃の動的な性質は、ブラウザのランタイムアセンブリと組み合わさることで、防御側にとってはかなり困難な課題となります。この攻撃モデルは、すべての被害者ごとに固有のバリアントを作成します。悪意のあるペイロードはそれぞれ動的に生成され、一意であり、信頼できるドメイン上で送信されます。
このシナリオは、セキュリティー環境における重大な変化を告げるものです。これらの攻撃の検出(ブラウザベースのクローラーの強化により可能ですが)には、ブラウザ内でのランタイムにおける振る舞い分析が必要です。
また、防御側は、職場において公式に許可されていないLLMサービスの利用を制限すべきです。これは十分な解決策とは言えませんが、重要な予防策としては機能します。
最後に、我々の研究は、LLMプラットフォームにおけるより堅牢な安全ガードレールの必要性を浮き彫りにできたと考えています。その根拠は、用意周到なプロンプトエンジニアリングによって、既存の保護機能を回避し、悪意のある利用を可能にする方法を実証したためです。
結論
この記事では、悪意のあるウェブページがLLMサービスを利用して、ブラウザ内でリアルタイムに多数の悪意のあるコードのバリアントを動的に生成するという、AIを活用した新しいアプローチを紹介しました。これに対抗するための最も効果的な戦略は、ブラウザ内の保護や、最終的なWebページをレンダリングするブラウザベースのサンドボックスでオフライン分析を実行することであり、実行時点でのランタイム振る舞い分析です。
Palo Alto Networksの保護と緩和策
Palo Alto Nerworksのお客様は、以下の製品を通じて、上記の脅威に対する確実な保護を構築いただけます:
Prisma AIRSのお客様は、ガードレールを回避しようとする入力に対して、社内で構築されたGenAIアプリケーションを保護できます。
Advanced URL FilteringおよびPrisma Browser(Advanced Web Protection搭載)を使用しているお客様は、さまざまなランタイムアセンブリ攻撃に対してより良く保護されています。
Prisma Browser(Advanced Web Protection搭載)のお客様は、防御機能がブラウザ内で直接ランタイム振る舞い分析を使用して実行時点での悪意のある活動を検知しブロックするため、最初の試行、つまり「ペイシェント・ゼロ(最初の感染者)」のヒットからランタイム再構築攻撃に対して保護されています。
Unit 42 AI Security Assessmentは、組織全体での安全なAIの利用と開発を支援します。
侵害された可能性があると思われる場合、または緊急の案件がある場合は、Unit 42 インシデントレスポンスチームにご連絡いただくか、以下にお電話ください:
- 北米 フリーダイヤル: +1 (866) 486-4842 (866.4.UNIT42)
- 英国: +44.20.3743.3660
- ヨーロッパおよび中東: +31.20.299.3130
- アジア: +65.6983.8730
- 日本: +81.50.1790.0200
- オーストラリア: +61.2.4062.7950
- インド: 000 800 050 45107
- 韓国: +82.080.467.8774
パロアルトネットワークスは、これらの調査結果をCyber Threat Alliance (CTA) のメンバーと共有しました。CTAメンバーはこのインテリジェンスを使用して、顧客への保護を迅速に展開し、悪意のあるサイバーアクターを組織的に妨害します。Cyber Threat Allianceの詳細については、こちらをご覧ください。
追加リソース
- Now You See Me, Now You Don’t: Using LLMs to Obfuscate Malicious JavaScript – Unit 42, パロアルトネットワークス
- First known AI-powered ransomware uncovered by ESET Research – ESET
- First Known LLM-Powered Malware From APT28 Hackers Integrates AI Capabilities into Attack Methodology – Cybersecurity News
- UAC-0001 Cyberattacks on Security/Defense Sector Using LLM-Based LAMEHUG Tool – CERT-UA