gebalamariusz/cloud-audit

GitHub: gebalamariusz/cloud-audit

一款专注于高信号、零噪音的 AWS 安全扫描器,每个发现都附带可复制粘贴的修复方案和 CIS 合规映射。

Stars: 2 | Forks: 0

cloud-audit

快速、有主见的 AWS 安全扫描器。精选检查项。零噪音。可直接复制粘贴的修复方案。

PyPI version Python versions CI License: MIT Downloads

cloud-audit terminal output showing health score, findings, and remediation

## 为什么选择 cloud-audit? 59% 的云安全团队每天收到 **500+ 条告警**。55% 的人承认 **漏掉了关键告警** ([Forrester/HelpNetSecurity](https://www.helpnetsecurity.com/2023/10/cloud-alert-fatigue/))。大多数扫描器只会让情况变得更糟,而不是更好。cloud-audit 采用了不同的方法: - **17 项精选、高信号检查** - 每一项检查都能捕获攻击者真正会利用的漏洞 - **每个发现 = 可复制粘贴的修复方案** - AWS CLI 命令 + Terraform HCL + 文档链接,即拿即用 - **映射 CIS Benchmark** - 涵盖 CIS AWS Foundations Benchmark 中的 10 项控制,包含合规证据 - **12 秒,而不是 12 分钟** - 在你的咖啡变凉之前完成扫描 - **零配置** - `pip install cloud-audit && cloud-audit scan` 立即获得结果 - **精美的报告** - 深色模式的 HTML 报告,可以直接发给你的经理或客户 ## 每个发现 = 一个修复方案 这正是 cloud-audit 的独特之处。使用 `-R` 运行,每个发现都包含一个即用型的修复方案: ``` $ cloud-audit scan -R CRITICAL Root account without MFA enabled Resource: arn:aws:iam::123456789012:root Compliance: CIS 1.5 Effort: LOW CLI: aws iam create-virtual-mfa-device --virtual-mfa-device-name root-mfa Terraform: resource "aws_iam_virtual_mfa_device" "root" { ... } Docs: https://docs.aws.amazon.com/IAM/latest/UserGuide/... CRITICAL Security group open to 0.0.0.0/0 on port 22 Resource: sg-0a1b2c3d4e5f67890 Compliance: CIS 5.2 CLI: aws ec2 revoke-security-group-ingress --group-id sg-... --port 22 Terraform: resource "aws_security_group_rule" "ssh_restricted" { ... } ``` 将所有修复方案导出为 bash 脚本:`cloud-audit scan --export-fixes fixes.sh` ## 快速开始 ``` pip install cloud-audit cloud-audit scan ``` 就是这样。你将在终端中看到健康评分和发现结果。 ## 安装 ### pip(推荐) ``` pip install cloud-audit ``` ### pipx(隔离环境) ``` pipx install cloud-audit ``` ### Docker ``` docker run -v ~/.aws:/root/.aws ghcr.io/gebalamariusz/cloud-audit scan ``` ### 从源码安装 ``` git clone https://github.com/gebalamariusz/cloud-audit.git cd cloud-audit pip install -e . ``` ## 检查内容 ### 安全性 | 检查项 | ID | 严重性 | 描述 | |-------|----|----------|-------------| | Root 账户 MFA | `aws-iam-001` | Critical | 没有 MFA 的 Root 账户距离完全沦陷只差一个密码 | | 无 MFA 的 IAM 用户 | `aws-iam-002` | High | 没有 MFA 的控制台用户容易受到凭证盗窃攻击 | | 访问密钥轮换 | `aws-iam-003` | Medium | 超过 90 天的活跃访问密钥增加了暴露窗口期 | | 未使用的访问密钥 | `aws-iam-004` | Medium | 30 天以上未使用的密钥是被遗忘的攻击载体 | | 公开 S3 存储桶 | `aws-s3-001` | High | 没有屏蔽公开访问的 S3 存储桶会将数据暴露给互联网 | | S3 存储桶加密 | `aws-s3-002` | Medium | 未加密的存储桶面临静态数据泄露风险 | | 公开 AMI | `aws-ec2-001` | High | 公开共享的 AMI 可能包含机密信息或专有代码 | | 未加密 EBS 卷 | `aws-ec2-002` | Medium | 未加密的 EBS 卷在磁盘受损时会泄露数据 | | 开放安全组 | `aws-vpc-002` | Critical | 安全组在敏感端口(SSH, RDP, DB)上对 0.0.0.0/0 开放 | | VPC 流日志已禁用 | `aws-vpc-003` | Medium | 没有流日志,你将失去用于取证的网络可见性 | | 公开 RDS 实例 | `aws-rds-001` | Critical | 公开可访问的数据库是云数据泄露的头号原因 | | RDS 静态加密 | `aws-rds-002` | High | 未加密的数据库在磁盘级受损时面临数据泄露风险 | ### 成本 | 检查项 | ID | 严重性 | 描述 | |-------|----|----------|-------------| | 未挂载的弹性 IP | `aws-eip-001` | Low | 未挂载的 EIP 每个每月花费约 $3.65 | | 已停止 EC2 实例 | `aws-ec2-003` | Low | 已停止的实例仍会产生 EBS 费用 | ### 可靠性 | 检查项 | ID | 严重性 | 描述 | |-------|----|----------|-------------| | S3 存储桶版本控制 | `aws-s3-003` | Low | 没有版本控制,意外删除将是永久性的 | | 使用默认 VPC | `aws-vpc-001` | Medium | 默认 VPC 具有宽松的默认设置,不适合生产环境 | | RDS Multi-AZ 已禁用 | `aws-rds-003` | Medium | 单 AZ RDS 实例没有自动故障转移功能 | ## 使用方法 ``` # 使用默认 AWS profile 和 region 扫描 cloud-audit scan # 指定 profile 和 regions cloud-audit scan --profile production --regions eu-central-1,eu-west-1 # 扫描所有启用的 regions cloud-audit scan --regions all # 按类别过滤 cloud-audit scan --categories security,cost # 显示修复详情 (CLI 命令, Terraform, 文档) cloud-audit scan -R # 将所有修复命令导出为 dry-run bash 脚本 cloud-audit scan --export-fixes fixes.sh # 生成 HTML 报告 cloud-audit scan --output report.html # 生成 JSON 报告 (用于 CI/CD pipelines) cloud-audit scan --output report.json # 组合:修复 + HTML 报告 cloud-audit scan -R --output report.html # 显示版本 cloud-audit version ``` ## AWS 权限 cloud-audit 需要 **只读** 访问权限。将 AWS 托管的 `SecurityAudit` 策略附加到你的 IAM 用户或角色: ``` # 针对 IAM user aws iam attach-user-policy \ --user-name auditor \ --policy-arn arn:aws:iam::aws:policy/SecurityAudit # 针对 IAM role (推荐) aws iam attach-role-policy \ --role-name auditor-role \ --policy-arn arn:aws:iam::aws:policy/SecurityAudit ``` cloud-audit **绝不修改** 你的基础设施。它只进行读取 API 调用。 ## 健康评分 健康评分从 100 开始,并根据发现结果递减: | 严重性 | 扣分 | |----------|----------------| | Critical | -20 | | High | -10 | | Medium | -5 | | Low | -2 | 分数 **80+** 为良好,**50-79** 需要关注,**低于 50** 需要立即采取行动。 ## 横向对比 | 特性 | cloud-audit | Prowler | ScoutSuite* | |---------|-------------|---------|-------------| | 检查项 | 17 (精选) | 576 (AWS) | ~200 | | 扫描时间 | ~12 秒 | 1-4 小时 | 30-60 分钟 | | 设置 | `pip install` | `pip install` + 配置 | `pip install` + 配置 | | 告警疲劳 | 零 - 每个发现都重要 | 高 - 数百个发现 | 中等 | | **Terraform 修复代码** | **有 (复制粘贴)** | 无 | 无 | | **CLI 修复命令** | **有 (复制粘贴)** | 文本描述 | 无 | | **CIS Benchmark 映射** | 有 (10 项控制) | 有 (完整) | 无 | | HTML 报告 | 深色模式,面向客户 | 功能性 | 交互式 | | 维护状态 | 活跃 | 活跃 | 不活跃 (12+ 月) | \* ScoutSuite 超过 12 个月没有发布版本,实际上已停止维护。 ## 开发 ``` # 克隆并以开发模式安装 git clone https://github.com/gebalamariusz/cloud-audit.git cd cloud-audit pip install -e ".[dev]" # 运行测试 pytest -v # Lint 和格式化 ruff check src/ tests/ ruff format --check src/ tests/ # 类型检查 mypy src/ ``` 详见 [CONTRIBUTING.md](CONTRIBUTING.md)。 ## 路线图 - ~~**v0.1.0** - 17 项 AWS 检查,CLI,HTML/JSON 报告~~ - ~~**v0.2.0** - 修复引擎 (CLI + Terraform),CIS Benchmark 映射,45 个 moto 测试~~ - **v0.3.0** - CloudTrail, GuardDuty, Config, KMS, CloudWatch 检查 (共 27 项) - **v0.4.0** - Lambda, ECS, SSM, Secrets Manager 检查 (共 42 项) - **v0.5.0** - SARIF 输出 (GitHub Security 集成),配置文件,基线/抑制 - **v1.0.0** - 面向管理层的报告,扫描差异/对比,45 项精选检查 完整计划请见 [ROADMAP.md](ROADMAP.md)。 ## 许可证 [MIT](LICENSE) - Mariusz Gebala / [HAIT](https://haitmg.pl) ## 作者 由 [HAIT](https://haitmg.pl) 的 [Mariusz Gebala](https://github.com/gebalamariusz) 构建 - 云基础设施与安全咨询。
标签:Amazon Web Services, CIS 基准, DevSecOps, ECS, Force Graph, GitHub Advanced Security, GraphQL安全矩阵, Python, SMB, Terraform, 上游代理, 云审计, 代码生成, 修复建议, 关系图谱, 合规性审计, 基线检查, 安全加固, 安全扫描器, 对称加密, 无后门, 渗透测试工具, 漏洞利用检测, 特征库, 自动化审计, 请求拦截, 逆向工具, 错误配置检测