Security Review Skill
Dependabotセキュリティアラートやセキュリティ関連のPRレビューを行う際に自動適用されるスキル。
トリガー条件
以下の場合に自動適用:
- •Dependabotセキュリティアラートのレビュー依頼
- •セキュリティ関連のPRレビュー
- •CVE対応の相談
レビュー手順
1. 既存対応の確認(最優先)
同一CVEへの既存PRや対応を必ず最初に確認する:
bash
# 同一CVEへの既存PRを検索 gh pr list --search "CVE-XXXX-XXXXX" gh pr list --search "<パッケージ名> security"
既に対応済みの場合は、その対応方法を参考にする。
2. 依存関係の確認
モノレポの場合、複数のlock fileが存在する可能性がある:
bash
# 全てのlock fileを確認 find . -name "yarn.lock" -o -name "package-lock.json" | head -20
各lock fileで同じ脆弱性が存在するか確認する。
3. 修正方法の優先順位
以下の順序で修正方法を検討する:
| 優先度 | 方法 | 説明 |
|---|---|---|
| 1 | パッケージの公式アップデート | メンテナーがテスト済み、最も安全 |
| 2 | 上位パッケージのアップデート | 依存元を更新して間接的に解決 |
| 3 | resolutions/overrides | 強制上書き、最後の手段 |
4. resolutionsを提案する条件
以下の全てを満たす場合のみresolutionsを提案:
- •上流パッケージが未対応
- •公式アップデートパスが存在しない
- •脆弱性の深刻度がHighまたはCritical
5. レビューレポートの構成
- •脆弱性の概要(CVE、深刻度、影響)
- •依存関係チェーン
- •既存の対応状況(同一CVEへのPR等)
- •推奨される修正方法(優先順位に従う)
- •修正手順
アンチパターン
❌ やってはいけないこと:
- •既存対応を確認せずにresolutionsを提案
- •公式アップデートがあるのにresolutionsを使う
- •モノレポで一部のlock fileのみ確認
例
良い例
code
既にPR #17588でルートのyarn.lockが対応済みです。 scripts/yarn.lockも同様にexpress 4.22.1に更新することを推奨します。
悪い例
code
resolutionsでqsを6.14.1に固定することを推奨します。 (← 公式アップデートパスを確認していない)