关于 Cyntrisec CLI (Historical)
Cyntrisec CLI 是一款历史上的 AWS 基础设施只读分析工具,现已停用。它构建能力图、识别攻击路径和安全发现,并可通过本地 MCP 服务提供扫描数据;它不是 Cyntrisec 当前产品。
主要功能
- 01只读扫描 AWS 基础设施
- 02构建能力图并查找攻击路径
- 03分析安全发现和未使用权限
- 04生成报告与修复方案
- 05比较扫描并检查合规性
适用场景
- 01审查 AWS 攻击路径
- 02查找未使用的 IAM 权限
- 03比较基础设施扫描快照
- 04检查 CIS AWS 或 SOC 2 合规性
MCP 相关
CLI 可作为本地 stdio MCP 服务运行。其工具提供扫描摘要、资产、发现、攻击路径、访问检查、修复建议、合规结果和扫描比较。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
uvx cyntrisecAWS_PROFILEAWS profile name to use for authenticationAWS_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+)。各客户端的配置文件位置不同,请参考客户端文档。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
Cyntrisec CLI
公司成立前的历史项目。
cyntrisec-cli创建于 Cyntrisec 将公司重点转向 EphemeralML 和 AIR v1 之前。它不是 Cyntrisec 当前的产品、支持范围或商业服务。PyPI 软件包名称cyntrisec、CLI 命令cyntrisec和 MCP 服务 IDio.github.cyntrisec/cyntrisec仅为避免破坏历史安装而保留。
注意
历史软件免责声明:此工具不再是 Cyntrisec 的活跃产品。它按“原样”提供,不提供任何形式的保证。 CLI 默认是只读分析工具,但用户须对基于其发现采取的任何操作承担全部责任。 务必审查生成的修复计划和 Terraform 代码,然后再应用。
用于分析 AWS 能力图和发现攻击路径的历史 CLI。
这款只读 CLI 工具曾用于:
- 通过 AssumeRole 扫描 AWS 基础设施
- 构建能力图(IAM、网络、依赖项)
- 发现从互联网到敏感目标的攻击路径
- 按 ROI(安全影响 + 成本节省)确定修复优先级
- 识别未使用的能力(缩小爆炸半径)
- 输出包含证明链的确定性 JSON
演示
观看如何使用 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
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。
