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, 三层安全架构, 上游代理, 代码安全, 代码审查, 依赖安全, 动态安全测试, 安全专业人员, 安全左移, 安全开发, 安全编排, 安全编码规范, 安全规划, 安全门禁, 开源安全工具, 提示词注入, 文档安全, 漏洞情报, 漏洞枚举, 生产环境保护, 自定义脚本, 证据驱动开发, 请求拦截, 逆向工具, 逆向工程平台, 错误基检测, 静态代码分析