mcpField
S
security-code-audit

security-code-audit

github.com/mn-youssef安全4975 次安装20 周前更新
代码仓库

关于 security-code-audit

面向 AI 编码工具的源代码安全审计 Skill,通过追踪不可信输入到危险用法来查找漏洞,无需运行应用即可开展分析。

主要功能

  1. 01追踪输入从来源到危险点
  2. 02检查 OWASP Top 10 常见模式
  3. 03提供特定技术栈安全参考
  4. 04记录严重性与可利用性
  5. 05衔接验证与修复流程

适用场景

  1. 01无需运行应用进行代码审计
  2. 02追踪用户输入进入数据库查询的路径
  3. 03检查授权与访问控制逻辑
  4. 04整理漏洞发现以便后续修复

安装

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

$npx skills add https://github.com/mn-youssef/security-skills --skill security-code-audit

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

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

references/
api-backend.md
database.md
web-frontend.md

详细介绍

安全代码审计(FIND 阶段)

概述

阅读源代码并通过模式查找漏洞。无需运行应用——适用于任何 AI 编码工具。追踪不可信输入从其来源(输入的位置)到其汇点(被危险使用的位置)。

**核心原则:**漏洞是指不可信数据到达危险汇点,且中间没有经过充分验证或编码。找出来源→汇点路径。

方法:来源 → 汇点追踪

  1. 根据威胁模型(或通过扫描入口点),选择一个不可信输入的来源。
  2. 沿代码追踪数据,直到它被使用的位置(汇点)。
  3. 思考:是否针对该汇点对数据进行验证、清理、参数化或编码?如果没有 → 记录发现项。
  4. 记录严重程度、file:line、确切的数据路径以及利用方法。

OWASP Top 10——搜索内容

风险要搜索的代码特征/汇点
注入(SQL/NoSQL/命令)通过字符串拼接构建查询、exec、eval、system、查询中的模板插值
访问控制失效(IDOR)根据用户提供的 id 查找对象,但不检查所有权
身份验证失效自定义加密、薄弱的会话处理、缺少 MFA、令牌出现在 URL 中
加密失效密码使用 md5/sha1、硬编码密钥、令牌使用 Math.random、未使用 TLS
SSRF服务端获取用户提供的 URL(requests.get(input)、fetch(input))
安全配置错误debug=true、默认凭据、宽松的 CORS *、详细错误信息
XSSinnerHTML、dangerouslySetInnerHTML、v-html、未转义的模板输出
不安全的反序列化pickle.loads、yaml.load、对输入进行原生反序列化
易受攻击的依赖项对照安全公告检查锁文件(npm audit、pip-audit、osv)
SSTI/路径遍历渲染输入内容作为模板、输入文件路径中含有 ../

领域参考资料(加载与你的技术栈匹配的资料)

  • references/web-frontend.md — XSS、CSRF、CSP、客户端密钥、点击劫持
  • references/api-backend.md — 授权/IDOR、注入、SSRF、JWT、速率限制、批量赋值
  • references/database.md — SQLi/NoSQLi、访问控制、数据暴露、ORM 陷阱

输出:发现项登记表

ID严重程度标题位置来源→汇点可利用性修复指引
F1高用户搜索中的 SQLiapi/users.py:42?q= → 原始 SQL无需身份验证,可导出数据库参数化查询 → security-hardening

严重程度 = 威胁模型风险评分,并根据代码的实际可利用性调整。

交接

运行中的应用存在高严重程度的发现项 → 交给 active-pentest 验证。 所有发现项 → 交给 security-hardening 修复。

常见错误

  • 只匹配汇点模式,却未确认输入确实由攻击者控制(误报)。
  • 在第一个汇点就停止——一个来源通常会到达多个汇点。
  • 信任客户端验证——它可以被绕过;服务端必须验证。
  • 忽视授权:现实中的大多数安全事件都源于访问控制问题,而非罕见的注入攻击。

评论

支持 Markdown