emilio-garcia-ie/security-gate-cursor

GitHub: emilio-garcia-ie/security-gate-cursor

Security Gate 是一个开源 Cursor 插件,通过规则层、情报规划层和 MCP 编排层构建三层安全防线,在开发流程中集成静态分析、漏洞情报和动态渗透测试,并通过生产环境手刹机制防止误操作。

Stars: 1 | Forks: 0

# Security Gate (Cursor 插件) Security Gate 是一个**开源 Cursor 插件**,用于实现更安全的开发:在编写代码前确立**规则**、基于**证据的规划**,以及一个用于协调 Semgrep、情报源、可选实验室和 Tier-2/3 工具的 **MCP 服务器** —— 配备**生产环境刹车机制**,确保绝不在类似生产的环境中进行动态测试。 ### 接下来阅读什么 | 目标 | 文档 | |------|------------| | **图表、流程、各工具输出** | **[docs/ARCHITECTURE_AND_FLOWS.md](docs/ARCHITECTURE_AND_FLOWS.md)** | | **简短问答** (内容 / 原因 / 关键点) | **[docs/FAQ.md](docs/FAQ.md)** | | **安装与冒烟测试** | **[SETUP.md](SETUP.md)** | | **故障排除** (MCP, Docker, 端口) | **[docs/TROUBLESHOOTING.md](docs/TROUBLESHOOTING.md)** | | **环境变量矩阵** | **[docs/LLM_AND_KEYS_MATRIX.md](docs/LLM_AND_KEYS_MATRIX.md)** | | **免费与付费 LLM 路径** | **[docs/FREE_VS_PAID_LLM.md](docs/FREE_VS_PAID_LLM.md)** | ## 三层结构 ``` flowchart TB subgraph L1 ["Layer_1_Rules"] R["Cursor_mdc_rules_plus_skill"] end subgraph L2 ["Layer_2_Planning"] PL["security_planning_mdc"] IN["intel_refresh_and_layer2_brief"] end subgraph L3 ["Layer_3_Orchestration_MCP"] HB["handbrake_scan"] TO["profile_Semgrep_lab_Shannon_DeepSec_llamafirewall"] end L1 --> L2 L2 --> L3 HB --> TO ``` - **Layer 1 — 规则:** `.mdc` 规则在编写代码*之前*引导安全默认设置 —— 安全编码(`rules/security.mdc`)、依赖和 lockfile 管理(`rules/supply-chain.mdc`),以及新手引导提示(`rules/onboarding-and-keys.mdc`)。 - **Layer 2 — 规划:** 证据优先的规划规则,加上 **`intel_refresh`** / **`layer2_brief`**(填充后的 KEV/OSV 缓存)。 - **Layer 3 — 编排:** MCP 工具 —— **`handbrake_scan`**、**`project_profile`**、**`intel_refresh`**、**`layer2_brief`**、**`lab_bootstrap`**、**`semgrep_scan`**、**`deepsec_review`**、**`shannon_pentest`**、**`llamafirewall_advisor`** —— 旨在当检测到类似生产环境的信号时**阻止动态测试**。 ## 静态与动态 (以及 AI 驱动工具的定位) | 路径 | 运行内容 | 所需典型 API 密钥 | 刹车机制 | |------|-----------|------------------|-----------| | **Tier 1 — 静态** | 规则, `project_profile`, `intel_refresh`, `layer2_brief`, **`semgrep_scan`**, `llamafirewall_advisor` (建议文本) | 核心情报 + OSS Semgrep **无需**密钥 | 仍会在*推荐*动态测试前运行 | | **Tier 2/3 — 动态 + LLM** | `shannon_pentest`, 通过 **`lab_bootstrap`** 启动的 Crucible, **`deepsec_review`** 扫描 | 当这些操作调用供应商 LLM 时**必需** | 仅限 **`dynamic_allowed: true`** 且为**一次性**目标 | Tier 2/3 中的 “AI” 指的是 **Shannon / Crucible / DeepSec 后端** —— 而不是 Cursor 聊天模型。对于捆绑的 OSS 路径,Tier 1 可以保持**无密钥** 状态。 ``` flowchart TB WS["Workspace"] WS --> PP["project_profile"] PP --> HB["handbrake_scan"] HB --> ST["Tier_1_static_Semgrep_intel"] HB -->|dynamic_allowed| DY["Tier_2_3_Shannon_Crucible_DeepSec"] HB -->|blocked| BL["No_live_exploit_guidance"] ``` ## 典型流程:工具 → 输出 ``` flowchart LR subgraph In ["Workspace"] F["Files_and_env"] end subgraph MCP ["MCP_security_gate"] T["Tool_calls"] end subgraph Out ["Artifacts"] J["JSON_or_markdown_in_chat"] C[".security-gate_cache"] R["reports_export_CLI"] end F --> T --> J T --> C T --> R ``` | 输出 | 示例 | |--------|----------| | 聊天中 | 来自 `handbrake_scan` 的 JSON,来自 `layer2_brief` 的 markdown,Semgrep 摘要 | | 缓存 | 来自 **`intel_refresh`** 的 `.security-gate/cache/*.json` | | 报告 | **`npm run report:export`** → `FINAL_SECURITY_REPORT_*.md` ([模板](docs/templates/FINAL_SECURITY_REPORT.template.md)) | | 工具目录 | `.deepsec/`, `.shannon/`, Docker 实验室绑定挂载 | ## 工具一览 (官方链接;未捆绑标志) | 层级 | 集成 | 成本 (典型) | 参考 | |:-----:|-------------|----------------|-----------| | 1–2 | Cursor 规则 + 规划 | 随插件捆绑 | — | | 2–3 | 通过 `semgrep_scan` 提供 **Semgrep** CE | 免费 (主机或 Docker CE) | [Semgrep 文档](https://semgrep.dev/docs) | | 2 | **CISA KEV** + **OSV** | 免费 (HTTPS) | [KEV](https://www.cisa.gov/known-exploited-vulnerabilities-catalog), [OSV](https://osv.dev/) | | 3 | **Shannon** | 付费 / 免费层代理 — [FREE_VS_PAID_LLM.md](docs/FREE_VS_PAID_LLM.md) | [Keygraph Shannon](https://github.com/KeygraphHQ/shannon) | | 3 | **Crucible** | LLM 密钥;可使用 Groq 免费层 | [Crucible](https://github.com/crucible-security/crucible) | | 3 | **DeepSec** | 付费 AI — 校准 `limit` | [DeepSec](https://github.com/vercel-labs/deepsec) | | 3 | **LlamaFirewall** advisor | 核心路径免费 (本地 HF) | [LlamaFirewall](https://github.com/meta-llama/PurpleLlama/tree/main/LlamaFirewall) | Docker / Node 22 / pnpm / Python 的宿主机安装仍由您自行负责;当缺少前置条件时,MCP 工具会返回 **install_plan** JSON。 ## 决策流程 (配置 + 刹车) ``` flowchart TB start["Open_workspace"] --> prof["project_profile"] prof --> hb["handbrake_scan"] hb --> branch{"dynamic_allowed"} branch -->|false| t1only["Tier_1_only_recommendations"] branch -->|true| t1plus["Tier_1_plus_optional_dynamic_on_disposable_targets"] ``` **强制顺序:** 在进行实时漏洞利用测试或自主红队测试之前,务必始终运行 **`handbrake_scan`**。 ## 支持的平台 Security Gate 旨在 **macOS**、**Windows 10/11** 和 **Linux**(x86_64 或 ARM,与您发行版支持的 Docker Desktop / Engine 相匹配)上运行。 - **MCP 服务器及冒烟测试**:纯 **Node.js**(`>=18.18`);路径使用 `path.join` / `path.resolve`。 - **钩子**:`hooks/hooks.json` 调用 `node ./hooks/session-hint.mjs` —— 确保在每个操作系统的 Cursor 环境中,**Node** 包含在 `PATH` 中。 - **Docker**:在 macOS 和 Windows 上使用 **Docker Desktop**;在 Linux 上使用 **Docker Engine + Compose 插件**。扫描仪实验室的绑定挂载要求 Docker 共享包含您工作区的驱动器(macOS 上为默认;Windows 上请按照 Docker 文档启用 WSL2/文件共享)。 - **演示克隆**:在仓库根目录使用 **`npm run clone-demo-targets`**(跨平台),或者在 macOS/Linux 上使用 Bash 运行 `./scripts/clone-demo-targets.sh`。 ## 快速入门 (开发者) 1. 安装 Node.js **18.18+**。获取详细指南、MCP 工作区注意事项及冒烟测试,请参阅 **[`SETUP.md`](SETUP.md)**;如遇问题请参阅 **[`docs/TROUBLESHOOTING.md`](docs/TROUBLESHOOTING.md)**。 2. **推荐操作:** 从仓库根目录运行 **`npm run onboard`**(添加 `--dry-run` 以预览)。它会安装 MCP 依赖项,尝试建立本地插件符号链接,并打印后续步骤。西班牙语 CLI 副本:`npm run onboard -- --locale=es`。 3. 或手动安装 MCP 依赖项: ``` cd mcp-server && npm install && cd .. ``` 4. 为 Cursor 在本地安装插件 (**置信度:中** —— 插件打包方式仍在演进;请在您的 Cursor 版本中验证): **macOS / Linux** —— 创建插件文件夹,然后从**仓库根目录**创建符号链接: ``` mkdir -p ~/.cursor/plugins/local ln -s "$(pwd)" ~/.cursor/plugins/local/security-gate ``` **Windows** —— 如果符号链接不可靠,请将仓库**复制**或**镜像**到本地插件文件夹。在 PowerShell 中从克隆的仓库文件夹**内部**运行: ``` New-Item -ItemType Directory -Force "$env:USERPROFILE\.cursor\plugins\local" | Out-Null Copy-Item -Recurse -Force . "$env:USERPROFILE\.cursor\plugins\local\security-gate" ``` 或者,从仓库的**父**文件夹运行(如果您的文件夹名不同,请替换文件夹名): ``` mkdir -Force "$env:USERPROFILE\.cursor\plugins\local" xcopy /E /I /Q security-gate-cursor "$env:USERPROFILE\.cursor\plugins\local\security-gate" ``` 本地插件目录(所有操作系统):macOS/Linux 上为 `~/.cursor/plugins/local/`,Windows 上为 `%USERPROFILE%\.cursor\plugins\local\`。 5. 重启 Cursor(或使用 **Developer: Reload Window**),然后打开 **Settings → Cursor Settings → Plugins** 并启用 **Security Gate**。 6. 确保 MCP 服务器可用: - 此仓库的 `.cursor-plugin/plugin.json` 包含一个 `mcpServers.security-gate` 条目,使用了 `"${workspaceFolder}/mcp-server/index.mjs"`。 - 如果您的 Cursor 构建版本不会为插件展开 `${workspaceFolder}`,请将 `examples/mcp.snippet.json` 合并到您项目的 MCP 配置中,并使用**绝对路径**。如果您打开其他仓库时发现工具丢失,请参阅 **`docs/TROUBLESHOOTING.md`**。 **可选 CLI:** **`npm run report:export`** 会生成 `.security-gate/reports/FINAL_SECURITY_REPORT_*.md`(包含刹车机制检查 + 可选的 Semgrep + 情报缓存)。**`npm run benchmark:demo`** 会在 Semgrep 引擎可用时,对比原生 Semgrep 和捆绑包装器的效果。 ## 演示目标 (Docker “数字牢笼”) 本仓库包含一个 `docker-compose.yml`,它**仅**构建**易受攻击的演示应用**,而不构建 Shannon/Crucible 本身。 克隆演示(选择其中一种 —— **在 Windows 上推荐**): ``` npm run clone-demo-targets ``` 或者在 macOS/Linux 上使用 Bash: ``` ./scripts/clone-demo-targets.sh ``` **逐一运行演示**(这是有意为之 —— 每个演示侧重于 Security Gate 的不同层级)。每个脚本会选择一个**空闲的主机端口**并打印 URL: ``` # Webapp 目标(SQLi 风格流程) npm run demo:webapp # Agent 目标(prompt-injection 流程) npm run demo:agent ``` 停止特定目标而不影响其他目标: ``` npm run demo:down -- webapp npm run demo:down -- agent ``` 停止所有内容(如果两者都在运行,则全部停止): ``` npm run demo:down ``` `npm run demo:up` 是 `npm run demo:webapp` 的向后兼容别名。 进阶操作(固定默认值 **23000** / **18501**,或自定义端口): ``` docker compose up -d webapp-target # 或 docker compose up -d agent-target ``` **`webapp-target` 说明:** 此 Compose 文件构建一个**独立的**静态前端。使用原生 compose 时的默认 URL:**`http://localhost:23000`**(可通过 `SECURITY_GATE_WEBAPP_PORT` 覆盖)。这里的 `/api/` 路由会返回 **503**,因为真正的 **`backend`** 服务仅当您运行 `demo/cursor-webinar-sec/docker-compose.yaml` 下的**完整**技术栈时才存在。对于不需要实时 API 的演示,SPA UI 仍应正常加载。 **`agent-target` 端口:** 使用原生 compose 时的默认值为:**`http://localhost:18501`**。覆盖方式:`SECURITY_GATE_AGENT_PORT`。 **Shell 提示:** `docker-compose.yml` 中的 YAML(以 `ports:` 开头的行)**不是**终端命令 —— 仅运行诸如 `docker compose …` 或 **`npm run demo:up`** 这类 shell 命令。在不使用 `demo:up` 时更改端口是通过**环境变量**完成的(参见 `docker-compose.yml` 的头部注释)。 在完成后删除容器**及**演示数据卷: ``` docker compose down -v ``` ## MCP 工具 (服务器当前的功能) 每个工具的**输出和磁盘路径**汇总在 [`docs/ARCHITECTURE_AND_FLOWS.md`](docs/ARCHITECTURE_AND_FLOWS.md) 中。下表是仓库内的完整参考。 | 工具 | 目的 | |------|---------| | `handbrake_scan` | 从**进程环境变量 + 工作区的 `.env*` 文件**中检测类似生产环境的信号。触发时会阻止动态测试建议。 | | `project_profile` | 粗粒度的技术栈检测(npm `package.json`、Python 清单等)。 | | `intel_refresh` | 下载 **CISA KEV** JSON 并对工作区 **`package.json`** 合并的 `dependencies` / `devDependencies` 中最多 **`maxPackages`** 个 npm 包名执行 **OSV** 查询(默认 **8**,最大 **50**;MVP 版本**不支持** lockfile / PyPI / 其他生态系统)。写入 `.security-gate/cache/`(`kev.json`、`intel-meta.json`、`osv-samples.json`)。 | | `layer2_brief` | Layer 2 的 Markdown 摘要:**技术栈配置** + **浅层 CISA KEV** 摘要(来自 `kev.json` / `intel-meta.json`,包括刷新失败时的 `kev_error`)+ **OSV 行数据**(来自 `osv-s.json`)。**MVP:** KEV 暂**未**与 OSV 结果进行逐行自动关联。 | | `lab_bootstrap` | 检测 **Docker** / **Python**,在缺失时返回特定于操作系统的**安装计划**,并能通过 **`docker compose`** 启动一个隔离的 **Semgrep + Crucible** 实验室(`docker-compose.lab.yml`),该实验室会绑定挂载您的工作区。参见 `SETUP.md`(扫描仪实验室)。 | | `semgrep_scan` | 捆绑的 **OSS Semgrep 包装器**(社区版)。动作包括:`status`、`scan_path`、`scan_text`。按以下顺序解析引擎:宿主机 `semgrep` 二进制文件 → Docker 回退 `semgrep/semgrep:latest`。默认规则集为 `p/ci`。之所以捆绑,是因为 Semgrep 官方的 `semgrep mcp` 子命令需要 **Pro Engine**(付费),而独立的 OSS Docker 镜像 `ghcr.io/semgrep/mcp` 已在 v0.9.0 版本中被弃用(仅返回一个 `deprecation_notice` 工具)。开箱即用,满足工作区 `semgrep_scan` 规则的要求。 | | `deepsec_review` | 针对 **DeepSec**(Vercel Labs,Tier-3 深度审查)的基于宿主机的包装器。动作包括:`status`、`install_plan`、`init`、`scan`、`report`。需要 **Node 22+**、**pnpm** 以及一项凭证(`AI_GATEWAY_API_KEY` / `VERCEL_OIDC_TOKEN` / `ANTHROPIC_AUTH_TOKEN`)。绝不自动运行扫描;默认 `--limit` 为 **50** 以便进行成本校准。 | | `shannon_pentest` | 针对 **Shannon**(KeygraphHQ,Tier-2 动态 Web/API 渗透测试)的基于宿主机的包装器。动作包括:`status`、`install_plan`、`setup`、`pentest`(受控门禁;支持 `dryRun`)、`report`。需要 Docker、Node 18+ 以及兼容 Anthropic 的凭证(`ANTHROPIC_API_KEY`,或用于 OpenRouter / Vercel AI Gateway 代理的 `ANTHROPIC_AUTH_TOKEN` + `ANTHROPIC_BASE_URL`)。在生成目标前拒绝看起来像生产环境的主机名。 | | `llamafirewall_advisor` | 针对 **LlamaFirewall**(Meta,Tier-2.5 运行时防御)的**顾问工具**。动作包括:`status`、`install_plan`、`snippet`。检测工作区是否具有 Agentic 特征(Python + LangChain / OpenAI / LlamaIndex / CrewAI 提示),以及 `llamafirewall` 是否已被声明/可导入,然后返回一段可直接复制粘贴的 Python 集成代码。**绝不安装或执行任何操作** —— LlamaFirewall 运行在用户的 Agent 进程中。 | **情报范围(明确说明):** `intel_refresh` / `layer2_brief` 通过网络使用**公开的** CISA KEV + OSV 数据;该 MVP 路径**无需任何 API 密钥**。**NVD** 接入和 **`NVD_API_KEY`** 属于**可选的路线图**扩展 —— 当前发布的 `mcp-server` **尚不**调用 NVD API。请参阅 **`docs/ROADMAP.md`**、**`docs/API_KEY_ACQUISITION.md`** 和 **`docs/TECHNICAL_DEEP_DIVE.md`**(NVD 部分)。 ### 扫描仪实验室 (可选) 在 `handbrake_scan` 确认您的*工作流*安全后,运行带有 `action=start`(或 `action=status` + `autoStartIfReady=true`)的 **`lab_bootstrap`** 以下拉/构建并启动 **`semgrep-lab`** 和 **`crucible-lab`**。执行示例: ``` docker compose -f docker-compose.lab.yml exec semgrep-lab semgrep --config auto --error /workspace docker compose -f docker-compose.lab.yml exec crucible-lab crucible --help ``` 从**插件仓库根目录**(`docker-compose.lab.yml` 所在的位置)运行这些命令。MCP 服务器在启动时会在 **stderr** 中记录一行实验室探测日志。只要 Docker CLI 在 `PATH` 中,这些命令就可以在 **macOS**、**Windows** 和 **Linux** 终端上运行。 **Docker 与 API 密钥对比** —— `semgrep-lab` 仅运行静态分析(**无需密钥**);`crucible-lab` 则需要一个 LLM 提供商密钥(`OPENAI_API_KEY` / `ANTHROPIC_API_KEY` / `GROQ_API_KEY`)来执行真正的自主攻击。参见 [`docs/CONFIGURATION_MAP.md`](docs/CONFIGURATION_MAP.md) §3.4。 ### DeepSec (Tier-3 深度审查) DeepSec 通过基于宿主机的 **`deepsec_review`** MCP 工具接入(它不在 `docker-compose.lab.yml` 中,因为 DeepSec 是通过 `npx deepsec init` 在工作区中搭建的,且不作为 Docker 镜像发布)。 典型的 Agent 流程: 1. `deepsec_review` `action=status` → 检测 Node 22+、pnpm、`.deepsec/` 脚手架及凭证。 2. `action=install_plan` → 返回可复制粘贴的 Node 22 / pnpm / AI Gateway 密钥获取命令。 3. `action=init`(每个工作区运行一次)→ 运行 `npx --yes deepsec@latest init` 并在 `.deepsec/` 中执行 `pnpm install`。 4. `action=scan`(默认 `limit=50`)→ 执行 `pnpm deepsec scan` + `pnpm deepsec process`。要求在 `.deepsec/.env.local`(或进程环境变量)中设置 `AI_GATEWAY_API_KEY` / `VERCROIDC_TOKEN` / `ANTHROPIC_AUTH_TOKEN` 之一。 5. `action=report` → 将 Markdown 格式的发现结果导出到 `.deepsec/findings/`。 DeepSec 会消耗 Anthropic 级别的 token;在提高限制之前,务必使用默认的 `limit=50` 进行校准。根据 DeepSec FAQ 粗略估算成本:在 Opus 默认设置下,每 100 个文件约需 $25–60(请对照当前定价进行验证 —— **置信度:中**)。`.deepsec/` 文件夹已包含在此仓库的 `.gitignore` 中。 ### Shannon (Tier-2 动态 Web/API 渗透测试) **`shannon_pentest`** 在安全预检之后封装了 `npx @keygraph/shannon`: 1. `action=status` → 检测 Docker、Node 18+、兼容 Anthropic 的凭证,并对 `target_url` 进行分类。 2. `action=install_plan` → Docker + Node + Anthropic / OpenRouter / Vercel AI Gateway 密钥获取。 3. `action=setup` → 运行一次 `npx --yes @keygraph/shannon setup`。 4. `action=pentest target_url=... repo_path=...` → 运行自主渗透测试。**拒绝**看起来像生产环境的主机名(`*prod*`、`*production*`、`*.live`、`*.internal` 等)以及缺少凭证的情况。使用 `dryRun=true` 以预览计划执行的命令。 5. `action=report` → 列出 `/.shannon/` 下的文件。 Shannon 是自主且昂贵的 —— 务必结合容器化的一次性目标(参见 `docker-compose.yml` 演示)和已校准的密钥使用。关于 OpenRouter 代理配置,请参见 [`docs/FREE_VS_PAID_LLM.md`](docs/FREE_VS_PAID_LLM.md) §3.2。 ### LlamaFirewall (Tier-2.5 运行时防御,仅限顾问工具) **`llamafirewall_advisor`** 不会运行 LlamaFirewall —— 它会告诉您如何将其添加到您的 Agent 代码中: 1. `action=status` → 报告 Python 3.10+ 的可用性、Agentic 特征信号(LangChain、OpenAI、LlamaIndex、CrewAI 提示),以及 `llamafirewall` 是否已被声明或可导入。 2. `action=install_plan` → Python 3.10+ + venv + `pip install "llamafirewall>=1.0.3,<2"`。 3. `action=snippet` → 返回一段 Python 集成代码块(`PromptGuardScanner` + `CodeShieldScanner`),可直接粘贴到您的 Agent 入口点。 LlamaFirewall 的**核心路径是免费的**(本地 Hugging Face 模型下载);付费扫描器(`TOGETHER_API_KEY`、`FIREWORKS_API_KEY`)为可选项。 ## 生产环境安全刹车机制 (行为) 当 **`handbrake_scan`** 检测到类似生产环境的信号时,它会返回: 信号包括(非详尽列举):`NODE_ENV=production`、`ENV`/`RAILS_ENV` 中的生产环境值、`PRODUCTION=true`、**非本地数据库主机**(启发式判断;参见 `mcp-server/index.mjs`),以及 URL 中的**类似生产环境的数据库名称**。 **Shannon 文档**强调使用一次性环境 —— 请将此视为任何动态演示的硬性要求。 ## 标准对齐 (OWASP & ISO 27001) Security Gate **定性地**映射到 OWASP Top 10 (2021)、OWASP API Top 10 (2023)、OWASP Top 10 for LLM Applications、OWASP Agentic AI,以及 ISO/IEC 27001:2022 **附件 A** 控制。完整的对照表 —— 包括**明确未涵盖的内容** —— 存放在 [`docs/STANDARDS_MAPPING.md`](docs/STANDARDS_MAPPING.md) 中。 这是**证据支持**,而非认证或合规性证明。请将其作为与您的安全/合规团队进行内部映射的起点。 ## 文档地图 - **架构、图表、输出:** [`docs/ARCHITECTURE_AND_FLOWS.md`](docs/ARCHITECTURE_AND_FLOWS.md) - **概念性问答:** [`docs/FAQ.md`](docs/FAQ.md) - **可选的官方图片:** [`docs/assets/README.md`](docs/assets/README.md) - **仅限维护者的草稿 (不在 GitHub 上):** `docs/_private/` 文件夹 —— 参见 [`docs/_private/README.md`](docs/_private/README.md) - **各项配置的存放位置 (路径 + 顺序):** [`docs/CONFIGURATION_MAP.md`](docs/CONFIGURATION_MAP.md) - **OWASP 及 ISO 27001 映射 (定性):** [`docs/STANDARDS_MAPPING.md`](docs/STANDARDS_MAPPING.md) - **免费与付费 LLM 选择:** [`docs/FREE_VS_PAID_LLM.md`](docs/FREE_VS_PAID_LLM.md) - Vibecoders:[`docs/VIBECODER_QUICKSTART.md`](docs/VIBECODER_QUICKSTART.md) - 工程师:[`docs/TECHNICAL_DEEP_DIVE.md`](docs/TECHNICAL_DEEP_DIVE.md) - API 密钥:[`docs/API_KEY_ACQUISITION.md`](docs/API_KEY_ACQUISITION.md) - 路线图:[`docs/ROADMAP.md`](docs/ROADMAP.md) ## 工具致谢 (简述) | 工具 | 存在于整体设计中的原因 | |------|-------------------------------------| | [Semgrep](https://semgrep.dev/docs) | 快速、本地静态分析 (Tier 1)。通过捆绑的 **`semgrep_scan`** MCP 工具(宿主机 CE 二进制文件或 Docker 回退)**和/或** `semgrep-lab` Docker 服务公开。注意:官方的 `semgrep mcp` 子命令需要专有的 Pro Engine(付费);独立的 OSS Docker 镜像 `ghcr.io/semgrep/mcp` 已被弃用,仅返回一个 `deprecation_notice`。参见 `docs/CONFIGURATION_MAP.md` §3.5。 | | [DeepSec](https://github.com/vercel-labs/deepsec) | 深度 AI 辅助代码审查 (Tier 3)。通过 **`deepsec_review`** MCP 工具集成;使用 `limit` 参数进行成本校准。 | | [Shannon](https://github.com/KeygraphHQ/shannon) | 动态 Web/API 渗透测试 (Tier 2)。通过 **`shannon_pentest`** MCP 工具集成;仅限针对一次性 / 容器化目标使用。 | | [Crucible](https://github.com/crucible-security/crucible) | 针对LLM/Agent系统的 OWASP Agentic Top 10 风格测试。通过 `lab_bootstrap` `crucible-lab` 运行。 | | [LlamaFirewall](https://github.com/meta-llama/PurpleLlama/tree/main/LlamaFirewall) (Meta) | 用于 Agentic 应用的运行时输入/输出护栏 (Tier 2.5)。通过 **`llamafirewall_advisor` MCP 工具接入 —— 提供安装计划 + 可复制粘贴的 Python 代码片段。 | | [NVD](https://nvd.nist.gov/) / [OSV](https://osv.dev/) / [CISA KEV](https://www.cisa.gov/known-exploited-vulnerabilities-catalog) | 免费、合规的漏洞情报源。 | **Friskit**:将其视为“为非专家捆绑安全用户体验”的**参考概念** —— 并非本仓库的依赖项。 ## 许可证 MIT —— 参见 [`LICENSE`](LICENSE)。 ## 竞品对比 (宏观层面) | 能力 | Cursor 原生安全 Agent (典型) | Security Gate (此仓库) | |---|---|---| | 编辑器内的静态指导 | 强 | 强 (明确的 `.mdc` 规则 + 技能) | | 依赖/CVE 情报 (本地缓存) | 部分 / 因情况而异 | 强烈意图 (`intel_refresh` + `layer2_brief`) | | 实时漏洞利用 / 自主动态测试 | 不能替代专业工具 | **默认排除在外**;编排钩子 + **刹车机制** 强制要求使用一次性目标 | | Agentic 红队测试 (Crucible 级别) | 非核心产品 | 作为防护栏后的**外部**工具提供支持 | | “不要攻击生产环境”护栏 | 部分 (策略 + 用户判断) | 明确的 **`handbrake_scan`** 信号模型 | 此表**不是**基准测试;它是一个产品定位指南 (**置信度:中** —— 原生 Agent 能力会随时间推移而变化)。
标签:AI编程安全, AI辅助开发, CISA项目, Cursor插件, DevSecOps, Docker容器安全, FTP漏洞扫描, IDE插件, KEV, LlamaFirewall, MCP协议, MCP服务器, MITM代理, OSV, Petitpotam, Semgrep, Vercel, WordPress安全扫描, XML 请求, XSS, 三层安全架构, 上游代理, 代码安全, 代码审查, 依赖安全, 动态安全测试, 安全专业人员, 安全左移, 安全开发, 安全编排, 安全编码规范, 安全规划, 安全门禁, 开源安全工具, 提示词注入, 文档安全, 漏洞情报, 漏洞枚举, 生产环境保护, 自定义脚本, 证据驱动开发, 请求拦截, 逆向工具, 逆向工程平台, 错误基检测, 静态代码分析