mcpField
S
security-check

security-check

github.com/fellowship-devセキュリティ3172 回インストール2 週間前に更新
リポジトリ

security-check について

security-check は、Dependabot や Snyk のアラートを確認するチーム向けに、分類と対応方針を示すスキルです。深刻度と悪用可能性から優先度を決め、パッチやマージ条件も確認しますが、PR の作成やリポジトリの変更は行いません。

主な機能

  1. 01深刻度と悪用可能性による分類
  2. 02アラートの優先度設定
  3. 03自動マージするパッチ条件の確認
  4. 04リポジトリのマージ戦略確認
  5. 05OpenSSF Scorecard による安全性評価
  6. 06アラートのトリアージ要約作成

活用シーン

  1. 01Dependabot または Snyk のアラート一括確認
  2. 02修正実行前の対応内容の把握
  3. 03リポジトリのセキュリティ運用への追加
  4. 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. パッチバージョンのみの更新 — 例:1.2.3 → 1.2.4。マイナーまたはメジャーバージョンの更新には手動レビューが必要です。
  2. パッチで CVE が修正されている — GitHub アドバイザリまたは NVD のエントリーで確認します。
  3. 破壊的変更がない — 対象バージョン範囲のパッケージ CHANGELOG を確認します。
  4. 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-mergeCI が成功した後、安全なパッチを自動マージできます
restrictedready-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 のパターンに従います

コメント