saachiaggarwal7/cloudguard
GitHub: saachiaggarwal7/cloudguard
基于 Python 的 AWS 云安全态势管理工具,通过扫描 IAM、S3、EC2 和安全组资源来发现配置错误并生成结构化安全报告。
Stars: 0 | Forks: 0
# CLOUDGUARD



CloudGuard 是一个基于 Python 的 AWS 云安全态势管理 (CSPM) 工具,它通过扫描 AWS 资源来发现常见的安全配置错误,并生成详细的 JSON 和 HTML 安全报告。
它利用 AWS SDK for Python (Boto3) 帮助识别跨多个 AWS 服务的潜在安全风险。
## 目录
- [功能](#features-of-cloudguard)
- [安装说明](#installation)
- [工作流](#workflow)
- [用法](#usage)
- [IAM 扫描器](#iam-scanner)
- [S3 扫描器](#s3-scanner)
- [EC2 扫描器](#ec2-scanner)
- [安全组扫描器](#security-group-scanner)
- [报告示例](#reporting)
- [未来改进](#future-improvements)
- [许可证](#license)
## 快速概览
CloudGuard 目前支持扫描 **4 项 AWS 服务**,并执行 **22 项以上的安全检查**,以识别常见的云资源配置错误。
### 支持的 AWS 服务
| 服务 | 检查项 |
|---------|--------:|
| IAM | 9 |
| Amazon S3 | 5 |
| EC2 | 4 |
| Security Groups | 4 |
### 报告格式
- HTML 报告
- JSON 报告
### 构建技术
- Python
- Boto3
- AWS SDK
## 工作流
```
flowchart TD
A[AWS Account] --> B[CloudGuard]
B --> C[IAM Scanner]
B --> D[S3 Scanner]
B --> E[EC2 Scanner]
B --> F[Security Group Scanner]
C --> G[Findings]
D --> G
E --> G
F --> G
G --> H[JSON Report]
G --> I[HTML Report]
```
## 前置条件
在运行 CloudGuard 之前,请确保您具备:
- Python 3.10 或更高版本
- 一个 AWS 账户
- 已安装 AWS CLI
- 已配置 AWS 凭证
- 已安装所需的 Python 包
## 安装说明
### 1. 克隆仓库
```
git clone https://github.com/saachiaggarwal7/cloudguard.git
```
### 2. 进入项目目录
```
cd cloudguard
```
### 3. 安装依赖项
```
pip install -r requirements.txt
```
### 4. 配置 AWS 凭证
```
aws configure
```
输入:
- AWS Access Key ID
- AWS Secret Access Key
- 区域 (例如 eu-north-1)
- 输出格式 (json)
### 5. 运行 CloudGuard
```
python main.py
```
## ▶ 用法
运行 CloudGuard 会显示以下菜单:
```
==================== CLOUDGUARD ====================
1. Scan Everything
2. Scan IAM
3. Scan S3
4. Scan EC2
5. Scan Security Groups
6. Generate Report
7. Exit
```
## CloudGuard 功能
### IAM 扫描器
- 根账户 MFA
- 用户 MFA
- AdministratorAccess 策略
- 内联 IAM 策略
- 未使用的访问密钥
- 过时的访问密钥
| 规则 ID | 检查项 | 严重程度 |
| ---------- | --------------------------------------------- | -------- |
| CG-IAM-001 | 根账户未启用 MFA | 严重 |
| CG-IAM-002 | IAM 用户未启用 MFA | 高 |
| CG-IAM-003 | AdministratorAccess 直接附加给用户 | 中等 |
| CG-IAM-004 | 通过 IAM 组继承的 AdministratorAccess | 中等 |
| CG-IAM-005 | 附加给 IAM 用户的内联策略 | 低 |
| CG-IAM-006 | 通过 IAM 组继承的内联策略 | 低 |
| CG-IAM-007 | 超过 90 天未使用的访问密钥 | 高 |
| CG-IAM-008 | 从未使用过的访问密钥 | 低 |
| CG-IAM-009 | 超过 180 天的访问密钥 | 高 |
### S3 扫描器
- 公开的存储桶策略
- 阻止公开访问设置
- 存储桶版本控制
- 服务器访问日志记录
- 存储桶标签
| 规则 ID | 检查项 | 严重程度 |
| --------- | ----------------------------------------- | -------- |
| CG-S3-001 | 存储桶策略允许公开访问 | 高 |
| CG-S3-002 | 阻止公开访问设置已禁用 | 高 |
| CG-S3-003 | 存储桶版本控制已禁用 | 中等 |
| CG-S3-004 | 服务器访问日志记录已禁用 | 低 |
| CG-S3-005 | 存储桶没有标签 | 低 |
### EC2 扫描器
- 公开的 EC2 实例
- 强制执行 IMDSv2
- CloudWatch 详细监控
- EBS 卷加密
| 规则 ID | 检查项 | 严重程度 |
| ---------- | --------------------------------------- | -------- |
| CG-EC2-001 | EC2 实例分配了公网 IP | 高 |
| CG-EC2-002 | 未强制执行 IMDSv2 | 高 |
| CG-EC2-003 | CloudWatch 详细监控已禁用 | 低 |
| CG-EC2-004 | 未加密的 EBS 卷 | 高 |
### 安全组扫描器
- 公开的 SSH (端口 22)
- 公开的 RDP (端口 3389)
- 无限制的入站流量
- 未使用的安全组
| 规则 ID | 检查项 | 严重程度 |
| --------- | ----------------------------------------- | -------- |
| CG-SG-001 | SSH (22) 对 Internet 开放 | 高 |
| CG-SG-002 | RDP (3389) 对 Internet 开放 | 高 |
| CG-SG-003 | 允许所有入站流量 (`0.0.0.0/0`) | 严重 |
| CG-SG-004 | 未使用的安全组 | 低 |
## 报告
- JSON 报告
- HTML 报告
- 严重程度汇总
- 修复建议
### 交互式 CLI
CloudGuard 提供了一个简单的命令行界面,允许用户扫描单个 AWS 服务或执行完整的安全评估。

### JSON 报告
CloudGuard 会生成一份结构化的 JSON 报告,该报告可以集成到自动化 pipeline 中,或由其他工具进行处理。

### HTML 报告摘要
HTML 报告提供了一份执行摘要,包括总体风险级别、严重程度分布以及总的发现数量。

### HTML 详情
所有发现结果都会按严重程度进行排序,并包含受影响的 AWS 资源、规则 ID、描述以及修复建议。

## 未来改进
- 添加 RDS 安全扫描器
- 添加 VPC 安全扫描器
- 支持多区域扫描
- 导出 PDF 格式的报告
- 集成 AWS Security Hub 的发现结果
- 构建 Web 仪表板
## 许可证
该项目基于 MIT 许可证授权。
标签:AWS, Boto3, CSPM, DPI, Python, TinkerPop, 无后门, 足迹分析, 逆向工具