mcpField
S
security-scan

security-scan

github.com/codewithmukesh安全7913.0k 次安装12 周前更新
代码仓库

关于 security-scan

面向开发者的静态安全扫描技能,通过六层检查识别依赖漏洞、硬编码密钥、代码模式、认证配置、CORS 和数据保护问题。它按 OWASP Top 10:2025 分类并结合风险上下文评级,同时明确说明静态分析的局限。

主要功能

  1. 01六层静态安全扫描
  2. 02OWASP Top 10:2025 分类
  3. 03按可利用性与影响评级
  4. 04分层选择扫描范围
  5. 05提供修复建议与代码
  6. 06报告注明静态分析局限

适用场景

  1. 01发布前进行全面安全检查
  2. 02依赖更新后检查包漏洞
  3. 03认证、配置或日志变更后定向扫描
  4. 04渗透测试准备与定期审查

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/codewithmukesh/dotnet-claude-kit --skill security-scan

安装后在 Claude Code 中输入/security-scan确认已加载。

附带文件references/scan-layers.md

详细介绍

/security-scan — 6 层安全流水线

是什么

跨 6 层运行纵深防御静态扫描。即使项目没有任何 CVE,仍可能存在硬编码机密、SQL 注入和缺少身份验证等问题——每一层都会检测不同类别的漏洞。扫描结果对应 OWASP Top 10:2025 分类,并根据可利用性、影响和暴露程度评为 Critical/High/Medium/Low——公共端点上的 Critical SQL 注入,其优先级高于管理页面上的 Low 信息泄露。

检测模式、OWASP 映射、修复代码和报告模板位于 references/scan-layers.md——执行前请先阅读。

**诚实原则:**这是静态分析,不是渗透测试。它能捕获已知模式,但无法发现业务逻辑缺陷、复杂的授权绕过问题和仅在运行时出现的漏洞。每份报告都会说明这一点。

适用场景

  • 发布前安全门禁——执行完整扫描,这是生产环境上线前不可妥协的要求
  • “安全扫描”、“安全审计”、“查找机密”、“CVE 检查”、“OWASP”
  • 更新依赖项(第 1 层)、更改身份验证(第 4 层)、更改配置(第 2 层)或更改日志记录(第 6 层)后
  • 渗透测试前准备——在支付渗透测试费用前修复静态问题
  • 事件响应和季度审查

使用方法

第 1 步:选择层
场景层
发布前门禁/渗透测试准备/事件/季度审查全部 6 层
更新依赖项后1
新增端点3、4、5
身份验证系统变更4
配置文件变更2
日志记录变更6
公开 API 暴露3、4、5
仅供内部使用的服务1、2、3
第 2 步:执行各层扫描

阅读 references/scan-layers.md,了解各层的检测模式。 将深入的身份验证和机密审查委派给 security-auditor Agent,并配合使用 authentication 和 configuration 技能。

#层OWASP 2025方法
1包漏洞A03 供应链dotnet list package --vulnerable --include-transitive
2机密检测—扫描 .cs/.json/.yml/.xml/.config 中的模式
3OWASP 代码模式A05 注入、A08 完整性、A04 加密、A01 访问控制扫描源代码:原始 SQL、Html.Raw、BinaryFormatter、MD5/SHA1、IDOR
4身份验证配置A07 身份验证、A01 访问控制使用 get_endpoint_map 一次性查看每个路由的身份验证状态;标记 unmarked 端点;然后检查 JWT 验证设置
5CORS 策略A02 配置错误通配符来源、凭据组合、方法/标头范围
6数据保护A04 加密、A09 日志记录与告警日志中的 PII、过度宽泛的响应、敏感数据明文存储
第 3 步:结合上下文评定严重程度

严重程度必须符合实际风险——过度分类会导致告警疲劳,并掩盖真正的 Critical 问题:

  • 测试夹具中的“机密”和 appsettings.Development.json 中的值都是预期内容——跳过或标记为 INFO,不要标记为 HIGH
  • 缺少 XML 注释绝不属于安全问题
  • 仅将 Critical 用于当前即可利用的问题:公共端点上的注入、暴露的生产机密、身份验证绕过
第 4 步:生成报告

每项发现均包含:[SEVERITY] file:line — title、OWASP 类别、问题说明、 被利用时的影响以及修复代码(修改前/后)。按照参考模板生成摘要 表和各层状态表,并在开头注明静态分析免责声明。

示例

User: /security-scan before we ship

Claude: Running all 6 layers...

| Layer | Status | Findings |
|-------|--------|----------|
| 1. Packages | PASS | 0 CVEs (142 packages incl. transitive) |
| 2. Secrets | PASS | 0 real secrets (2 dev-only values skipped) |
| 3. OWASP Patterns | FAIL | 1 SQL injection |
| 4. Auth Config | WARN | 2 endpoints missing explicit auth attributes |
| 5. CORS | PASS | Explicit origins from configuration |
| 6. Data Protection | WARN | Customer email logged at Information level |

[HIGH] SearchOrders.cs:34 — SQL Injection (A05:2025)
  FromSqlRaw($"...LIKE '%{search}%'") → attacker controls the query.
  Fix: db.Orders.Where(o => EF.Functions.Like(o.Name, $"%{search}%"))

[MEDIUM] OrderEndpoints.cs:18,31 — no [Authorize]/[AllowAnonymous]; behavior
  depends on ambient global policy. Make intent explicit per endpoint.

[LOW] OrderPlacedHandler.cs:22 — PII in logs (A09:2025). Log CustomerId, not email.

Note: static analysis only — this does not replace a penetration test.

相关内容

  • references/scan-layers.md — 检测模式、OWASP 2025 映射、报告模板
  • /verify — 第 5 阶段会针对每组变更执行此扫描的轻量版本
  • /health-check — 维度 7(安全态势)为抽查版本
  • authentication / configuration — 第 4 层和第 2 层的修复模式

评论

支持 Markdown