AIToday

macOS向けコンテナでAIエージェントを隔離

Hacker News2時間前LINEで送る
macOS向けコンテナでAIエージェントを隔離

要点

sdeという新しいオープンソースCLIが、AIアシスト開発用のmacOS上で隔離されたコンテナ環境を作成し、エージェントがシークレットを漏らしたり、無断で変更を加えたりすることを防ぐよう設計されています。DNS層でエグレスアローリストを適用し、認証情報(GitHubトークン、AWS SSO鍵)をホストに保持してコンテナごとに操作単位で提供し、git pushなどの書き込み操作に対して明示的な期間限定の許可を要求します。このツールは現在Homebrew経由またはソースビルドで利用でき、Linuxサポートが計画されています。

こういう要約が、毎朝あなたのメールに届きます。

無料で登録 →

3つのポイント

  • 何が起きたか

    sdeという新しいオープンソースCLIツールが、macOS上で隔離されたコンテナ環境をブートし、AIエージェントとコードが安全に実行できるようにします。ロール分離されたデータサービス、DNS層で許可されていないドメインをブロックするエグレスファイアウォール、ホスト上でシークレットを保持してコンテナファイルシステムから隔離する認証情報ブローカーを備えています。

  • なぜ重要か

    AIエージェントをコードベースに対して実行する場合、通常はシェルアクセスを許可して環境ファイルを読み取り、コードをプッシュし、クラウドAPIを呼び出すため、攻撃面が非常に広くなります。sdeは明示的な書き込み許可を適用し(git pushはホストからの期間限定の承認が必要)、GitトークンをコンテナではなくmacOS Keychainに保持し、ブローカー経由で操作ごとに短期AWS認証情報を提供することで、エージェントまたは依存関係が悪意を持つ場合の影響範囲を減らします。

  • 注目点

    このツールは積極的に開発中で、v1(ワークスペース隔離、認証情報仲介、エグレスポリシー、macOS上のAWS/GitHub統合)を対象としています。Linuxランタイムサポートと追加のトークンプロバイダーはロードマップに含まれています。インストールはHomebrew経由またはGo 1.25以上でソースから構築できます。脅威モデルの詳細については、著者はこれが保護措置であり獄ではなく、コンテナエスケープから防御しないこと、SECURITY.mdに記載されていることに注意しています。

詳細

sdeはmacOS向けの単一バイナリCLIツールで、ロール分離されたネットワーク隔離コンテナ環境(ワークスペースと呼ぶ)をブートし、コードとAIエージェントが安全に実行できるようにします。基本的な考え方は最小権限の原則を適用することです。エージェントに必要なもの(読み取りアクセス、依存関係を取得する能力、ギットコミットを行う能力)を与え、それ以上は与えません(生のインターネットアクセスなし、スタティック認証情報なし、制御されていない書き込みアクセスなし)。

このツールは3つのメカニズムを通じて隔離を適用します。まず、エグレス制御:ワークスペースコンテナはtopology.yamlファイルで明示的にリストされたドメインにのみ到達できます。その他すべてのトラフィックはDNSリゾルバー(NXDOMAINを返すサイドカーコンテナ)でブロックされ、ワークスペース内のiptablesで再びブロックされます。クラウドインスタンスメタデータ(169.254.169.254)は常にブロックされ、エージェントがクラウドプロバイダーシークレットを盗むのを防ぎます。次に、認証情報仲介:Gitトークンはホスト上のmacOS Keychainに存在します。ワークスペースがgit cloneまたはgit pushを必要とする場合、ホスト上で実行されているUnixソケットブローカーと通信し、ブローカーが操作ごとに短期トークンをミントしてGIT_CONFIG_COUNT環境変数経由で注入します。コンテナに.gitconfigファイルはありません。AWS認証情報も同様に機能します。sdeはワークスペースに~/.aws/configを注入し、これはcredential_processを使用してホスト上のブローカーをコールバックし、ホスト上でaws configure export-credentialsをシェルアウトして短期SSO認証情報をベンディングし、スタティックキーがコンテナに保存されないようにします。第3に、書き込みゲーティング:git pullはデフォルトで許可されていますが、git pushはホストターミナルから発行した明示的な許可が必要です(例:sde grant push --repo my-org/my-project --ttl 10m)。指定した期間にプッシュアクセスを時間限定します。

インストールはHomebrew経由(brew tap alexs60/sde && brew trust alexs60/sde && brew install sde)またはGit、Go、Makeを使用したソースからのビルドで利用できます。このツールはmacOS 13以降、Colima(無料でDocker API互換のコンテナランタイム)、Gitが必要です。AWS CLI v2はAWS認証情報を利用したい場合はオプションです。コンテナランタイムはトポロジー変更1行でColimaからOrbStackに切り替えられます。

ワークフローは5つのステップです。GitHubパッケージ認証トークンを保存し(sde auth github --store)、プロジェクトに移動し、topology.yamlを生成し(sde init、スタックを自動検出)、環境をブートし(sde up)、ワークスペースでシェルを開き(sde shell)、必要に応じて書き込みアクセスを許可します(sde grant push --ttl 10m)またはすべてを停止します(sde down)。topology.yamlファイルはネットワーク、サービス(ワークスペースとデータストアコンテナ)、エグレスポリシー、認証情報プロバイダーを指定します。参照例にはpnpmを備えたNode.jsワークスペース、Postgresデータストア、npmレジストリ、GitHub、Anthropic APIのアローリストが含まれています。

このツールは積極的に開発中で、GPL-3.0以降のライセンスの下で公開されています。v1ターゲットはmacOS上のワークスペース隔離、認証情報仲介、エグレスポリシー、AWS/GitHub統合をカバーしています。Linuxランタイムサポートと追加のトークンプロバイダーはロードマップに含まれています。最新のE2E検証は2026年7月21日です。著者はSECURITY.mdでsdeが保護措置であり獄ではないことに注意します。エージェントが脱線したり、依存関係がホームフォンしたりするコストを上げますが、コンテナエスケープには耐えず、任意のユーザーコンテンツを提供するホワイトリスト登録ドメインは設計上データチャネルです。

背景と解説

sdeはAIアシスト開発における実際のセキュリティギャップに対応しています。コードベースに対してエージェントを実行する場合、通常はシークレット、Gitヒストリー、クラウド認証情報へのアクセス権を持つシェルを許可する必要があり、侵害されたエージェントまたは悪意のある依存関係が悪用できる広い権限表面が生じます。このツールは隔離の3つの相互補完的なレイヤーを実装しています。まず、ネットワーク隔離:ワークスペースは明示的にホワイトリストに登録したドメインにのみ到達でき、その他すべてはDNSリゾルバー(サイドカーコンテナ)とiptablesでブロックされ、クラウドインスタンスメタデータは常にブロックされます。次に、認証情報隔離:シークレットはコンテナファイルシステムに存在せず、ホストのmacOS Keychainに存在し、操作ごとに仲介されるため、攻撃者がワークスペース内でシェルを取得してもスタティックキーを収集できません。第3に、書き込み制御:エージェントはホストターミナルから発行した明示的で期間限定の許可なしにコードやインフラを変更できず、エージェントの読み取りアクセス(コンテキストに必要)を書き込み機能(制御する必要がある)から分離します。

アーキテクチャはモジュラーです。Colimaがデフォルトのコンテナランタイムですが、OrbStackは単一のトポロジー変更で動作し、コードベースは外部インポートがゼロのコアドメインを持つ六角形アーキテクチャを使用しています。インストールはシンプルで、Homebrewまたはソースからのビルドが可能であり、CLIは主要なインターフェースとして設計されています。著者は制限について透明です。sdeは保護措置であり獄ではないため、コンテナエスケープから防御せず、任意のユーザーコンテンツを提供するホワイトリスト登録ドメインは設計上データチャネルです。最新のE2E検証は2026年7月21日です。

よくある質問

sdeはどのオペレーティングシステムをサポートしていますか?
sdeはApple SiliconまたはIntel上のmacOS 13(Ventura)以降で実行されます。Linuxランタイムサポートはロードマップに含まれていますが、まだ利用できません。
sdeはAIエージェントが認証情報を盗むのをどのように防ぎますか?
認証情報(GitHub PAT、AWSキー)はコンテナファイルシステムではなくホスト上のmacOS Keychainに保存されます。ホスト上で実行されているブローカーデーモンがUnixソケット経由で操作ごとに短期トークンを提供します。例えば、AWS SSO認証情報は操作ごとに新しく生成され、静的キーはコンテナに接触せず、Gitトークンは.gitconfigに保存されるのではなく環境変数経由で注入されます。
AIエージェントが許可なくコード変更をプッシュできますか?
いいえ。git pullはデフォルトで許可されていますが、git pushはホストターミナルから発行された明示的で期間限定の許可(例:sde grant push --ttl 10m)が必要であり、エージェントがいつ書き込みできるかを制御できます。

「AIコーディング」の最新ニュースを、毎朝7時にお届けします

AIが要約して、あなたの選んだトピックだけを1日1通。LINE・Email・Slackで届きます。

登録無料・30秒で完了・いつでも解除できます

ディスカッション

まだコメントがありません。最初のコメントを投稿しましょう!

ログインして議論に参加

関連記事

AIニュースを毎日お届け

200以上のソースから厳選したAIニュースを毎日無料でお届けします。

無料で始める

登録無料・30秒で完了・いつでも解除できます