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. 05结合 OpenSSF Scorecard 评估安全状况
  6. 06生成告警分流摘要

适用场景

  1. 01审核一批 Dependabot 或 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,以全面了解健康状况

分类模型

优先级由两个维度决定:

维度 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本周内创建修复 PRsecurity P1
P2通过 file-finding.sh 将条目添加到每周发现摘要,并提供升级路径;在每月周期中批量处理—
待办将条目添加到每周发现摘要,无需紧急处理—
忽略通过 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 通过后,可自动合并安全补丁
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)

如果警报中的软件包同时出现在运行时依赖项和开发依赖项中,则将其归类为可从网络访问。


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 模式

评论

支持 Markdown