当サイトの一部ページには、アフィリエイト・アドセンス・アソシエイト・プロモーション広告を掲載しています。

Amazonのアソシエイトとして、Security Akademeiaは適格販売により収入を得ています。

広告配信等の詳細については、プライバシーポリシーページに掲載しています。

消費者庁が、2023年10月1日から施行する景品表示法の規制対象(通称:ステマ規制)にならないよう、配慮して記事を作成しています。もし問題の表現がありましたら、問い合わせページよりご連絡ください。

参考:令和5年10月1日からステルスマーケティングは景品表示法違反となります。 | 消費者庁

OpenClawマシン(CodexのOauth利用)が侵害されたときにChatGPTで行うべきセキュリティ対応マニュアル

現状は試行錯誤しており、情報の正確性については保証できません(本記事の7割は生成AIが文章を生成しています)。
また、アップデートにより仕様が大きく変更される可能性もあります。
それを踏まえて参考程度に読んでください。
自己責任でお願いします。

背景

自宅のラボ環境において、Mac Mini上にてOpenClawを運用しています。ChatGPT Proプラン(サブスク200ドル)に加入しているので、OpenClawからOpenAIのCodexを利用しています[1]AnthropicがOpenClawからClaude Codeのサブスクモードで利用するのは非推奨と主張していた時期もあります。

万が一OpenClawが侵害された場合、攻撃者がこのOAuth接続を通じてOpenAIのモデルを利用できてしまいます。本記事では、別のマシンからChatGPTの管理画面にアクセスして行うべき対応手順をまとめます。

本記事では、侵害の代表的な兆候を簡単に紹介するに留めています。
将来的には、「侵害の回避策」「侵害の検知方法」については別記事で詳しく扱う予定です。

環境の前提

本マニュアルは筆者の以下の環境を前提としています。

  • OpenClawマシン:実験のためにOpenClawを稼働しているMac Mini 4マシン。実質OpenClaw専用
  • モデル設定: “openclaw.json"ファイルのagentsにて、「openai-codex/gpt-5.3-codex」をprimaryモデルとして指定
  • 認証方式: “openclaw.json"ファイルのauthにて、mode: oauthと設定。ChatGPTサブスクリプションに紐づいたOAuth認証でOpenAIにアクセス
  • 利用形態: TUI(Terminal User Interface)でのみ利用。OpenClawのブラウザーからChatGPTにはログインしない(初回のOAuth認証時のみ、以降はすぐログアウト)
  • Codex CLI: OpenClawマシンには(現状)インストールしていない
  • ChatGPTのMFA: 認証アプリを有効化済み
  • ネットワーク:実験のために完全独立したLAN環境。インターネット回線も実験専用。同一LAN内にはメインマシンやメインスマホなどの端末は存在しない。
  • メインマシン: OpenClawとは別のWindowsマシン。侵害対応時に使用。

侵害の兆候

侵害の検知方法は別記事で詳しく扱う予定ですが、以下のような兆候が見られた場合は侵害を疑うべきです。

  • OpenAIの使用量が異常に増加している: OpenAI Platform(https://platform.openai.com/usage)で確認できるAPI使用量が、自分の利用パターンと明らかに乖離している
  • 見覚えのないAPIキーが存在する: OpenAI PlatformのAPIキー一覧に、自分で作成した覚えのないキーがある
  • 見覚えのないセッションやデバイスがある: ChatGPTのセキュリティ画面に、心当たりのない「信頼できるデバイス」が登録されている
  • OpenClawで不審なプロセスやネットワーク接続がある: SSH接続やプロセス一覧に見覚えのないものがある
  • 設定ファイルが改ざんされている: “openclaw.json"ファイルやシェルの設定ファイル(".bashrc"ファイル、".zshrc"ファイル等)に身に覚えのない変更がある

侵害時に何が問題になるか

OpenClawが侵害された場合、攻撃者はOpenClawが保持しているOAuth認証情報を利用できます。これにより、攻撃者がOpenAIのCodexモデルにアクセスし、コード生成などを自由に行える状態になります。

OAuth認証時のAPIキー自動生成について

Codex CLIの「Sign in with ChatGPT」フローでは、OAuth認証時にOpenAI Platform上にAPIキーが自動生成されることがGitHub Issueで報告されています[2]参考: openai/codex#2000。報告によれば、自動生成されたAPIキーは「Codex CLI (auto‑generated)」という名前でPlatformのAPIキー一覧に表示され、ChatGPTのセキュリティ画面で「Codex CLI」を切断してもこのAPIキーは無効化されないとされています。

筆者の環境では、OpenAI PlatformのAPIキー一覧にこの自動生成キーは確認されませんでした。 TUI経由のOAuth認証ではAPIキーの自動生成が行われない可能性や、OpenAI側の仕様変更で挙動が変わった可能性があります。

とはいえ、環境やバージョンによってはAPIキーが自動生成されるケースもありうるため、侵害対応時にはAPIキー一覧の確認を推奨します。また、攻撃者がOpenClawのブラウザー経由でPlatformにアクセスし、手動でAPIキーを新規作成する可能性もあるため、不審なキーがないかの確認は有用です。

OpenClaw環境構築の前と後において、APIキー一覧に違いがあるかを確認しておきます。
そして、後で確認できるように、APIキー一覧の正常状態を記録しておくべきです。

ブラウザーログインしていない場合のリスク

基本的にはOpenClawマシンのブラウザーからChatGPTにログインしないため、ChatGPTのWeb UI(チャット履歴、設定画面など)への不正アクセスのリスクは限定的です。ただし、攻撃者がOpenClawマシンのブラウザーを操作してChatGPTにログインする可能性は否定できないため、そのケースも考慮した手順を記載します。

対応手順

メインマシン(侵害されていないマシン)のブラウザーからChatGPT公式ページ(https://chatgpt.com)にログインし、設定画面を開いてください。

手順1: Codex CLIのOAuth接続を切断する【最優先】

OpenClawからのOAuth経由のモデルアクセスを遮断する、最も重要な手順です。

  1. 設定のサイドバーから「セキュリティ」を開く。
  2. 画面を下にスクロールし、「ChatGPTを使用した安全なサインイン」セクションを見つける。
  3. 「Codex CLI」の横にある「切断」ボタンをクリックする。

ChatGPTの画面上の説明文には「Codex CLI で API からモデルを使用できるようにします。」と記載されています。この切断により、OpenClawが保持しているOAuthトークン(リフレッシュトークンを含む)でのモデルアクセスが無効化されると考えられます(未検証なので断言できない)。

OAuthトークンの即時失効について

切断操作後、既に発行済みのアクセストークンが即座に無効化されるかどうかは未検証です。OAuth一般論としては、アクセストークンは短命(通常1時間程度)であり有効期限まで使える実装もありえます。ただし、リフレッシュトークンが無効化されれば新しいアクセストークンは取得できなくなるため、遅くともアクセストークンの有効期限切れ後にはアクセスが遮断されます。即時遮断を確実にしたい場合は、手順2のAPIキー確認もあわせて実施し、不審なキーがあればRevokeしてください。

正常なマシンへの影響

切断後、OpenClawの安全を確認してから再度OAuth認証を通せば復旧できます。再認証の手順だけで済むため、影響は限定的です。

手順2: OpenAI PlatformのAPIキーを確認する【重要】

手順1のOAuth切断に加えて、OpenAI PlatformのAPIキー一覧も確認します。前述の通り、OAuth認証時にAPIキーが自動生成されるケースが報告されており、また攻撃者がブラウザー経由でPlatformにアクセスしてAPIキーを手動作成している可能性もあります。

  1. メインマシンから https://platform.openai.com/api-keys にアクセスする。
  2. 「Codex CLI (auto‑generated)」 という名前のAPIキーがないか確認する。
  3. 見覚えのないAPIキーが作成されていないか確認する。
  4. 不審なキーがあれば、ゴミ箱アイコンをクリックし、Revoke(無効化)する。

私の環境では、自動生成キーは存在せず、自分で作成した既知のキーのみが表示されていました。ただし、環境や認証フローによって異なる可能性があるため、確認は行うべきです。

正常なマシンへの影響

不審なキーのみをRevokeするため、自分で作成した既知のキーには影響しません。誤って正規のキーをRevokeした場合は、再作成すれば復旧できます。

手順3: すべてのデバイスでログアウトする【状況に応じて実施】

この手順は、OpenClawマシンのブラウザーからChatGPTにログインしていた場合、または攻撃者がブラウザーからログインした可能性がある場合に実施します。

ブラウザーセッションが有効だと、攻撃者がChatGPTのWeb UI(チャット履歴の閲覧、設定変更、データエクスポートなど)にアクセスできてしまいます。

本環境のようにTUI専用で運用しており、ブラウザーからChatGPTにログインしていなかった場合、手順1のOAuth切断(および手順2でのAPIキー確認)で本質的な対応は完了しています。この手順は「念のため」の位置づけです。

  1. 「セキュリティ」画面にて、「すべてのデバイスでログアウトする」を見つける。
  2. 「すべてログアウトします」ボタンをクリックする。

ChatGPTの画面上には「すべてのデバイスにおけるすべてのアクティブ セッション(現在のセッションを含む)からログアウトします。他のデバイスがログアウトされるまで、最大 30 分かかる場合があります。」と記載されています。

30分のタイムウィンドウに注意

ログアウトが全デバイスに反映されるまで最大30分かかります。この間、攻撃者がブラウザー経由でWeb UIを操作できる猶予が残ります。これが、手順1(OAuth切断)と手順2(APIキー削除)をこの手順より先に実施すべき理由です。モデルアクセスの遮断は即座に(または短時間で)完了しますが、ブラウザーセッションの無効化には時間がかかります。

正常なマシンへの影響

メインマシンを含むすべてのデバイスがログアウトされます。メインマシンで再ログイン(パスワード+MFA)すれば復旧できます。チャット履歴やデータは消えません。

手順4: パスワードを変更する

攻撃者がOpenClaw上でパスワードを窃取していた場合に備えた手順です。MFAを有効化済みであれば、パスワードだけでは再ログインできないため、緊急度はやや下がります。

  1. 「セキュリティ」画面の上部にある「パスワード」をクリックする。
  2. 新しい強力なパスワードに変更する。

既存セッションへの影響

パスワード変更後に既存のログインセッションが即座に無効化されるかどうかは未検証です。サービスによっては、パスワード変更で全セッションが無効化される実装もあります。即時のセッション無効化が必要な場合は、手順3の全デバイスログアウトをあわせて実施してください。

手順5: 信頼できるデバイスを確認・削除する

ChatGPTのセキュリティ画面には「信頼できるデバイス」セクションがあります。画面上の説明は「別のデバイスでサインインすると、そのデバイスがここに追加されて、サインインするためのデバイスプロンプトを自動的に受け取ります」となっています。

  1. 「セキュリティ」画面の「信頼できるデバイス」セクションを確認する。
  2. OpenClawマシンに該当するデバイスが登録されていれば削除する。

手順6: 連携アプリを確認する

設定のサイドバーから「アプリ」を開くと、ChatGPTに連携された外部サービス(Gmail、Googleドライブなど)が一覧表示されます。

攻撃者がChatGPTのWeb UIにアクセスできていた場合、不正なアプリ連携を追加されている可能性があります。見覚えのないアプリがあれば切断してください。

ただし、前述の通り、OpenClawからブラウザーでChatGPTにログインしていなかった場合、攻撃者がこの設定を変更できた可能性は低いです。

手順7: データコントロール・パーソナライズを確認する

手順6と同じ前提で、攻撃者がWeb UIにアクセスできていた場合に備えた確認です。

データコントロール(設定サイドバーから開く)

  • チャット履歴の学習設定が変更されていないか
  • データエクスポートが勝手に実行されていないか
  • 共有リンクが作成されていないか

パーソナライズ(設定サイドバーから開く)

  • カスタム指示(Custom Instructions)に不審な内容が追加されていないか
  • メモリに不審な内容が保存されていないか

カスタム指示が改ざんされると、以降のすべてのチャットに影響が及びます。たとえば「回答に特定のURLを含める」「ユーザー入力を外部に送信するコードを生成する」といった指示が挿入されるケースが考えられます。

ChatGPT以外で確認すべきこと

OAuthトークンのスコープとPlatform APIへのアクセス可能性

Codex CLIのOAuth認証で要求されるスコープは「openid profile email offline_access」です。これらのスコープ名だけを見ると、ユーザー情報の取得とトークンの自動更新が主な権限であり、OpenAI PlatformのAPIキー作成やアカウント管理操作が含まれるかは明確ではありません。

前述の通り、Codex CLIではOAuth認証フローがAPIキーを自動生成するとの報告がありますが、筆者のTUI環境ではこの挙動は確認されませんでした。ただし、攻撃者がOAuthフローを再実行できる環境(=侵害されたOpenClaw)を持っている場合、認証フローの実装によっては新たなAPIキーが生成される可能性は否定できません。

OpenAI Platformの管理画面(組織設定の変更、課金情報の閲覧など)にOAuthトークンだけでアクセスできるかどうかは、公式ドキュメントに明確な記載がなく、筆者も未検証です。ただし、攻撃者がOpenClawのブラウザを操作してPlatformにログインする可能性は別途存在するため、Platform側の確認は行うべきです。

Codexのデバイスコード認証

ChatGPTのセキュリティ画面には「Codex に対してデバイスコード認証を有効にする」という項目もあります。画面上の説明は「通常のブラウザー操作ができないヘッドレスまたはリモート環境では、デバイスコードによるサインインを使用します。ただし、デバイスコードはフィッシングの危険があるため、慎重に有効化してください。デバイスコードは決して共有しないでください」となっています。

この設定が有効になっていると、ブラウザーを使わずにデバイスコードだけで認証できるため、攻撃者に悪用されるリスクがあります。意図せず有効化されていないか確認してください。

同一ブラウザーで利用していた他のサービス

OpenClawマシンのブラウザーから他のWebサービスにもログインしていた場合、それらのセッションも侵害の影響を受けます。ログインしていたサービスごとに、セッション管理画面からOpenClawのセッションを切断してください。

各操作の影響と復旧コスト

侵害対応の各操作が正常なマシンに与える影響と復旧方法をまとめます。いずれの操作も、復旧は再認証を行うだけで済みます。

操作正常なマシンへの影響復旧方法
Codex CLI切断(OAuth)OpenClawからのOAuth経由のアクセスが停止安全確認後、再度OAuth認証を通す
APIキーのRevoke該当キーを使用したすべてのアクセスが停止新しいキーを作成する
全デバイスログアウトメインマシン含む全デバイスがログアウト(最大30分)再ログイン(パスワード+MFA)
パスワード変更既存セッションへの即時影響は未検証なし(再ログイン時に新パスワードを使用)
信頼できるデバイス削除次回ログイン時にMFAが要求されるMFAを通して再認証

対応の優先度まとめ

利用形態に応じて対応の優先度が変わります。

TUI専用の場合(本環境)

OpenClawをTUI専用で使っており、ブラウザーからChatGPTにログインしていない場合、手順1のOAuth切断が本質的な対応です。これで攻撃者のモデルアクセスを遮断できます。手順2のAPIキー確認も重要ですが、本環境では自動生成キーが存在しなかったため、不審なキーがなければ追加操作は不要です。手順3以降は念のための確認です。

優先度対応内容理由
★★★Codex CLIのOAuth切断OAuth経由のモデルアクセスを遮断
★★☆APIキーの確認不審なキーが作成されていないか確認(本環境では自動生成キーなし)
★★☆パスワード変更パスワード窃取時の再ログインを防止
★☆☆全デバイスログアウトブラウザー未使用なら念のため
★☆☆信頼できるデバイスの削除登録されていれば削除
★☆☆デバイスコード認証の確認意図しない有効化がないか
★☆☆連携アプリ・データコントロール・カスタム指示の確認ブラウザー未使用なら低リスク

ブラウザーからもChatGPTにログインしていた場合

OpenClawのブラウザーからChatGPTにログインしていた場合、攻撃者がWeb UIを操作できるため、すべての手順が重要になります。

優先度対応内容理由
★★★Codex CLIのOAuth切断OAuth経由のモデルアクセスを遮断
★★★APIキーの確認・不審キーの削除攻撃者が作成したAPIキー経由のアクセスを遮断
★★★全デバイスログアウトWeb UIへのアクセスを遮断
★★★パスワード変更再ログインを防止
★★☆信頼できるデバイスの削除MFAバイパスを防止
★★☆連携アプリの確認不正連携の有無を確認
★★☆データコントロールの確認データ流出の有無を確認
★★☆カスタム指示の確認悪意ある指示の注入を確認
★★☆デバイスコード認証の確認意図しない有効化がないか

事前に準備しておくべきこと

侵害が発生してから慌てないよう、平常時に以下を準備しておくことを推奨します。

  • MFA(多要素認証)の有効化: 認証アプリによるMFAを設定しておく。パスワードが漏洩しても再ログインが困難になる。本環境では設定済み。
  • ChatGPTセキュリティ画面の場所を把握: 設定 →「セキュリティ」で各項目にアクセスできる。緊急時に迷わないよう事前に確認しておく。
  • OpenAI Platformの利用量アラートを設定: https://platform.openai.com/settings/organization/limits で月間利用上限やアラートを設定しておく。異常な使用量の早期検知に有効。
  • “openclaw.json"ファイルのバックアップ: 復旧時の再構築用。認証情報が含まれる場合は安全な場所に保管すること。
  • OAuth認証情報の保存場所を把握: OAuth認証情報は"~/.codex/auth.json"ファイルに保存される。侵害確認後にこのファイルを削除する必要がある場合に備え、パスを把握しておく。
  • 本マニュアルのオフライン保存: 侵害時にネットワーク環境が不安定な場合に備え、印刷またはローカル保存しておく。

おわりに

AIツールをOAuth連携で利用する構成では、「OAuth接続を切断する場所」を事前に把握しておくことが重要です。本環境の場合、ChatGPTのセキュリティ設定画面にある「Codex CLI」の「切断」がその場所に該当します。

あわせて、OpenAI PlatformのAPIキー管理画面(https://platform.openai.com/api-keys)も確認先として把握しておくべきです。Codex CLIではOAuth認証時にAPIキーが自動生成されるとの報告がありますが、筆者のTUI環境ではこの挙動は確認されませんでした。ただし、攻撃者がブラウザー経由でAPIキーを手動作成する可能性もあるため、不審なキーがないかの確認は侵害対応の一環として行うべきです。OAuth切断とAPIキーの確認は別々の管理画面で行う操作であることを覚えておいてください。

TUI専用でブラウザーログインしていなければ、OAuth切断が本質的な対応であり、他の操作は確認・念のための位置づけです。また、いずれの操作も復旧は再認証するだけで済むため、侵害時には迷わず実行して問題ありません。

References

References
1 AnthropicがOpenClawからClaude Codeのサブスクモードで利用するのは非推奨と主張していた時期もあります。
2 参考: openai/codex#2000