はじめに:新たな脅威「SesameOp」
Microsoftの検出および対応チーム(DART)は、OpenAI Assistants APIを非伝統的なコマンド&コントロール(C2)通信チャネルとして悪用する巧妙なバックドアマルウェア「SesameOp」を公表しました。この脅威は、攻撃者が正規のクラウドサービスを悪用する手口に迅速に適応していることを示しており、セキュリティチームにとって検出を著しく困難にしています。
この発見は、脅威アクターが正規のAPI通信に悪意のあるトラフィックを紛れ込ませ、従来のセキュリティ制御を回避しようとする進化する戦術を浮き彫りにしています。
従来のC2通信からの逸脱
Microsoft DARTの研究者が2025年7月に発見したこのバックドアは、従来のマルウェア通信手法から大きく逸脱しています。SesameOpの背後にいる脅威アクターは、専用のC2運用インフラを構築する代わりに、OpenAI Assistants APIを悪用して悪意のあるコマンドを保存、中継、および取得します。このアプローチにより、攻撃者は信頼できるサービスプロバイダーへの正規のAPIトラフィック内に通信を隠蔽でき、従来のネットワーク監視による検出を極めて困難にしています。
マルウェアコンポーネントは、APIをストレージおよび中継メカニズムの両方として使用し、暗号化されたコマンドを取得して侵害されたシステム上で実行します。調査により、脅威アクターは検出されるまで数ヶ月間、標的環境内に存在を維持していたことが明らかになりました。複雑な攻撃インフラには、永続的な悪意のあるプロセスから中継されたコマンドを実行する内部ウェブシェルが含まれていました。これらのプロセスは、.NET AppDomainManagerインジェクションという高度な防御回避技術を通じて、悪意のあるライブラリを使用して侵害された複数のMicrosoft Visual Studioユーティリティを悪用していました。
技術的アーキテクチャと感染経路
SesameOpの感染経路は、連携して機能する2つの主要コンポーネントで構成されています。
- ローダーコンポーネント:Netapi64.dll
Eazfuscator.NETを使用して高度に難読化されており、.NET AppDomainManagerインジェクションを介して実行時にホスト実行可能ファイルにロードされます。Netapi64.dllはTempディレクトリ内のファイルを列挙し、Windows Tempディレクトリにマーカーファイルを作成し、メモリ内で1つのインスタンスのみが実行されるようにミューテックスを確立します。ローダーはTempディレクトリ下のファイルを列挙し、.Netapi64拡張子で終わるファイルを検索し、XOR復号化して実行します。 - メインバックドアコンポーネント:OpenAIAgent.Netapi64
隠密操作を可能にするコア機能を含んでいます。その名前がOpenAI SDKとの統合を示唆しているにもかかわらず、このマルウェアはOpenAI Assistants APIを純粋に通信チャネルとして使用しています。起動時に、OpenAI APIキー、辞書キー名、プロキシ設定を含む、.NETリソースセクションに埋め込まれた設定データを読み取ります。バックドアは、ハードコードされたAPIキーを使用してOpenAIからベクターストアをクエリし、ベクターストア名に感染したマシンのホスト名が含まれているかどうかを確認します。初めて通信する場合、侵害されたシステムのホスト名を使用して新しいベクターストアを作成します。
コードは、設定の3番目の部分がプロキシアドレスを指定しているかどうかを確認し、存在する場合はそのアドレスを利用します。プロキシの詳細がない場合、システムはデフォルトでデフォルトのウェブプロキシシステムを使用します。
マルウェアは、OpenAIアカウントで作成されたアシスタントのリストを取得し、アシスタントID、名前、説明、指示などのプロパティを解析します。説明フィールドは、SLEEP、Payload、またはResultの3つのオプションのいずれかを含むコマンドセレクターとして機能します。SLEEPに設定されている場合、バックドアは指示フィールドからスレッドIDとメッセージIDを抽出し、OpenAIからタイミングコマンドを取得します。Payloadコマンドの場合、暗号化されたメッセージを取得し、OpenAIから削除し、複数の復号化レイヤーを通じて処理します。
高度な暗号化と難読化技術
SesameOpは、受信コマンドと送信データ流出の両方を保護するために、洗練された多層暗号化を採用しています。取得されたメッセージには32バイトのAESキーが含まれており、これはBase64デコードされ、マルウェアに埋め込まれたハードコードされたRSA秘密鍵を使用して復号化されます。実際のペイロードはBase64デコードされ、導出されたキーでAESアルゴリズムを使用して復号化され、GZIP圧縮を使用して解凍されます。この対称暗号化と非対称暗号化を圧縮と組み合わせた多層アプローチは、ペイロードサイズを最小限に抑えながら、通信のセキュリティを最大化します。
復号化と解凍後、ペイロードは辞書構造に変換するために追加の処理を受けます。バックドアはURLデコードと解析技術を使用してメッセージをキーと値のペアに変換します。その後、埋め込まれた.NETモジュールがリフレクションを使用して動的にロードされ、Microsoft JScript VsaEngineを初期化してEval.JScriptEvaluateを使用してペイロードを実行します。実行結果はGZIPで圧縮され、AESで暗号化され、Base64エンコードされてから、新しいメッセージとしてOpenAIにポストバックされます。バックドアは、エンコードされたホスト名を持つ新しいアシスタントを作成し、説明フィールドをResultに設定して、実行結果が取得可能であることを攻撃者に通知します。
緩和策と推奨事項
MicrosoftとOpenAIは、この脅威に関する共同調査を実施し、攻撃者が使用したとみられるAPIキーと関連アカウントを特定し、無効化しました。このレビューにより、侵害されたアカウントは限られたAPI呼び出ししか行っておらず、C2通信以外でOpenAIモデルやサービスとやり取りしていなかったことが確認されました。両社は、脅威アクターが新興技術を悪用しようとする方法を理解し、阻止するために引き続き協力しています。
Microsoftは、この脅威がOpenAIプラットフォームの脆弱性ではなく、正規の機能の悪用であることを強調しています。なお、OpenAI Assistants APIは2026年8月に廃止される予定です。
Microsoftは、SesameOpおよび同様の脅威から防御するための包括的なセキュリティ対策を推奨しています。
- ファイアウォールとウェブサーバーのログを頻繁に監査し、すべてのインターネットに公開されているシステムを認識しておくべきです。
- Windows Defender Firewall、侵入防止システム、ネットワークファイアウォールを使用したネットワークセグメンテーションは、エンドポイント間のC2通信をブロックし、ラテラルムーブメントを軽減できます。
- 非標準ポートを介した不正アクセスを制限するために、境界ファイアウォールとプロキシ設定を見直すべきです。
- Microsoft Defender for Endpointで改ざん防止を有効にすることで、攻撃者がセキュリティ制御を無効にするのを防ぎます。
- エンドポイント検出および応答をブロックモードで実行すると、他のアンチウイルスソリューションが脅威を検出できない場合でも、Microsoft Defenderが悪意のあるアーティファクトをブロックできます。
- 組織は、自動調査と修復を完全自動モードに設定し、クラウド提供の保護を有効にして、急速に進化する攻撃者のツールと技術から防御すべきです。
