> ## Documentation Index
> Fetch the complete documentation index at: https://factory-docs-model-update-cl-824.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Droid Shield

> git commitやpushで認証情報が誤って公開されるのを防ぐ自動シークレット検出。

## Droid Shieldとは？

Droid Shieldは、コミットしてリモートにプッシュする前に、未コミットの変更を自動的にスキャンして潜在的なシークレットを検出する組み込みセキュリティ機能です。APIキー、トークン、パスワードなどの機密認証情報がバージョン管理履歴に誤って公開されることを防ぐセーフティネットとして機能します。

<Tip>
  **高度な保護をお探しですか？** [Droid Shield Plus](/jp/cli/account/droid-shield-plus)は、プロンプトインジェクション検出、強化されたシークレット検出、機密データ保護を備えたAI搭載セキュリティスキャンを提供します。エンタープライズのお客様が利用できます。
</Tip>

***

## Droid Shieldの動作原理

Droidを使用して`git commit`または`git push`操作を実行すると、Droid Shieldは自動的に以下を行います：

1. **差分をスキャン** - 追加される行のみを分析（削除や変更されていない行は対象外）
2. **シークレットを検出** - パターンマッチングを使用して潜在的な認証情報を識別
3. **実行をブロック** - シークレットが検出された場合、git操作を停止
4. **検出結果を報告** - 潜在的なシークレットが見つかった正確な場所を表示

<Note>
  Droid ShieldはDroid経由で実行されたgit操作のみをスキャンします。Droidの外で手動実行したgitコマンドには影響しません。
</Note>

***

## Droid Shieldが検出する対象

Droid Shieldは、以下を含む幅広い認証情報パターンをスキャンします：

<CardGroup cols={2}>
  <Card title="APIキーとトークン" icon="key">
    Factory APIキー、GitHubトークン、GitLabトークン、npmトークン、AWS、Google Cloud、Stripe、SendGridなどのAPIキー。
  </Card>

  <Card title="認証情報" icon="user-lock">
    （JWT、OAuth、セッショントークンなど）と、認証情報が埋め込まれたURL。
  </Card>

  <Card title="秘密鍵" icon="file-shield">
    （SSH秘密鍵、PGP鍵、ageシークレットキー、OpenSSH鍵など）およびその他の暗号鍵形式。
  </Card>

  <Card title="サービス固有のシークレット" icon="cloud">
    （Slack Webhookとトークン、Twilio認証情報、Mailchimpキー、Square OAuthシークレット、Azureストレージキーなど）。
  </Card>
</CardGroup>

### 検出アルゴリズム

Droid Shieldは、ランダム性検証を伴うスマートパターンマッチングを使用します：

* **パターンマッチング** - フォーマットによる認証情報の識別
* **ランダム性チェック** - キャプチャされた値が実際のシークレットのように見えるかを検証
* **コンテキスト認識** - 変数名と代入パターンを考慮して誤検出を減らす

***

## Droid Shield 2.0: 学習型シークレット検出

Droid Shield 2.0 は、パターンベース検出の上に意味的レイヤーを追加する 2 つのファインチューニング済み分類モデルによって、決定論的スキャナーを拡張します。すべての commit と push は引き続き最初に決定論的スキャナーを通過し、その後モデルが、スキャナーがフラグ付けした、または見逃した特定のコンテキストを分類します。

<Note>
  Droid Shield 2.0 はリサーチプレビューです。組織で有効にするには、[お問い合わせください](mailto:support@factory.ai)。
</Note>

### 2 つの分類モデル

これらのモデルは決定論的スキャナーの前後で機能し、それぞれ異なる失敗パターンに最適化されています。

<CardGroup cols={2}>
  <Card title="リスクモデル" icon="shield-exclamation">
    決定論的スキャナーが**検出しなかった**変更行のうち、周辺コンテキストから見てなおシークレットを含んでいそうな行に対して実行されます。パターンセットが見逃す実際のシークレットを捉えるため、再現率を重視して最適化されています。見逃された可能性のあるシークレットを検出すると、警告を生成します。
  </Card>

  <Card title="ダウングレードモデル" icon="rotate">
    スキャナーが**検出した**行に対して実行されます。検出されたシークレットをマスクした周辺コンテキストを確認し、スキャナーのヒットが真陽性（ブロックを維持）か、誤検知（警告にダウングレード）かを判定します。
  </Card>
</CardGroup>

***

## Droid Shieldが起動するタイミング

Droid Shieldは以下のgit操作中に自動的に起動します：

* **`git commit`** - コミット作成前にステージされた変更をスキャン
* **`git push`** - リモートにプッシュされるコミットをスキャン

<Warning>
  シークレットが検出された場合、認証情報の露出を防ぐためgit操作はブロックされます。続行する前にシークレットを削除する必要があります。
</Warning>

***

## Droid Shield設定の管理

### CLIでの操作

設定メニューからDroid Shieldのオン/オフを切り替えることができます：

1. `droid`を実行
2. `/settings`を入力
3. \*\*「Droid Shield」\*\*設定を切り替え
4. 変更は即座に有効になります

<Info>
  Droid Shieldは保護のため**デフォルトで有効**です。有効のままにしておくことを強く推奨します。
</Info>

***

## シークレットが検出された場合の対処法

Droid Shieldが潜在的なシークレットを検出すると、以下のようなエラーメッセージが表示されます：

```
Droid-Shield has detected potential secrets in 2 location(s) across files:
src/config.ts, .env.example

If you would like to override, you can either:
1. Perform the commit/push yourself manually
2. Disable Droid Shield by running /settings and toggling the "Droid Shield" option
```

### 推奨される対処方法

<Steps>
  <Step title="検出結果を確認">
    記載されたファイルと行を慎重に確認し、検出内容を特定します。
  </Step>

  <Step title="シークレットを削除">
    * ハードコードされた認証情報の代わりに環境変数を使用する
    * シークレットを安全な認証情報ストアに移動する
    * 機密ファイルを`.gitignore`に追加する
    * シークレットがすでにコミットされている場合は、git filter-branchまたはBFG Repo-Cleanerを使用する
  </Step>

  <Step title="操作を再試行">
    シークレットを削除したら、Droid経由でgitコマンドを再度実行します。
  </Step>
</Steps>

<Warning>
  **チェックを回避するためだけにDroid Shieldを無効化しないでください。** 認証情報の露出は、セキュリティ侵害、不正アクセス、コンプライアンス違反につながる可能性があります。
</Warning>

### 誤検出の場合

Droid Shieldは慎重を期すために保守的なパターンを使用します。検出が誤検出だと思われる場合：

1. **実際のシークレットでないことを確認** - その値が機密情報でないことを再確認
2. **手動コミットを使用** - Droid以外でgit操作を直接実行
3. **パターンを報告** - 繰り返し発生する誤検出がある場合は[support@factory.ai](mailto:support@factory.ai)までご連絡ください

<Note>
  Droid Shield 2.0 が有効な場合、ダウングレードモデルがスキャナーのヒットを自動的に確認し、明らかな誤検知（プレースホルダー、サンプル、テストフィクスチャ）を手動介入なしで除外できます。
</Note>

***

## ベストプラクティス

<AccordionGroup>
  <Accordion title="環境変数を使用">
    すべてのシークレットを環境変数または安全な認証情報マネージャーに保存し、ソースファイルには絶対にハードコードしないでください。

    ```bash theme={null}
    # 良い例 - 環境変数を使用
    const apiKey = process.env.FACTORY_API_KEY;

    # 悪い例 - シークレットをハードコード
    const apiKey = "fk-abc123xyz789...";
    ```
  </Accordion>

  <Accordion title="Droid Shieldを有効にしておく">
    Droid Shieldは重要な安全レイヤーを提供します。特にチーム環境では常に有効にしておいてください。
  </Accordion>

  <Accordion title="コミット前に確認">
    Droid Shieldがあっても、コミット前に変更を手動で確認し、機密データが含まれていないことを確認してください。
  </Accordion>

  <Accordion title="チームに周知">
    すべてのチームメンバーがDroid Shieldの仕組みと、有効に保つ重要性を理解していることを確認してください。
  </Accordion>
</AccordionGroup>

***

## 制限事項

<Note>
  **Droid Shieldは検出ツールであり、保証ではありません。** 一般的なシークレットパターンの多くを検出できますが、決定論的スキャナー単体では以下を検出できません:

  * パターンデータベースにないカスタムシークレット形式
  * 認識可能なパターンに従わないシークレット
  * 難読化またはエンコードされた認証情報
  * ビジネスロジックの脆弱性やコードセキュリティの問題
</Note>

***

## 関連リソース

<CardGroup cols={2}>
  <Card title="セキュリティ概要" icon="shield" href="/jp/cli/account/security">
    Factoryの包括的なセキュリティ機能とベストプラクティスについて学びます。
  </Card>

  <Card title="設定" icon="gear" href="/jp/cli/configuration/settings">
    Droid Shieldの設定を含むDroid設定を構成します。
  </Card>

  <Card title="Droid Shield 2.0 リサーチ記事" icon="newspaper" href="https://factory.ai/news/droid-shield-2-0">
    学習型分類モデル、トレーニングデータ、評価結果の技術的な詳細を紹介します。
  </Card>

  <Card title="LLMの安全性とエージェント制御" icon="shield-check" href="/jp/enterprise/llm-safety-and-agent-controls">
    Droid Shieldがより広範なエンタープライズ向けセーフティモデルの中でどのような役割を果たすかを説明します。
  </Card>
</CardGroup>

***

## サポートが必要ですか？

<CardGroup cols={2}>
  <Card title="セキュリティに関する質問" icon="envelope">
    セキュリティチームへのお問い合わせ: **[security@factory.ai](mailto:security@factory.ai)**
  </Card>

  <Card title="誤検知" icon="flag">
    継続的な誤検知パターンを報告するには、**[support@factory.ai](mailto:support@factory.ai)**までお問い合わせください。
  </Card>
</CardGroup>
