dsh 安全性ガイド:サンドボックス・承認・シークレット管理
DeepSeek Harness(dsh)がどう安全を守るか:3 段階のサンドボックス、承認ポリシー、ガードとタイムアウト、API キーがセッションログに入らない理由。わかりやすく解説します。
最終更新: 2026-08-18
脅威モデルを一文で
プラグインはエージェントの権限で動くコード であり、エージェントはコマンドを実行し、ファイルを編集し、ネットワークに届きます。セーフティモデルが存在するのは、バグのある、あるいは悪意のあるプラグイン(または言いくるめられたモデル)が、音もなく被害を出せないようにするためです。
DeepSeek Harness は 4 つの層でこれに対処します。サンドボックス、承認、ガード、シークレットの扱いです。
サンドボックス:正直な 3 段階
すべてのセッションはプロセスサンドボックスの内側で動きます。3 つの段階があります。
| 段階 | 許可されること | 使いどき |
|---|---|---|
read-only | エージェントはワークスペースを読めるが変更できない | コードレビュー、監査、書き込みゼロにしたいすべて |
workspace-write | ワークスペース内は読み書き可、外への書き込み不可 | 日常の開発 ―― 標準的な作業形態 |
danger-full-access | ユーザーアカウントが触れるものすべてに触れられる | 意図的で監督つきのシステムレベル作業のみ |
隔離は可能な環境では OS ネイティブです。Linux では bwrap/Landlock、macOS では Seatbelt、Windows では ACL 制限トークン。そしてバックエンドは 正直 です。約束した隔離を実際に提供できたかどうかを報告するので、適用に失敗した段階は、黙って成功を装うのではなく可視化されます。
承認:リスクのあることの前に聞く
サンドボックスとは独立に、リスクのある操作は承認システムを通ります。エージェントが一時停止し、あなたが決めます。何がリスクに数えられるかはポリシープリセットで調整でき、「ほぼすべて確認」から「サンドボックス外だけ確認」まで 1 つの設定で変えられます。
実践的な習慣:厳しめで始め、エージェントの振る舞いを見てから緩める。承認プロンプトのコストは 1 クリックですが、監督なしのワークスペース外への書き込みは午後ひとつを持っていきかねません。
ガードとタイムアウト
暴走を自動で捕まえる仕組みが 2 つあります。
- タイムアウト ―― ハングしたツール呼び出しは、ターンを永遠にブロックする代わりに中断されます。
- ループ検出 ―― 進捗のない反復パターン(同じ失敗コマンドの繰り返し)をガードが検出し、サイクルを中断します。
プラグインは、すべてのツール実行とモデルリクエストの前後のインターセプトポイントに独自のガードを追加できます。その継ぎ目は プラグイン開発ガイド に書かれています。
シークレットの行き先
認証情報(API キー、トークン)は セッションログとは別のチャネル を通ります。ログに記録されるのは参照であって値ではありません。つまり、共有・エクスポートされたセッションからキーは漏れません。
知っておく価値のあるデフォルトがあと 2 つ。
- セッションログはデフォルトではどこにもアップロードされません。テレメトリはオプトインです。
- モデルにはチャットに貼ったものが見えます。だからシークレットをメッセージ本文に貼らないでください。ツールがプロバイダー側の認証を提供しているなら、そちらを優先しましょう。
新しいものを試すときのチェックリスト
read-onlyで始め、見たものを信頼できたらworkspace-writeへ上げます。- インストール前にプラグインのソース、ライセンス、権限を読みます。インストールガイド がこれをルーチンにしてくれます。
- 新しいプラグインはメインプロジェクトではなく使い捨てワークスペースで試します。
- 最初の承認プロンプトを観察します。プラグインが何をしようとしているかが正確にわかります。
- 何かおかしければ、セッションを止め、プラグインエントリーを削除し、リポジトリに報告します。
よくある質問
サードパーティの dsh プラグインを入れても安全?
信頼できないコードを安全にする魔法はありません。上の層ができるのは 封じ込め です。審査したプラグインを使い捨てワークスペースの read-only で試し、次に workspace-write へ昇格させるのは合理的なリスクです。未審査のプラグインを danger-full-access で動かすのは違います。完全な審査ルーチンは インストールガイド にあります。
プラグインに API キーを盗まれることはある? キーは別チャネルを通り、セッションログには入らないので、ログを読んだり共有したりしても漏れません。ただしプラグインはエージェントの権限で動きます。だからこそインストール前にソースを読み、チャットにシークレットを貼るよりプロバイダー側認証を選ぶべきなのです。
デフォルトではどのサンドボックス段階を使うべき?
日常作業は workspace-write、レビュー・監査・新しいものとの初接触は read-only。danger-full-access は sudo と同じように扱ってください。意図的に、監督つきで、短時間だけ。
dsh はセッションを外部送信する? セッションログはデフォルトでローカルに留まり、テレメトリはオプトインです。チャットに貼ったものはモデルプロバイダーへ行きます。ログのポリシーはモデルが見るものを変えません。
