security-check について
security-check は、Dependabot や Snyk のアラートを確認するチーム向けに、分類と対応方針を示すスキルです。深刻度と悪用可能性から優先度を決め、パッチやマージ条件も確認しますが、PR の作成やリポジトリの変更は行いません。
主な機能
- 01深刻度と悪用可能性による分類
- 02アラートの優先度設定
- 03自動マージするパッチ条件の確認
- 04リポジトリのマージ戦略確認
- 05OpenSSF Scorecard による安全性評価
- 06アラートのトリアージ要約作成
活用シーン
- 01Dependabot または Snyk のアラート一括確認
- 02修正実行前の対応内容の把握
- 03リポジトリのセキュリティ運用への追加
- 04週次のセキュリティアラート確認
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ fellowship-dev/ dogfooded-skills --skill security-checkインストール後、Claude Code で/security-checkを入力して読み込まれたか確認します。
詳細
security-check
セキュリティアラートのトリアージを行うための、知識と戦略のスキルです。分類、優先順位付けを行い、対応を提案します。
PR を作成したり、リポジトリを変更したりすることはありません。 実行には /security-runner を使用してください。
npx でインストール:
npx skills add fellowship-dev/dogfooded-skills/skills/ops/security-check
使用するタイミング
- リポジトリで
/security-runnerを実行する前に、想定される対応を把握するとき - Dependabot/Snyk のアラートを手動でまとめてレビューするとき
- セキュリティトリアージパイプラインに新しいリポジトリを追加するとき
- 全体的な健全性を把握するため、entropy-check と併せて週次 cron を実行するとき
分類モデル
優先順位は、次の 2 つの軸で決まります。
軸 1 — 深刻度(CVE/アドバイザリに基づく):critical | high | medium | low
軸 2 — 悪用可能性(コンテキストに基づく):network-reachable | dev-only | test-only
- network-reachable:脆弱なパッケージが、インターネットに公開されるランタイム依存関係に含まれています
- dev-only:パッケージは
devDependency/ビルドツールであり、本番環境には含まれません - test-only:テストでのみ使用され、本番環境では実行されません
判定マトリクス
| network-reachable | dev-only | test-only
--------------------+-------------------+----------+----------
critical | P0 — patch now | P1 | P2
high | P1 — this week | P2 | P2
medium | P2 — batch next | backlog | dismiss
low | backlog | dismiss | dismiss
優先度ごとの対応
| 優先度 | 対応 | ラベル |
|---|---|---|
| P0 | 直ちに修正 PR を作成します。パッチが存在しない場合はデプロイをブロックします | security P0 |
| P1 | 今週中に修正 PR を作成します | security P1 |
| P2 | アップグレード方法を添えて、週次の検出事項ダイジェストに記録します(file-finding.sh 経由)。月次サイクルでまとめて対応します | — |
| Backlog | 緊急性なしとして、週次の検出事項ダイジェストに記録します | — |
| Dismiss | 理由を記録したうえで、API 経由で却下します | — |
自動パッチ適用の基準
以下の条件をすべて満たす場合、パッチは安全に自動マージできます(手動レビューなしで PR を作成します)。
- パッチバージョンのみの更新 — 例:
1.2.3 → 1.2.4。マイナーまたはメジャーバージョンの更新には手動レビューが必要です。 - パッチで CVE が修正されている — GitHub アドバイザリまたは NVD のエントリーで確認します。
- 破壊的変更がない — 対象バージョン範囲のパッケージ CHANGELOG を確認します。
- CI が成功する — 更新によって既存のテストが失敗してはなりません。
いずれかの条件を満たさない場合は、マージ前に手動レビューが必要です。
マージ戦略の確認
重要:制限付きリポジトリでは、セキュリティパッチを自動マージしないでください。
PR の作成またはマージの前に、crew.yml でリポジトリの merge_strategy を確認します。
MERGE_STRATEGY=$(cat crew.yml 2>/dev/null | grep merge_strategy | head -1 | awk '{print $2}')
| merge_strategy | 対応 |
|---|---|
auto-merge | CI が成功した後、安全なパッチを自動マージできます |
restricted | ready-to-merge ラベルを適用します。人がレビューして手動でマージします |
| (未設定/不明) | 安全側に倒し、restricted として扱います |
制限付きリポジトリの例:Lexgo。判断に迷った場合は、制限付きとして扱います。
悪用可能性の検出
ネットワーク到達可能性を判断するには、package.json(または同等のファイル)を確認します。
# Node.js — check if the package is in dependencies vs devDependencies
cat package.json | python3 -c "
import sys, json
pkg = json.load(sys.stdin)
print('runtime:', list(pkg.get('dependencies', {}).keys()))
print('dev:', list(pkg.get('devDependencies', {}).keys()))
"
# Ruby — check Gemfile groups
grep -A5 'group :development\|group :test' Gemfile
# Python — check if package is in requirements.txt vs requirements-dev.txt
diff <(cat requirements.txt 2>/dev/null) <(cat requirements-dev.txt 2>/dev/null)
アラート対象のパッケージがランタイムと開発用の両方に含まれている場合は、network-reachable に分類します。
OpenSSF Scorecard との連携
出典:ossf/scorecard。OpenSSF のコントリビューターによるものです(Apache 2.0)。 独自のセキュリティ評価を構築する前に実行してください。scorecard には 18 項目のセキュリティチェックが標準で含まれています。
リポジトリレベルのセキュリティ状況を加味してアラートのトリアージを補完するため、scorecard を実行します。
# Install (one-time)
go install sigs.k8s.io/scorecard/v4@latest
# Run against target repo
scorecard --repo github.com/{org}/{repo} --format json 2>/dev/null | \
jq '.checks[] | {name: .name, score: .score, reason: .reason}' | \
grep -E '"score": [0-7]' # Surface low-scoring checks
各チェックのスコアは 0~10 です。優先して確認するチェック:
- Token-Permissions(< 7):トークンの権限範囲が過剰なワークフロー
- Branch-Protection(< 7):ブランチルールの未設定
- Dependency-Update-Tool(< 7):Dependabot または Renovate が未設定
- Vulnerabilities(< 10):依存関係に既知の CVE が存在
scorecard の出力を entropy-check の評価に反映します。セキュリティスコアのシグナルは D/F 評価バケットに入ります。
Cron との連携
週次の自動トリアージを行うには、crew.yml に追加します。
cron:
- schedule: "0 5 * * 1" # Every Monday at 05:00
task: "Weekly security triage: process open Dependabot/Snyk alerts on all active repos, open fix PRs for safe patches, create issues for breaking changes"
出力仕様
アラートの一群を分類した後、トリアージの概要を作成します。
Security Triage: {org}/{repo}
Date: YYYY-MM-DD
Alerts scanned: N
P0 (patch now): X alerts
P1 (this week): Y alerts
P2 (batch next): Z alerts
Backlog: A alerts
Dismissed: B alerts
Action required:
- [CRITICAL][net-reachable] [email protected] → CVE-2021-23337 — patch to 4.17.21 (safe, patch-only)
- [HIGH][dev-only] [email protected] → CVE-2023-28154 — P2, no runtime exposure
関連スキル
/security-runner— トリアージを実行します。PR を開き、issue を作成し、API 経由で却下します/entropy-check— ドキュメントとアーキテクチャの健全性を確認します。スコアカードのスコアはエントロピー評価に反映できます- Dependabot のカバレッジ(Dependabot が設定されているかどうか)は、リポジトリの設定を直接確認します。
maintenanceスキルは 2026-09-14 に廃止されました /deps-runner— セキュリティ関連以外の依存関係の更新を処理します。同じ PR のパターンに従います