theanshsonkar/emfirge

GitHub: theanshsonkar/emfirge

Emfirge 是一个 MCP 原生的 AWS 安全分析工具,通过 AI 助手实现攻击路径发现、修复模拟和合规检查,并在本地对敏感标识符进行 token 化以保护隐私。

Stars: 3 | Forks: 1

# Emfirge MCP 原生 · Claude · Cursor · Kiro · Cline · Continue · Codex CLI · 隐私优先 [![License: BUSL 1.1](https://img.shields.io/badge/license-BUSL--1.1-blue.svg)](LICENSE) [![npm](https://img.shields.io/npm/v/@emfirge/mcp.svg)](https://www.npmjs.com/package/@emfirge/mcp) [![CI](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/c19b1dcf8d063744.svg)](https://github.com/theanshsonkar/emfirge/actions/workflows/ci.yml) [![GitHub stars](https://img.shields.io/github/stars/theanshsonkar/emfirge.svg?style=social)](https://github.com/theanshsonkar/emfirge) ![Emfirge MCP — kill-chain output in Kiro CLI, with tokenized IDs in strict privacy mode](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/b20e58131b063750.png) “向我展示从互联网发起的最严重攻击路径” — 在 Claude Code 中运行 `emfirge_simulate_breach`。AWS ID 会在到达 LLM 之前,在本地(严格模式)被 token 化处理。 ``` You: scan my AWS, role arn:aws:iam::123456789012:role/EmfirgeReadOnly Claude: Scanned 47 resources. Risk score: 38/100 (HIGH). 3 critical findings, 2 toxic combos. Worst path: INTERNET → SG_001 → EC2_001 → S3_001 (crown jewel). Want me to walk the full kill chain? You: verify a fix — close port 22 on that security group Claude: Simulated. Score jumps 38 → 62. Resolves 2 findings, breaks 0 paths. Safe to apply. ``` ## 快速体验(30 秒) ``` npx @emfirge/mcp install ``` 自动检测所有受支持的 MCP 客户端,配置接入 Emfirge,并选择隐私 模式。重启你的客户端,然后提问: **没有 AWS 账号?使用 demo ARN — 零配置:** ``` arn:aws:iam::194722410583:role/EmfirgeReadOnly region: us-east-1 ``` 还没有角色,但想扫描你真实的 AWS?只需说 **“帮我设置 Emfirge”** — 你的助手会交给你一个一键部署的 CloudFormation 链接。 **免费。** 每个 AWS 账户每天 15 次扫描。无需注册。无需 API key。 ### CLI 参考 ``` npx @emfirge/mcp install # auto-wire to all detected MCP clients npx @emfirge/mcp uninstall # remove from all clients npx @emfirge/mcp status # show what's wired up + privacy mode npx @emfirge/mcp privacy # strict | balanced | off npx @emfirge/mcp tokens # list local token mappings npx @emfirge/mcp purge --role-arn # delete all your scan data ``` 环境变量、各客户端配置路径、手动安装后备方案 → 见 [`mcp/README.md`](mcp/README.md)。 ## 核心功能 - **攻击路径**:从互联网直抵你的 S3 / RDS / IAM 核心资产, 按利用难度排序(基于加权 Dijkstra,而非跳数) - **58 条图感知规则**,具备上下文感知的严重性 —— 位于 ALB 后方开放 SSH 的实例,严重性由 Critical 降为 Low;配置了 CloudFront 的公共 S3,严重性由 Critical 降为 Low - **毒性组合检测** —— 危险的模式配对,例如 *公共 RDS + 无 CloudTrail*、*SSH 开放 + GuardDuty 禁用* - **确定性修复模拟** —— 克隆基础设施 → 应用变异 → 重建 图 → 重跑所有规则 → 差异对比。验证路径中不涉及 LLM。这是真正的证明。 - **合规性映射** —— CIS AWS Foundations 1.5 + SOC 2,按控制点展示通过/失败 - **MITRE ATT&CK** 技术映射到每一项发现 覆盖范围:EC2、Lambda、ECS、S3、EBS、RDS、IAM、Secrets Manager、KMS、VPC、 Security Groups、WAF、CloudFront、SNS、CloudTrail、GuardDuty、CloudWatch、 AWS Config、Budgets —— 16 项服务,58 条规则。 ## 一段话了解隐私 在默认的 `strict` 模式下,MCP 会在任何数据到达你的 LLM 之前,**在本地对每一个 AWS 标识符进行 token 化**。映射关系存储在 `~/.emfirge/tokens.json` —— 绝不会发送给 Emfirge、Anthropic 或任何第三方。 ``` What the LLM sees: "INTERNET → SG_001 → EC2_001 → S3_001" What's on your disk: SG_001 = sg-0a1b2c3d EC2_001 = i-0abc... S3_001 = acme-prod-data ``` 三种模式,可随时切换: | 模式 | Token 化内容 | 最适用场景 | |---|---|---| | `strict` *(默认)* | 每个 AWS ID —— ARN、EC2/SG/IAM/S3、IP、账户 ID、存储桶名称 | 银行、医疗、受监管行业 | | `balanced` | ARN、EC2/SG/EIP/IAM ID、IP、账户 ID。Subnet/VPC/卷保持原始数据。 | 大多数用户 | | `off` | 无任何处理 —— 原始 ID 直接发送给 LLM | 个人账户、演示、调试 | ``` npx @emfirge/mcp privacy strict|balanced|off ``` 后端数据留存期为 90 天。运行 `npx @emfirge/mcp purge --role-arn ` 即可立即彻底清除所有数据。完整说明详见 [PRIVACY.md](PRIVACY.md)。 ## 数据流向 ``` ┌──────────────┐ role ARN ┌──────────────┐ read-only ┌─────┐ │ Your laptop │──────────────▶│ emfirge.cloud│─────────────▶│ AWS │ │ (MCP host) │ │ (scanner) │ STS, 1 hr └─────┘ └──────┬───────┘ └──────┬───────┘ │ │ │ tokenized IDs │ findings + graph ▼ ▼ ┌──────────────┐ ┌──────────────┐ │ Your LLM │ │ Postgres + S3│ │ (Claude/etc) │ │ (90-day TTL)│ └──────────────┘ └──────────────┘ ``` MCP 运行在**你的笔记本电脑**上。你的 LLM 只能看到 token 化的 ID —— 映射关系永远不会离开你的设备。后端通过 1 小时有效期的 STS token 承担你的只读 IAM 角色,执行扫描,将发现结果保存 90 天, 随后自动删除。 ## 底层原理 - **加权 Dijkstra 攻击路径** —— 边的权重取决于利用难度 (0 = 元数据,1 = 轻松的网络访问,5 = 非常困难)。一条 5 跳的轻松 路径,其危险程度会高于一条 2 跳的凭证窃取路径。 - **Brandes 介数中心性** —— 找出关键瓶颈节点,在这些资源处进行加固,可一次性消除最多的攻击路径。 - **确定性修复模拟器** —— 图变异 + 重新运行规则,验证路径中 无 LLM 参与。是证明,而非猜测。 - **隐私优先的 MCP token 化** —— 三种可配置模式,所有 脱敏操作均发生在任何字节到达 LLM 传输层之前。 ## 暴露的 MCP 工具 | 工具 | 功能 | |---|---| | `emfirge_setup_help` | 返回 CloudFormation 部署 URL | | `emfirge_scan` | 运行扫描,返回评分 + `analysis_id` | | `emfirge_get_findings` | 获取发现结果,可按严重性过滤 | | `emfirge_attack_paths` | 展示从互联网到核心资产的路径及瓶颈点 | | `emfirge_verify_fix` | 模拟修复操作,查看真实的评分变化 | | `emfirge_check_compliance` | CIS / SOC 2 每个控制项的状态 | | `emfirge_simulate_breach` | 完整的杀伤链推演 —— 攻击阶段、爆炸半径及后续行动 | ## 安全模型 - 只读 IAM 角色 —— **零写入权限** - ExternalId —— 防止混淆代理人攻击 - 限定信任范围 —— 仅允许 Emfirge 的 AWS 账户担任该角色 - STS 临时凭证 —— 1 小时后过期,绝不持久化存储 - 即时撤销 —— 删除 CloudFormation stack,所有访问权限即刻失效 [完整安全详情 →](https://emfirge.cloud/security.html) ## License [BUSL 1.1](LICENSE) —— 任何非生产用途免费;在 ARR 不超过 100 万美元或员工数不超过 100 人的生产环境中同样免费。将于 2030 年自动转换为 Apache 2.0。 贡献者需同意相同条款 —— 详见 [CONTRIBUTING.md](CONTRIBUTING.md)。 ## 作者 由 Ansh Sonkar 开发 —— [LinkedIn](https://linkedin.com/in/theanshsonkar) · [emfirge.cloud](https://emfirge.cloud)
标签:AI辅助审计, AWS, DPI, 大模型工具协议(MCP), 插件系统, 攻击路径分析, 测试用例, 漏洞探索