mcpField
C
Cyntrisec CLI (Historical)

Cyntrisec CLI (Historical)

本地服务
github.com/cyntrisec安全425 周前更新

关于 Cyntrisec CLI (Historical)

Cyntrisec CLI 是一款历史上的 AWS 基础设施只读分析工具,现已停用。它构建能力图、识别攻击路径和安全发现,并可通过本地 MCP 服务提供扫描数据;它不是 Cyntrisec 当前产品。

主要功能

  1. 01只读扫描 AWS 基础设施
  2. 02构建能力图并查找攻击路径
  3. 03分析安全发现和未使用权限
  4. 04生成报告与修复方案
  5. 05比较扫描并检查合规性

适用场景

  1. 01审查 AWS 攻击路径
  2. 02查找未使用的 IAM 权限
  3. 03比较基础设施扫描快照
  4. 04检查 CIS AWS 或 SOC 2 合规性

MCP 相关

CLI 可作为本地 stdio MCP 服务运行。其工具提供扫描摘要、资产、发现、攻击路径、访问检查、修复建议、合规结果和扫描比较。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"cyntrisec-cyntrisec": {
"command": "uvx",
"args": [
"cyntrisec"
],
"env": {
"AWS_PROFILE": "<AWS_PROFILE>",
"AWS_DEFAULT_REGION": "<AWS_DEFAULT_REGION>",
"AWS_ACCESS_KEY_ID": "<AWS_ACCESS_KEY_ID>",
"AWS_SECRET_ACCESS_KEY": "<AWS_SECRET_ACCESS_KEY>"
}
}
}
}
启动命令uvx cyntrisec
需要配置的环境变量
AWS_PROFILEAWS profile name to use for authentication
AWS_DEFAULT_REGIONAWS region to use (defaults to profile/env settings)
AWS_ACCESS_KEY_ID密钥AWS access key ID (use AWS_PROFILE instead if possible)
AWS_SECRET_ACCESS_KEY密钥AWS secret access key (use AWS_PROFILE instead if possible)

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
pypicyntrisec0.1.14

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

Cyntrisec CLI

PyPI License Status

公司成立前的历史项目。 cyntrisec-cli 创建于 Cyntrisec 将公司重点转向 EphemeralML 和 AIR v1 之前。它不是 Cyntrisec 当前的产品、支持范围或商业服务。PyPI 软件包名称 cyntrisec、CLI 命令 cyntrisec 和 MCP 服务 ID io.github.cyntrisec/cyntrisec 仅为避免破坏历史安装而保留。

image-download

注意

历史软件免责声明:此工具不再是 Cyntrisec 的活跃产品。它按“原样”提供,不提供任何形式的保证。 CLI 默认是只读分析工具,但用户须对基于其发现采取的任何操作承担全部责任。 务必审查生成的修复计划和 Terraform 代码,然后再应用。

用于分析 AWS 能力图和发现攻击路径的历史 CLI。

这款只读 CLI 工具曾用于:

  • 通过 AssumeRole 扫描 AWS 基础设施
  • 构建能力图(IAM、网络、依赖项)
  • 发现从互联网到敏感目标的攻击路径
  • 按 ROI(安全影响 + 成本节省)确定修复优先级
  • 识别未使用的能力(缩小爆炸半径)
  • 输出包含证明链的确定性 JSON

演示

Cyntrisec 演示

观看如何使用 Claude MCP 通过自然语言发现攻击路径并生成修复方案。

架构

+----------------------------------------------------------------------------------+
|                                   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

安装

pip install cyntrisec
Windows PATH 修复

如果看到“无法识别 cyntrisec”,则 Scripts 文件夹不在 PATH 中:

# Option 1: Run with python -m
python -m cyntrisec --help

# Option 2: Add to PATH for current session
$env:PATH += ";$env:APPDATA\Python\Python311\Scripts"

快速开始

前置条件:确保已安装 AWS CLI 并配置凭据(例如,运行 aws configure),或已设置环境变量。设置步骤需要 terraform。

# 1. Create the read-only IAM role in your account
cyntrisec setup iam 123456789012 --output role.tf

# 2. Apply the Terraform
cd your-infra && terraform apply

# 3. Run a scan
cyntrisec scan --role-arn arn:aws:iam::123456789012:role/CyntrisecReadOnly

# 4. View attack paths
cyntrisec analyze paths --min-risk 0.5

# 5. Find minimal fixes (prioritized by ROI)
cyntrisec cuts --format json

# 6. Generate HTML report
cyntrisec report --output report.html

命令

核心分析
命令描述
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 合规性
Agent 接口
命令描述
manifest输出机器可读的能力信息
explain自然语言解释
ask使用日常语言查询扫描结果
serve作为 MCP 服务运行,供 AI Agent 使用

MCP 服务模式

历史版本的 CLI 仍可作为 MCP 服务运行,以兼容现有本地设置:

# Install with MCP support (now included by default)
pip install cyntrisec
cyntrisec serve              # Start stdio server
cyntrisec serve --list-tools # List available 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

找到 Agent 配置(例如 ~/.gemini/antigravity/mcp_config.json)并添加:

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

信任与安全

只读保证

此工具仅对你的 AWS 账户进行只读 API 调用。IAM 角色 应仅具有 Describe*、Get*、List* 权限。

不会向外部泄露数据

所有数据都保留在本地计算机上。不会向外部服务发送任何内容。 扫描结果存储在 ~/.cyntrisec/scans/ 中。

不自动修复(默认安全模式)

默认情况下,Cyntrisec 为只读,不会修改你的 AWS 基础设施。

  • 它使用只读 API 分析你的账户。
  • 它可以生成供你审核的修复制品(例如 Terraform 模块)。
  • 它不会自动应用更改。
可选的修复执行(明确选择启用)

Cyntrisec 提供了一种明确设有门控的执行路径,只有在你主动启用后才会执行 Terraform。

此模式:

  • 默认禁用
  • 需要 --enable-unsafe-write-mode
  • 运行 Terraform 还需要额外的明确标志(例如 --execute-terraform)
  • 适用于受控环境(沙盒/经审批的 CI),不适用于无人值守的生产环境

如果不传入这些标志,Cyntrisec 绝不会运行 terraform apply。

写入操作

Cyntrisec 在扫描和分析期间不会调用 AWS 写入 API。

唯一支持的“写入”行为是在本地计算机上可选地执行 Terraform,且只有通过不安全标志明确启用后才会执行。

每次 AWS API 调用都会记录在 CloudTrail 中,会话名称为 cyntrisec-cli。

信任与权限

Cyntrisec 使用只读 IAM 角色运行。使用 cyntrisec setup iam <ACCOUNT_ID> 生成推荐策略,并将权限限制为 Describe*、Get* 和 List*。实时模式(waste --live、can --live)需要额外的 IAM 权限;生成的策略和文档涵盖了这些额外权限。

输出格式

主要输出为 stdout 上的 JSON。当 stdout 不是 TTY 时,CLI 会自动切换为 JSON:

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

面向 Agent 的输出会将结果封装在结构化信封中:

cyntrisec analyze paths --format agent
{
  "schema_version": "1.0",
  "status": "success",
  "data": {...},
  "artifact_paths": {...},
  "suggested_actions": [...]
}

退出代码

代码含义
0成功/合规
1发现问题/回归/拒绝
2用法错误
3暂时性错误(重试)
4内部错误

在 CI/CD 中使用:

cyntrisec scan --role-arn $ROLE_ARN || exit 1
cyntrisec diff || echo "Regressions detected"

存储

扫描结果存储在本地:

~/.cyntrisec/
|-- scans/
|   |-- 2026-01-17_123456_123456789012/
|   |   |-- snapshot.json
|   |   |-- assets.json
|   |   |-- relationships.json
|   |   |-- findings.json
|   |   `-- attack_paths.json
|   `-- latest -> 2026-01-17_...
`-- config.yaml

版本管理

本项目遵循语义化版本规范。请参阅 CHANGELOG.md 中的发行说明。

许可证

Apache-2.0

Links

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。