nkimcyber/pasu-IAM-Analyzer
GitHub: nkimcyber/pasu-IAM-Analyzer
一款轻量级 Python CLI 工具,无需云账户即可离线扫描 AWS IAM 策略文件,检测权限提升等安全风险并生成更安全的策略建议。
Stars: 3 | Forks: 0
# Pasu - IAM 分析器
**一个轻量级 CLI 工具,用于分析 AWS IAM 策略,用通俗易懂的语言解释风险访问,并生成更安全的建议策略。**
Pasu 是一个轻量级 CLI 工具,它扫描 IAM 策略 JSON 以查找安全风险并用通俗易懂的语言进行解释。无需账户设置,无需云代理,无需销售电话 —— 只需 `pip install pasu` 即可开始使用。
### 混合策略分析

### 危险策略检测

### 自动修复危险策略
## 
## 安装
```
pip install pasu
```
需要 Python 3.11+
## 使用方法
### 扫描策略(本地分析,无需 API 密钥)
```
pasu scan --file policy.json
```
同时运行解释和提权检查。显示包含风险评分、检测到的风险操作以及通俗易懂解释的综合报告。
### 解释策略的作用
```
pasu explain --file policy.json
```
将 IAM 策略 JSON 翻译成非技术利益相关者也能理解的通俗语言。例如:`"Action": "s3:PutBucketPolicy"` 变为 "ALLOWS changing bucket security policy on all resources."(允许在所有资源上更改存储桶安全策略)。
### 检查权限提升风险
```
pasu escalate --file policy.json
```
扫描 30 多种风险模式,包括权限提升、公开 S3 暴露、危险的 Lambda/EC2/KMS 操作以及结构性反模式。显示带有可视化条形图的风险评分(0-100)。
### 生成更安全的建议策略
```
pasu fix --file policy.json
```
生成更安全的建议策略,并解释仍需人工审查的内容:
- 移除危险操作(iam:PassRole 等)
- 将服务通配符(s3:*)替换为只读等效项
- 标记 Resource:* 以供人工范围界定
- 显示修复前后的风险评分
- 保留 Deny 语句
将建议策略保存到文件:
```
pasu fix --file policy.json --output fixed_policy.json
```
### 获取 AI 驱动的详细分析
```
export ANTHROPIC_API_KEY="sk-..."
pasu scan --file policy.json --ai
```
`--ai` 标志启用 Claude 驱动的自然语言解释,并提供具体的修复指导。若无此标志,Pasu 将完全在本地运行,零成本。
## Pasu 检测的内容
**高风险(19 条规则):**
- 通配符操作(`"Action": "*"`)和通配符资源(`"Resource": "*"`)
- IAM 权限提升:iam:PassRole, iam:CreatePolicyVersion, iam:AttachRolePolicy, iam:AttachGroupPolicy, iam:PutRolePolicy, iam:CreateRole, iam:PutGroupPolicy, iam:AddUserToGroup, iam:AttachUserPolicy, iam:PutUserPolicy, iam:CreateLoginProfile, iam:UpdateLoginProfile, iam:SetDefaultPolicyVersion, iam:UpdateAssumeRolePolicy
- S3 公开暴露:s3:PutBucketPolicy, s3:PutBucketAcl, s3:PutObjectAcl
- 代码执行:lambda:CreateFunction, lambda:UpdateFunctionCode
- 基础设施控制:ec2:RunInstances
- 组织管理员:organizations:*
- 加密密钥:kms:Decrypt
**中风险(6 条规则):**
- sts:AssumeRole, iam:CreateAccessKey
- 数据访问:s3:GetObject(带有 Resource:*),dynamodb:Scan(带有Resource:*)
- 机密访问:secretsmanager:GetSecretValue, ssm:GetParameter
- 侦察:ec2:DescribeInstances
- 数据窃取:rds:CopyDBSnapshot
**结构性规则(5 条规则):**
- 不受限制的资源访问(任何操作上的 `"Resource": "*"`)
- 反向操作授权(`NotAction` — 允许除列出操作以外的所有操作)
- 反向资源授权(`NotResource`)
- 无 `Condition` 块的敏感操作
- 通配符服务授权(`"s3:*"`, `"iam:*"` 等)
**使用 `--ai` 标志:**
- 详细的提权路径分析(例如:User → PassRole → EC2 → Admin Role)
- 每个发现的通俗语言解释
- 具体的修复建议
## 工作原理
Pasu 采用两步分析方法:
1. **本地检测(免费、即时):** 基于规则的扫描检查已知的危险 IAM 操作模式和过度宽松的策略。无网络调用,无需 API 密钥。
2. **AI 分析(可选,`--ai`):** 当发现风险操作时,Claude AI 会提供详细的自然语言解释,说明*为什么*每个权限是危险的以及*如何*修复它。只有在本地扫描发现问题时才会调用 Claude —— 没有不必要的 API 成本。
## 路线图
- [x] 具有本地 + AI 分析功能的 CLI 工具
- [x] PyPI 包(`pip install pasu`)
- [x] 更多检测规则(S3 公开访问、跨账户信任)
- [x] 输出格式(--format json / table / sarif)
- [x] `pasu fix` — 生成更安全的建议策略并提供人工审查指导
- [ ] 交互式 Shell 模式
- [ ] Azure RBAC / Entra ID 支持
- [ ] GCP IAM 支持
- [ ] 具有共享报告的团队仪表板
有关完整路线图,请参阅 [docs/PRODUCT_SPEC.md](docs/PRODUCT_SPEC.md)。
## 为什么叫 "Pasu"?
Pasu (파수/把守) 是韩语中 "守卫" 或 "哨兵" 的意思 —— 就像 파수꾼 (守卫/看守人)。Pasu 通过确保只存在正确的权限来守护您云基础设施的大门。
## CI/CD 集成
### 用于脚本编写的 JSON 输出
使用 `--format json` 将结果通过管道传递给其他工具:
```
# 仅提取 risk level
pasu scan --file policy.json --format json | jq '.escalate.risk_level'
# 列出所有检测到的 risky actions
pasu scan --file policy.json --format json | jq '.escalate.detected_actions[]'
# 如果 risk level 为 High 则 CI 失败
RISK=$(pasu scan --file policy.json --format json | jq -r '.escalate.risk_level')
[ "$RISK" = "High" ] && exit 1 || exit 0
```
### 用于 GitHub Code Scanning 的 SARIF 输出
使用 `--format sarif` 生成 GitHub 原生理解的 [SARIF v2.1.0](https://docs.oasis-open.org/sarif/sarif/v2.1.0/) 报告:
```
pasu scan --file policy.json --format sarif > results.sarif
```
使用 `github/codeql-action/upload-sarif` 操作上传 `.sarif` 文件,发现结果将显示在您仓库的 **Security → Code scanning** 选项卡中,严重级别会自动映射(`High` → error,`Medium` → warning)。
有关即用型 GitHub Actions 工作流,请参阅 [examples/github-actions-workflow.yml](examples/github-actions-workflow.yml)。
## 贡献
欢迎贡献。请先开启一个 Issue 讨论您想要更改的内容。
## 许可证
MIT
标签:AI 安全分析, AWS IAM, CLI 工具, DevSecOps, IAM 策略分析, LNA, Python, S3 安全, 上游代理, 云基础设施安全, 安全左移, 开源安全工具, 文档结构分析, 无后门, 最小权限原则, 权限扫描, 权限治理, 特权升级检测, 策略修复, 逆向工具, 逆向工程平台, 风险评分