OpenFang セキュリティベストプラクティス:16層セキュリティ保護の詳細解説
Slug: openfang-security-best-practices
分類: usage-guides (使用ガイド)
ターゲットキーワード: OpenFang セキュリティ, OpenFang セキュリティ設定, エージェントセキュリティベストプラクティス
検索意図: 情報収集(OpenFangを安全にデプロイしたいユーザー)
目標文字数: 約2000文字
言語: ja
なぜエージェントのセキュリティが重要なのか?
自律型AIエージェントは、コマンドの実行、ネットワークへのアクセス、ファイルの読み書きといった強力な能力を持っています。これらを制限なく放置することは、セキュリティ上の大惨事を招く要因となります。保護されていないエージェントは、プロンプトインジェクション攻撃によって危険なコマンドを実行させられたり、機密データを漏洩させられたり、あるいは攻撃の踏み台として悪用される可能性があります。
OpenFangは設計当初からセキュリティをコアアーキテクチャの一部として捉え、16層のセキュリティ保護メカニズムを提供しています。本稿では、各層の設定方法とベストプラクティスを基礎から応用まで解説します。
セキュリティアーキテクチャの概要
OpenFangの16層セキュリティ保護は、4つの大きなカテゴリに分類されます:
| カテゴリ | レイヤー | 保護目標 |
|---|---|---|
| サンドボックス分離 | 1–4層 | エージェントの実行環境を制限 |
| ネットワークセキュリティ | 5–8層 | エージェントのネットワークアクセスを制御 |
| データセキュリティ | 9–12層 | 機密データの漏洩を防止 |
| 監査とコンプライアンス | 13–16層 | エージェントの行動を記録・監査 |
第1カテゴリ:サンドボックス分離
第1層:ファイルシステムサンドボックス
エージェントがアクセス可能なファイルシステムパスを制限します:
[security.sandbox.filesystem]mode = "strict" # off / basic / strictallowed_paths = [ "./workspace/", "/tmp/openfang/",]denied_paths = [ "/etc/", "~/.ssh/", "~/.aws/",]read_only_paths = [ "./config/", "/usr/share/openfang/",]strictモードでは、allowed_pathsにリストされていないパスには一切アクセスできません。エージェント専用の作業ディレクトリを作成することを常に推奨します。
第2層:プロセスサンドボックス
エージェントが実行可能なシステムコマンドを制限します:
[security.sandbox.process]allow_shell = false # 直接的なShellアクセスを禁止allowed_commands = [ "git", "curl", "python3", "node",]denied_commands = [ "rm", "sudo", "chmod", "wget",]command_timeout = 30 # コマンドの最大実行時間(秒)allow_shell = falseは本番環境で必須の設定です。エージェントはallowed_commandsリストに含まれるコマンドを通じてのみシステムと対話できます。
第3層:メモリ制限
メモリリークや悪意のあるコードによるシステムリソースの枯渇を防ぎます:
[security.sandbox.memory]max_memory_mb = 512 # エージェントのメモリ上限max_per_hand_mb = 128 # 各Handのメモリ上限oom_policy = "kill_hand" # kill_hand / restart / notify第4層:CPU制限
[security.sandbox.cpu]max_cores = 2 # 最大2コアまで使用可能priority = "low" # low / normal / highcfs_period_us = 100000cfs_quota_us = 50000 # 50% CPUクォータ第2カテゴリ:ネットワークセキュリティ
第5層:ネットワーク分離
エージェントの送信ネットワークアクセスを制御します:
[security.network]mode = "allowlist" # allowlist / blocklist / unrestrictedallowed_domains = [ "api.anthropic.com", "api.openai.com", "github.com",]allowed_ports = [443, 80]block_ip_ranges = [ "10.0.0.0/8", # 内部ネットワークへのアクセスをブロック "172.16.0.0/12", "192.168.0.0/16",]dns_over_https = true # 暗号化DNSを使用第6層:トラフィック暗号化
[security.network.tls]min_version = "1.2"verify_certificates = truecertificate_pinning = [ { domain = "api.anthropic.com", pin = "sha256/..." },]第7層:レート制限
エージェントが悪用され、大量のリクエストを送信するのを防ぎます:
[security.network.rate_limit]requests_per_minute = 60tokens_per_minute = 100000burst_multiplier = 2cooldown_after_exceeded = "5m"第8層:プロキシと出口制御
すべてのエージェントトラフィックを企業プロキシ経由で送信します:
[security.network.proxy]http_proxy = "${HTTP_PROXY}"https_proxy = "${HTTPS_PROXY}"no_proxy = ["localhost", "127.0.0.1"]enforce_proxy = true # すべてのトラフィックをプロキシ経由に強制第3カテゴリ:データセキュリティ
第9層:入力サニタイズ
プロンプトインジェクション攻撃を防御します:
[security.data.input_guard]enabled = truemode = "strict"[security.data.input_guard.rules]detect_jailbreak = truedetect_prompt_leak = truedetect_code_injection = truemax_input_length = 8000sanitize_markdown = true入力ガードは、エージェントがユーザー入力を処理する前に、脱獄プロンプト、プロンプト漏洩の試み、コードインジェクションなどの潜在的な攻撃をスキャンします。
第10層:出力フィルタリング
エージェントの回答を通じた機密データの漏洩を防ぎます:
[security.data.output_guard]enabled = true[security.data.output_guard.patterns]credit_cards = trueapi_keys = true # APIキー形式を検知してブロックemails = "mask" # mask / block / allowphone_numbers = "mask"custom_patterns = [ "\\b(?:sk|pk)_[a-zA-Z0-9]{32,}\\b", "\\bAKIA[A-Z0-9]{16}\\b", # AWSアクセスキー]第11層:機密データの暗号化
[security.data.encryption]encrypt_workspace = trueencrypt_logs = truekey_derivation = "argon2id"rotation_days = 30第12層:データ最小化
[security.data.minimization]log_user_inputs = false # ユーザー入力を記録しないlog_agent_outputs = false # エージェント出力を記録しないretention_days = 7 # ログ保持期間7日strip_pii = true # PII(個人情報)を自動削除第4カテゴリ:監査とコンプライアンス
第13層:操作監査
[security.audit]enabled = truelog_level = "info"[security.audit.events]command_execution = truefile_access = truenetwork_request = trueconfig_change = truehand_start_stop = true監査ログはJSON形式で、タイムスタンプ、操作タイプ、実行者、操作詳細、結果が含まれます:
{ "timestamp": "2026-07-10T08:30:15.123Z", "event": "command_execution", "hand": "researcher", "command": "git clone https://github.com/...", "sandbox": "strict", "result": "allowed", "duration_ms": 1240}第14層:異常検知
[security.audit.anomaly_detection]enabled = truebaseline_days = 7sensitivity = "medium" # low / medium / highalert_on = ["unusual_command", "off_hours_activity", "unusual_destination"]第15層:コンプライアンスレポート
[security.compliance]generate_reports = trueschedule = "0 0 1 * *" # 毎月生成frameworks = ["SOC2", "ISO27001"]export_format = "pdf"第16層:セキュリティインシデント対応
[security.incident_response]auto_contain = true # 異常検知時に自動でエージェントを隔離containment_action = "pause_all_hands"notify_channels = ["slack:#security", "email:[email protected]"]forensic_snapshot = true # 発生時に現場のスナップショットを保存クイックセキュリティ構成テンプレート
デプロイ環境に合わせて、適切なプリセットを選択してください:
開発環境(低セキュリティ要件)
openfang security preset development本番環境(標準セキュリティ要件)
openfang security preset production高セキュリティ環境(金融/医療/政府)
openfang security preset hardened3つのプリセットの主な違い:
| 設定項目 | Development | Production | Hardened |
|---|---|---|---|
| ファイルシステム | basic | strict | strict |
| Shellアクセス | 許可 | 禁止 | 禁止 |
| ネットワークモード | blocklist | allowlist | allowlist |
| 出力フィルタリング | 無効 | 有効 | 有効 |
| 監査ログ | 無効 | 有効 | 有効 |
| データ暗号化 | 無効 | 有効 | 有効 |
| 異常検知 | 無効 | medium | high |
| 自動隔離 | 無効 | 無効 | 有効 |
セキュリティチェックリスト
本番環境へのデプロイ前に、openfang security auditコマンドを使用して各項目を検証してください:
openfang security audit# 出力例:# ✅ [1/16] Filesystem sandbox: strict# ✅ [2/16] Process sandbox: no shell access# ✅ [3/16] Memory limit: 512 MB# ✅ [4/16] CPU limit: 2 cores# ✅ [5/16] Network: allowlist mode# ⚠️ [6/16] TLS cert pinning: not configured# ✅ [7/16] Rate limiting: enabled# ...# Score: 14/16 — 2 recommendations pendingよくある質問
セキュリティ設定が厳しすぎてエージェントが正常に動作しない場合は?
hardenedプリセットから開始し、エージェントの動作を観察します。ブロックされた必要な操作については、監査ログを使用して具体的にどの項目が遮断されたかを特定し、許可リストに個別に追加してください。プロンプトインジェクションは本当に防御できますか?
コンテナ環境(Docker/K8s)でセキュリティ層を重ねるには?
セキュリティインシデントが発生した場合はどうすればよいですか?
2.
auto_contain = trueが設定されていれば、エージェントは自動的に隔離されています。3. フォレンジック用スナップショットをダウンロードします:
openfang security forensics download --run-id xxx4. 根本原因を分析し、脆弱性を修正します。
5. スナップショットから復元するか、エージェントを再初期化します。
次のステップ
- OpenFang インストールと初期設定ガイド:ゼロからの安全なデプロイ
- OpenFang 自動化ワークフロー構築ガイド:安全な自動化プロセスの構築