CC逆引きリファレンス

パッケージインストールを制限したい

13. セキュリティリスク回避

コマンド / 機能

"ask": ["Bash(npm install*)", "Bash(pip install*)"]

概要

パッケージのインストールを確認付きにして、意図しない依存関係の追加やサプライチェーン攻撃を防ぎます。

設定例

// settings.json
{
  "permissions": {
    // 確認を求める(推奨)
    "ask": [
      "Bash(npm install*)",
      "Bash(npm i *)",
      "Bash(yarn add*)",
      "Bash(pnpm add*)",
      "Bash(pip install*)",
      "Bash(pip3 install*)",
      "Bash(cargo add*)",
      "Bash(go get*)",
      "Bash(gem install*)",
      "Bash(composer require*)"
    ]
  }
}

// より厳しく禁止する場合
{
  "permissions": {
    "deny": [
      "Bash(npm install*)",
      "Bash(pip install*)"
    ],
    // ローカルインストールのみ許可
    "allow": [
      "Bash(npm install)",
      "Bash(npm ci)",
      "Bash(pip install -r requirements.txt)"
    ]
  }
}

こんな時に使う

  • パッケージのインストールを確認してから行いたい時
  • 意図しない依存関係の追加を防ぎたい時

使い方

  1. 1各パッケージマネージャのインストールコマンドを ask に追加
  2. 2npm install(引数なし)は package.json からなので比較的安全
  3. 3完全に禁止したい場合は deny に設定
  4. 4ロックファイルからのインストール(npm ci)は許可してもよい

Tips

  • npm audit, pip-audit で脆弱性チェックを習慣化
  • ロックファイル(package-lock.json など)を使用して再現性確保
  • プライベートレジストリを使用している場合は設定を調整
  • typosquatting(似た名前の悪意あるパッケージ)に注意