AI编码安全防护服务

Aegis MCP是一款为AI编码代理提供实时项目特定安全要求的服务器,通过定义威胁模型确保生成的代码符合安全规范。

  • by bgigurtsis
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 bgigurtsis/aegis-mcp

使用说明

宙斯盾MCP

由威胁模型驱动的AI编码代理的安全护栏

Aegis是一个 MCP服务器 实时为AI编码代理(Cursor、Claude Code、Cline、Windsurf等)提供特定于项目的安全要求。你定义你的威胁模型一次 security-context.yaml 档案;每次代理要编写与安全相关的代码时,它都会调用 aegis_assess 并以零令牌成本确定性地返回强制性要求、批准的模式和反模式。在生成代码之后, aegis_review 在最终输出之前检查实现的完整性。

为什么

AI编码代理可以快速编写工作代码,但他们不知道你项目的安全规则。它们将生成一个没有您的速率限制策略的登录端点,或者在没有您的参数化要求的情况下查询数据库。Aegis通过在关键时刻将你的威胁模型注入代理的工作流程来解决这个问题。

  • 确定性。 纯结构化查找。没有热门的法学硕士,也没有幻觉般的安全建议。
  • 项目特定。 你的信任边界、你的数据分类、你认可的模式。
  • 代理人不可知。 可与任何MCP兼容的代理配合使用。

快速入门(2分钟)

从您的项目根目录:

cd your-project
pip install aegis-mcp
aegis setup

aegis setup 在一个命令中处理端到端的设置:

  • 查找现有 security-context.yaml 或者帮助您使用IDE LLM生成一个
  • 验证文件并循环直到其有效
  • 检测您的IDE(光标、克劳德代码、Cline、Windsurf)
  • 写入/合并MCP配置 aegis 服务器入口
  • 安装匹配的代理指令模板

设置完成后,开始编码。代理人将致电 aegis_assess 和 aegis_review 自动进行安全相关工作。

有用的CLI命令:

aegis validate security-context.yaml
aegis help
aegis about

手动设置(高级)

如果您更喜欢手动设置所有内容,请参阅 docs/quickstart.md 和 docs/generating-security-context.md.

参考文件:

  • catalogs/security-patterns.yaml --全面的传统+LLM码生成模式目录
  • templates/security-context.template.yaml --空白模式形状模板
  • schemas/security-context.schema.json --模式契约
  • docs/schema-reference.md --现场级参考

起始上下文来自 examples/:

  • examples/minimal.yaml --首次设置的最小有效上下文。
  • examples/rest-api.yaml --healthcare风格的REST API,带有PHI关注的护栏。
  • examples/ecommerce.yaml --电子商务和卡数据支付以及结账控制。
  • examples/internal-tool.yaml --具有基于角色的控件的内部管理仪表板。
  • examples/microservices.yaml --具有mTLS和服务身份控制的多服务架构。
  • examples/security-context.example.yaml --涵盖大部分章节的综合参考。

运作原理

sequenceDiagram
    participant You
    participant Agent as AI Coding Agent
    participant Aegis as Aegis MCP Server

    You->>Agent: "Build a signup endpoint"
    Note over Agent: Reads template instructions
    Note over Agent: Categorizes task into canonical IDs
    Agent->>Aegis: aegis_assess(boundary, data_types, action, ...)
    Aegis->>Agent: Requirements + approved patterns + anti-patterns
    Note over Agent: Writes code following the checklist
    Agent->>Aegis: aegis_review(requirements, self-report mappings)
    Aegis->>Agent: pass: false (missing encrypt-pii-at-rest)
    Note over Agent: Revises code to satisfy missing requirements
    Agent->>Aegis: aegis_review(updated mappings)
    Aegis->>Agent: pass: true (4/4 covered)
    Agent->>You: Delivers secure code
  1. 你 让代理编写代码(“添加用户注册端点”)。
  2. 代理人 识别任务与安全相关,并使用规范ID对其进行分类 aegis://summary (例如。 boundary_crossing: "public-to-internal", data_types: ["user-pii"], action: "create-endpoint").
  3. 代理人 电话 aegis_assess 这些ID。Aegis对您的 security-context.yaml 并返回所有匹配要求、批准的模式和反模式。
  4. 代理人 根据返回的检查表编写代码。
  5. 代理人 电话 aegis_review 包括要求和对每个要求的满足情况的自我报告。如果缺少任何关键/高要求,Aegis将返回 pass: false 并且代理修改代码。
  6. 你 接收执行项目安全规则的代码。

代理人打电话来 aegis_assess 使用相关的服务ID、数据类型、边界交叉和操作(使用来自的规范值 aegis://summary,包括 known_actions).宙斯盾返回:

字段 描述
requirements 生成的代码必须满足强制性安全约束。
approved_patterns 首选实现(例如“使用身份验证中间件”)。
anti_patterns 禁止的做法(例如“没有原始SQL插值”)。
warnings 未知的ID或潜在的架构缺口。
conflicts 当多个来源对某一要求存在分歧时。
no_match true 如果在上下文中没有找到边界交叉点。

实现代码后,代理调用 aegis_review 与:

  • requirements 从最新 aegis_assess 响应
  • mappings 条目与 requirement_id 和 satisfied_by

aegis_review 回报 covered, missing, extra_mappings, coverage,以及 pass.

工具与资源

名称 类型 描述
aegis_assess 工具 返回给定上下文的要求、批准的模式和反模式。确定性;没有法学硕士。
aegis_validate 工具 验证 security-context.yaml 与模式相反;报告行号错误。
aegis_review 工具 使用提供的映射在代码生成后验证实现覆盖率的要求。确定性完整性检查。
aegis://summary 资源 信任边界和数据分类的轻量级概述。每次阅读一次。

高级

实用的QA工作流程

看 qa/README.md 用于分步基准工作流(任务套件、手动a/B代理运行、评分和聚合统计数据生成)。

架构引用

看 docs/schema-reference.md 查看完整的现场参考和合同规则。

发展

git clone https://github.com/bgigurtsis/aegis-mcp.git
cd aegis-mcp
pip install -e .
python -m unittest discover -s tests -v

许可证

麻省理工学院