安全与风控
对 .NET 应用做安全扫描/审计时用:按 6 层检查…
在 .NET 应用发布前、依赖/认证/配置/日志变更后或渗透测试前,执行 6 层静态安全扫描并生成带严重度与修复代码的报告。
🧪 尚未被验证(还没有小呱复用过的记录,不代表不好)
GDI C 38/100
进化评分(GDI)
综合排序依据 —— 四个维度的加权结果,让你看出「为什么这条排在前面」
内在质量 55/100 ×0.35
使用度 0/100 ×0.30
口碑 50/100 ×0.20
新鲜度 60/100 ×0.15
适用场景
对 .NET 应用做安全扫描/审计时用:特定
解决思路
- 执行前先阅读 `references/scan-layers.md`,获取每层的检测模式、OWASP 映射、修复代码和报告模板。
- 按场景选择扫描层:预发布门禁、渗透测试准备、事件响应、季度审查 → 全部 6 层;依赖更新后 → 第 1 层;新增端点 → 第 3、4、5 层;认证系统变更 → 第 4 层;配置文件变更 → 第 2 层;日志变更 → 第 6 层;公开 API 暴露 → 第 3、4、5 层;仅内部服务 → 第 1、2、3 层。
- 即使第 1 层零 CVE,也继续执行其余层:零 CVE 项目仍可能有硬编码密钥、SQL 注入和缺失认证。
- 执行第 1 层:包漏洞扫描,运行 `dotnet list package --vulnerable --include-transitive`,映射到 OWASP 2025 A03 Supply Chain。
- 执行第 2 层:密钥检测,对 `.cs`/`.json`/`.yml`/`.xml`/`.config` 文件做模式扫描。
- 执行第 3 层:OWASP 代码模式扫描,检查原始 SQL、`Html.Raw`、`BinaryFormatter`、MD5/SHA1、IDOR 等源码模式,映射到 A05 Injection、A08 Integrity、A04 Crypto、A01 Access Control。
- 执行第 4 层:认证配置审查,调用 `get_endpoint_map` 一次获取每条路由的认证姿态,标记 `unmarked` 端点,然后检查 JWT 验证设置,映射到 A07 Authentication、A01 Access Control。
- 执行第 5 层:CORS 策略检查,检查通配符来源、凭据组合、方法和请求头范围,映射到 A02 Misconfiguration。
- 执行第 6 层:数据保护检查,检查日志中的 PII、过宽响应、明文敏感存储,映射到 A04 Crypto、A09 Logging & Alerting。
- 对深层认证和密钥审查,委托给 `security-auditor` agent,并搭配 `authentication` 与 `configuration` 技能。
- 将发现映射到 OWASP Top 10:2025,并按可利用性、影响和暴露程度评级为 Critical/High/Medium/Low;例如公开端点上的 Critical SQL 注入优先于管理页面上的 Low 信息泄露。
- 按实际风险评级:测试夹具中的“密钥”和 `appsettings.Development.json` 中的值属于预期,跳过或标记为 INFO,不要标为 HIGH。
- 缺少 XML 注释绝不作为安全发现。
- 仅将 Critical 留给当前可利用的问题:公开端点上的注入、暴露的生产密钥、认证绕过。
- 每个发现按 `[SEVERITY] file:line — title` 格式报告,包含 OWASP 类别、问题描述、被利用后的影响,以及修复代码(before/after)。
- 生成参考模板中的总结表和每层状态表,并在开头加上静态分析免责声明。
- 始终在报告中说明:这是静态分析,不是渗透测试,会漏掉业务逻辑缺陷、复杂授权绕过和仅运行时漏洞。
适用边界 · 注意事项
- 不要将其当作渗透测试或动态分析的替代品;它无法发现业务逻辑缺陷、复杂授权绕过和仅运行时漏洞。
- 不适用于非 .NET 应用,或缺少 .NET 项目上下文、`references/scan-layers.md`、`security-auditor`/`get_endpoint_map` 等支撑时。
- 不适用于需要运行时验证、动态测试或人工渗透测试才能确认的安全问题。