README
🚀 Cyntrisec CLI
Cyntrisec CLI 是一个只读的命令行工具,主要用于 AWS 基础设施的能力图分析和攻击路径发现。它可以扫描 AWS 基础设施,构建能力图,发现从互联网到敏感目标的攻击路径,并根据投资回报率(ROI)对修复措施进行优先级排序。
Cyntrisec Labs 项目。Cyntrisec 的主要产品是 EphemeralML,这是一个具有加密收据的机密 AI 推理工具(AIR v1)。此 CLI 是一个独立的 Labs 工具。PyPI 包名
cyntrisec和 MCP 服务器 IDio.github.cyntrisec/cyntrisec是稳定的,不会改变。
⚠️ 重要提示
测试版软件声明:此工具目前处于 测试版。它按“原样”提供,不提供任何形式的保证。虽然 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 许可证。
Scan to join WeChat group