クラウドとインフラ

Hyperlight、スナップショット技術で未修正のLinuxアプリをマイクロVMに隔離し高速起動を実現

CNCF SandboxプロジェクトであるHyperlightは、標準的なLinuxバイナリをハイパーバイザーで隔離されたマイクロVM内で実行できるようになりました。スナップショット技術により、AIエージェントやプラグイン向けのミリ秒単位の起動時間を実現しています。

ストップウォッチの隣にある、内部にミニサーバーラックが入ったガラスの立方体。
この記事用に生成されたイラスト

英語の原文から自動翻訳されました。

AI生成コードや脆弱性のあるランタイムに関連する最近のセキュリティ事件は、クラウドネイティブシステムにおけるより強力な隔離境界の緊急の必要性を浮き彫りにしました。これに対応して、CNCF SandboxプロジェクトのHyperlightは、軽量でハイパーバイザーにより隔離されたマイクロVM内で未修正のLinuxアプリケーションを実行できる機能を拡大しました。この開発により、開発者は高度なスナップショット技術を通じてネイティブプロセスと同等の起動速度を維持しながら、ハードウェアレベルのセキュリティでAIエージェントやサードパーティ製プラグインからの潜在的に危険なコードを実行できるようになります。

何が起きたか

クラウドインフラストラクチャでは、AIエージェントによって生成されたPythonスクリプトや顧客がアップロードしたプラグインなど、開発チームが作成していないコードの実行への依存度が高まっています。2026年に発生した2つの重大なセキュリティイベントは、弱い隔離によるリスクを強調しました。5月には、Mini Shai-Hulud npmワームがCIランナーや開発者マシンに侵入し、1,000以上の認証情報ロケーションにアクセスするとともに、AIコーディングエージェントのセッションフック内に永続化されました。その後10月には、PHP2Shell脆弱性がPHPランタイム内のメモリ処理バグを露呈させ、パッチ提供前に認証されていない攻撃者がサーバー上でコードを実行することを可能にしました。これらの事件は、悪意あるコードと侵害されたランタイムの両方が、従来のソフトウェアベースのサンドボックスを突破し得ることを示しました。

Hyperlightは、QEMUやFirecrackerのようなスタンドアロンプロセスではなく、ライブラリとしての仮想マシンモニター(VMM)として機能することで、これらの脅威に対処します。Rustで書かれ、Pythonおよび.NET用のSDKを提供しており、CPU仮想化拡張機能によって隔離されたマイクロVMを作成するためにアプリケーションに直接組み込まれます。同プロジェクトは最近、hyperlight-unikraftを導入し、再コンパイルや特別なSDKなしで標準的なLinuxバイナリの実行を可能にしました。この統合により、既存のツールやワークフローは、完全な仮想マシンに伴う典型的なパフォーマンスペナルティを受けることなく、ハイパーバイザーレベルのセキュリティを活用できます。

仕組み

Hyperlightは、Unikraftプロジェクト由来のユニカーネルを利用し、単一のアプリケーションに必要なコンポーネントのみを含むマイクロVMを作成します。従来の仮想マシンとは異なり、これらのゲストは不要なデバイスをエミュレートしないため、オーバーヘッドと攻撃面が削減されます。ゲストオペレーティングシステムはホストとカーネルを共有しないため、ランタイムやアプリケーションコードが侵害されても、ハイパーバイザーがホストリソースへのアクセスを防ぎます。権限はケイパビリティベースであり、埋め込みアプリケーションがネットワークアクセスやファイルマウントを明示的に許可する必要があります。これにより、デフォルトでは何も許可されないことが保証されます。

hyperlight-unikraftにおける主要な革新は、起動遅延を軽減するためのスナップショットの使用です。Python、Node.js、.NETなどの言語ランタイムは、ユーザーロジックを実行する前にモジュールのインポートやJITコンパイルに多くの時間を費やすことがよくあります。Hyperlightはこの初期化を一度だけ実行し、ランタイムがアイドル状態になった時点でマイクロVMのスナップショットを取得します。その後の実行では、このスナップショットをミリ秒単位で復元し、重い起動処理を回避します。データサイエンスライブラリの読み込みなど、初期化コストが高いワークロードの場合、このアプローチはハードウェア隔離のセキュリティメリットを保ちつつ、ネイティブ実行よりも大幅に高速になる可能性があります。

主要な詳細

  • Hyperlightは、x86_64およびarm64アーキテクチャ上で、Python、Node.js、.NET、Java、PHP、Go、Rust、C、Bash、PowerShellなどの言語向けに未修正のLinuxバイナリを実行します。
  • システムは、分離を強制するために、Linux上のKVMまたはMSHV、Windows上のWHP、macOS上のHypervisor.frameworkなどのハイパーバイザー技術を使用します。
  • スナップショット復元により、マイクロVMはミリ秒単位で起動でき、ベンチマークではnumpyとpandasをインポートするPythonスクリプトがネイティブの1,119 msに対して45 msで起動することが示されています。
  • 統合には、Kubernetesコンテナランタイムサポート向けのurunc、AIエージェントコード実行向けのsmolagents-hyperlight、安全なユーザー定義関数向けのclickhouse-hyperlightが含まれます。
  • プロジェクトは、ネイティブ実行時にホストメモリを読み取ることができたWasmtimeのエクスプロイト(CVE-2023-26489)が、hyperlight-unikraft経由で実行された際にはマイクロVM内に封じ込められることを実証しました。
  • 開発者は標準的なDockerfileを使用してゲストイメージを構築し、pip、npm、その他のパッケージマネージャー経由でパッケージを追加できます。hluk CLIがゲストイメージへの変換を処理します。

なぜ重要なのか

ユーザー生成コードやAI生成コードを実行するプラットフォームを構築しているソフトウェアエンジニアにとって、Hyperlightはセキュリティとパフォーマンスのトレードオフに対する実用的なソリューションを提供します。従来のプロセスサンドボックスは高速ですがカーネルエクスプロイトに対して脆弱であり、完全な仮想マシンは安全ですが起動が遅いです。ハイパーバイザー分離とスナップショットベースの起動を組み合わせることで、Hyperlightはアプリケーションのスループットをボトルネックにしない安全な実行環境を可能にします。これは、モデル生成コードをテストまたは実行するために数千の隔離された実行環境を生成する必要がある可能性のあるAIエージェントフレームワークにとって特に重要です。

未修正のバイナリを実行できる能力により、チームはこのセキュリティ層の恩恵を受けるために既存のアプリケーションをリファクタリングしたり、新しいプログラミングモデルを学んだりする必要がありません。KubernetesやClickHouseといった確立されたエコシステムとの統合により、組織はこの技術を段階的に導入できます。例えば、データベースユーザーは、あるユーザーのコードが別のユーザーのコードに干渉したり、サーバーシークレットにアクセスしたりできないように、隔離されたマイクロVM内で実行されるPython関数を定義できます。この機能は、複雑なインフラ変更を要求することなく、マルチテナンシーとセキュリティコンプライアンスをサポートします。

実施可能なこと

  • 提供されているインストールスクリプトを使用して、KVMを搭載したLinuxホストまたはApple Silicon Macにhluk CLIをインストールし、マイクロVMでの実験を開始してください。
  • Pythonや他のサポートされている言語向けのテンプレートを使ってhluk initコマンドで新しいプロジェクトを初期化し、ビルドプロセスを理解してください。
  • GitHubで利用可能なベンチマークハーネスを使用して、ネイティブ起動時間とスナップショット復元時間を比較し、特定のワークロードにおけるパフォーマンス上の利点を評価してください。
  • Kubernetesを使用している場合は、urunc統合を検討してください。これにより、hyperlight-unikraftゲストをオプションのスナップショット再開付きの標準OCIコンテナとして実行できます。
  • Wasmtimeエクスプロイトの封じ込めなど、GitHub上のセキュリティデモンストレーションを確認し、ハイパーバイザー境界がランタイム脆弱性による潜在的な被害をどのように制限するかを理解してください。
  • 信頼できないコードの実行が通常の要件となるAIエージェントフレームワークやプラグインシステムにhyperlight-unikraftを組み込むことを検討し、ケイパビリティベースの権限モデルを活用してアクセスを制限してください。
  • #hyperlight
  • #security
  • #virtualization
  • #ai-agents
  • #kubernetes
  • #unikraft

Bytechapストアのツール

続きを読む

すべての記事