パッケージインストールを制限したい
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各パッケージマネージャのインストールコマンドを ask に追加
- 2npm install(引数なし)は package.json からなので比較的安全
- 3完全に禁止したい場合は deny に設定
- 4ロックファイルからのインストール(npm ci)は許可してもよい
Tips
- npm audit, pip-audit で脆弱性チェックを習慣化
- ロックファイル(package-lock.json など)を使用して再現性確保
- プライベートレジストリを使用している場合は設定を調整
- typosquatting(似た名前の悪意あるパッケージ)に注意