メインコンテンツまでスキップ

セキュリティ設定

Elftia は多層のセキュリティ保護メカニズムを提供し、Agent のツール呼び出しや外部メッセージインジェクションによる潜在的なリスクからシステムを保護します。このページでは、セキュリティ関連のすべての設定オプションを詳しく説明します。

セキュリティアーキテクチャの概要

Elftia のセキュリティシステムには、以下の主要コンポーネントが含まれます。

コンポーネント場所機能
GuardianAgentAgent 実行レイヤーAI を使用してツール呼び出しのセキュリティをレビューします
PromptGuardianChannel メッセージレイヤー外部メッセージ内のプロンプトインジェクション攻撃を検出します
Permission ModeAgent インタラクションレイヤーツール実行時にユーザー確認が必要かどうかを制御します
InputSanitizerChannel メッセージレイヤールールベースの入力フィルタリング(正規表現マッチング)
AuditLoggerグローバルすべてのセキュリティイベントの監査ログを記録します

GuardianAgent

GuardianAgent は AI ベースのセキュリティレビューモジュールです。Agent がツール呼び出しを実行するとき、GuardianAgent はまず独立した LLM を使用して操作のリスクレベルを評価し、設定に基づいて実行を許可するかどうかを決定します。

4 つのモード

モード動作推奨シナリオ
Off完全に無効化され、パフォーマンスオーバーヘッドはありません個人利用、Agent の動作を信頼している場合
Monitor機密性の高いツール呼び出しをレビューし、ブロックせずログのみを記録しますAgent の動作を把握したいが、中断は避けたい場合
Guard機密性の高いツール呼び出しをレビューし、高リスクおよび重大な操作をブロックします日常利用、セキュリティと利便性のバランスを取りたい場合
Strictすべてのツール呼び出しをレビューし、中リスク以上の操作をブロックします共有環境、最大限のセキュリティが必要な場合

リスクレベル

GuardianAgent はツール呼び出しを 5 つのリスクレベルに分類します。

リスクレベル意味
None完全に安全プロジェクト内のファイル読み取り、ディレクトリ一覧の取得
Low軽微なリスクワークスペース内のプロジェクトファイルへの書き込み
Medium中程度のリスクシステム状態を変更する Shell コマンドの実行、npm パッケージのインストール
High大きなリスク機密パスへのアクセス、ワークスペース外のファイル操作、ネットワーク操作
Critical差し迫った危険再帰的な削除コマンド、データ窃取、権限昇格

モード別のブロック動作

リスクレベルOffMonitorGuardStrict
none許可許可許可許可
low許可ログ + 許可許可許可
medium許可ログ + 許可許可ブロック
high許可ログ + 許可ブロックブロック
critical許可ログ + 許可ブロックブロック

機密性の高いツール

monitor モードと guard モードでは、以下の「機密性の高いツール」のみがセキュリティレビューをトリガーします。

  • Bash: Shell コマンドの実行
  • Write: ファイル書き込み
  • Edit: ファイル編集
  • Agent: Sub-Agent の生成

strict モードでは、すべてのツール呼び出し(ファイル読み取りを含む)がレビューをトリガーします。

フォールトトレランス設計

モードタイムアウト/エラー時の動作
Monitor / Guard許可(fail-open) — レビューが利用できない場合でも通常操作をブロックしません
Strictブロック(fail-closed) — レビューが利用できない場合はデフォルトで拒否します

レビューのタイムアウトは 15 秒です。LLM が 15 秒以内にレビュー結果を返さない場合、上記のルールが適用されます。

設定場所

Settings → Clawia → GuardianAgent Mode

目的のモードを選択します。変更は再起動なしで即座に反映されます。

監査ログ

すべてのレビュー結果(ブロックされたかどうかにかかわらず)は監査ログに記録されます。Settings → Clawia → Audit Log で過去のレビュー記録を確認できます。内容は以下のとおりです。

  • タイムスタンプ
  • ツール名とパラメータ
  • レビュー結果(リスクレベル、理由)
  • ブロックされたかどうか

PromptGuardian

PromptGuardian は Channel(マルチプラットフォームチャンネル)メッセージ向けのセキュリティ保護です。Elftia が Discord や Telegram などのチャンネルを通じて外部ユーザーからメッセージを受信すると、PromptGuardian は AI を使用して、メッセージにプロンプトインジェクション攻撃が含まれているかどうかを検出します。

3 つのモード

モード動作推奨シナリオ
Offインジェクション検出を行いませんChannel を自分だけで使用し、すべてのメッセージ送信元を信頼している場合
Monitorインジェクションを検出し、ログに記録しますがブロックしません不審なメッセージがあるかを観察したい場合
Blockインジェクションを検出し、不審なメッセージを遮断して友好的な拒否応答を返しますChannel を公開しており、悪意のあるユーザーから防御する必要がある場合

検出内容

PromptGuardian は以下の種類の攻撃を検出できます。

  • Instruction Override: システム指示を上書きまたは回避しようとする試み(例: "Ignore all instructions above")
  • Role Manipulation: 別の身元になりすます試み(例: "You are now DAN")
  • Prompt Marker Injection: システム/指示マーカーの挿入(例: [INST], <|im_start|>
  • Prompt Extraction: システムプロンプトの内容を取得しようとする試み
  • XML/Tag Injection: ツール呼び出しマーカーの注入(例: <tool_use>, <function_calls>
  • Encoding Bypass: base64 エンコード、不可視文字、その他の手法の使用
  • Social Engineering: 「教育目的」や「仮定のシナリオ」を使ってセキュリティルールを回避する試み
  • Multi-step Attacks: 複数のメッセージにわたって段階的に攻撃を構築する手法

ブロック時の動作

メッセージがブロックされた場合、PromptGuardian はセキュリティ検出の存在をユーザーに明かしません。代わりに、ランダムな友好的な拒否メッセージ(例: "The signal dropped~let's change the topic")を返し、攻撃者がそれに応じて戦略を調整できないようにします。

フォールトトレランス設計

PromptGuardian は fail-open 設計を採用しています。レビューがタイムアウト(10 秒)または失敗した場合、メッセージは通常どおり通過し、セキュリティ検出の失敗によってメッセージフローが中断されることはありません。

設定場所

PromptGuardian の設定は Channel のセキュリティ設定にあります。まず、セキュリティレビュー用の LLM プロバイダーとモデルを設定する必要があります。

Permission Mode

Permission Mode は、Agent がツール呼び出しを実行するときにユーザー確認を必要とするかどうかを制御します。

モード動作用途
Default機密性の高い操作にはユーザー確認が必要です日常利用、推奨
AcceptEditsファイル編集は自動的に許可され、その他の操作は引き続き確認が必要ですAgent のコード編集能力を信頼している場合
BypassPermissionsすべての操作が自動的に許可されますAgent を強く信頼しており、最大限の効率を求める場合
PlanAgent は計画のみを作成し、操作は実行しませんAgent の行動計画をレビューする場合
注意

"BypassPermissions" モードでは、Agent がすべての操作(Shell コマンドやファイル削除を含む)を直接実行できます。Agent の動作を完全に信頼し、安全な環境にいる場合にのみ使用してください。GuardianAgent の "Guard" または "Strict" モードと併用することを推奨します。

Channel セキュリティ設定

Channel を通じて外部プラットフォームに接続する場合、以下のセキュリティオプションを設定できます。

レート制限

設定説明
Message Rate Limit特定の時間枠内でユーザーごとの最大メッセージ数を制限します
Global Rate LimitChannel 全体のメッセージ処理レートを制限します

入力フィルタリング

InputSanitizer は正規表現ベースの入力フィルタリングを提供します(PromptGuardian の前に実行されます)。

  • 既知の悪意あるパターンをフィルタリングします
  • 潜在的なインジェクションマーカーをクリーンアップします
  • 警告ログのみを生成し、メッセージはブロックしません

ユーザーロール

Channels では、アクセス権限を制御するために、異なるユーザーにロールを割り当てることができます。

セキュリティ設定の推奨事項

個人利用

Elftia を個人利用のみに使用し、外部にサービスを提供しない場合:

設定推奨値
GuardianAgentOff または Monitor
PromptGuardianOff
Permission ModeDefault

共有 Channel

Channel が外部ユーザーに公開され、メッセージを送信できる場合:

設定推奨値
GuardianAgentGuard または Strict
PromptGuardianBlock
Permission ModeDefault
Rate LimitingEnabled

開発とデバッグ

開発およびテストのシナリオでは:

設定推奨値
GuardianAgentMonitor
PromptGuardianMonitor
Permission ModeAcceptEdits

これにより、開発効率に影響を与えずに、監査ログでセキュリティイベントを観察できます。

監査ログ

すべてのセキュリティイベントは監査ログに記録され、Settings → Clawia → Audit Log で確認できます。

ログには以下の情報が記録されます。

フィールド説明
Timeイベントが発生した時刻
TypeGuardianAgent / PromptGuardian / Permission
Operation具体的なツール名またはメッセージ送信元
ResultAllow / Block
Detailsリスクレベル、理由の説明など
ヒント

監査ログを定期的に確認すると、Agent の行動パターンや潜在的なセキュリティ脅威を把握し、それに応じてセキュリティポリシーを調整するのに役立ちます。


その他の設定オプションについては、Settings Reference を参照してください。使用中にセキュリティ関連の問題が発生した場合は、Common Issues を確認してください。