Robotti-io/copilot-security-instructions

GitHub: Robotti-io/copilot-security-instructions

一套 GitHub Copilot 安全指令与提示集合,帮助团队在编码中遵循安全默认并规避常见漏洞。

Stars: 39 | Forks: 12

# 🛡️ GitHub Copilot 安全使用指南 一个全面的工具包,旨在引导 **GitHub Copilot** 遵循**安全编码实践**。该项目包含可定制的指令和安全导向的提示,帮助开发团队高效识别并缓解安全风险。 专为注重安全的团队设计,该配置确保 Copilot 推荐更安全的代码模式,避免常见漏洞,并强化最佳实践——同时不干扰您的工作流程。 ## 🔐 包含内容 本项目提供: - **默认安全导向**的跨语言指导(例如输入验证、密钥处理、安全日志记录)。 - **语言特定的安全模式**: - ☕ Java - 🟩 Node.js - 🟦 C# - 🐍 Python - **“禁止建议”列表**,以阻止高风险的 Copilot 补全(例如 `eval`、内联 SQL、不安全的反序列化)。 - **AI 幻觉防护**,防止包伪造、不存在的 API 和错误信息风险。 - **导师式提示**,帮助初级工程师建立安全编码习惯。 - **位于 `agents/` 和 `skills/` 中的自定义代理与 Agent 技能**,用于在 Copilot 中实现可重复的 AppSec 工作流。 - **用于无缝集成这些提示到其他项目的 MCP 服务器**。 ## 🗂️ 提示目录 探索可用的提示及其预期用途: 这些提示文件位于本仓库的 `prompts/` 目录中,旨在复制到消费仓库的 `.github/prompts/` 中。 **推荐工作流**:从 `application-security-orchestrator` 代理开始(参见 `agents/application-security-orchestrator.agent.md`)。 它标准化输入流程,然后根据需要转交给专家代理(分析员/架构师/工程师),以获取发现结果、威胁模型或已实现的修复。 | 提示 | 描述 | 预期用途 | | --- | --- | --- | | [access-control-and-authorization-architecutre.prompt.md](prompts/access-control-and-authorization-architecture.prompt.md) | 审查并报告项目的访问控制/授权架构。 | 对项目中的访问控制与授权架构进行分析。 | | [assess-logging.prompt.md](prompts/assess-logging.prompt.md) | 识别不安全的日志记录与敏感数据暴露。 | 审核日志输出是否存在泄露并推荐更安全的模式。 | | [business-logic-review.prompt.md](prompts/business-logic-review.prompt.md) | 分析整体业务逻辑流程与决策机制。 | 映射应用行为并批判关键逻辑路径。 | | [check-access-controls.prompt.md](prompts/check-access-controls.prompt.md) | 审计授权与访问控制的薄弱环节。 | 确保 RBAC/ABAC 的强制执行与一致的权限检查。 | | [check-for-secrets.prompt.md](prompts/check-for-secrets.prompt.md) | 检测硬编码的密钥与凭证。 | 定位嵌入式密钥或令牌并建议安全存储方式。 | | [check-for-unvalidated-genai-acceptances.prompt.md](prompts/check-for-unvalidated-genai-acceptances.prompt.md) | 查找未经验证的 AI 生成代码或幻觉资产。 | 验证 AI 建议是否真实、经过测试且有文档记录。 | | [add-content-security-policy.prompt.md](prompts/add-content-security-policy.prompt.md) | 安全地设计、实现并推出新的内容安全策略(CSP)。 | 为 Web 应用添加 CSP,提供可部署的策略字符串、发布计划与验证步骤。 | | [csp-review.prompt.md](prompts/csp-review.prompt.md) | 审查 Web 应用的 CSP(内容安全策略)以防范 XSS、安全使用第三方资源并具备可部署性。 | 评估现有 CSP 策略并提出加固与发布建议。 | | [dependency-cve-triage.prompt.md](prompts/dependency-cve-triage.prompt.md) | 针对项目依赖项梳理已知 CVE:解释漏洞、评估可达性并生成结构化的依赖跟踪报告。 | 分析特定 CVE 对本地代码的影响,判断可利用性并生成简洁的梳理报告。 | | [review-auth-flows.prompt.md](prompts/review-auth-flows.prompt.md) | 评估认证逻辑与会话处理。 | 审查登录流程中的常见风险与最佳实践。 | | [scan-for-insecure-apis.prompt.md](prompts/scan-for-insecure-apis.prompt.md) | 发现已弃用或不安全的 API 使用。 | 替换为现代、更安全的 API。 | | [secure-code-review.prompt.md](prompts/secure-code-review.prompt.md) | 对代码库执行全面的安全审查。 | 进行端到端安全审计。 | | [threat-model.prompt.md](prompts/threat-model.prompt.md) | 使用 4Q 方法生成轻量级威胁模型,包含范围威胁、缓解措施与验证计划。 | 对功能/系统或 PR 差异进行威胁建模并生成持久化工件。 | | [validate-input-handling.prompt.md](prompts/validate-input-handling.prompt.md) | 检查缺失或不安全的输入验证。 | 评估请求处理中的验证与清理缺口。 | ## 🧑‍💻 代理 | 代理 | 用途 | | --- | --- | | [application-security-orchestrator](agents/application-security-orchestrator.agent.md) | 标准化输入流程并路由至合适的专家代理。 | | [application-security-analyst](agents/application-security-analyst.agent.md) | 提供只读的发现结果与修复建议。 | | [application-security-architect](agents/application-security-architect.agent.md) | 威胁模型、防护护栏与 ADR。 | | [application-security-engineer](agents/application-security-engineer.agent.md) | 实施修复并编写最小差异的测试。 | ## 🧩 技能 | 技能 | 预期用途 | | --- | --- | | [secure-code-review](skills/secure-code-review/SKILL.md) | 可重复的安全审查流程与发现结果模板。 | | [authn-authz-review](skills/authn-authz-review/SKILL.md) | 审查认证与授权控制。 | | [input-validation-hardening](skills/input-validation-hardening/SKILL.md) | 收紧验证边界与解析安全性。 | | [dependency-cve-triage](skills/dependency-cve-triage/SKILL.md) | CVE 可达性与修复计划流程。 | | [secrets-and-logging-hygiene](skills/secrets-and-logging-hygiene/SKILL.md) | 防止密钥泄露并添加默认脱敏。 | | [genai-acceptance-review](skills/genai-acceptance-review/SKILL.md) | 防止过度信任与提示/工具注入风险。 | | [threat-model](skills/threat-model/SKILL.md) | 完整的 4Q 威胁建模流程,支持 CLI 友好的 Mermaid 文档与验证辅助。 | | [threat-model-lite](skills/threat-model-lite/SKILL.md) | 轻量级威胁建模,优先排序缓解措施。 | | [secure-fix-validation](skills/secure-fix-validation/SKILL.md) | 验证修复是否生效且不回归行为。 | 对于使用 GitHub Copilot CLI 的用户,`threat-model` 技能捆绑了本地 Mermaid 辅助脚本,以便您可以在不依赖 VS Code Mermaid Chart 扩展的情况下绘制流程图、打印语法指导并验证报告文件。 ## 📦 在真实项目中的使用方法 贡献者提示:在向 `prompts/` 添加文件时,请更新“提示目录”表格。 ### 使用静态文件 1. 将 `copilot-instructions.md` 文件复制到您的仓库中: `.github/copilot-instructions.md` 2. 将需要的提示文件放入: `.github/prompts/` 3. 在 IDE 中打开希望运行的提示文件 4. 点击文件右上角的 **Run Prompt** 按钮 ![运行提示按钮](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/a6a19ac6b5182850.png) ### 使用 MCP 服务器 MCP 服务器简化了安全编码提示在工作流中的集成。请按以下步骤操作: #### 从源码运行 MCP 1. 安装依赖 npm install 2. 配置环境 cp .env.example .env 3. 启动服务器 npm start #### 在 Docker 中运行 MCP 1. 构建 Docker 容器 docker build -t copilot-security-mcp . 2. 运行 Docker 容器 docker run -d -p 8080:8080 copilot-security-mcp #### 配置 VSCode 以使用 MCP 1. 打开 VSCode 并运行命令 `MCP: Open User Configuration`。 2. 添加以下 JSON 配置: ```json { "servers": { "copilot-instructions-mcp": { "url": "http://localhost:8080/mcp" } } } ``` 3. 保存配置。 4. 导航至 VSCode 扩展菜单。 5. 找到 `copilot-instructions-mcp` 服务器,点击设置图标选择 **启动服务器**。 #### 在 GitHub Copilot 中使用 MCP 1. 打开 GitHub Copilot Chat。 2. 请求其针对您的仓库或特定文件运行任意提示。 **示例**:`请获取并运行安全代码审查提示。` ## 📚 支持的语言 - ☕ **Java** — Spring、Jakarta、JDBC、OWASP Encoder - 🟩 **Node.js** — Express、`pg`、`mongoose`、`helmet`、`ajv`、`zod` - 🟦 **C#** — ASP.NET Core、Razor、ADO.NET、Entity Framework - 🐍 **Python** — Flask、Django、`SQLAlchemy`、`pydantic`、`Jinja2`、`bcrypt`、`cryptography` ## 🛠️ 开发 使用以下 npm 命令进行项目开发: | 命令 | 描述 | | --- | --- | | `npm start` | 在 `http://localhost:8080/mcp` 启动 MCP 服务器。 | | `npm run dev` | 使用 `nodemon` 启动热重载服务器。 | | `npm run lint` | 运行 ESLint 与 Markdownlint 检查代码与文档。 | | `npm run lint:fix` | 尝试自动修复 lint 问题。 | **推荐工作流**:提交或打开 PR 前,请运行 `npm run lint`(如需要可运行 `npm run lint:fix`)。 ## 📣 反馈与贡献 本项目欢迎社区参与并持续改进。 如果您有建议、反馈或希望贡献语言规则,请随时提交 Issue 或 Pull Request。 让我们一次一个建议,让 Copilot 变得更安全。 🛠️ ## 免责声明 本仓库(包括所有指令、提示、代理、示例及相关应用内容)**按原样提供**,不附带任何明示或暗示的保证,包括但不限于适销性、特定用途适用性、不侵权、安全性、准确性、完整性或合规性保证。 使用本仓库的风险由您自行承担。Robotti 及其贡献者不对任何索赔、损害或其他责任负责,无论这些责任源于使用本仓库、误用或无法使用本仓库或其产生的任何输出。
标签:AI幻觉防护, API密钥检测, GitHub Copilot, GNU通用公共许可证, JS文件枚举, MCP服务器, MITM代理, Node.js, Python, SecDevOps, Streamlit, XML 请求, 代码安全, 代码审查, 威胁情报, 安全培训, 安全开发, 安全日志, 安全最佳实践, 安全编码, 安全规则集, 开发者工具, 提示词工程, 无后门, 暗色界面, 漏洞枚举, 策略决策点, 自定义代理, 自定义脚本, 访问控制, 请求拦截, 身份认证与授权, 输入验证, 逆向工具, 防止eval, 防止SQL注入, 防止反序列化攻击