コンテンツにスキップ

セキュリティ

vibeには設定ファイルへの不正な変更を防ぐためのセキュリティ機能が含まれています。

vibeはSHA-256ハッシュを使用して.vibe.toml.vibe.local.tomlファイルの整合性を自動的に検証します。

  1. vibe trustを実行すると、vibeはSHA-256ハッシュを計算して保存
  2. vibe startを実行すると、vibeはファイルが変更されていないか検証
  3. ハッシュが一致しない場合、vibeはエラーで終了
初回使用:
vibe trust → ハッシュを保存 → 使用準備完了
以降の使用:
vibe start → ハッシュを検証 → ✓ 一致 → フックを実行
→ ✗ 不一致 → エラー(再信頼が必要)

信頼情報は~/.config/vibe/settings.jsonに保存されます:

{
"version": 3,
"permissions": {
"allow": [
{
"repoId": {
"remoteUrl": "github.com/user/repo",
"repoRoot": "/path/to/repo"
},
"relativePath": ".vibe.toml",
"hashes": ["abc123..."]
}
],
"deny": []
}
}

バージョン3ではリポジトリベースのトラスト識別を使用:

  • 信頼は同じリポジトリのすべてのWorktree間で共有
  • 設定は初回ロード時にv2からv3へ自動移行

すべてのリポジトリで検証を無効化:

{
"version": 3,
"skipHashCheck": true,
"permissions": { "allow": [], "deny": [] }
}

特定のファイルのみ検証を無効化:

{
"version": 3,
"permissions": {
"allow": [
{
"repoId": {
"remoteUrl": "github.com/user/repo",
"repoRoot": "/path/to/repo"
},
"relativePath": ".vibe.toml",
"hashes": ["abc123..."],
"skipHashCheck": true
}
],
"deny": []
}
}

vibeはファイルごとに複数のハッシュ(最大100個)を保存するため、再信頼なしでブランチを切り替えられます:

  • 信頼された各バージョンのハッシュが保存される
  • ブランチを切り替えると、vibeは保存されたすべてのハッシュに対してチェック
  • 現在のハッシュが保存されたいずれかのハッシュと一致すれば、検証はパス

trust機構は、信頼した設定ファイルが変更されていないことを検証します。ただし、以下の点に注意してください:

  • trustは意思表示: vibe trustを実行すると、設定ファイル(含まれるフックコマンドを含む)をレビューし承認したことを宣言することになります。
  • フックは任意のコマンドを実行: hooks.pre_starthooks.post_startなどで定義されたコマンドは、あなたのシェルで実行されます。vibeはこれらのコマンドをサンドボックス化したり制限したりしません。
  • 信頼する前にレビュー: 特に自分が管理していないリポジトリでは、vibe trustを実行する前に.vibe.toml.vibe.local.tomlファイルを必ずレビューしてください。
  • ハッシュ検証はマルウェア対策ではない: ハッシュチェックは、既に信頼したファイルへの変更を検出するだけです。コマンド自体が安全かどうかは評価しません。
  1. 変更を常にレビュー - vibe trustを実行する前に
  2. 本番環境ではハッシュチェックをスキップしない
  3. .vibe.local.tomlはローカルに保持 - 自動的にgitignoreされます
  4. チームの変更をレビュー - コードレビュー時に.vibe.tomlを確認
  5. 信頼できないリポジトリには注意 - 信頼する前にフックコマンドをレビュー
  • trust - 信頼管理コマンド
  • 設定 - 設定ファイルの形式