返回 MCP 目录
public公开dns本地运行

cyntrisec-cli

Cyntrisec CLI是一款AWS安全分析工具,通过只读扫描构建能力图谱,发现从互联网到敏感资产的攻击路径,并基于ROI提供修复建议。

article

README

🚀 Cyntrisec CLI

Cyntrisec CLI 是一个只读的命令行工具,主要用于 AWS 基础设施的能力图分析和攻击路径发现。它可以扫描 AWS 基础设施,构建能力图,发现从互联网到敏感目标的攻击路径,并根据投资回报率(ROI)对修复措施进行优先级排序。

PyPI Website X License Status MCP

Cyntrisec Labs 项目。Cyntrisec 的主要产品是 EphemeralML,这是一个具有加密收据的机密 AI 推理工具(AIR v1)。此 CLI 是一个独立的 Labs 工具。PyPI 包名 cyntrisec 和 MCP 服务器 ID io.github.cyntrisec/cyntrisec 是稳定的,不会改变。

image-download

⚠️ 重要提示

测试版软件声明:此工具目前处于 测试版。它按“原样”提供,不提供任何形式的保证。虽然 Cyntrisec 默认是一个只读分析工具,但用户需对基于其发现所采取的任何行动承担全部责任。在应用之前,请始终审查 生成的修复计划和 Terraform 代码。

🚀 快速开始

前提条件:确保你已经安装并配置了 AWS CLI,并设置了凭证(例如,使用 aws configure)或环境变量。设置步骤需要 terraform

# 1. 在你的账户中创建只读 IAM 角色
cyntrisec setup iam 123456789012 --output role.tf

# 2. 应用 Terraform
cd your-infra && terraform apply

# 3. 运行扫描
cyntrisec scan --role-arn arn:aws:iam::123456789012:role/CyntrisecReadOnly

# 4. 查看攻击路径
cyntrisec analyze paths --min-risk 0.5

# 5. 查找最小修复措施(按 ROI 优先级排序)
cyntrisec cuts --format json

# 6. 生成 HTML 报告
cyntrisec report --output report.html

✨ 主要特性

  • 扫描 AWS 基础设施:通过 AssumeRole 扫描 AWS 基础设施。
  • 构建能力图:构建能力图(包括 IAM、网络和依赖关系)。
  • 发现攻击路径:发现从互联网到敏感目标的攻击路径。
  • 优先级排序:根据投资回报率(ROI)对修复措施进行优先级排序。
  • 识别未使用的能力:识别未使用的能力,以减少影响范围。
  • 输出确定性 JSON:输出带有证明链的确定性 JSON。

📦 安装指南

pip install cyntrisec

Windows PATH 修复

如果你看到 “cyntrisec 未被识别” 的错误,说明 Scripts 文件夹未添加到 PATH 中:

# 选项 1:使用 python -m 运行
python -m cyntrisec --help

# 选项 2:在当前会话中添加到 PATH
$env:PATH += ";$env:APPDATA\Python\Python311\Scripts"

💻 使用示例

基础用法

以下是一个简单的扫描示例:

cyntrisec scan --role-arn arn:aws:iam::123456789012:role/CyntrisecReadOnly

高级用法

查看攻击路径并筛选出风险评分大于 0.7 的路径:

cyntrisec analyze paths --format json | jq '.paths[] | select(.risk_score > 0.7)'

📚 详细文档

命令说明

核心分析

| 命令 | 描述 | |------|------| | scan | 扫描 AWS 基础设施 | | analyze paths | 查看攻击路径 | | analyze findings | 查看安全发现 | | analyze stats | 查看扫描统计信息 | | analyze business | 业务入口点分析 | | report | 生成 HTML/JSON 报告 |

设置与验证

| 命令 | 描述 | |------|------| | setup iam | 生成 IAM 角色的 Terraform 文件 | | validate-role | 验证 IAM 角色权限 |

修复措施

| 命令 | 描述 | |------|------| | cuts | 查找最小修复措施(按成本和 ROI 优先级排序) | | waste | 查找未使用的 IAM 权限 | | remediate | 生成或可选地应用 Terraform 计划(有控制) |

策略测试

| 命令 | 描述 | |------|------| | can | 测试 “X 是否可以访问 Y?” | | diff | 比较扫描快照 | | comply | 检查 CIS AWS / SOC2 合规性 |

代理接口

| 命令 | 描述 | |------|------| | manifest | 输出机器可读的能力 | | explain | 自然语言解释 | | ask | 用普通英语查询扫描结果 | | serve | 作为 MCP 服务器运行,供 AI 代理使用 |

MCP 服务器模式

将 Cyntrisec 作为 MCP 服务器运行,以便与 AI 代理集成:

# 安装支持 MCP 的版本(现在默认包含)
pip install cyntrisec
cyntrisec serve              # 启动标准输入输出服务器
cyntrisec serve --list-tools # 列出可用工具

MCP 工具(15 个)

| 类别 | 工具 | 描述 | |------|------|------| | 发现 | list_tools | 列出所有可用工具 | | | set_session_snapshot | 设置会话的活动快照 | | | get_scan_summary | 获取最新 AWS 扫描的摘要 | | 资产 | get_assets | 获取带有类型/名称过滤的资产 | | | get_relationships | 获取资产之间的关系 | | | get_findings | 获取带有严重性过滤的安全发现 | | 攻击路径 | get_attack_paths | 获取带有风险评分的攻击路径 | | | explain_path | 详细的逐跳路径分解 | | | explain_finding | 详细的发现解释 | | 修复措施 | get_remediations | 为攻击路径找到最佳修复措施 | | | get_terraform_snippet | 生成用于修复的 Terraform 代码 | | 访问 | check_access | 测试主体是否可以访问资源 | | | get_unused_permissions | 查找未使用的 IAM 权限 | | 合规性 | check_compliance | 检查 CIS AWS 或 SOC 2 合规性 | | | compare_scans | 比较扫描快照 |

Claude Desktop

MacOS~/Library/Application Support/Claude/claude_desktop_config.json Windows%APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "cyntrisec": {
      "command": "python",
      "args": ["-m", "cyntrisec", "serve"]
    }
  }
}

Claude Code (CLI)

运行以下命令配置服务器:

claude mcp add cyntrisec -- python -m cyntrisec serve

Google Gemini / Antigravity

找到你的代理配置文件(例如,~/.gemini/antigravity/mcp_config.json)并添加:

{
  "mcpServers": {
    "cyntrisec": {
      "command": "python",
      "args": ["-m", "cyntrisec", "serve"]
    }
  }
}

🔧 技术细节

架构

+----------------------------------------------------------------------------------+
|                                   CYNTRISEC CLI                                   |
+----------------------------------------------------------------------------------+
| CLI Layer (Typer)                                                                 |
|   scan   analyze   cuts   waste   report   comply   can   diff   serve   ...      |
+-----------------------------+----------------------------------------------------+
| Core Engine                 | Storage (local)                                     |
|  - AWS collectors           |  ~/.cyntrisec/scans/<scan_id>/                      |
|  - Normalization/schema     |    snapshot.json, assets.json, relationships.json   |
|  - GraphBuilder -> AwsGraph |    findings.json, attack_paths.json                 |
|  - Path search -> paths     |  ~/.cyntrisec/scans/latest -> <scan_id>             |
|  - Min-cut + Cost (ROI)     |  (Windows fallback: latest is a file)               |
+-----------------------------+----------------------------------------------------+
| Outputs: JSON/agent, HTML report, remediation plan + Terraform hints              |
+----------------------------------------------------------------------------------+

数据流

CLI (scan) --AssumeRole--> AWS Session --Describe/Get/List--> AWS APIs (read-only)
     |
     v
Collectors -> normalize -> Assets + Relationships -> AwsGraph
                                                |
                                                v
                                   Attack path search (BFS/DFS)
                                                |
                                                v
                                   Min-cut (remediation cuts)
                                                |
                                                v
                                      Cost engine (ROI)

Local artifacts: ~/.cyntrisec/scans/<scan_id>/*.json

📄 许可证

本项目采用 Apache-2.0 许可证。

🔗 链接

help

运行方式说明

cloud

托管运行

托管运行通常表示这个 MCP Server 由服务方环境承载,用户一般按页面提供的连接方式或授权流程接入,不需要在本地长期启动一个 MCP 进程

  1. 打开服务方连接页
  2. 完成授权或复制端点
  3. 在 MCP 客户端中连接
terminal

本地运行 / 其它方式

本地运行通常需要用户在自己的电脑或服务器上安装依赖,把 server_config 复制到 MCP 客户端,并按 env_schema 补齐环境变量、密钥或其它配置

  1. 复制 server_config
  2. 安装所需依赖
  3. 补齐环境变量后重启客户端