alboechat/appsec-vulnerability-auditor

GitHub: alboechat/appsec-vulnerability-auditor

AppSec 漏洞审计员:针对AI生成软件的防御性安全审计工具。

Stars: 1 | Forks: 0

AppSec Vulnerability Auditor

AppSec 漏洞审计员

一种用于防御性应用程序安全审查的 Codex/Claude 技能,侧重于 AI 生成和“情感编码”的软件。

MIT License CI Docs Tag Skill format Status Scope

## 此技能的功能 您向 Codex 或 Claude 提供代码(一个文件、一个 diff、一个 PR、一个目录)。该技能生成一个**优先级漏洞报告**——关键/高/中/低/信息性——包括: - 一个简短的攻击面图,以便您可以检查已审查的内容。 - 每个发现都标记有**CWE ID + OWASP 类别 + 文件:行**。 - 每个发现的严重性校准:**置信度、假设、降级/升级条件、验证问题**。 - TypeScript/JavaScript、Python、Go、Rust、Java、Ruby、PHP、C#/.NET 和 Swift/Kotlin 移动代码的语言特定检查。 - 产品就绪的输出:Markdown、SARIF 2.1.0、GitHub 问题正文、JIRA 工作项和执行摘要。 - 仓库级审计协议,具有可续传的 `audit-state` 跟踪。 - 包含 5 个基准案例和 20 个预期发现的合成评估套件。 - 为 BioIntuitiva 支持的使用提供社区和专业产品化指导。 - 每个 Critical/High(无武器化 PoC)都有一个**重现或草图**。 - 每个发现都有一个**具体的补丁**,与原始代码的语言和风格相同。 - 一个检查内容和发现的内容列表(以便报告可验证)。 - 按严重性排序的“下一步行动”清单。 - 可选的**修复计划构建器**(第 10 步),允许您选择要修复的发现,然后生成一个 `.md` 文件,其中包含冲刺、任务清单、代码提示、验收标准和剩余风险。 它是有偏见的——故意如此——偏向于在 AI 辅助开发中最常见的故障模式:缺少授权检查、看起来合理但已损坏的加密、可注入提示的工具使用链、硬编码的秘密和服务器信任客户端模式。 ## 它寻找什么 该技能检查标准 Web 安全风险、AI 生成代码的故障模式和 LLM 代理特定问题。核心类别: 覆盖率摘要: - **以下列出的 16 个主要漏洞类别**。 - TypeScript/JavaScript、Python、Go、Rust、Java、Ruby、PHP、C# 和 Swift/Kotlin 的 **85 个语言/框架特定检查**。 - 当结合核心类别、语言包、OWASP Top 10、CWE Top 25、AI 生成代码的陷阱和 LLM 代理安全风险时,**100 多个 AppSec 检查**。 这些计数是审计检查覆盖率,不是 80 个不同非重叠漏洞类型的承诺;几个检查故意在 OWASP、CWE 和语言特定视角上重叠。 | 类别 | 示例 | |---|---| | 破坏的访问控制 | 缺少所有权检查、IDOR、租户边界绕过、没有策略检查的管理员路由 | | 认证失败 | 受保护路由上缺少认证、弱密码存储、弱重置流程、会话固定 | | 授权错误 | 客户端控制的角色、`role` / `is_admin` / `tenant_id` 的批量分配、权限提升 | | 注入 | SQL/NoSQL/LDAP 注入、OS 命令注入、模板注入、不安全的动态查询 | | XSS 和浏览器陷门 | `dangerouslySetInnerHTML`、原始 `innerHTML`、不安全的富文本渲染、缺少 CSP | | SSRF | 用户控制的 URL 捕获器、PDF/渲染捕获、webhook 捕获器、云元数据可达性 | | 不安全的反序列化 | `pickle`、`yaml.load`、Java `ObjectInputStream`、PHP `unserialize`、Ruby `Marshal.load` | | 密码学失败 | MD5/SHA-1/SHA-256 密码、ECB 模式、手滚 JWT 验证、弱随机性 | | 秘密和配置 | 硬编码的 API 密钥、`.env.example` 中的真实值、生产环境中的调试模式、不安全的 cookie | | 服务器信任客户端 | 来自前端状态的定价、折扣、角色、数量、租户或所有权 | | 文件处理 | 路径遍历、不安全的上传/下载、用户文件名、缺少内容类型和大小检查 | | 速率限制和滥用 | 没有登录/重置节流、资源耗尽路径、无界请求体 | | 错误泄露 | 栈跟踪、SQL 错误、返回给用户的秘密或内部信息 | | 记录和监控差距 | 在管理员/安全敏感操作上没有审计日志、没有主机外日志 | | 依赖/供应链信号 | 幻觉包、明显的有漏洞/已弃用的依赖模式、slopsquatting 风险 | | LLM 代理安全 | 工具中的提示注入、间接提示注入、MCP 工具授权、上下文泄露、输出作为输入的循环 | 语言特定包添加框架/运行时检查: - **TypeScript / JavaScript(9 个检查)**:Express/NestJS 路由保护、Next.js 服务器操作、Prisma 原始查询、JWT 滥用、原型污染、前端秘密泄露。 - **Python(9 个检查)**:Django/Flask/FastAPI 路由认证、SQLAlchemy 原始 SQL、不安全的 `pickle` / `yaml.load`、`subprocess(shell=True)`、调试配置。 - **Go(9 个检查)**:handler 认证授权、SQL 格式化、`os/exec`、`text/template` 与 `html/template` 的比较、无界体读取、`InsecureSkipVerify`。 - **Rust(10 个检查)**:`unsafe` 边界、SQL 字符串构建、serde 形状验证、路径遍历、SSRF、资源耗尽。 - **Java / JVM(9 个检查)**:Spring `@PreAuthorize`、批量分配 DTO、JPQL/原始 SQL、Jackson 多态类型、XXE、actuator 暴露。 - **Ruby / Rails(9 个检查)**:Pundit/CanCan 空间、strong-params 绕过、ActiveRecord 注入、`.html_safe`、`Marshal.load`、Sidekiq 参数风险。 - **PHP(10 个检查)**:Laravel/Symfony 策略空间、原始 SQL、文件包含、`unserialize`、CSRF、WordPress nonce/capability 检查。 - **C# / .NET(10 个检查)**:ASP.NET Core 认证、Entity Framework 原始 SQL、Blazor XSS、System.Text.Json 反序列化、CORS、反伪造令牌、用户秘密、证书验证。 - **Swift / Kotlin(10 个检查)**:Keychain/Keystore 不安全存储、证书固定、深链接/通用链接验证、WebView JS 桥接、导出的 Android 组件、生物识别认证绕过、硬编码的秘密。 ## 此技能不做什么 - 编写有效的漏洞利用、武器化 PoC 或 shellcode。 - 生成侦察或指纹工具。 - 绕过您不拥有的系统上的认证或许可。 - 代替专业的渗透测试、合规性审计或正式的威胁模型。 如果您请求攻击性输出,该技能将拒绝并提供防御等效物(检测规则、修复、回归测试)。 ## 安装 ### 选项 A — 个人技能文件夹 ``` git clone https://github.com/alboechat/appsec-vulnerability-auditor.git mv appsec-vulnerability-auditor ~/.codex/skills/ ``` ### 选项 B — Claude / Cowork 插件/共享技能 将文件夹放入 Cowork 插件读取的目录中(通常是 `~/Library/Application Support/Claude/local-agent-mode-sessions/<...>/skills/` 或您的团队共享挂载)。 ### 选项 C — 同步到 OneDrive / 共享驱动器 使用包含的脚本: ``` ./tools/deploy-to-onedrive.sh ``` 如果您的 OneDrive 路径与 `/Volumes/One Drive/Skills/appsec-vulnerability-auditor/` 不同,请编辑脚本的 `DEST` 变量。 ## 使用 在任何具有此技能的 Codex 或 Claude 对话中: 该技能在自然语言短语(如 *审计*、*安全审查*、*查找漏洞*、*这是否可以发布*)上自动触发。有关完整触发列表,请参阅 `SKILL.md`。 ## 此存储库中的内容 ``` appsec-vulnerability-auditor/ ├── SKILL.md # The skill prompt Codex/Claude reads ├── README.md # This file ├── README-pt-BR.md # Portuguese quickstart ├── LICENSE # MIT ├── AUTHORS.md ├── DISCLAIMER.md # Review limits and defensive-use boundaries ├── CHANGELOG.md ├── ROADMAP.md ├── CONTRIBUTING.md ├── CODE_OF_CONDUCT.md ├── SECURITY.md # How to report a vuln in THIS skill ├── .gitignore ├── agents/ │ └── openai.yaml # UI metadata for Codex/OpenAI surfaces ├── .github/ │ ├── CODEOWNERS │ ├── ISSUE_TEMPLATE/ │ │ ├── bug_report.md │ │ └── feature_request.md │ ├── PULL_REQUEST_TEMPLATE.md │ └── workflows/ │ └── ci.yml # Validation, link checks, evals, packaging ├── assets/ │ └── logo.svg ├── remediation_plan_builder_architecture.svg ├── docs/ │ ├── architecture.md # How the skill is organized │ ├── runtime-architecture.md # Runtime, lifecycle, state, and eval pipeline │ ├── vibe-coding-research.md # Research notes on AI-code failure modes │ ├── productization.md # Community/pro positioning │ ├── feature-spec-remediation-plan-builder.md # Design spec for Step 10 │ ├── threat-model-template.md │ ├── glossario-appsec-pt-br.md │ ├── release-checklist.md │ └── github-release-template.md ├── references/ # What the skill consults during an audit │ ├── owasp-top-10.md │ ├── cwe-top-25.md │ ├── ai-generated-code-pitfalls.md │ ├── llm-agent-security.md │ ├── severity-calibration.md │ ├── output-formats.md │ ├── finding-schema.json # Canonical Findings Ledger schema │ ├── repository-audit-protocol.md │ ├── evaluation-protocol.md │ ├── remediation-plan-protocol.md # Step 10 plan builder protocol │ ├── seed-input-protocol.md # SARIF/Semgrep/Gitleaks seed ingestion │ ├── lang/ │ │ ├── typescript.md │ │ ├── python.md │ │ ├── go.md │ │ ├── rust.md │ │ ├── java.md │ │ ├── ruby.md │ │ ├── php.md │ │ ├── csharp.md │ │ └── swift-kotlin.md │ └── secrets-and-config.md ├── templates/ │ └── remediation-plan.template.md # Structural template for plan output ├── examples/ │ ├── example-audit-report.md # Reference output the skill emulates │ ├── findings-ledger.example.json │ ├── remediation-plan-example.md # Example plan derived from notes-app audit │ ├── anonymous-case-study.md │ ├── repository-audit-summary.md │ ├── audit-state.example.json │ └── output-formats/ │ ├── sarif-example.json │ ├── github-issue.md │ ├── jira-ticket.md │ └── executive-summary.md ├── evals/ │ ├── README.md │ ├── eval-manifest.json │ ├── scorecard-latest.json │ ├── scorecard-template.md │ └── cases/ │ ├── case-01-notes-api.md │ ├── case-01-notes-api.json │ ├── case-02-llm-agent-tools.md │ ├── case-02-llm-agent-tools.json │ ├── case-03-python-file-service.md │ ├── case-03-python-file-service.json │ ├── case-04-java-admin-api.md │ ├── case-04-java-admin-api.json │ ├── case-05-php-wordpress-plugin.md │ └── case-05-php-wordpress-plugin.json └── tools/ ├── validate.sh # Lints repo (JSON, markdown frontmatter, bash) ├── check-skill-links.sh # Blocking SKILL.md link checker ├── run-evals.sh # Synthetic/live eval orchestrator ├── appsec-audit.py # Synthetic eval mock, not a real auditor ├── eval-compare.py # Eval comparator and scorecard writer ├── seed-with-semgrep.sh # Semgrep-to-ledger seed adapter ├── package-zip.sh # Builds release zip ├── deploy-to-onedrive.sh # Syncs to /Volumes/One Drive/Skills/... └── github-init.sh # git init + gh repo create ``` ## 设计理念 三个承诺,故意紧张: 1. **校准严重性而非详尽无遗的戏剧。** 一个包含五个真实高严重性的报告比包含二十个膨胀的中等严重性的报告更有用。该技能被指示诚实地标记。 2. **补丁,而不仅仅是发现。** 每个发现都附带一个与原始代码风格相同的修复。没有修复的发现只是投诉。 3. **仅限防御,无例外。** 该技能拒绝产生攻击性工具,即使它被包装为“用于测试”。这是不可协商的——请参阅 `SECURITY.md`。 ## 评估 `evals/` 套件包含五个防御案例和 20 个预期发现。默认情况下,发货的 harness 以**合成**模式运行;它验证比较器和评分卡管道,而不是真实 LLM 的安全技能。使用未来的/实时 `appsec-audit` 运行器来衡量召回率、精确度、严重性准确性、校准完整性和对模型的安全性。请参阅 `references/evaluation-protocol.md` 和 `evals/README.md`。 ## 社区和专业使用 公共存储库是社区版:自助技能、参考资料、输出、存储库协议和评估。BioIntuitiva 可以围绕它构建专业服务:针对 AI 构建的 MVP 的范围审查、威胁模型摄入、验证发现、修复计划、重新测试和执行摘要。请参阅 `docs/productization.md`。 ## 为什么是“情感编码”? “情感编码”是通过向 LLM 描述意图并接受其大部分编写来构建软件的实践。它非常高效,并产生一组可识别的、可重复的安全故障——请参阅 `docs/vibe-coding-research.md`。此技能针对这些故障进行了调整,因为它们是专业审计员现在在最高容量的代码库中看到最多的,具有最低的基线审查。 ## 贡献 欢迎提交问题、PR 和参考列表扩展。请在阅读 `CONTRIBUTING.md` 和 `CODE_OF_CONDUCT.md` 之前先阅读。要报告此技能本身的漏洞,请遵循 `SECURITY.md`。 ## 作者 Arquitero/Engenheiro Prof Dr Antonio Luiz Boechat,BioIntuitiva。 ## 许可证 MIT — 请参阅 `LICENSE`。
标签:AI安全, AI生成软件, Chat Copilot, CMS安全, Codex/Claude, CWE ID, Go, IPv6支持, JavaScript, JIRA, Kotlin, Markdown, OpenVAS, PHP, Python, Ruby, Ruby工具, Rust, SARIF, SQL查询, Swift, TLS抓取, TypeScript, 代码审查, 后端开发, 安全可观测性, 安全审查, 安全报告, 安全插件, 安全漏洞, 开源框架, 持续集成, 数据可视化, 文档, 无后门, 日志审计, 漏洞审计, 版本控制, 知识库, 移动应用安全, 网络流量审计, 许可证, 请求拦截, 软件安全, 逆向工具