AIエージェントに渡したAPIキーが漏れたら、どうなるか。
OpenClawをはじめとするコーディングエージェントが普及するなか、エージェントへの認証情報の渡し方は多くの現場で課題になっています。IronClawはNEAR AIが開発したRust製のAIエージェントランタイムで、WebAssemblyサンドボックスとハードウェアレベルの暗号化でその問題に正面から取り組んでいます。
この記事でわかること:
- IronClawがどんな課題を解決するか
- WASMサンドボックスとTEEによるセキュリティの仕組み
- OpenClawとの設計上の違い
- インストールから初回セットアップまでの手順
エージェント時代のセキュリティ問題
AIエージェントは複数のAPIを呼び出し、ファイルを読み書きし、外部サービスと通信する。その過程で、Slack APIキー・GitHub Token・データベースのパスワードといった認証情報がエージェントに渡ることになる。
OpenClawのようなTypeScript製ランタイムでは、これらのシークレットがプロセス内のメモリに展開され、ツールコードから参照できる状態になりやすい。プロンプトインジェクション攻撃や悪意あるMCPサーバーを経由して、認証情報が外部に送出されるリスクがある。
IronClawはこの問題を「シークレットをWASMコードに渡さない」という設計で解決する。
WASMサンドボックスによる多層防御
IronClawでは、すべてのツールがWebAssemblyコンテナの中で独立して実行される。各コンテナには明示的に許可したリソースしかアクセスできないケイパビリティベースの権限モデルが適用される。
シークレットは暗号化ボルトに保管され、ツールコードには直接渡らない。HTTP通信が必要なエンドポイントへリクエストが発行される際に、ホスト境界でAPIキーが注入される。そのため、WASMコード内でシークレットを参照することはできない構造になっている。
送受信されるデータはリーク検出スキャンを通過する。シークレットの文字列がレスポンスに含まれていないかを確認したうえで、結果がエージェントに返される。
WASM → ホワイトリスト検証 → リークスキャン → クレデンシャル注入 → HTTPリクエスト
↑ シークレット展開はここだけ
TEEによるハードウェアレベルの信頼保証
NEAR AI Cloudにデプロイする場合、IronClawはTEE(Trusted Execution Environment)を利用できる。ハードウェアで保護されたエンクレーブ内でエージェントが動作し、暗号的な証明(cryptographic attestation)によって「想定通りのコードが想定通りの環境で動いている」ことを外部から検証できる。
コンプライアンス要件がある環境や、エージェントの動作を第三者に証明したい用途に対応する機能だ。
プロンプトインジェクション対策
外部から取得したコンテンツがエージェントの指示として実行されるプロンプトインジェクション攻撃への防御も組み込まれている。
IronClawはWebページ・メール・ファイルなどの外部コンテンツに対してパターン検出とコンテンツサニタイズを実行する。検出した内容はBlock・Warn・Review・Sanitizeの4段階のポリシーで処理される。
インストールと初期設定
前提条件はRust 1.85以上とPostgreSQL 15以上(pgvectorエクステンション付き)。
macOSとLinuxではHomebrewまたはインストールスクリプトで導入できる。
# Homebrewの場合
brew install ironclaw
# インストールスクリプトの場合
curl --proto '=https' --tlsv1.2 -LsSf \
https://github.com/nearai/ironclaw/releases/latest/download/ironclaw-installer.sh | sh
WindowsはMSIインストーラとPowerShellスクリプトが用意されている。
インストール後はironclaw onboardを実行すると設定ウィザードが起動する。データベース接続・NEAR AI認証(ブラウザOAuth)・シークレットの暗号化(システムキーチェーン)を対話形式で設定できる。
NEAR AI以外のLLMプロバイダーへの接続
デフォルトではNEAR AIをLLMバックエンドとして使うが、OpenAI互換のエンドポイントであればOpenRouter・Together AI・Fireworks AI・Ollamaなど幅広いプロバイダーに切り替えられる。
export LLM_BACKEND=openai_compatible
export LLM_BASE_URL=https://openrouter.ai/api/v1
export LLM_API_KEY=sk-or-...
export LLM_MODEL=anthropic/claude-sonnet-4
Ollamaを指定すれば完全なオフライン運用も可能だ。
OpenClawとの設計上の違い
IronClawはOpenClawにインスパイアされたRust再実装という位置づけで、エージェントの機能的な方向性は共通している。主な違いは以下の点だ。
ランタイム言語がTypeScriptからRustに変わったことで、ガベージコレクターがなくなり、バッファオーバーフローやuse-after-freeといったメモリ安全性の問題がコンパイル時に排除される。
ツール実行の分離方式はDockerコンテナからWASMサンドボックスに移行している。Dockerより軽量で、起動オーバーヘッドが小さい。永続化にはSQLiteではなくPostgreSQLを使用するため、本番環境での運用に向いている。
まとめ
IronClawはAIエージェントのセキュリティを「設計で解決する」アプローチをとっている。APIキーをWASMコードに渡さず、すべての通信をホワイトリストで制御し、TEEによって実行環境そのものの信頼性を証明できる。
GitHubスター数はすでに8,500を超え(2026年5月時点)、コントリビューターも58名いる。OpenClawと組み合わせて使う想定のツールが多い現状において、エージェントの実行基盤として選択肢に入れる価値がある。