BLOG

Hot Tracking 019|Codex CLIがデフォルトで不可視のデーモンプロセスをインストール:2週間半の沈黙を経てトレンド上位に、OpenAIは現在まで無回答

Kael Zhang
Hot TrackingCodex CLIOpenAIデーモンプロセスサプライチェーンセキュリティ
广告 · Advertisement

まず時間を固定し、今回も同じように2つの線があります。9月25日、ユーザーYihua-Liu-1997がOpenAIのCodex CLIリポジトリでissue #48195を投稿しました。タイトルの要求は非常に明確です:プロセスの自動起動をオプションに変更すること。持続的で自己更新されるバックグラウンドプロセスがデフォルトであるべきではありません。このissueは2週間半沈黙し、わずか十数人のユーザーがコメントを残しました。10月12日、Hacker Newsのトップページに載り、10月13日の午前までに450以上の支持票と239件のコメントがありました。他の側では沈黙が続き、issueは依然として開放状態であり、15件のコメントのうちOpenAIのメンバーからのものはありませんでした。発表時点で公式には何の反応もありませんでした。以下の事実はissueの原文とHNのコメントを一次資料として使用し、意見と定性の正文はそれぞれの出所を示しています。数字は10月13日を基準にしており、事件は48時間後に再発酵している状態です。

何が起こったか

issueの報告者によると、0.157.0バージョンから、インタラクティブなCodexセッションを開くだけで、4つの動作が背後で行われます。

第一に、持続的なバックグラウンドプロセスを起動します。それは独立したセッションで実行され、端末インターフェースはありません。すべてのCodexウィンドウを閉じてもそれは存続し、プロセスはシステムの1番目のプロセスによって管理され、手動で停止するかマシンを再起動するまで続きます。

第二に、プラットフォームパッケージ全体をユーザーディレクトリ下の隠しフォルダにコピーします。報告者が示したサイズは約374MBで、Codex本体といくつかのツールが含まれています。このコピーはパッケージマネージャーで最初にインストールされたものと同じサイズですが、それ以降はバックエンドバージョンとインストールされたCLIバージョンが切り離され、別々に動作します。

第三に、分離されたアップデートプロセスを起動します。起動後5分で最初の更新をチェックし、その後1時間ごとにチェックを行い、新しいバージョンがダウンロードされバックエンドが自動的に再起動されます。進行中のセッションは直接停止される可能性があります。さらに厄介なのは、報告者が発見した追加の問題です:管理者側の停止コマンドでは、プロセスは停止しますが、アップデートプロセスは引き続き動作し、70秒後も実行され、最終的には手動で停止するしかありません。彼自身の言葉を借りれば、それは砲塔を取り外し、自動装填機だけを残すようなものです。

第四に、最初のセッションの環境変数を固定します。報告者は包装スクリプトを使用して一つずつプロキシを設定する習慣がありますが、結果としてプロセスは最初のセッションのプロキシ設定を記憶し、その後のすべてのセッションのエンドユーザー接続がそのプロキシを通じて行われ、変更できませんでした。

報告者の期待は控えめです:コマンドラインツールにとって、最も予想外でないデフォルトは、バックエンドがウィンドウの生死に関わらず動作し、ユーザーが手動でインストールしたバイナリを実行し、バックグラウンドで自己更新しないことです。共有された自己更新プロセスは遠隔制御やデスクトップアプリケーションに意味があり、そこで起動するか、ユーザーが明示的に起動コマンドを実行した時にのみ起動します。彼は一時的な解決策も提示しました:codex features disable daemon_auto_startを使用して自動起動を停止し、その後手動でプロセスを停止します。

時間軸にはさらに層があります。この機能が導入されたバージョンは0.157.0であり、npm上の最新バージョンは0.162.1に達しています(10月13日のレジストリデータ)。中間に5つのサブバージョンがイテレートされましたが、issueは依然として開放されており、デフォルト値に変更はありませんでした。

なぜ「デフォルト」が最大の問題か

各項を見ると、それぞれに正当化の言い訳があります:プロセス保護は応答速度を優先するため、自動更新はイテレーションの速さを優先するためです。問題は、これらがすべてデフォルト設定として重なってしまい、そのデフォルト設定がほとんどのユーザーが決して変更しないものであることです。

第一に、アイデンティティの変化です。コメント欄で最も深く分析されているのは、ユーザー aetherxeg-source からのもので、彼は追跡の境界点を指摘しています:インストールされた CLIのアイデンティティは、プロセス保護の実行アイデンティティとは異なります。ツールは自分自身をホスティングディレクトリにコピーし、バックグラウンドでの更新プロセスがそのコピーをいつでも置き換えることができるため、インストールされたバージョンと実際に実行されているバージョンが同じではない可能性があります。サプライチェーンセキュリティの文脈では、これは攻撃面の標準的な定義です:入り口を監査しても、実際に実行されるコードは監査できません。

第二に、監査不可能な変化です。1時間ごとに別のバージョンになる常駐プロセスは、どんなセキュリティ評価の有効期限も最大1時間しかありません。企業のコードベースを扱う開発者にとって、これは理論的な清潔さの問題ではなく、コンプライアンスの問題です。

第三に、ディスクと主権の実際のコストです。HNのコメント欄には複数の独立した報告があります:ユーザー icantevenholdは、自分のシステム上で関連するディレクトリが合計で約12GBを占めていると述べています;ユーザー rfgplkは、リリースディレクトリにすべての古いバージョンを保持しており、各エンコードファイルが300MBであると言っています;ユーザー AgharaShyamは、キャッシュ内に約300MBのコピーが11件あると数えています。これらの数字はすべてコメント者の自己申告であり、公式データではありませんが、方向性は一致しています:自己更新を加えず古いバージョンを削除しない限り、サイズは増えるだけです。

公式の説明と一致しない(言動の監査)

OpenAIの外部に対するブランドの基盤は、セキュリティと倫理です:規約に記載されている「AGIを人類の利益のために利用すること」という約束から、定期的に公開されるモデル規格やセキュリティブログまで、核心的なテーマは「私たちはAIシステムをどのように制御し、予測可能にするかを最も理解している」です。このテーマが大きく語られるほど、公式の説明は際立ってしまいます:同意なしで常駐するプロセスは、自己コピー、自己更新、自動再起動、環境変数を固定し、公式の停止コマンドでは完全に停止できず、設定ドキュメントには停止方法が記載されていません。

文書の欠如は、10月12日にコメント欄のユーザー foma-agentが指摘した問題です。彼の自己申告によると、彼は公式の完全な設定ガイドページを取得しましたが、そこにはCLI自体の起動チェックや更新オプションが記載されていましたが、daemon_auto_startについては一行も触れられていませんでした。つまり、一般ユーザーがこのプロセス保護を停止したい場合、公式のドキュメントでは方法が見つかりません。

興味深いのは、通過者たちの反応です。有名なオープンソースツールの作者charliermarsh(Ruffやuvの作者で、OpenAIの従業員ではない)はHNで、更新サブシステムには触れていないと述べていますが、これは不注意のように見えます。彼は修正する意思があります。外部のオープンソース作者はそれを見るに堪えず、当事会社のissueの下の15件のコメントには公式のメンバーが現れていません。この対比自体が監査結果です。

横向を見直す。コメント欄で、Claude Codeは同じ運営モデルであると指摘する人がおり、Anthropicのリポジトリにある類似のissueを投稿している。このissueの具体的内容は独立した検証を受けていないため、ここでは「コメント欄に類似のissueが投稿された」という事実のみを記録する。もしこれが事実であれば、それは単一の製品会社の過失ではなく、「AIコーディングツール」というカテゴリーのデフォルトの行動が集団的に変化していることを意味する。エコシステムにはすでに免疫反応が起きている:Nixパッケージコミュニティは特別なパッチを施し、パッケージング層でプロセスを直接分離する行動を行っている。コメント欄のwhimblepopは、Claude CodeのNixパッケージも同様にパッチが適用されていると指摘している。パッケージマネージャーコミュニティの投票は明確で、このような行動はユーザーのマシンには適していない。

コメント欄の意見

HNの高評価コメントは大まかにいくつかの派閥に分かれており、以下はその要約であり、本稿の立場を代表するものではない。

少数派は自動更新が正常な状態であると考えている。このような迅速なイテレーションには自動更新が必要であり、ブラウザも同様だと。この意見にはすぐに反論があり、「私のブラウザの更新には承認を求められる」というユーザーのコメントがある。また、製品が速く動作するからといって、私の望む方向に動くわけではなく、プロジェクトの途中で変更されることも望まない。自動更新は価値があるが、専門ツールとしてのデフォルトにはふさわしくない。また、パッケージマネージャーは何千ものプログラムをバックグラウンドで更新する能力があり、ユーザーのコンピュータの主権を侵害しない。

最も感情的なコメントはユーザーlaurynas-karvelisからで、これは基本的にマルウェアの特徴であり、意図的なものではないと述べている。ユーザーLogarithmusは続けて、このような方法で住宅代理ネットワークを構築してウェブページを監視するのも驚くことではないと述べている。注意すべきは、マルウェアか意図的なものかというのは、コメント欄のユーザーの判断であり、確認された結論ではないため、本稿ではこれを事実として採用しない。

実践派の対策はより冷静である。ユーザest396gtは、ドキュメントにはホストファイルシステム全体を完全に読み書きする必要があると書かれているため、Codexを強化されたラズベリーパイで実行し、遠隔で接続して使用している。これが実際のユーザーの対策である。ユーザ alexklibiszは環境変数の問題を独立して確認している:彼はdirenvを使用してディレクトリレベルの変数を管理しており、あるディレクトリで起動されるCodexが変数を持ち去ってしまった。

最も広く伝わっているのはユーザjonplackettからの皮肉である:「ソフトウェアを終わらせると言うソフトウェアが、実際にはあまり良いソフトウェアではない」というものだ。

一般ユーザーができる3つのこと

第一に、Codex CLIを使用している場合、自動起動をオフにしてください:codex features disable daemon_auto_startを実行し、プロセスの停止コマンドを実行し、プロセスリストで更新器も停止していることを確認してください。issue報告者の教訓は、停止コマンドが完全に停止しないため、手動で再確認する必要があることです。

第二に、ディスクをチェックしてください。ユーザーディレクトリ内の .codexのpackagesフォルダがどれだけのスペースを占めているかを見てください。コメント欄で報告されている数字は数百MBから12GBまで様々です。旧バージョンは自動的にクリアされず、定期的に不要なバージョンのディレクトリを手動で削除する必要があります。

第三,敏感環境別裸跑。要処理会社コードや内部ネットワークプロキシを設定したマシンについては、コメント欄の隔離方案を参考にしてください:専用の小さなホストや仮想マシンで実行し、遠隔から接続して使用する;またはNixコミュニティでパッチが適用されたパッケージを使用し、パッケージング層で守護プロセスの機能を取り除きます。原則は018号の緊急ブレーキ時と同じです:ツールの手は出せるが、スイッチと床は自分の手に握っておく必要があります。

結論

分別声明:本稿ではどの会社も非難していません。悪意のあるソフトウェアや意図的な行為については、コメント欄の感情的な定義であり、本稿ではそのまま転載するのみで採用しません;確認された事実は行為自体(issueの報告者が述べる通り)、issueの開放状態と公式の沈黙です。過失と故意は証拠上別物ですが、本機の行動の監査には動機の認定は不要です:同意なしの常駐と自己更新は、セキュリティをブランドの基盤とするどの会社にとっても、言動の不一致を構成します。注目すべき2つのポイントがあります:一つ目は、OpenAIが正面から対応するかどうか、issue下で公式メンバーのコメントやブログの説明、またはデフォルト値の変更が発生した場合、いずれかが発生したらv2に移行します;二つ目は、Anthropicのリポジトリに投稿された類似のissueが確認された場合、カテゴリーのシフト判断は「コメント欄での非難」から「両社の事実」へと昇格し、その時同じく更新されます。

参考資料

  • issueの一次情報:openai/codex#48195、GitHub APIからの取得(本文全文、15件のコメント全量、ラベル、state=open、作成日09-25T20:04Z、コメント者のauthor_associationはすべてNONE)
  • HN story 50060694:Algoliaデータ、10-12T18:29に提出、10-13の朝のスナップ462▲/239💬、本文は「超450▲」という表現を使用
  • HNのコメント池:Algolia items APIから2層で93件取得、代表的なサンプルは事実パッケージに記録済み
  • npmレジストリ:@openai/codexの最新バージョン0.162.1(10-13のスナップ)
  • charliermarshの身分:HNユーザーの自己証明(Ruff/uvの作者、現在Spring Discoveryに勤務)、OpenAIのスタッフではない
  • 文書不足の非難:HN/issueのコメント者foma-agentの自己説明(10-12)、このコメントをもって自己説明とする
  • anthropics/claude-code#14980:HNのコメントが投稿され、内容は独立して確認されておらず、本文は「コメント欄に類似のissueが投稿された」と処理される
  • 374MB/12GB/11件の300MBなどといった数字:それぞれissueの報告者自身の説明とHNユーザーの自己報告であり、いずれも公式データではない
广告 · Advertisement

よくある質問

Codex CLIがデフォルトでデーモンプロセスをインストールする理由は何ですか?

プロセス保護と自動更新のために、応答速度とイテレーションの速さを優先している。

デーモンプロセスのインストールが問題視される理由は何ですか?

デフォルト設定でユーザーが意図しない動作が発生し、セキュリティや監査の問題が指摘されている。

OpenAIはこのissueに対してどう反応していますか?

2週間半の沈黙後も、公式からの回答はまだない。