Varshith-CS/AWS-Cloud-IAM-Security-Assessment-Remediation-Lab
GitHub: Varshith-CS/AWS-Cloud-IAM-Security-Assessment-Remediation-Lab
该项目模拟了真实的 AWS IAM 与云安全配置错误,演示了完整的漏洞利用、监控检测与最小权限修复流程。
Stars: 0 | Forks: 0
# ☁️ AWS 云 IAM 安全评估与修复实验





## 📌 概述
本项目模拟了企业环境中真实存在的 AWS IAM 和云安全配置错误。它展示了从构建易受攻击的环境并加以利用,到使用行业标准的工具和框架进行检测、修复和验证修复结果的**完整安全生命周期**。
**为什么这个项目很重要:**
云 IAM 配置错误一直是导致云数据泄露的最主要原因之一。构建此实验是为了培养在识别、利用、检测和强化这些漏洞方面的实战技能,模拟真实的云安全工程师或 SOC 分析师的工作流程。
**涵盖的完整安全生命周期:**
```
Vulnerability Creation → Exploitation → Detection & Monitoring → Remediation → Validation
```
## 🎯 目标
- 在受控的实验环境中模拟不安全的 AWS IAM 配置
- 演示通过滥用 `AssumeRole` 实现的权限提升
- 利用包含敏感凭证的公开暴露 S3 存储
- 使用 **Prowler** 安全扫描器检测配置错误
- 通过 **AWS CloudTrail** 实施集中式日志记录
- 配置 **CloudWatch** 检测规则和 **SNS** 告警
- 使用最小权限原则对环境进行强化
- 通过重新扫描和修复前后的对比来验证修复效果
## 🏗️ 架构图
该实验环境包括:
- **IAM 用户与角色** - 故意配置了过度宽松的策略
- **S3 Bucket** - 公开暴露,包含模拟的敏感凭证
- **CloudTrail** - 捕获所有 API 活动的多区域追踪
- **CloudWatch** - 用于检测可疑事件的指标过滤器和警报
- **SNS** - 在触发警报时自动发送电子邮件告警
- **Prowler** - 外部安全扫描器,用于在修复前后验证安全态势
## 🚨 识别出的漏洞
| # | 漏洞 | 严重程度 | 状态 |
|---|---|---|---|
| 1 | 过度宽松的 IAM 策略 (`*:*`) | 严重 | 已修复 |
| 2 | 通过 AssumeRole 实现的权限提升 | 严重 | 已修复 |
| 3 | 公开的 S3 Bucket 暴露 | 高 | 已修复 |
| 4 | S3 中暴露的敏感凭证 | 高 | 已修复 |
| 5 | 缺失 CloudTrail 日志记录 | 高 | 已修复 |
| 6 | IAM 用户未启用 MFA | 中 | 已修复 |
## ⚔️ 利用阶段
### 1. 公开的 S3 Bucket 暴露
故意将一个 S3 Bucket 配置为允许公开访问。上传了一个包含模拟凭证的文件,并使其可被公开访问。
**攻击路径:**
```
Attacker discovers public bucket → Downloads credentials file → Uses credentials for unauthorized AWS access
```
**影响:**
- 访问敏感文件和数据
- 枚举云资源
- 使用暴露的凭证进一步入侵账户
**证据:** 通过浏览器确认了公开的 Bucket 访问权限;凭证文件可以在没有身份验证的情况下从外部访问。
### 2. 通过 AssumeRole 实现的 IAM 权限提升
一个过度宽松的 IAM 策略允许 `security-lab-user` 担任特权 IAM 角色,包括管理员角色。
**利用命令:**
```
aws sts assume-role \
--role-arn arn:aws:iam:::role/vulnerable-admin-role \
--role-session-name privilege-escalation-test
```
**结果:** 成功生成临时管理员凭证,实现了完整的权限提升。
**攻击路径:**
```
Low-privilege user → AssumeRole abuse → Temporary admin credentials → Full environment control
```
**影响:**
- 获得 AWS 环境的完全管理访问权限
- 能够创建/删除资源、修改策略、窃取数据
- 跨 AWS 环境的横向移动
## 🔍 检测与监控
### Prowler 安全评估
使用 Prowler 扫描 AWS 环境,以发现 IAM 配置错误、公开存储暴露、缺失 MFA、日志记录漏洞以及违反安全最佳实践的行为。
**初始扫描结果:**
| 指标 | 值 |
|---|---|
| 总发现数 | 342 |
| 未通过的发现数 | 216 |
| 已通过的发现数 | 126 |
### AWS CloudTrail 日志记录
CloudTrail 被配置为**多区域追踪**,以捕获:
| 事件类型 | 目的 |
|---|---|
| IAM 活动 | 跟踪策略更改和用户修改 |
| 控制台登录 | 检测未经授权的访问尝试 |
| API 调用 | AWS 操作的完整审计追踪 |
| 角色担任 | 检测 `AssumeRole` 滥用 |
| 安全相关事件 | 识别可疑模式 |
**已启用的功能:** 多区域日志记录 · 日志文件验证 · S3 日志存储 · CloudWatch 集成
### CloudWatch 检测工程
创建了 CloudWatch 指标过滤器和警报,以实时检测可疑活动。
| 检测规则 | 目的 |
|---|---|
| `Root-Account-Login-Alert` | 检测 Root 账户控制台登录 |
| `Console-Login-Without-MFA-Alert` | 检测没有 MFA 的不安全控制台访问 |
### SNS 告警
将 AWS SNS 与 CloudWatch 警报集成,为所有触发的安全事件提供**自动化电子邮件通知**,模拟真实的 SOC 告警流水线。
## 🛡️ 修复与强化
### 1. 公开的 S3 暴露 — 已修复
**采取的措施:**
- 移除了公开的 Bucket 策略
- 重新启用了阻止公开访问设置
- 限制了所有对象级别的访问
**验证:**
```
Access Denied
```
凭证文件不再可被公开访问。
### 2. IAM 强化 — 已修复
**采取的措施:**
- 移除了用户的 `AdministratorAccess` 策略
- 删除了 `AssumeAnyRolePolicy`
- 实施最小权限,将权限范围限定为仅限必要的操作
**验证:**
```
An error occurred (AccessDenied) when calling the AssumeRole operation
```
权限提升路径已被完全阻断。
### 3. MFA 强制执行 — 已修复
为 IAM 用户启用了 MFA,以降低凭证泄露和未经授权的控制台访问风险。
## 📉 修复前后对比
| 安全指标 | 修复前 | 修复后 |
|---|---|---|
| 未通过的 Prowler 发现数 | 216 | 1 |
| 公开的 S3 访问 | 启用 | 禁用 |
| 权限提升 | 成功 | 阻断 |
| MFA 强制执行 | 禁用 | 启用 |
| CloudTrail 日志记录 | 禁用 | 启用 |
| CloudWatch 监控 | 未配置 | 已配置 |
| SNS 告警 | 未配置 | 已配置 |
**最终 Prowler 扫描结果:**
| 指标 | 值 |
|---|---|
| 总发现数 | 1 |
| 未通过的发现数 | 1* |
## 🧩 框架映射 (NIST / CIS)
| 安全控制 | CIS AWS Foundations | NIST CSF 功能 |
|---|---|---|
| MFA 强制执行 | CIS 1.10 | 保护 (PR.AC) |
| 最小权限 IAM | CIS 1.16 | 保护 (PR.AC) |
| 阻止公开的 S3 访问 | CIS 2.1 | 保护 (PR.DS) |
| CloudTrail 日志记录 | CIS 3.1 | 检测 (DE.CM) |
| CloudWatch 监控 | CIS 3.x | 检测 (DE.CM) |
| SNS 告警 | — | 响应 (RS.CO) |
| IAM 强化 | CIS 1.x | 保护 (PR.AC) |
| 检测工程 | — | 检测 (DE.AE) |
## 📚 关键经验
- **微小的 IAM 配置错误可能导致整个云环境被完全入侵** — 单个过度宽松的策略即可实现完整的权限提升
- **最小权限原则是不可妥协的** — IAM 策略中的通配符 (`*:*`) 会造成严重的攻击面
- **公开的云存储仍然是首要风险** — S3 配置错误一直是最常见的真实云泄露事件之一
- **集中式日志记录极大地提高了检测能力** — CloudTrail + CloudWatch 实现了对攻击者活动的完全可见性
- **CloudWatch 指标过滤器是强大的检测工具** — 自定义规则可以近乎实时地检测特定的攻击模式
- **验证至关重要** — 修复后使用 Prowler 重新扫描确认了修复结果,并展示了可衡量的改进
- **云安全需要攻防兼备的思维** — 了解攻击者如何利用配置错误对于有效的防御至关重要
## 📁 仓库结构
```
cloud-iam-security-assessment-lab/
│
├── README.md
├── architecture/
├── screenshots/
├── Reports/
```
## 🛠️ 使用的技术与服务
**AWS 服务**





**安全工具**


**框架**



AccessDenied
标签:AWS, DPI, GitHub Advanced Security, IAM, URL发现, 后端开发, 安全加固, 安全实验室, 安全检测