AkamaiがLayerXを買収へ、あらゆるブラウザ上でAI利用の制御を強化。 詳細を見る

What We Do In The Shadow(AI):新型マルウェアの登場

Yonatan Gilvarg

Nov 18, 2025

Yonatan Gilvarg

Yonatan Gilvarg

執筆者

Yonatan Gilvarg

Yonatan Gilvarg は Akamai Hunt チームの Senior Security Researcher です。専門分野としては、脅威の検知と調査、ビッグデータの異常検知、インシデント対応などがあげられます。

シェア

エグゼクティブサマリー

  • Akamai Hunt は、正当な大規模言語モデル(LLM)API エンドポイントの背後に隠れようとする新型のマルウェアを特定しました。 

  • このマルウェアは、一般的なスキーマを使用するのではなく、Base64 でエンコードされているように見える文字列を送信してコマンド & コントロール(C2)接続を確立します。

  • これが悪用されると、攻撃者による完全な制御やデータ窃取につながる可能性があります。 

  • これは、攻撃者が攻撃手法を迅速に進化させていることを示す新たな例であり、組織がこのような最新の脅威に備える必要性が高まっています。

概要

巷間言われているとおりのスピードで脅威の情勢は進化しており、攻撃者はすぐに適応します。大規模言語モデル(LLM)が組織内で広く使用されるようになると、攻撃者はその通信パターンを利用して悪性トラフィックを紛れ込ませやすくなります。

防御者が LLM を使用してアラートを調査して要約し、指標を関連付けることにより、急いで AI を検知パイプラインに統合しているのと同様に、マルウェア作成者も AI を使用して実験を行っています。Akamai は LameHugPromptLock などのマルウェアによる初期の兆候をすでに確認しており、それはテキスト生成用に設計された LLM が悪性の目的でどのように悪用される可能性があるかを示しています。

また、攻撃者がどのように SesameOp バックドアでコマンド & コントロール(C2)インフラに OpenAI の API を使用するかを示す例も確認しており、これは AI の世界における完全に新しいアタックサーフェスを浮き彫りにしています。

最近、Akamai Hunt チームは、悪性トラフィックを LLM API リクエストのノイズに混入させる新たなアプローチを使用して LLM を悪用する新型のマルウェアを発見しました。このブログ記事では、Hunt チームが Hunt の顧客へのサービス提供の一環として発見した新たな脅威の例を紹介します。

Akamai Hunt とは

Akamai Huntは、Akamai Guardicore Segmentationを基盤としたスレッドハンティング・ソリューションです。ホスト、アイデンティティ、および脅威インテリジェンスを活用することで、潜在的な脅威を可視化し、セキュリティ態勢の改善とインシデント封じ込めの迅速化を実現します。Akamai は巧妙に検知を逃れようとする脅威からも Hunt の顧客が常に保護されるようにしています。

Guardicore の新規顧客や既存顧客は、Akamai Hunt をアドオンとして利用できます。このような脅威や同様の攻撃から組織を確実に保護するために、今すぐ弊社の担当営業まで Akamai Hunt についてお問い合わせください。

エンドポイントの悪用

マルウェアにおける LLM の新たな使用を探索していたとき、あるファイルが突然私たちの注意を引きました。それは VirusTotal ですでに悪性としてマークされており、いくつかの Yara ルールに合致していました。調査を開始した際、私たちは LLM を使用したコード作成と被害者に対する実行の新たなパターンが見られると予想しました。

このマルウェアは、最初にソケットを使用して IP アドレス 39.97.57[.]244 に接続しようとしますが、失敗すると、興味深いことに HTTP C2(1347790942-k1bok35vg3.ap-guangzhou.tencentscf[.]com/v1/chat/completions)にフォールバックします。

API への最初の HTTP リクエストを観察すると、驚いたことに、この種のリクエストに必要なヘッダーに従っていないことがわかりました。

API エンドポイント

調査の中で、Akamai は LLM API エンドポイント(特に /v1/chat/completions)の使用を検索しました。

OpenAI のドキュメントによると、このエンドポイントは「所定のチャット会話のモデル応答を作成」します(図 1 および図 2)。

curl https://api.openai.com/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $OPENAI_API_KEY" \
  -d '{
    "model": "gpt-5",
    "messages": [
      {
        "role": "developer",
        "content": "You are a helpful assistant."
      },
      {
        "role": "user",
        "content": "Hello!"
      }
    ]
  }'
Fig. 1: Example POST request to api.openai.com/v1/chat/completions
{
  "id": "chatcmpl-B9MBs8CjcvOU2jLn4n570S5qMJKcT",
  "object": "chat.completion",
  "created": 1741569952,
  "model": "gpt-4.1-2025-04-14",
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "content": "Hello! How can I assist you today?",
        "refusal": null,
        "annotations": []
      },
...
Fig. 2: Example response

/v1/chat/completions エンドポイントは OpenAI によって導入され、OpenAI 互換 API(OpenRouter や Hugging Face など)を提供する複数のプロバイダーやゲートウェイによってすぐにエミュレートされました。

しかし、他のベンダーの公式 API は、異なるネイティブエンドポイントを使用したり、同様のリクエストスキーマにもかかわらずパラメーター、認証、ストリーミングのふるまいが異なったりする場合があります。

リクエストスキーマ

通常、この API を使用する場合は、次の必須パラメーターを追加する必要があります。

  • 認可:リクエストを認証するためには、「Authorization: Bearer YOUR_API_KEY」の形式のベアラー・トークン・ヘッダーが必須

  • モデル:エンドポイントがリクエストをルーティングするチャット対応モデル(例えば gpt-3.5-turbo または Llama-4-Maverick-17B-128E-Instruct-FP8)を選択する文字列識別子

  • メッセージ:モデルが次の応答を生成するために使用する会話履歴を表す、ロールタグ付きメッセージオブジェクトの配列(ロールとコンテンツを含む)

前述のように、Akamai はすでにこのエンドポイントが実際に悪用されていることを確認しています。それが LameHug です。このマルウェアの作成者は、同じエンドポイントを使用して Hugging Face 上の LLM モデルにアクセスし、特定のコマンドを要求して、被害者に対して実行するコードを動的に生成しました(図 3)。

 The malware authors used the same endpoint to access an LLM model on Hugging Face, asking for specific commands, dynamically generating code to execute on the victim (Figure 3). Fig. 3: LameHug generates collection commands by using a LLM

Chat Completions によるカモフラージュ

このバイナリーを分析して最初に気づいたことは、前述のフィールドを使用していないことでした。その代わりに、Base64 でエンコードされているように見える文字列を送信します(図 4)。

The first thing we noticed when analyzing this binary was the fact that it doesn’t use any of the mentioned fields. Instead, it sends a string that appears to be Base64-encoded (Figure 4). Fig. 4: First POST request

理論的には、この API の背後に LLM が存在する可能性があり、攻撃者はカスタムコードを使用してサーバー側でプロンプトを作成できます。しかし、この場合、この API エンドポイントを使用する理由はカモフラージュのためでもあります。

Akamai の API Security 製品のデータを観察したところ、顧客から 151 の固有のエンドポイントが見つかりました。これらのエンドポイントからのすべての会話に、上述のスキーマとの類似性がありました。例えば、一部の API は「messages」ではなく「query」を使用しますが、すべてのセッションに非常に明確な類似性があります。

これは、誰もが独自の /v1/chat/completions エンドポイントを開発できること、そしてこのエンドポイントに関する Request for Comments(RFC)はないものの、開発者が利用する事実上の標準が存在することを示しています。

さらなる調査

ボディをデコードし、0xBB で XOR を実行したところ、被害者に対して実行された最初の偵察リクエストのようなものが見つかりました。

応答の解析プロセスを実行し、マルウェアが元の API スキーマと一致しない応答を期待していることを確認しました。XOR と Base64 を使用して、受信データを復号して処理した後、応答で提供されるインストラクションに従います(図 5)。

 It processes the received data by decrypting it using XOR and Base64, then follows the instruction provided in the response (Figure 5). Fig. 5: Decoded first request

C2 サーバー(1347790942-k1bok35vg3.ap-guangzhou.tencentscf[.]com)は、Tencent が運営するクラウド・コンピューティング・サービスである Tencent Cloud 上のサーバーレスクラウド機能(AWS Lambda または Azure Functions の類似機能)です。攻撃者は、クラウド機能を C2 サーバーとして使用することで、無害なトラフィックとの区別が困難でレジリエントな自動スケーリングインフラを実行できます。

私たちの推測では、攻撃者はこの特定のエンドポイントを公開して、防御者やネットワーク管理者にとってより正当に見えるようにすることを選択しました。なぜなら、AI エージェント、統合、自動化ツールの増加に伴い、この API エンドポイントの使用はますます一般的になっているからです

このマルウェアはいくつかのインストラクションをサポートしており、被害者を完全リモート制御するリモートアクセス型トロイの木馬(RAT)として分類されます。Akamai はそれらを分析し、すべてが同じエンドポイントと通信することを確認しました(Akamai の分析については付録を参照してください)。

例えば、図 6 は $HunterInfo インストラクションの出力です。これは特定のリモート・アクセス・ツールの設定ファイルを検索し、最初のメッセージ送信と同じ方法(XOR と Base64 を使用)でデータを窃取して /v1/chat/completions に戻します

Figure 6 is the output of the $HunterInfo instruction. It looks for configuration files of specific remote access tools and exfiltrates the data back to /v1/chat/completions in the same way that the first message is sent — with XOR and Base64. Fig. 6: Base64-encoded data of C:\Program Files\ToDesk\config.ini ($HunterInfo)

このマルウェアには、0x88 で XOR を実行して Base64 でエンコードされた埋め込みファイルも 3 つ含まれています。

それらはすべて、net_test.exe という名前の .NET ファイルです。それらが組み合わさり、被害者のネットワークで SOCKS5 または HTTP を使用して小規模なプロキシツールキットを組織化します。それらのファイルのうち 2 つは SOCKS5 サーバーと HTTP サーバーであり、3 つ目はトラフィックを送受信できるクライアントです(図 7)。

Two of the files are SOCKS5 and HTTP servers, while the third is a client that can receive and forward traffic (Figure 7). Fig. 7: Main function of the SOCKS5 server

追加ファイル

Akamai はこのマルウェアの古いバリアントを特定しました(ハッシュはこの記事の IOC セクションで確認できます)。それには類似のインストラクションが含まれており、複数のリモート・アクセス・ツールの同一のハードコードパス($HunterInfo)もありましたが、C2 サーバーは異なっていました。

また、VirusTotal で、C2 サーバーに関連する RAR ファイルも見つかりました。この RAR ファイルには .lnk ファイル(个人简历.lnk、「履歴書」の意)が含まれ、ftp -s””:_/_/_/_/_/_/_/_/_ を実行します。この RAR ファイルは、ネストされたディレクトリ内に .doc ファイルも含んでいますが、その中身はバイナリーコードです(図 8)。

We also found a RAR file on VirusTotal that is related to the C2 server. The RAR includes an .lnk file (个人简历.lnk, translated to “Résumé” or “CV”), executing ftp -s””:_/_/_/_/_/_/_/_/_. The RAR also includes .doc files inside the nested directories, although their content is binary code (Figure 8). Fig. 8: Extracted content of the RAR

「_」ファイルは、その .doc ファイルから 3 つの PE ファイルを作成し、C:\Users\Public\Update にコピーします。

最終的に、それは
!call start /min C:\Users\Public\Update\svchost.exe -InstallLsp 

C:\Users\Public\Update\360.%TIME:~4,1% >nul を呼び出します(図 9)。

The ‘_’ file constructs the docs into three PE files and copies them to C:\Users\Public\Update. Eventually, it calls !call start /min C:\Users\Public\Update\svchost.exe -InstallLsp  C:\Users\Public\Update\360.%TIME:~4,1% >nul (Figure 9). Fig. 9: ‘_’ file executing next stage

10 個の異なる .doc ファイル(0~9.doc)があり、それらはいくつかのランダムなバイトを除いて類似しています。%TIME:~4,1% は、%H:%M:%S.%f の形式の現在時刻の分の 2 桁目を計算します。おそらく署名スキャンを回避するために、この .doc ファイルでは MZ ヘッダーが欠落しています。現在時刻に基づいて、このスクリプトは .doc ファイルにヘッダーを作成し、それを C:\Users\Public\Update\360.<minute> にコピーします。

svchost.exe

このファイルは実際には「SangforPromote.exe」であり、Sangfor Technologies の検証済み署名済みファイルです。引数 -InstallLsp と DLL を指定すると、正当なファイルは DLL をロードし、LoadLibrary を使用してそのエクスポートにポインターを設定します(図 10)。

When given the argument -InstallLsp and a DLL, the legitimate file loads the DLL and sets the pointer to its export using LoadLibrary (Figure 10). Fig. 10: svchost.exe\SangforPromote.exe loads the 360 DLL

360 DLL

360 という名前の DLL は、読み取り、書き込み、実行(RWX)権限を持つメモリーを割り当て、それに「sc」を読み込み、実行します。

sc

sc を分析したところ、ロードされたコードは LoadLibrary と GetProcAddress を使用して関数を解決します。HTTP リクエストの送信先である 2 つのハードコードされた宛先があり、それは以下の Akamai が分析したマルウェアの C2 アドレスと一致します。

  1. https://1347790942-k1bok35vg3.ap-guangzhou.tencentscf[.]com

  2. 39.97.57[.]244

また、前のサンプルと同様に Base64 と XOR でデータをデコードし、ツールセット間の接続を確立します。このフローにより、最終的な RAT が被害者のファイルシステムにダウンロードされると考えられます(図 11)。

We believe that this flow downloads the final RAT into the victim’s filesystem (Figure 11). Fig. 11: sc analysis using scdbg
  • 自社の LLM の把握:組織における LLM の重要性は日ごとに高まっているため、攻撃者はそれに適応し、さまざまな方法で LLM に対応しており、まだ知られていない方法もあります。どのエンドポイントを可能な限り使用すべきかを把握し、シャドー AI 計画を実行することが重要です。 

  • LLM エンドポイントへのネットワークトラフィックの監視と検査/v1/chat/completions やその他の異常な AI API エンドポイント(特に非標準ドメインに向けられたもの)に対する異常または不正なアウトバウンドリクエストにフラグを付けます。API リクエストスキーマを検査して、modelmessagesAuthorization ヘッダーの欠落や改変など、一般的な形式からの逸脱がないか調べます。

  • ファイル監視C:\Users\Public などの疑わしいパスに新しく作成されたファイルを監視します。この種のパスは、攻撃者がファイルをドロップするのに適しています。

Akamai Hunt による保護と緩和

Akamai Hunt の顧客は、このようなアーティファクトがないか 24 時間体制で継続的に監視し、このような攻撃からの保護を実現できます(図 12)。

Akamai Hunt customers benefit from continuous 24/7 monitoring for such artifacts, enabling protection against such attacks (Figure 12). Fig. 12: How Akamai Hunt customers benefit from continuous 24/7 monitoring

アクティブな脅威が検知される前でも、Hunt の適応型セグメンテーション機能により、組織はリスクを軽減し、リスクを抑えることができます。適応型セグメンテーション機能は、通常の通信フローと資産のふるまいを分析することで、AI エンドポイントへの不要なアウトバウンドアクセスの制限、開発環境と本番環境の分離、潜在的なラテラルムーブメント(横方向の移動)の経路の最小化を行うポリシーをガイドできます。

この機能は、継続的な可視性を LLM ベースの新たな脅威に対するプロアクティブなレジリエンスに変えることで、検知にとどまらず Hunt の保護を拡張します。

結論

攻撃者は、/v1/chat/completions エンドポイントを介して窃取と C2 をルーティングすることを戦略的に決定し、LLM サービスのユビキタス性と急速な進化の両方を悪用しています。このアプローチは、既存のクラウドインフラを活用して通常の企業トラフィックに溶け込む通信チャネルを構築するため、ROI が向上する可能性があります。 

また、この手法は、現代の環境で流行している次の 3 つのトレンドに沿っているため、危険です。これらのトレンドが組み合わさることで、安定していて、検知されず、表面的な検査では無害に見える C2 パスが攻撃者にもたらされる可能性があります。

  1. クラウド API へのアウトバウンド HTTPS が広く普及していて、多くの場合検査されていない

  2. マシン生成トラフィック(AI エージェント、アプリ、統合)に対する許容度が高まっている

  3. 攻撃者が使用できる信頼性の高い長期的なエンドポイントを提供するクラウドホスティングを簡単に利用できる 

実際には、防御者は LLM がどのように機能し、どのような脅威を招くかを現場で学んでいます。十分に正当に見えるトラフィックは、適切な保護が導入されていなければ通過できてしまう可能性があります。ありふれたものに紛れ込ませることが、最も簡単に検知を逃れる方法になることもあります。 

攻撃者は正当な LLM サービスを宛先とするトラフィック内に悪性のペイロードを隠し、ますます一般的になっているネットワークパターンを巧みに利用します。そうすることで、その通信にフラグが付けられたり、調査が行われたりする可能性が減少します。組織が AI ツールと自動化を導入するにつれて、LLM エンドポイントへのトラフィックは当たり前になりつつあります。攻撃者は、そのノイズに潜むチャンスを狙っているのです。

IOC

IOC

タイプ

93cf0d545a872c393c053031570bc5eaebfa1aa6a0860fd0b08b679b8ce52fd2 - RAT

ハッシュ

10c444262994c05930394388e6112ddd98b83118661868bccd83b1fa61160a62 - 1.rar

ハッシュ

91c43e7ddd98af63d6b1b130e997b909100f3eaf71e30511858cca4348b509db - _

ハッシュ

9f119d05403b1e079893fb77f6b8b2a9682d1df7ced31a189e7490924ccfb170 - 个人简历.lnk

ハッシュ

b7dcf661844e6f3e94eb140a79787be6dad77c09ab0b97cf41a62afd07219190 - 古いバリアント、2025 年 5 月

ハッシュ

2e395436e97eaad9a087825d22005b6afc55044abf458604a5118c2ac9bde42a - 古いバリアント、2025 年 9 月

ハッシュ

67ea3ea3c58a57dbbdac48d4ce3d546816f715eaf32bec33a64a63c91541e697 - net_test.exe(クライアント)

ハッシュ

195c283703ee7df7c7ef17c85b0fdf88de22348bb0755daf5f0c3ed319c8d88a - net_test.exe(SOCKS5 サーバー)

ハッシュ

e513d12abd03a4e07788dd85888d187cb6ca6e69a59f22f00853cae0a0b34712 - net_test.exe(HTTP Server)

ハッシュ

1347790942-k1bok35vg3.ap-guangzhou.tencentscf[.]com/v1/chat/completions

URL

39.97.57[.]244

IP

C:\Users\Public\Update

ディレクトリ

付録

作業指示

説明

$ActiveDos

現在のディレクトリを返します

$AddUser

新しいローカルユーザーを作成し、それを Administrators グループに追加します

$ExecuteCommand

コマンド実行

$FileDelete

ファイルを削除します

$FileDownLoad \ $BigFileDownLoad

被害者のマシンからファイルをダウンロードします

$FileExist

ファイルが存在するかどうかを返します 

$FileUpload \ $BigFileUpload

被害者のファイルシステムにファイルを書き込みます

$Get_LocalDisk

被害者のドライブを取得します

$GetFile

ファイルデータ(サイズ、タイムスタンプ)を取得します

$GetFolder

特定のディレクトリ内のフォルダの一覧を作成します

$GetFolderAndFile

フォルダの一覧を作成し、ファイルを取得します

$GetProcess

プロセスのリストを作成します

$GetThreadPermissionsInfo

マルウェアプロセスのスレッド情報

$HunterInfo

360 Secure Browser、SunLogin、ToDesk、NetSarang、Chrome のデータを盗みます

$KillProcess

所定の PID を持つプロセスを終了します

$MessageBox

指定された文字列を含むメッセージボックスを表示します

$Netstat

netstat を実行してアクティブな接続を確認します

$OffLine

プロセスを終了します

$Online

被害者から最初のデータを再送します(図 4)

$PE64Loader

explorer.exe を生成し、それにシェルコードローダーを挿入します

$PEMemoryLoadOnSelf

バッファーからコードをロードします。このマルウェアは、受信された複数の引数(「JuicyPotato」や「PwDump」など)をチェックし、この名前の環境変数を設定します。そのため、このマルウェアには「モジュール」またはプラグインとして使用するための機能があると考えられます。

$Persistence

C2 から DLL を受け取り、次のことを行います。

  • それを C:\Users\Public\WinVer[3digits].dll に書き込んだ後、CLSID\{054D1B2B-DDA8-4B1A-BDA8-A6DADB60CAA8}\InProcServer32 または CLSID\{B4E15CD0-F916-4C8E-830A-15E3E9D01A1B}\InprocServer32 に登録します

  • それを C:\Users\Public\[digit].dll に書き込んだ後、HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers に登録します

また、スケジュールされたタスクを作成することもできます。

$ProgressSpawn

C:\Users\Public の下でペイロードを作成または検証し、引数に応じて ShellExecute、-InstallLsp、インメモリロードなどのさまざまなメソッドを使用してそれを実行します

$RegManage

実装されていないようです

$ScreenShot

スクリーンショットを撮ります

$ScreenSpy

TightVNC レジストリキーを変更して、リモート制御を行えるようにします(おそらく被害者が TightVNC を持っていると想定しているか、その攻撃の前工程または後工程のため)

Yonatan Gilvarg

Nov 18, 2025

Yonatan Gilvarg

Yonatan Gilvarg

執筆者

Yonatan Gilvarg

Yonatan Gilvarg は Akamai Hunt チームの Senior Security Researcher です。専門分野としては、脅威の検知と調査、ビッグデータの異常検知、インシデント対応などがあげられます。

タグ

シェア

関連するブログ記事

サイバーセキュリティ
2024年9月のPatch Tuesdayに関するAkamaiの見解
新しいCVEより新学期のスタートにふさわしいものはありません。今月は計79件のCVEがあり、4件の脆弱性が野放し状態で悪用されていました。
セキュリティリサーチ
2024年10月のPatch Tuesdayに関するAkamaiの見解
多くのCVEがありますが、恐れることはありません。怖がるのはハロウィンまで取っておきましょう。今月は計117件のCVEがあり、2つの脆弱性が野放し状態で悪用されていました。
サイバーセキュリティ
2024年11月のPatch Tuesdayに関するAkamaiの見解
飲み込まなければならないCVEは多数ありますが、ご心配なく。七面鳥を食べる余裕はありそうですよ。今月は計89件のCVEがあり、2つの脆弱性が野放し状態で悪用されていました。