2層のセーフティ
我々は以下を区別しています:- 決定論的制御 – モデルの動作に依存しない厳格な境界。
- LLM ステアリング – 保証を提供することなく、モデルをより良い動作へと導くプロンプトとコンテキスト。
Deterministic controls
- Command risk classification
- Global and project‑level allow/deny lists
- File and repo protection
- Droid Shield secret scanning
- Hooks for enforcement and logging
- Sandboxed VMs and containers
LLM steering
- Project and org‑level rules and instructions
- Standardized commands and workflows
- Context selection and enrichment via MCP
- Model choice and reasoning effort defaults
コマンドリスク分類
Droid が提案するすべてのシェルコマンドは、パターンとコンテキストに基づいて(例:ファイル削除、ネットワークアクセス、パッケージインストール、データベースアクセス)リスクレベルに分類されます。 典型的なレベルには以下が含まれます:- 低リスク – 読み取り専用コマンドとローカル診断(例:
ls、cat、git status)。 - 中リスク – コードを変更したり依存関係をインストールするコマンド(例:
npm install、go test ./...)。 - 高リスク – データを削除したり、システム設定を変更したり、機密リソースとやり取りするコマンド(例:
rm -rf、kubectl delete、本番環境に対するpsql)。
- 低リスクコマンドを常に許可する。
- 中リスクコマンドにはユーザー承認を要求する。
- 高リスクコマンドを完全にブロックするか、特定の環境(例:隔離されたdevcontainer)でのみ許可する。
コマンドの許可リストと拒否リスト
管理者は階層設定でグローバルおよびプロジェクト固有の許可/拒否リストを定義できます:- 拒否リスト – 決して許可されないコマンドのパターン(例:
rm -rf、sudo *、curl *://sensitive-endpoint)。 - 許可リスト – 特定の環境で追加の承認なしに実行できる特定のコマンドまたはパターン。
- 組織レベルの拒否と許可はプロジェクトやユーザーによって削除することはできません。
- プロジェクトはリポジトリ内で追加の許可や拒否を加えることができます。
- ユーザーはポリシーを弱めることはできません。より厳格な個人デフォルトを選択するのみです。
Droid Shield:シークレットスキャンとDLP
Droid Shield はシークレットと機密コンテンツのための専用保護層を追加します。 有効にした場合、Droid Shield は以下ができます:- ファイルが読み取りまたは編集される前にファイルをスキャンする。
- モデルに送信される前にプロンプトをスキャンする。
- 実行される前にコマンドをスキャンする。
- API トークンとアクセスキー。
- パスワードとデータベース接続文字列。
- 秘密鍵と証明書。
- 組織固有の識別子(設定可能なパターン)。
- 操作を完全にブロックする。
- 継続する前に機密部分を編集する。
- セキュリティレビューのためにOTELイベントとログを出力する。
- より深い分析のためにフック経由で顧客DLPサービスを呼び出す。
強制とログのためのフック
フックは Droid のプログラマブルなセーフティと可観測性インターフェースです。エージェントループの重要なポイントで独自のコードを実行できます。 一般的なフックポイントには以下があります:- プロンプト送信前 – シークレット、PII、またはポリシー違反についてプロンプトを検査。
- ファイル読み取りまたは書き込み前 – 機密ファイルへのアクセスをブロックまたは編集。
- コマンド実行前 – 承認ワークフローを強制または危険なコマンドをブロック。
- git操作前 – 未承認の
git pushまたは制限されたブランチとのやり取りを防止。 - コード生成または編集後 – リンター、セキュリティスキャナー、または内部コンプライアンスチェックを実行。
Block direct git pushes
Block direct git pushes
Require all code changes to flow through your existing tooling by blocking
git push in Droid sessions and instructing developers to use internal CL/PR tooling instead.Integrate with DLP and CASB systems
Integrate with DLP and CASB systems
Forward prompts and file snippets to your DLP or CASB APIs before they reach LLMs; deny or redact operations that violate policy.
Enforce environment‑specific policies
Enforce environment‑specific policies
Allow certain tools and commands only in CI or sandboxed environments, based on environment tags emitted by Droid.
コンテナとVMによるサンドボックス化
サンドボックス化されたdevcontainerとVMでDroidを実行することで、本番システムを公開することなく、有用な場所でより多くの自律性を安全に付与できます。 推奨パターン:- 制限されたファイルシステムマウントとネットワーク出力を持つDocker/PodmanのdevcontainerOSを使用する。
- 本番データベースやシークレットに直接アクセスできないコンテナやVM内でのみ、より高い自律性でDroidを実行する。
- サンドボックス環境と本番隣接環境で別々の認証情報と環境変数を使用する。
environment.type=local|ci|sandbox)。
モデルを安全な動作に向けてステアリング
決定論的制御が基盤である一方、LLM ステアリングは品質を向上させ、危険なアクションが提案される頻度を減らします。 組織およびプロジェクト設定では以下を定義できます:- ルールと指示 – すべてのリクエストに適用されるセキュリティガイドライン、コーディング標準、および組織固有の指示。
- 標準化されたコマンドとワークフロー – 安全なパターンを組み込んだ共有コマンド(例:
/security-review、/migrate-service)。 - コンテキストエンリッチメント – モデルが推測ではなく正確な情報を持てるように、ドキュメント、ランブック、内部APIを公開するMCPサーバー。
