Claude Web のマイクロVM をリバースエンジニアリング:Anthropic が隠した Antspace を暴く

2026/09/11 12:45

Claude Web のマイクロVM をリバースエンジニアリング:Anthropic が隠した Antspace を暴く

RSS: https://news.ycombinator.com/rss

要約

Japanese Translation:

最も重要な発見は、Anthropic が「Antspace」という完全に垂直統合化され、AI 固有のインフラを運用しており、モデルのデプロイメントを一般的なクラウドプロバイダーに依存せず、自社のプライベートサーバー内で完全に管理している点である。この発見は、大規模言語モデルのアプライケーション層と基盤となる物理インフラの間にある分離に関する前提を覆すものである。標準的な Linux ツールを用いたフォレンジック分析により、ストリップされていない Go バイナリ、カスタムの Rust スーパーバイザー、および「Baku」のような特定の内蔵パッケージを特定し、この隠されたアーキテクチャが解明された。これらのコンポーネントは、セキュリティのためのメモリアーザーからデータベースのプロビジョニング、スナップショット管理に至るまで、Anthropic の制御下で直接すべてを管理する。プラットフォーム自体は「Bring Your Own Cloud」モードもサポートしているものの、コアオーケストレーションは依然として独自のものとなっている。したがって、開発者は本質的に、自然言語コマンドが生産環境へとシームレスに変換され、Anthropic の壁の向こう側へ出ることもなく、エコシステム内で機能する状況にロックインされることになっている。この境界線の曖昧さは、現代の AI サービスが、公衆向けのドキュメントよりもはるかに統合された自立型のスタック上で動作することを示唆しており、サービス提供元に実行から意図に至るまでの開発ライフサイクル全体に対する前例のない制御を付与していることを意味する。

本文

Claude Code Web の内部構造:Anthropic の機密 PaaS と「Antspace」の解明

調査の背景と前提条件

  • 調査対象: Claude Code Web のランタイム環境
  • 到達地点: 未公開(アンリリース)の Anthropic インフラストラクチャおよびアプリケーションホスティングプラットフォームの発見
  • 調査手法:
    • 完全な Linux ツール
      strace
      ,
      strings
      ,
      objdump
      ,
      go tool objdump
      )を使用した標準的な分析。
    • 特異な攻撃や権限昇格、ネットワーク攻撃は行わなかった。
    • 重要: 調査対象のバイナリは**未ストリップ(デバッグシンボル完全)**であり、公開環境でもセキュリティリスクが示唆される構造となっている。

第 1 レイヤー:Firecracker MicroVM ベースのハイパーバイザ

Claude Code Web の基盤は、AWS Lambda や Fargate で使用される Firecracker MicroVM テクノロジーであることが確認された。

ハードウェア仕様

  • CPU: 4 vCPU(Intel Xeon Cascade Lake @ 2.80GHz)
  • メモリ: 16GB RAM
  • ストレージ: 252GB ディスク
  • カーネル: Linux 6.18.5
  • 仮想化: ネステッドバーチャライゼーションなし(Firecracker がゲストの VM フラグを意図的に無効化しているため)

プロセス構造(最小限の init スーパバイザー)

  • PID 1: カスタムバイナリ
    /process_api
    • systemd
      sshd
      、ログ記録デーモンの存在なし。
    • WebSocket API(ポート 2024)およびセカンダリエンドポイント(ポート 2025)のリスニングを行う最小限のスーパーバイザー。
    • 初期化フラグ:
      init_on_free=1
      (解放ページのゼロ化)。
  • PID 517:
    /usr/local/bin/environment-manager
    • 実際のセッション管理を担当。

スナップショットアーキテクチャ(Snapstart)

セッションはゼロから起動せず、凍結された VM スナップショットからの復元により開始される。テンプレート作成と復元の間には最大 48.5 時間 のギャップが存在するが、データは一貫性を持って維持される。

デバイスのホットスワップ

デバイステンプレート時復元後内容・役割
vda256 GiB (ext4)変更なしセッションルート FS(Ubuntu 24.04)
vdbプレースホルダー63.7 MB (squashfs)
/opt/claude-code
vdcプレースホルダー12.1 MB (squashfs)
/opt/env-runner

復元時の動作(Snapshot Load)

ホストがセッション固有のブロックデバイスを指定し、VM を再起動させる際、以下の処理が行われる:

  1. キャッシュ管理: ページキャッシュを破棄し、古いテンプレートデータの返答を防ぐ。
  2. ファイルシステム再構築: Ext4 ルート FS のマウントと
    pivot_root
    の実行。
  3. オーバーレイ追加: squashfs(Claude Code および環境ランナー)のマウント。
  4. セキュリティ強化:
    CAP_SYS_RESOURCE
    権限の廃止、
    clock_settime()
    による時刻修正、暗号予測不可能性の再シード。

プロトコル仕様:process_api とネットワーク制御

WebSocket API(ポート 2024)

PID 1 が実装する Rust/tokio バイナリで、プロセス管理用のワイヤープロトコルを提供する。

  • 接続ハンドシェイク: JWT(オプション) →
    ProcessConnection
    JSON → プロセス作成/再接続
  • I/O フロー:
    • Stdin/Stdout: テキスト入力を受け取り、バイナリフレームとしてデータを転送。
    • エンド条件:
      StdOutEOF
      /
      StdErrEOF
      で明示的に終了を検知。
  • 機能: シグナル送信(
    SendSignal
    )、ウィンドウサイズ変更(
    Resize
    )、デタッチ、キープアライブ(
    KeepAlive
    )。
  • プロセス制御:
    • Cgroups 追跡(メモリ制限など)の実装。
    • 孤児プロセスの自動再親付け(PID 1 への紐付け)。
    • OOM ポリングループによるメモリ不足監視。

HTTP Control API(ポート 2025)

コンテナライフサイクルを管理する以下のエンドポイントを提供する。

エンドポイント機能
GET /status
ヘルスチェック
POST /fs_sync
ファイルシステムバッファのフラッシュ(強制的に書き込み)
POST /shutdown
グレースフルシャットダウン(キャッシュ破棄付)
POST /auth_public_key
JWT 検証キーの設定
POST /mount_root
ルート FS の再マウント(スナップショット復元のトリガー)
POST /container_name
コンテナアイデンティティの設定

/mount_root
の詳細:

  • ネットワーク設定(hosts, resolv.conf)、CA 証明書、FUSE マウント、壁時計タイムスタンプを含むコンフィグを受け取る。
  • マウント中は
    FIFREEZE/FITHAW ioctls
    を使用しルートディレクトリを凍結することで安定性を確保している。

第 2 レイヤー:未ストリップの Go バイナリ (
environment-manager
)

真の発見は、完全なデバッグ情報とシンボルテーブルを含んだ Go バイナリである

/usr/local/bin/environment-runner
environment-manager
のシンボリックリンク)にある。

  • バージョン: Go 1.25.7
  • 依存関係:
    • github.com/anthropics/anthropic/api-go
      : Anthropic 固有の SDK
    • github.com/mark3labs/mcp-go
      : Model Context Protocol (MCP) サポート
    • google.golang.org/grpc
      ,
      DataDog/datadog-go
      ,
      OpenTelemetry
      などの標準ツール。

アーキテクチャツリー (
internal/
)

├── api/              # API クライアント(セッション、ポーリング)
├── auth/             # GitHub アプリトークンプロバイダー
├── claude/           # インストール・アップグレード・実行管理
├── config/           # モード制御(new/resume/cached/setup-only)
├── envtype/          # 環境種別定義
│   ├── anthropic/    # Anthropic ホスティング (Firecracker)
│   └── byoc/         # Bring Your Own Cloud (BYOC)
├── gitproxy/         # Git クレデンシャルプロキシ
├── input/            # Stdin パーサー+機密情報処理
├── manager/          # セッションマネージャー、MCP 設定、スキル抽出
├── mcp/              # MCP サーバー(codesign, supabase)
├── orchestrator/     # ポーリングループ、フック実行
├── podmonitor/       # Kubernetes リースマネージャー
├── process/          # プロセス実行+スクリプトランナー
├── sandbox/          # サンドボックスランタイム設定
├── session/          # アクティビティレコーダー
├── sources/          # Git クローン+ソース分類
└── tunnel/           # WebSocket タンネル+アクションハンドラ
    └── actions/
        ├── deploy/   # デプロイメントロジック
        ├── snapshot/ # ファイルスナップショット処理
        └── status/   # ステータス報告

第 3 レイヤー:未公開の PaaS 「Antspace」

tunnel/actions/deploy/
パッケージから発見された、Vercel と対をなす Anthropic 独自のデプロイメントクライアント。公的に言及のない「Antspace」(内部ニックネーム)である。

デプロイメントフロー

  1. 作成:
    antspaceControlPlaneURL
    への POST リクエスト(JSON + JWT)。
  2. ビルドアーティファクトアップロード:
    • Multipart/Form-data で
      dist.tar.gz
      を単一アーカイブとして送信。
    • サイズ制限のチェック(超過時はエラー)。
  3. ステータスストリーミング:
    • application/x-ndjson
      フォーマットでステータスをストリーム。
    • ステータス遷移:
      packaging
      uploading
      building
      deploying
      deployed

Vercel との比較と戦略的意図

Anthropic は既存の API をラップするだけでなく、フルプロトコルを独自に実装している。

側面VercelAntspace (Anthropic)
ファイルアップロード個別 SHA デダップ単一
dist.tar.gz
アーカイブ
ビルドプロセスリモート構築ローカルビルド後、アーカイブ送信
ステータス通知ポーリングNDJSON ストリーミング
認証方式Vercel API Token + Team IDBearer トークン + 専用コントロールプレーン URL
公開性文書化済み完全に機密/内部のみ

結論: Anthropic は「アイデア」から「ホスティング」に至るまで、スタックの全層を所有する戦略を敷いている。


第 4 レイヤー:Web アプリビルダー 「Baku」

claude.ai
で Web アプリ生成を指示すると起動する環境コードネーム。

  • プロジェクトスタック: Vite + React + TypeScript
  • 自動プロビジョニング: Supabase(データベース、MCP ツール統合)。
    • provision_database
      ,
      execute_query
      ,
      apply_migration
      などの MCP ツールが用意される。
    • DB スキーマから自動的に TypeScript 型を生成(
      generate_types
      )。
  • 開発環境保護:
    • .env.local
      の自動作成(Supabase クレデンシャル埋め込み)。
    • 停止フックの実装: Git コミット未保存、エラーログ、TypeScript エラーがあった場合のセッション中断を防止するロジックが含まれる。
  • デフォルトデプロイ先: Antspace(Vercel は代替手段として存在するが、主要経路は Anthropic 自社プラットフォーム)。

第 5 レイヤー:Bring Your Own Cloud (BYOC)

エンタープライズ顧客向けに用意された機能で、Anthropic の API によってオーケストレーションされる独自のランタイムを実行できる。

  • 実装:
    envtype/byoc
    パッケージ内
  • 主な特徴:
    • 高速起動: デフォルトモードが
      resume-cached
      (既存状態の再利用)。
    • 認証注入: 外部のコンテナレベルクレデンシャルを処理可能。
    • Kubernetes 統合: ポッドマネージャーによるリース管理の実装。
  • BYOC API エンドポイント例:
    • /v1/environments/whoami
      (アイデンティティ発見)
    • Supabase DB クエリプロキシ、コード署名検証などの専用エンドポイント。

調査結果と戦略的インパクト

垂直統合された AI アプリケーションプラットフォームの完成形

Anthropic は以下の完全なループを実現している:

  1. ユーザーの言語指示(LLM)
  2. アプリケーション生成(Baku 環境)
  3. データベース自動プロビジョニング(Supabase MCP)
  4. アプリケーションデプロイメント(Antspace PaaS)

これにより、ユーザーは Anthropic のエコシステムから離れる必要がなくなる。従来の「AI コーディングアシスタント」を超え、「アプリケーションホスティングまで含めたプラットフォーム」としての性格が強まっている。

市場への影響

  • 競争相手との対抗:
    • ホスティング:Vercel / Netlify
    • AI アプリ生成:Replit / Lovable / Bolt
    • バックエンド:Supabase / Firebase
  • 構造的優位性: 競合他社は個別のレイヤーしか掌握していないが、Anthropic は**意図理解(LLM)→ コード生成(ランタイム)→ ホスティング(PaaS)**までを自社インフラで完結させている。

調査方法論と発見の可能性

この分析は、公開されているバイナリから成された完全なアーキテクチャツリーを復元する手法を示したものである。

技術明らかにすること
dmesg
(ACPI OEM ID)
ハイパーバイザの特定(Firecracker)
go version -m
ビルドメタデータ、依存関係リスト、モノリポ構造の把握
シンボルテーブル (
objdump
)
パッケージレイアウト、型名、メソッドシニチャータの取得
ストラクタグ文字列抽出ワイヤープロトコル(JSON フォーマット)の発見
PID 1 に対する
strace
ランタイム振る舞い、IPC パターン、イベントループの確認

なぜ容易だったか

  • 未ストリップ: デバッグシンボルが公開されているため、逆解析ツール(Ghidra など)に頼らずとも内部構造が可視化できた。
  • Go の特性: ビルドメタデータへの埋め込みや文字列の保持により、依存関係とプロトコル仕様を容易に抽出可能だった。

結論

Antspace は現在は「staging-」バージョン付与の初期フェーズにあるが、本番グレードの成熟したデプロイメントプロトコルである。Anthropic は単なる AI 企業ではなく、「アプリケーションが自律して存在・動作するインフラスタック」を構築する野心的なプレイヤーとして進化していることが確認された。

同じ日のほかのニュース

一覧に戻る →

2026/09/14 6:06

Claude Fable 5.1 が、370年もの間解読されてこなかったシフラル・ディスティッヒを解読しました

## Japanese Translation: Claude AI が、ロイヤリストのトマス・アークハート(*Logopandecteision* および *The Jewel* の作品)から提示された 2 つの歴史的に未解決のカギ合を成功裏に解読し、ブルートフォース計算や人類による事前の解読なしに、王チャールズ 2 世への隠された祈りを明らかにしました。これらのカギ合は、既知の解法が存在せず、CIA などの組織によってこれまで追求されたことがなかったため、特に選ばれました。大規模なデータ処理ではなく、モデルは単純で埋め込まれた構造的ロジックを認識しました:一方のカギ合は、各数字をアークハートの 32 の「Proquiritations」内の単語インデックスにマッピングし、他方は *The Jewel* のページインデックスに数字をマッピングし、それらのページの最初の一語の頭文字を採用します。これにより、「O GOD UPHOLD KING CHARLS THE SECOND / MAKE HIM THE SUPREME RULER OF THIS LAND」という 2 つのロイヤリストの祈りと、「GREAT LORD, MANTAINE THAT REGAL FAMILIE / WHEREOF KING CHARLS THE SECOND IS THE HEAD...」という ottava rima 形式の祈りが得られ、写本エラー、ハイフン接続語、ページシフトオフセット、および *The Jewel* の不読み可能なセグメントによる軽微な不一致を除いて正確です。検証の結果、275 の位置のうち 231 が正確な最初の単語の一致を示しています。1652 年版の *Jewel* のフリーデジタル画像が存在しないため、残りの不明点を解決するには実物コピーまたはジャック&ライアルの 1983 年版が必要です。この成果は、高度な AI が以前見過ごされてきた微妙な構造的パターンを検出することで歴史的真実を明らかにすることを示しており、暗号解析を計算的なブルートフォースからパターン認識へ転換しました。

2026/09/14 2:37

Google はなぜ依然として不適切な広告を表示し続けているのでしょうか?

## Japanese Translation: Google の高度な AI モデルである Gemini は、iOS システムアラートのパロディを用いてユーザーをクリックさせるよう誘導する欺瞞的な YouTube 広告を特定しました。オペレーティングシステムのダイアログを模倣した広告を禁止する厳格なポリシーが存在にもかかわらず、この誤解を招くクリエイティブは複数回のユーザー苦情にもかかわらず人間による審査官によって以前承認されていました。広告は非機能のボタンを用いて緊急のハードウェア故障状態を偽造し、視聴者にデバイスが直ちに技術的危機に直面しているという錯覚を成功裡に抱かせました。この操作は虚偽表示に関する基本的なルールに違反し、プラットフォームの安全メカニズムに対するユーザーの信頼を損ないます。したがって、Google はクリエイティブコンテンツを即座に承認停止するよう推奨し、ポリシー違反警告を発出することを示唆しています。広告主がこの種の欺瞞的な実践を継続した場合、アカウントの完全な停止のリスクに直面します。この事例は、人間による監視と自動検知の間にある重大なギャップを浮き彫りにしており、Google はこれらの洗練された詐欺を特定できる強力な AI を保有していますが、システムはまだ有害コンテンツがユーザーに到達する前に能動的にブロックするためにそれらを完全に活用していないという状況です。

2026/09/10 21:27

Julia 1.13 のハイライト

## Japanese Translation: Julia 1.13 がリリースされ、回帰と課題を特定することに焦点を当てたテスターおよびコントリビューターからの大きな貢献が反映されています。今回のアップデートは、特に起動時間とパッケージの前コンパイルにおいて劇的なパフォーマンス向上をもたらします。ベンチマークによると、パッケージの読み込みはバージョン 1.12 に比べて約 30% 速く(LTS の 1.10 に比べて約 10-20% 速く)、アプリケーションの起動時間は 1.12 に比べて約 20% 向上しており、平均的なスピードアップ率は約 1.22 倍です。これらの改善は、AbstractString および数値型に対して RapidhashNano を採用したことであり、イメージオブジェクトのマーキングをスキップしてフルコレクション時間を短縮した強化された garbage collection、そして新しいデフォルトのハッシュングアルゴリズムという技術的なアップデートによって実現されています。より迅速な開発ワークフローを支援するために、重要なバグ修正により Ctrl-C を通じた割り込み処理がより信頼性高く、タスクのカANCEL mechanisms が改善されました。また、リリースには REPL に直接組み込まれる貴重な開発者ツールが含まれます:内部実装による構文ハイライトは OhMyREPL.jl などの外部パッケージの必要性を排除し、新しい fzf スタイルの履歴検索(Ctrl-R)がファジー検索と複数結果の選択、そして REPL モードの表示をサポートします。また、Windows では効率的なテキスト入力を可能にする括弧付きペースト機能も利用可能です。診断機能をさらに強化するために、「--trace-eval」フラグにより、テストスイートやスクリプトでの停滞を特定しながらトップレベルの評価進捗を監視することができ、新しい「@__FUNCTION__」マクロは「#self#」の代替としてパブリック API として機能します。さらに、イントロスペクションマクロは型の付いた呼び出し式を受け付けるようになり、Time To First X(TTFX)モニタリングは 2026 年 9 月 7 日より稼働開始される新しい CI ジョブを通じて Julia の開発プロセスの一部として統合されました。これらの改善は、テスト時や大規模スクリプト実行時の待ち時間を大幅に削減し、個人のコントリビューターおよびエンタープライズチームの両方に対して全体の生産性を高め、より速いフィードバックループを提供します。 ## Text to translate: Julia version 1.13 has been released with significant contributions from testers and contributors focused on identifying regressions and issues. The update delivers dramatic performance improvements, particularly in startup times and package precompilation. Benchmarks indicate that loading packages is now roughly 30% faster than in version 1.12 (and roughly 10-20% faster than 1.10 LTS), while application startup times have improved by approximately 20% over 1.12, with a mean speedup of ~1.22x. These gains are driven by technical updates including the adoption of RapidhashNano for AbstractString and numeric types, enhanced garbage collection that skips marking image objects to reduce full collection time, and new default hashing algorithms. To support this faster development workflow, critical bug fixes ensure more reliable interrupt handling via Ctrl-C and improved task cancellation mechanisms. The release also introduces valuable developer tools directly into the REPL: built-in syntax highlighting replaces the need for external packages like OhMyREPL.jl, a new fzf-style history search (Ctrl-R) supports fuzzy searching with multiple result selection and REPL mode indication, and bracketed paste functionality is now available on Windows for efficient text input. Further enhancing diagnostics, the `--trace-eval` flag allows users to monitor top-level evaluation progress to identify hangs in test suites or scripts, while a new `@__FUNCTION__` macro serves as a public API alternative to `#self#`. Additionally, introspection macros now accept call expressions with types, and Time To First X (TTFX) monitoring is now an integrated part of Julia's development process through new CI jobs, going live on September 7, 2026. Collectively, these improvements significantly reduce wait times during testing or large-scale script execution, thereby boosting overall productivity and providing faster feedback loops for both individual contributors and enterprise teams.