コンテンツにスキップ

OpenClaw Threat Model v1.0: AIエージェントの安全を守るガイド

AIエージェントやスキルを開発していると、「もし悪意のある入力があったら?」「データが漏洩したら?」といった不安がつきまとうものです。セキュリティ対策をどこから始めればいいか分からず、後回しにしてしまうことも少なくありません。

システムの安全性を確保するには、まず「どのような脅威があるのか」を正しく把握することが大切です。OpenClawでは、AIシステム特有の脅威を整理するために MITRE ATLAS フレームワークを採用しています。

このスレッドモデルを理解し、活用するために必要な要素は以下の通りです。

  • OpenClaw Agent Runtime(コア実行環境)
  • Gateway(認証・ルーティング)
  • Channel Integrations(WhatsApp, Telegram, Discord, Signal, Slack など)
  • ClawHub Marketplace(スキル配布プラットフォーム)
  • MCP Servers(外部ツールプロバイダー)
  • MITRE ATLAS Framework の基礎知識

OpenClaw の脅威モデルを理解するための 4 つのステップを紹介します。5 分で全体像を把握しましょう。

まずは、何が保護の対象に含まれているかを確認してください。OpenClaw の主要なコンポーネントはすべて対象です。

  • OpenClaw Agent Runtime: エージェントの実行、ツール呼び出し、セッション管理
  • Gateway: 認証、ルーティング、各チャネルとの統合

2. マーケットプレイスと外部接続をチェックする

Section titled “2. マーケットプレイスと外部接続をチェックする”

スキルや外部ツールとの連携部分も重要なチェックポイントです。

  • ClawHub Marketplace: スキルの公開、モデレーション、配布プロセス
  • MCP Servers: 外部ツールプロバイダーとの通信

3. MITRE ATLAS フレームワークを参照する

Section titled “3. MITRE ATLAS フレームワークを参照する”

AI/ML システム特有の攻撃手法を理解するために、MITRE ATLAS を活用します。

  • ATLAS Techniques: 具体的な攻撃手法のリスト
  • ATLAS Tactics: 攻撃者の戦略的目標

4. コミュニティへの貢献方法を知る

Section titled “4. コミュニティへの貢献方法を知る”

このモデルは OpenClaw コミュニティによって維持されています。新しい脅威の報告や対策の提案は、いつでも歓迎されています。

ドキュメントの運用や脅威の報告で困ったときは、以下の解決策を確認してください。

  • 新しい脅威を見つけた場合 CONTRIBUTING-THREAT-MODEL.md のガイドラインを確認してください。新しい脅威の報告手順が記載されています。

  • 既存の脅威情報を更新したい場合 攻撃チェーンの提案や緩和策の修正についても、コミュニティガイドラインに従って提案を送ることができます。

AI セキュリティは常に進化しています。最新の情報を確認しながら、安全なエージェント開発を進めましょう。

さらに詳しい設定や個別のユースケースについては、AI Setup Assistant で質問してください。

外部のチャットツールをAIエージェントに接続する際、セキュリティについて不安を感じることはありませんか。不特定多数からのアクセスをどう制限するか、あるいはエージェントが実行するコードがホスト環境に悪影響を及ぼさないか、これらは開発者にとって共通の悩みです。
このアーキテクチャは、複数の「信頼境界(Trust Boundaries)」を設けることで、外部からの入力とエージェントの動作を安全に制御できるように設計されています。
## 必要なもの
- WhatsApp, Telegram, Discord などの外部チャネル
- セキュリティを担保するための Gateway
- エージェントの実行環境(Agent Sessions)
- ツール実行用の Sandbox
## クイックスタート
システムの安全性を理解するための、5つの主要なステップです。
1. **Gateway によるアクセス制限**: AllowList やトークン認証で、許可されたユーザーのみを通します。
2. **セッションの分離**: `agent:channel:peer` というキーを用いて、ユーザーごとのセッションを独立させます。
3. **サンドボックスでの実行**: Docker や Node remote execution を使い、ツール実行をホストから隔離します。
4. **外部コンテンツの保護**: 取得した URL やメールの内容に XML タグを付与し、プロンプトインジェクションを防ぎます。
## 2. System Architecture
### 2.1 Trust Boundaries
システムは、以下の図に示す 5 つの信頼境界によって保護されています。

┌─────────────────────────────────────────────────────────────────┐ │ UNTRUSTED ZONE │ │ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │ │ │ WhatsApp │ │ Telegram │ │ Discord │ … │ │ └──────┬──────┘ └──────┬──────┘ └──────┬──────┘ │ │ │ │ │ │ └─────────┼────────────────┼────────────────┼──────────────────────┘ │ │ │ ▼ ▼ ▼ ┌─────────────────────────────────────────────────────────────────┐ │ TRUST BOUNDARY 1: Channel Access │ │ ┌──────────────────────────────────────────────────────────┐ │ │ │ GATEWAY │ │ │ │ • Device Pairing (30s grace period) │ │ │ │ • AllowFrom / AllowList validation │ │ │ │ • Token/Password/Tailscale auth │ │ │ └──────────────────────────────────────────────────────────┘ │ └─────────────────────────────────────────────────────────────────┘ │ ▼ ┌─────────────────────────────────────────────────────────────────┐ │ TRUST BOUNDARY 2: Session Isolation │ │ ┌──────────────────────────────────────────────────────────┐ │ │ │ AGENT SESSIONS │ │ │ │ • Session key = agent:channel:peer │ │ │ │ • Tool policies per agent │ │ │ │ • Transcript logging │ │ └──────────────────────────────────────────────────────────┘ │ └─────────────────────────────────────────────────────────────────┘ │ ▼ ┌─────────────────────────────────────────────────────────────────┐ │ TRUST BOUNDARY 3: Tool Execution │ │ ┌──────────────────────────────────────────────────────────┐ │ │ │ EXECUTION SANDBOX │ │ │ │ • Docker sandbox OR Host (exec-approvals) │ │ │ │ • Node remote execution │ │ │ │ • SSRF protection (DNS pinning + IP blocking) │ │ │ └──────────────────────────────────────────────────────────┘ │ └─────────────────────────────────────────────────────────────────┘ │ ▼ ┌─────────────────────────────────────────────────────────────────┐ │ TRUST BOUNDARY 4: External Content │ │ ┌──────────────────────────────────────────────────────────┐ │ │ │ FETCHED URLs / EMAILS / WEBHOOKS │ │ │ │ • External content wrapping (XML tags) │ │ │ │ • Security notice injection │ │ │ └──────────────────────────────────────────────────────────┘ │ └─────────────────────────────────────────────────────────────────┘ │ ▼ ┌─────────────────────────────────────────────────────────────────┐ │ TRUST BOUNDARY 5: Supply Chain │ │ ┌──────────────────────────────────────────────────────────┐ │ │ │ CLAWHUB │ │ │ │ • Skill publishing (semver, SKILL.md required) │ │ │ │ • Pattern-based moderation flags │ │ │ │ • VirusTotal scanning (coming soon) │ │ │ │ • GitHub account age verification │ │ │ └──────────────────────────────────────────────────────────┘ │ └─────────────────────────────────────────────────────────────────┘

### 2.2 Data Flows
各コンポーネント間のデータの流れと、それを保護する仕組みは以下の通りです。
| Flow | Source | Destination | Data | Protection |
| ---- | ------- | ----------- | ------------------ | -------------------- |
| F1 | Channel | Gateway | User messages | TLS, AllowFrom |
| F2 | Gateway | Agent | Routed messages | Session isolation |
| F3 | Agent | Tools | Tool invocations | Policy enforcement |
| F4 | Agent | External | web_fetch requests | SSRF blocking |
| F5 | ClawHub | Agent | Skill code | Moderation, scanning |
| F6 | Agent | Channel | Responses | Output filtering |
## トラブルシューティング
- **ペアリングがうまくいかない**: Device Pairing には 30秒の grace period(猶予期間)が設定されています。この時間内に操作を完了させてください。
- **外部リソースにアクセスできない**: SSRF protection が有効なため、DNS pinning や IP blocking によって特定の宛先へのリクエストが制限されている場合があります。
設定や構成についてさらに詳しく知りたい場合は、[AI Setup Assistant](/docs/) を活用してください。
## 次のステップ
- [Gateway Configuration](/docs/gateway/)
- [Agent Session Management](/docs/)
- [Tool Execution Policies](/docs/)
- [ClawHub Skill Publishing](/docs/)
新しいAIエージェントをデプロイするのはワクワクする瞬間ですが、同時に「もし悪意のあるプロンプトで操作されたら?」「APIキーが漏洩したら?」といった不安もつきまといます。自律的に動くツールだからこそ、どのような攻撃の切り口があるのかを事前に把握しておくことは非常に重要です。
今回は、OpenClawにおけるセキュリティ上の脅威を、AI版のMITRE ATT&CKとも言える「ATLAS」のタクティク(戦術)に基づいて整理しました。どのようなリスクがあり、現在どのような対策が取られているのか、一緒に見ていきましょう。
## 必要なもの
この分析を理解し、対策を検討するために必要な要素は以下の通りです。
- OpenClaw Gateway の構成理解
- API エンドポイントおよびチャネル統合の知識
- `~/.openclaw/credentials/` などの設定ファイルの配置
- ClawHub を通じた Skill のエコシステム
## Quick Start: 脅威分析の全体像
OpenClawにおける脅威を、攻撃のフェーズごとに分類して紹介します。
### 1. 偵察 (Reconnaissance)
攻撃者はまず、ターゲットとなるシステムを探ります。
- **T-RECON-001: Agent Endpoint Discovery**
- **内容:** 公開されている OpenClaw Gateway エンドポイントをスキャンします。
- **対策:** Tailscale 認証オプションの使用や、デフォルトでループバックにバインドする設定が推奨されます。
- **T-RECON-002: Channel Integration Probing**
- **内容:** メッセージングチャネルにテストメッセージを送り、AIが管理しているアカウントを特定します。
- **対策:** 応答タイミングをランダム化するなどの検討が必要です。
### 2. 初期アクセス (Initial Access)
システムへの侵入経路を確保する段階です。
- **T-ACCESS-001: Pairing Code Interception**
- **内容:** 30秒間の猶予期間中にペアリングコードを傍受します。
- **対策:** 現在は30秒で有効期限が切れる設定ですが、猶予期間の短縮や確認ステップの追加が推奨されます。
- **T-ACCESS-002: AllowFrom Spoofing**
- **内容:** チャネル上での送信者 ID(電話番号やユーザー名)を偽装します。
- **対策:** チャネル固有の本人確認を行っていますが、可能な限り暗号化による検証を追加すべきです。
- **T-ACCESS-003: Token Theft**
- **内容:** `~/.openclaw/credentials/` や設定バックアップから認証トークンを盗み出します。
- **対策:** 現状はファイルパーミッションのみに依存しており、トークンの暗号化保存やローテーションの実装が急務です。
### 3. 実行 (Execution)
悪意のある命令を実行させるフェーズです。
- **T-EXEC-001 & 002: Prompt Injection (Direct/Indirect)**
- **内容:** チャネル経由、または `web_fetch` やメール経由で悪意のあるプロンプトを注入し、エージェントを操作します。
- **対策:** XMLタグによるコンテンツのラッピングやセキュリティ通知を行っていますが、LLMがこれらを無視するリスクがあります。
- **T-EXEC-003: Tool Argument Injection**
- **内容:** プロンプト注入を通じてツールの引数を操作します。
- **対策:** 危険なコマンドには実行承認(Exec approvals)が必要です。
- **T-EXEC-004: Exec Approval Bypass**
- **内容:** `exec-approvals.ts` の許可リストを回避するよう、コマンドを難読化します。
- **対策:** コマンドの正規化やブロックリストの拡充が推奨されます。
### 4. 永続化 (Persistence)
一度得たアクセス権を維持しようとします。
- **T-PERSIST-001 & 002: Skill Compromise**
- **内容:** ClawHub に悪意のある Skill を公開したり、既存の Skill に悪意のあるアップデートをプッシュしたりします。
- **対策:** GitHub アカウント作成日の確認や指紋認証を行っていますが、サンドボックス化などの抜本的な対策が検討されています。
- **T-PERSIST-003: Agent Configuration Tampering**
- **内容:** エージェントの設定ファイルを直接書き換え、アクセス権を維持します。
### 5. 防御回避 (Defense Evasion)
セキュリティチェックをすり抜ける手法です。
- **T-EVADE-001: Moderation Pattern Bypass**
- **内容:** `moderation.ts` の `FLAG_RULES` を回避するために、Unicodeのホモグラフやエンコーディングを悪用します。
- **T-EVADE-002: Content Wrapper Escape**
- **内容:** XML ラッパーをエスケープするようなコンテンツを作成します。
### 6. 探索 (Discovery)
システム内部の情報を探ります。
- **T-DISC-001: Tool Enumeration**
- **内容:** 「どんなツールが使えますか?」といった質問で、利用可能なツールをリストアップします。
- **T-DISC-002: Session Data Extraction**
- **内容:** セッションのコンテキストから過去の会話内容や機密データを抽出します。
### 7. 収集と漏洩 (Collection & Exfiltration)
データの盗み出しです。
- **T-EXFIL-001: Data Theft via web_fetch**
- **内容:** プロンプト注入により、`web_fetch` ツールを使って外部の URL にデータを POST させます。
- **対策:** 内部ネットワークへの SSRF ブロックは行っていますが、外部 URL への制限は不十分です。
- **T-EXFIL-003: Credential Harvesting**
- **内容:** 悪意のある Skill が環境変数や設定ファイルから認証情報を読み取ります。
### 8. インパクト (Impact)
最終的な被害をもたらします。
- **T-IMPACT-001: Unauthorized Command Execution**
- **内容:** Bash ツールなどを通じて、ユーザーのシステム上で任意のコマンドを実行します。
- **T-IMPACT-002: Resource Exhaustion (DoS)**
- **内容:** 大量のメッセージ送信や高コストなツール呼び出しにより、API クレジットや計算リソースを枯渇させます。
## トラブルシューティング
脅威分析の結果、よくある懸念事項とその対策をまとめました。
- **トークンが平文で保存されているのが心配です**
- 現在の仕様では `~/.openclaw/credentials/` に平文で保存されます。ファイルパーミッションを適切に設定し、将来的な暗号化アップデートをお待ちください。
- **プロンプト注入を完全に防ぐことはできますか?**
- 現状、パターン検知や XML ラッピングのみでは不十分です。機密性の高い操作には必ずユーザーの承認(ask mode)を挟むように設定してください。
- **信頼できない Skill をインストールしてしまいました**
- Skill はエージェントと同じ権限で動作します。直ちに Skill を削除し、必要に応じて API キーのローテーションを行ってください。
セキュリティ設定に不安がある場合や、具体的なデプロイ環境の相談は [AI Setup Assistant](/docs/) でいつでも質問してください。
## 次のステップ
- [Secure Deployment Guide](/docs/)
- [Configuring Exec Approvals](/docs/)
- [ClawHub Submission Guidelines](/docs/)
外部のライブラリやツールを自分のプロジェクトに導入する際、「このコードは本当に安全だろうか」と不安に思ったことはありませんか。特にサードパーティ製のスクリプトを実行する場合、悪意のあるコードが紛れ込むサプライチェーン攻撃のリスクは無視できません。
開発者の皆さんが安心してツールを利用できるように、ClawHubではどのようなセキュリティ対策が行われ、どのようなリスクが特定されているのかを整理しました。
## 必要なもの
セキュリティ機能を理解し、適切にスキルを公開するために以下の要素を確認してください。
- GitHub アカウント(作成からの経過日数が確認されます)
- 公開するスキルに含まれる `SKILL.md`(必須のドキュメント)
- `moderation.ts` で定義されているフラグパターンの理解
## Quick Start: 5分でわかるモデレーションの仕組み
ClawHubでは、スキルの公開時に `moderation.ts` を使用して自動チェックを行っています。現在設定されている主な検知パターンを確認してみましょう。
```javascript
// 既知の不正な識別子のチェック
/(keepcold131\/ClawdAuthenticatorTool|ClawdAuthenticatorTool)/i
// 不審なキーワードの検知
/(malware|stealer|phish|phishing|keylogger)/i
/(api[-_ ]?key|token|password|private key|secret)/i
/(wallet|seed phrase|mnemonic|crypto)/i
/(discord\.gg|webhook|hooks\.slack)/i
/(curl[^\n]+\|\s*(sh|bash))/i
/(bit\.ly|tinyurl\.com|t\.co|goo\.gl|is\.gd)/i

これらのパターンは、slug、displayName、summary、frontmatter、metadata、およびファイルパスに対して実行されます。

4.1 現在のセキュリティコントロール

Section titled “4.1 現在のセキュリティコントロール”

現在実装されている対策とその効果は以下の通りです。

コントロール実装方法有効性
GitHub Account AgerequireGitHubAccountAge()中 - 新規攻撃者の参入障壁を上げる
Path SanitizationsanitizePath()高 - パストラバーサルを防止
File Type ValidationisTextFile()中 - テキストファイル限定だが悪意のある内容は防げない
Size Limits合計 50MB の bundle高 - リソースの枯渇を防止
Required SKILL.md必須の readme低 - 情報提供のみでセキュリティ価値は低い
Pattern Moderationmoderation.ts 内の FLAG_RULES低 - 回避が容易
Moderation StatusmoderationStatus フィールド中 - 手動レビューが可能

セキュリティをより強化するため、以下のアップデートを準備しています。

改善策ステータス影響度
VirusTotal Integration進行中高 - Code Insight による振る舞い分析
Community Reporting一部実装済 (skillReports テーブル)中
Audit Logging一部実装済 (auditLogs テーブル)中
Badge System実装済中 - highlighted, official, deprecated など

特定された脅威のリスクレベルを分類しました。

Threat ID発生可能性影響度リスクレベル優先度
T-EXEC-001高致命的CriticalP0
T-PERSIST-001高致命的CriticalP0
T-EXFIL-003中致命的CriticalP0
T-IMPACT-001中致命的HighP1
T-EXEC-002高高HighP1
T-EXEC-004中高HighP1
T-ACCESS-003中高HighP1
T-EXFIL-001中高HighP1
T-IMPACT-002高中HighP1
T-EVADE-001高中MediumP2
T-ACCESS-001低高MediumP2
T-ACCESS-002低高MediumP2
T-PERSIST-002低高MediumP2

特に警戒すべき攻撃シナリオは以下の通りです。

  1. スキルベースのデータ窃取 T-PERSIST-001 → T-EVADE-001 → T-EXFIL-003 (悪意のあるスキルの公開) → (モデレーション回避) → (認証情報の収集)

  2. Prompt Injection による RCE T-EXEC-001 → T-EXEC-004 → T-IMPACT-001 (プロンプト注入) → (実行承認のバイパス) → (コマンド実行)

  3. 取得コンテンツによる間接的な注入 T-EXEC-002 → T-EXFIL-001 → 外部への流出 (URLコンテンツの汚染) → (エージェントが指示に従う) → (攻撃者へデータ送信)

分析結果に基づき、段階的な対策を推奨します。

ID推奨対策対応する脅威
R-001VirusTotal 連携の完了T-PERSIST-001, T-EVADE-001
R-002スキルのサンドボックス化の実装T-PERSIST-001, T-EXFIL-003
R-003機密性の高いアクションへの出力バリデーションT-EXEC-001, T-EXEC-002
ID推奨対策対応する脅威
R-004レート制限の実装T-IMPACT-002
R-005保存時のトークン暗号化の追加T-ACCESS-003
R-006実行承認の UX とバリデーションの改善T-EXEC-004
R-007web_fetch 用の URL 許可リストの実装T-EXFIL-001
ID推奨対策対応する脅威
R-008可能な箇所への暗号化チャネル検証の追加T-ACCESS-002
R-009設定ファイルの整合性検証の実装T-PERSIST-003
R-010アップデート署名とバージョン固定の追加T-PERSIST-002

現在のセキュリティシステムには、以下の制限事項があることが分かっています。

  • 検知範囲の制限: 現在のチェック対象は slug や metadata などに限定されており、スキルコードの実際の内容までは分析できていません。
  • 正規表現の回避: 単純な Regex による判定のため、難読化によって簡単に回避される可能性があります。
  • 振る舞い分析の欠如: コードが実行時にどのような動きをするかを追跡する仕組みがまだありません。

これらの課題を解決するために、前述の VirusTotal 連携やサンドボックス化の開発が進められています。

設定やセキュリティに関してさらに詳しく知りたい場合は、AI Setup Assistant を活用してください。

AI アプリケーションを開発していると、セキュリティ対策をどこから手をつければいいか迷うことがありますよね。特に、業界標準のフレームワークと自分のコードがどう対応しているのかを把握するのは一苦労です。

OpenClaw のセキュリティ設計がどのように構成されているか、リファレンス情報を整理しました。全体像を把握するためのガイドとして活用してください。

  • OpenClaw のソースコードへのアクセス
  • MITRE ATLAS (Adversarial Threat Landscape for AI Systems) に関する基本的な知識

OpenClaw のセキュリティ構成を 5 分で把握するためのステップです。

  1. ATLAS マッピングを確認する: OpenClaw の脅威(Threats)が、MITRE ATLAS のどのテクニックに対応しているかを確認します。
  2. 重要ファイルを特定する: セキュリティ上、特に注意が必要な Critical レベルのファイルを把握します。
  3. 用語を整理する: MCP や Prompt Injection など、プロジェクト内で使われる用語の定義を一致させます。

OpenClaw における脅威と、MITRE ATLAS のテクニックの対応表です。

ATLAS IDTechnique NameOpenClaw Threats
AML.T0006Active ScanningT-RECON-001, T-RECON-002
AML.T0009CollectionT-EXFIL-001, T-EXFIL-002, T-EXFIL-003
AML.T0010.001Supply Chain: AI SoftwareT-PERSIST-001, T-PERSIST-002
AML.T0010.002Supply Chain: DataT-PERSIST-003
AML.T0031Erode AI Model IntegrityT-IMPACT-001, T-IMPACT-002, T-IMPACT-003
AML.T0040AI Model Inference API AccessT-ACCESS-001, T-ACCESS-002, T-ACCESS-003, T-DISC-001, T-DISC-002
AML.T0043Craft Adversarial DataT-EXEC-004, T-EVADE-001, T-EVADE-002
AML.T0051.000LLM Prompt Injection: DirectT-EXEC-001, T-EXEC-003
AML.T0051.001LLM Prompt Injection: IndirectT-EXEC-002

セキュリティの実装において核心となるファイル群です。これらのファイルを変更する際は、細心の注意を払ってください。

PathPurposeRisk Level
src/infra/exec-approvals.tsCommand approval logicCritical
src/gateway/auth.tsGateway authenticationCritical
src/web/inbound/access-control.tsChannel access controlCritical
src/infra/net/ssrf.tsSSRF protectionCritical
src/security/external-content.tsPrompt injection mitigationCritical
src/agents/sandbox/tool-policy.tsTool policy enforcementCritical
convex/lib/moderation.tsClawHub moderationHigh
convex/lib/skillPublish.tsSkill publishing flowHigh
src/routing/resolve-route.tsSession isolationMedium

OpenClaw で使用される主要な用語の定義です。

TermDefinition
ATLASMITRE’s Adversarial Threat Landscape for AI Systems
ClawHubOpenClaw’s skill marketplace
GatewayOpenClaw’s message routing and authentication layer
MCPModel Context Protocol - tool provider interface
Prompt InjectionAttack where malicious instructions are embedded in input
SkillDownloadable extension for OpenClaw agents
SSRFServer-Side Request Forgery

ソースドキュメントに基づいた問題報告の方法です。

  • セキュリティ上の懸念がある場合: この脅威モデルは常に更新されるドキュメントです。セキュリティに関する問題を見つけた場合は、security@openclaw.ai まで報告してください。

不安な点があれば AI Setup Assistant でいつでも質問してください。

OpenClaw

OpenClaw Expert

まだ解決しませんか?

このページで解決しない場合は、OpenClaw Expertに直接質問してください。