SudoXploit7/PRISM
GitHub: SudoXploit7/PRISM
一个进攻性多云 IAM 安全评估框架,通过攻击图与实时仪表板揭示身份权限风险与最短提权路径。
Stars: 0 | Forks: 0
```
██████╗ ██████╗ ██╗███████╗███╗ ███╗
██╔══██╗██╔══██╗██║██╔════╝████╗ ████║
██████╔╝██████╔╝██║███████╗██╔████╔██║
██╔═══╝ ██╔══██╗██║╚════██║██║╚██╔╝██║
██║ ██║ ██║██║███████║██║ ╚═╝ ██║
╚═╝ ╚═╝ ╚═╝╚═╝╚══════╝╚═╝ ╚═╝
```
**Privilege Risk IAM Security Mapper**
*The offensive multi-cloud security framework that thinks like an attacker.*
[](https://python.org)
[](https://flask.palletsprojects.com)
[](https://aws.amazon.com)
[](https://azure.microsoft.com)
[](https://cloud.google.com)
[](LICENSE)
[]()
## 什么是 PRISM?
PRISM 是一个**具有实时 Web 仪表板的进攻性多云 IAM 安全评估框架**。它使用只读凭证连接 AWS、Azure 和 GCP,运行全面的自动化威胁评估,并提供攻击者视角的整个 IAM 攻击面视图——包含 MITRE ATT&CK 映射、CVSS v3.1 评分以及一键式 PDF 报告。
大多数云安全工具问的是 *“什么配置错误?”* PRISM 问的是 *“攻击者多快能控制这个账户,以及哪个身份会最先带他们到达那里?”*
## 架构
```
PRISM/
├── main.py # Entry point — launches Flask-SocketIO dashboard
├── requirements.txt
├── tests/ # pytest unit test suite (12+ validations)
│ ├── test_attack_graph.py # Graph native build edge testing
│ ├── test_cvss.py # CVSS calculation accuracy
│ ├── test_entropy.py # Permission boundary testing
│ └── test_privilege_escalation.py # IAM action dict evaluation
└── src/
├── collectors/
│ ├── aws_collector.py # IAM, EC2, S3, Lambda, Secrets Manager, CloudTrail, VPC
│ ├── azure_collector.py # RBAC, service principals, managed identities
│ └── gcp_collector.py # Service accounts, SA keys, IAM policy bindings
├── analysis/
│ ├── iam_shadow_admin_detector.py # Indirect admin access via 15+ escalation vectors
│ ├── privilege_escalation_paths.py # 21 privesc vectors per identity
│ ├── azure_rbac_analyzer.py # Azure RBAC over-privilege and escalation paths
│ ├── gcp_sa_analyzer.py # GCP SA key abuse and impersonation chains
│ ├── network_exposure_analyzer.py # Security groups, dangerous ports, public S3
│ ├── cloudtrail_evasion_analyzer.py # Identities that can blind the audit trail
│ ├── lambda_backdoor_detector.py # Lambda-based privilege escalation
│ ├── secrets_exfil_detector.py # Secrets Manager and SSM read access
│ ├── cross_account_analyzer.py # Cross-account trust relationship risks
│ ├── credential_age_analyzer.py # Key age, rotation status, MFA enrollment
│ ├── risk_engine.py # NIST CSF 2.0 aligned aggregate risk score
│ └── remediation_engine.py # Prioritized CLI-ready remediation steps
├── offensive/
│ └── mvc_engine.py # NetworkX shortest path to admin
├── unique/
│ ├── compliance_weaponizer.py # 6-framework compliance gap weaponizer
│ ├── attack_path_reasoner.py # Adversary psychology scoring per path hop
│ └── threat_sandbox.py # Interactive remediation dry-run engine
├── graph/
│ └── attack_graph.py # NetworkX multi-cloud IAM directed graph (Unified with MVC)
├── scoring/
│ └── cvss.py # CVSS v3.1 base score calculator (FIRST spec)
├── report/
│ └── pdf_engine.py # ReportLab professional PDF report generator
└── dashboard/
├── app.py # Flask routes + WebSocket scan orchestrator
├── demo_data.py # Full demo mode — no credentials required
├── templates/index.html
└── static/
├── css/prism.css
└── js/dashboard.js
```
## 功能特性
### 数据收集
| 模块 | 云平台 | 收集内容 |
|--------|-------|---------|
| `aws_collector.py` | AWS | IAM 用户、角色、策略、组、EC2 安全组、S3 存储桶、Lambda 函数、Secrets Manager、SSM 参数、CloudTrail 跟踪、VPC 配置、凭证报告 |
| `azure_collector.py` | Azure | 角色定义、角色分配、服务主体、托管身份 |
| `gcp_collector.py` | GCP | 服务账户、服务账户密钥、IAM 策略绑定、模拟授权 |
### 核心分析引擎
| 模块 | 功能 |
|--------|-------------|
| **Shadow Admin Detector** | 识别通过 15+ 种提升路径获得间接管理员权限的身份,而不仅仅是直接的 `AdministratorAccess` 附加 |
| **Privilege Escalation Mapper** | 为每个身份映射 21 种不同的权限提升路径:策略注入、PassRole 滥用、Lambda 后门、SetDefaultPolicyVersion 等 |
| **Azure RBAC Analyzer** | 检测 Owner/Contributor/UAA 分配过多、托管身份权限提升、自定义通配角色滥用 |
| **GCP Service Account Analyzer** | 检测服务账户密钥暴露、模拟链、权限过大的默认服务账户、工作负载身份联合配置错误 |
| **Network Exposure Analyzer** | 枚举对危险端口(SSH、RDP、MySQL、PostgreSQL、Redis、MongoDB)无限制入站的安全组以及公开 S3 存储桶 |
| **CloudTrail Evasion Analyzer** | 检测能够停止、删除或修改 CloudTrail 的身份——这是利用前的第一步 |
| **Lambda Backdoor Detector** | 识别可部署或修改代码的 Lambda 函数及身份,并在提升的执行角色下运行 |
| **Secrets Exfiltration Detector** | 映射每个可以读取 Secrets Manager 和 SSM Parameter Store 的身份 |
| **Cross-Account Analyzer** | 审核角色信任关系,检测外部账户访问和混乱委派风险 |
| **Credential Age Analyzer** | 报告过期访问密钥(90/180/365 天阈值)、缺少 MFA 及凭证健康状况 |
| **Risk Engine** | 将所有发现汇总为符合 NIST CSF 2.0 的风险评分,涵盖 6 个功能(识别、保护、检测、响应、恢复、治理) |
| **Remediation Engine** | 为每个发现生成优先级、耗时标签、可通过 CLI 执行的修复步骤 |
### 进攻操作
| 模块 | 功能 |
|--------|-------------|
| **Minimum Viable Compromise (MVC) Engine** | 原生基于 NetworkX (`nx.shortest_path`),在 `AttackGraph` 中探索从任何身份到完全管理员的最短路径。输出跳数、每跳的实际命令生成、MITRE 技术,并通过计算节点权重总和估算物理到达时间 |
### 独特模块
| 模块 | 创新点 |
|--------|-----------|
| **Compliance Gap Weaponizer** | 将每个发现同时映射到 6 个合规框架(CIS AWS、NIST 800-53、SOC 2、PCI DSS、HIPAA、ISO 27001),并按**武器化指数**对违规进行排序——哪些合规差距产生最可利用的攻击面 |
| **Attack Path Reasoner** | 使用真实红队决策权重对每条攻击路径跳数评分:隐蔽性(35%)、速度(30%)、持久性(20%)、影响范围(15%)。解释攻击者为何选择每一步——这是云安全工具中的首个攻击者心理引擎 |
| **Threat Simulation Sandbox** | 交互式“假设”引擎:模拟权限变更并观察风险评分、攻击路径和影响范围的变化——这是云安全工具中的首个修复预演引擎 |
### 评分与报告
- **CVSS v3.1** — 每个发现的基准分数,符合 FIRST 规范,包含所有发现类型的预计算向量
- **交互式攻击图** — 基于 NetworkX 的有向图,使用 vis.js 可视化,多云平台感知,节点按风险级别着色
- **一键式 PDF 报告** — 使用 ReportLab 生成的面向客户交付或组合提交的专业报告
- **实时 WebSocket 终端** — 通过 Flask-SocketIO 按阶段流式传输实时扫描进度
## 仪表板分区
| 分区 | 描述 |
|---------|-------------|
| **Overview** | 风险评分、严重性分布、发现 KPI |
| **Scan Terminal** | WebSocket 实时终端 — 凭证输入与实时扫描输出 |
| **Attack Graph** | IAM 信任关系与攻击路径的交互式 vis.js 图 |
| **Shadow Admins** | 具有间接管理员权限的身份及提升路径详情 |
| **Privilege Escalation** | 每个身份的 21 种提升路径及攻击命令 |
| **Attack Path Reasoning** | 每跳对手心理评分——隐蔽性、速度、持久性、影响范围 |
| **Threat Sandbox** | 交互式修复预演 — 模拟权限变更前先观察影响 |
| **Compliance Weaponizer** | 6 框架映射按武器化指数排序 |
## 安装
```
git clone https://github.com/yourusername/PRISM.git
cd PRISM
python -m venv venv
source venv/bin/activate # Linux/macOS
venv\Scripts\activate # Windows
pip install -r requirements.txt
python main.py
```
仪表板将在 `http://127.0.0.1:5000` 自动打开。
## 使用方法
**1. 启动**
```
python main.py
```
**2. 输入凭证**
点击 **Launch Assessment**。选择目标云平台并输入凭证。所有三个云平台均为可选,可扫描任意组合。
| 云平台 | 所需凭证 |
|-------|---------------------|
| AWS | 访问密钥 ID + 秘密访问密钥 + 区域 |
| Azure | 租户 ID + 客户端 ID + 客户端密钥 + 订阅 ID |
| GCP | 服务账户 JSON 密钥路径 + 项目 ID |
**3. 扫描**
终端会跨所有扫描阶段流式输出实时日志。完整的 AWS 扫描通常需要 2–5 分钟。
**4. 导出**
点击 **Export PDF** 生成完整的格式化报告。
**演示模式**
没有凭证?点击 **Load Demo** 使用预加载的合成数据探索所有功能。
## 所需权限
PRISM 是**只读**的。它永远不会创建、修改或删除任何资源。
**AWS** — `SecurityAudit` + `ReadOnlyAccess` 托管策略,或以下最小自定义策略:
```
{
"Version": "2012-10-17",
"Statement": [{
"Effect": "Allow",
"Action": [
"iam:Get*", "iam:List*", "iam:SimulatePrincipalPolicy",
"ec2:Describe*", "s3:GetBucket*", "s3:ListAllMyBuckets",
"lambda:List*", "lambda:Get*",
"secretsmanager:ListSecrets",
"ssm:DescribeParameters",
"cloudtrail:GetTrailStatus", "cloudtrail:DescribeTrails",
"logs:DescribeLogGroups", "guardduty:ListDetectors",
"sts:GetCallerIdentity"
],
"Resource": "*"
}]
}
```
**Azure** — 订阅范围内的 `Security Reader` 内置角色。
**GCP** — 项目级别的 `Security Reviewer` IAM 角色。
## 安全与凭证处理
- 凭证仅通过 `localhost` 传输——永不离开您的机器
- 仅在扫描期间驻留内存,随后通过 `gc.collect()` 显式清除
- 结果缓存强制执行 `_UNSAFE_KEYS` 黑名单——凭证绝不会写入磁盘
- 任何日志级别都不会记录凭证
## MITRE ATT&CK 覆盖范围
| 技术 | 名称 | 战术 |
|-----------|------|--------|
| T1078.004 | 有效账户:云账户 | 初始访问 |
| T1098 | 账户操纵 | 持久性 |
| T1098.001 | 附加云凭证 | 持久性 |
| T1136.003 | 创建云账户 | 持久性 |
| T1562.008 | 禁用云日志 | 防御规避 |
| T1562.001 | 禁用或修改工具 | 防御规避 |
| T1552 | 未受保护的凭证 | 凭证访问 |
| T1606.002 | 伪造 Web 凭证:SAML | 凭证访问 |
| T1580 | 云基础设施发现 | 侦察 |
| T1087.004 | 云账户发现 | 侦察 |
| T1530 | 从云存储对象获取数据 | 收集 |
| T1537 | 将数据传输到云账户 | 渗出 |
| T1485 | 数据销毁 | 影响 |
| T1486 | 数据加密以影响 | 影响 |
| T1529 | 系统关机/重启 | 影响 |
| T1195.002 | 供应链妥协软件 | 初始访问 |
| T1648 | 服务器端执行 | 执行 |
## 与现有工具的对比
| 能力 | PRISM | ScoutSuite | Prowler | CloudMapper | Pacu | PMapper |
|-----------|:-----:|:----------:|:-------:|:-----------:|:----:|:-------:|
| 多云平台(AWS + Azure + GCP) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ |
| 实时 Web 仪表板 | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
| 最短攻击路径(NetworkX) | ✅ | ❌ | ❌ | ❌ | ❌ | ✅ |
| 攻击者心理评分 | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
| 合规武器化器 | ✅ | ❌ | 部分 | ❌ | ❌ | ❌ |
| 修复预演沙箱 | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
| 每个发现的 CVSS v3.1 | ✅ | ❌ | 部分 | ❌ | ❌ | ❌ |
| 交互式攻击图 | ✅ | ❌ | ❌ | 部分 | ❌ | 部分 |
| PDF 报告导出 | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ |
| 演示模式(无需凭证) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
| 完整的单元测试 | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
| 100% 免费,无 SaaS | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
## 依赖项
全部免费且开源:
| 包 | 用途 |
|---------|---------|
| `flask` + `flask-socketio` | Web 服务器与实时 WebSocket 流 |
| `boto3` | AWS SDK |
| `azure-identity` + `azure-mgmt-authorization` + `azure-mgmt-resource` + `azure-mgmt-msi` | Azure SDK |
| `google-auth` + `google-api-python-client` + `google-cloud-iam` | GCP SDK |
| `networkx` | 攻击图构建 |
| `reportlab` + `Pillow` | PDF 报告生成 |
| `loguru` | 结构化日志 |
## 截图
## 免责声明
PRISM 仅供**授权的安全评估**使用。仅用于您拥有或已获得明确书面许可测试的云账户。未经授权访问计算机系统违反《计算机欺诈与滥用法案》(CFAA)、《英国计算机滥用法案》、印度《信息技术法》第 66 条以及大多数司法管辖区的类似法律。
PRISM 永远不会修改、创建或删除任何云资源。所有操作均为只读 API 调用。
## 许可证
MIT 许可证 — 详见 [LICENSE](LICENSE)。
专为像攻击者一样思考的安全工程师而构建。
*每个云账户都有通往管理员的捷径。PRISM 先找到它。*
标签:AWS, Azure, Cloudflare, CVSS v3.1, DPI, Flask, GCP, IAM安全评估, MITRE ATT&CK, PDF报告, PRISM框架, Python, Web仪表盘, 云安全评估, 协议分析, 只读凭证, 威胁评估, 安全测评, 实时仪表盘, 开源框架, 持续集成, 攻击路径分析, 无后门, 权限提升, 特权检测, 进攻性安全评估, 逆向工具