byoniq/AWS-Security
GitHub: byoniq/AWS-Security
这是一份全面的AWS云渗透测试指南,帮助安全人员发现和利用环境中的配置错误与漏洞。
Stars: 0 | Forks: 0
# AWS 渗透测试指南



一份面向从业者的 AWS 云渗透测试与安全评估指南。按攻击面组织,为每一层提供检查清单、工具和技术。
## 目录
1. [侦察与资产发现](#1-reconnaissance--asset-discovery)
2. [IAM 与访问控制](#2-iam--access-control)
3. [网络与 VPC 安全](#3-network--vpc-security)
4. [S3 与存储安全](#4-s3--storage-security)
5. [计算与 EC2](#5-compute--ec2)
6. [容器安全 (EKS / ECR)](#6-container-security-eks--ecr)
7. [无服务器 (Lambda 与 API Gateway)](#7-serverless-lambda--api-gateway)
8. [数据库安全](#8-database-security)
9. [身份与应用程序安全](#9-identity--application-security)
10. [密钥与密钥管理](#10-secrets--key-management)
11. [日志记录、监控与检测](#11-logging-monitoring--detection)
12. [权限提升路径](#12-privilege-escalation-paths)
13. [后渗透与持久化](#13-post-exploitation--persistence)
14. [事件响应](#14-incident-response)
15. [合规性框架](#15-compliance-frameworks)
16. [工具参考](#16-tools-reference)
## 1. 侦察与资产发现
### 外部侦察(未认证)
- [ ] 枚举 DNS 记录 — 指向 AWS 服务(S3, CloudFront, Elastic Beanstalk, API GW)的子域名
- [ ] 检查未认领的 AWS 端点上的子域名接管(`*.s3.amazonaws.com`, `*.elasticbeanstalk.com`, `*.execute-api.amazonaws.com`)
- [ ] 通过公开的 S3 存储桶策略、IAM 角色信任策略和错误消息识别 AWS 账户 ID
- [ ] 使用 Shodan、Censys、FOFA 枚举暴露的服务,使用 `org:"Amazon"` + 目标名称
- [ ] 在 GitHub、GitLab 和代码仓库中搜索泄露的 AWS 凭证、账户 ID 和区域提示([TruffleHog](https://github.com/trufflesecurity/trufflehog)、[Gitleaks](https://github.com/gitleaks/gitleaks))
- [ ] 检查 CloudTrail 日志和公开的 S3 存储桶策略,看是否存在账户 ID 泄露
- [ ] 通过排列组合和证书透明度日志枚举 S3 存储桶名称
- [ ] 通过 `aws ec2 describe-regions`(需要凭证)或公共元数据识别活动区域
### 内部侦察(获取凭证后)
- [ ] 枚举所有可访问的服务 — [CloudFox](https://github.com/BishopFox/cloudfox):`cloudfox aws --profile
all-checks`
- [ ] 映射 IAM 用户、角色、组和策略
- [ ] 枚举所有区域的活动资源
- [ ] 识别账户 ID:`aws sts get-caller-identity`
- [ ] 列出所有 S3 存储桶、EC2 实例、Lambda 函数、RDS 实例、EKS 集群
### 工具
- [CloudFox](https://github.com/BishopFox/cloudfox) — AWS(和 Azure)的攻击面枚举
- [enumerate-iam](https://github.com/andresriancho/enumerate-iam) — 暴力破解一组凭证可用的所有 API 操作
- [aws-recon](https://github.com/darkbitio/aws-recon) — 多线程 AWS 库存收集
- [Subfinder](https://github.com/projectdiscovery/subfinder) + [httpx](https://github.com/projectdiscovery/httpx) — 子域名枚举和指纹识别
- [cloud_enum](https://github.com/initstring/cloud_enum) — 针对 AWS/Azure/GCP 暴露资源的 OSINT
## 2. IAM 与访问控制
IAM 配置错误是 AWS 被攻陷最常见的根本原因。应将其视为主要攻击面。
### 检查清单
- [ ] 识别过度宽松的策略 — 在资源上使用 `*:*`,在敏感操作上使用 `*` 通配符
- [ ] 检查直接附加到用户的内联策略(大规模审计更困难)
- [ ] 枚举角色信任策略 — 谁可以从哪里、在什么条件下承担什么角色
- [ ] 识别跨账户角色滥用 — 可从外部或未知账户承担的角色
- [ ] 检查是否授予了 `iam:PassRole` 给那些还能创建 Lambda/EC2/ECS 资源的主体(权限提升向量)
- [ ] 测试对没有 `ExternalId` 或 MFA 条件的角色执行 `sts:AssumeRole`
- [ ] 识别未使用的用户、角色和访问密钥(超过 90 天未活动)
- [ ] 检查根账户 — 是否启用 MFA,没有活动的访问密钥
- [ ] 验证在委托的管理员角色上强制执行了权限边界
- [ ] 测试服务控制策略(SCPs)是否在组织级别阻止了高风险操作
- [ ] 枚举基于资源的策略(S3 存储桶策略、Lambda 资源策略、KMS 密钥策略),查看是否存在过度宽泛的授权
- [ ] 检查是否存在 `iam:CreatePolicyVersion` 或 `iam:SetDefaultPolicyVersion` 权限提升路径
### 权限提升路径(IAM 特定)
从低权限到高权限的常见路径:
- `iam:CreateAccessKey` 对另一个用户 → 窃取其凭证
- `iam:AttachUserPolicy` / `iam:AttachRolePolicy` → 将 AdministratorAccess 附加到自身
- `iam:CreateLoginProfile` 对一个没有密码的用户 → 控制台访问
- `iam:PassRole` + `lambda:CreateFunction` + `lambda:InvokeFunction` → 以高权限角色执行
- `iam:PassRole` + `ec2:RunInstances` → 使用实例配置文件启动 EC2,获取元数据凭证
- `iam:PassRole` + `ecs:RegisterTaskDefinition` + `ecs:RunTask` → 通过 ECS 实现相同模式
- `iam:AddUserToGroup` → 将自己添加到管理员组
- `iam:CreatePolicyVersion` → 更新一个你可以编辑的策略以添加完全管理员访问权限
### 工具
- [Pacu](https://github.com/RhinoSecurityLabs/pacu) — AWS 漏洞利用框架,包含 IAM 权限提升模块
- [PMapper](https://github.com/nccgroup/PMapper) — 基于图的 IAM 权限提升分析
- [enumerate-iam](https://github.com/andresriancho/enumerate-iam) — 枚举所有允许的 API 操作
- [cloudsplaining](https://github.com/salesforce/cloudsplaining) — IAM 策略风险分析(最小权限违规)
- [iamlive](https://github.com/iann0036/iamlive) — 捕获 CLI 工具进行的 IAM 调用以生成最小策略
- [aws-iam-authenticator](https://github.com/kubernetes-sigs/aws-iam-authenticator) — 测试 EKS 的 IAM 认证
- [AWS IAM Policy Simulator](https://policysim.aws.amazon.com/) — 交互式测试策略效果
## 3. 网络与 VPC 安全
### 检查清单
- [ ] 枚举安全组,检查敏感端口(22, 3389, 5432, 3306, 6379, 9200, 27017)上是否有 `0.0.0.0/0` 的入站规则
- [ ] 检查 NACL 是否有过度宽松的规则 — NACL 是无状态的,配置错误的允许规则很常见
- [ ] 审查 VPC 流日志 — 是否启用?是否正在分析?
- [ ] 测试非 DMZ 子网中是否有分配了公网 IP 的 EC2 实例
- [ ] 检查 VPC 对等连接 — 路由和安全组是否正确限定范围?
- [ ] 枚举 Transit Gateway 附件和路由表
- [ ] 测试 AWS WAF 规则 — 绕过技术(编码、头部操作)
- [ ] 检查私有子网中是否有直接指向互联网网关的路由
- [ ] 枚举网络负载均衡器和 ALB — 检查安全策略、HTTP 到 HTTPS 重定向、头部暴露
- [ ] 测试 Route 53 是否存在区域传送问题、通配符记录、悬空委托
- [ ] 检查暴露的 VPC 端点 — 是否有过度宽松的端点策略
### 工具
- [Nmap](https://github.com/nmap/nmap) — 端口扫描和服务检测
- [Masscan](https://github.com/robertdavidgraham/masscan) — 大规模快速端口扫描
- [Burp Suite](https://portswigger.net/burp) / [OWASP ZAP](https://www.zaproxy.org/) — WAF 绕过测试
- [AWS Inspector](https://aws.amazon.com/inspector/) — 网络可达性和漏洞发现
- [ScoutSuite](https://github.com/nccgroup/ScoutSuite) — 多云安全审计,包括网络配置
## 4. S3 与存储安全
### 检查清单
- [ ] 枚举账户中的所有存储桶 — `aws s3 ls`
- [ ] 测试每个存储桶的公共读写:`aws s3 ls s3://`(未认证)
- [ ] 检查存储桶 ACL 是否授予了 `AllUsers` 或 `AuthenticatedUsers`
- [ ] 验证在账户级别和存储桶级别都启用了阻止公共访问设置
- [ ] 检查存储桶策略是否存在过度宽泛的 `Principal: "*"` 授权
- [ ] 查找敏感文件:`.env`、`*.pem`、`*.key`、`credentials`、配置文件、数据库备份
- [ ] 验证通过存储桶策略强制执行了服务器端加密(SSE-S3、SSE-KMS 或 DSSE-KMS)
- [ ] 检查版本控制 — 是否可以检索敏感文件的旧版本?
- [ ] 测试预签名 URL 的范围和过期时间
- [ ] 枚举 Glacier 保管库,查找存档的敏感数据
- [ ] 检查 EBS 快照 — 是否公开?(`aws ec2 describe-snapshots --owner-ids self`)
- [ ] 枚举 EFS 文件系统 — 访问点、挂载目标、NFS 权限
### 工具
- [S3Scanner](https://github.com/sa7mon/S3Scanner) — 枚举和测试 S3 存储桶权限
- [s3-inspector](https://github.com/kromtech/s3-inspector) — 检查所有存储桶的公共访问
- [Pacu](https://github.com/RhinoSecurityLabs/pacu) — S3 枚举和漏洞利用模块
- [trufflehog](https://github.com/trufflesecurity/trufflehog) — 扫描 S3 存储桶中的文件以查找密钥
## 5. 计算与 EC2
### 检查清单
- [ ] 检查 EC2 实例是否启用了 IMDSv1 — IMDSv1 允许 SSRF → 无需令牌即可窃取凭证
- [ ] 测试到实例元数据端点的 SSRF:`http://169.254.169.254/latest/meta-data/iam/security-credentials/`
- [ ] 枚举附加的 IAM 实例配置文件 — 每个 EC2 拥有什么角色?
- [ ] 检查 EC2 用户数据是否有硬编码的凭证或敏感配置
- [ ] 枚举公共 AMI — 是否有包含烘焙敏感数据的自定义 AMI 被公开共享?
- [ ] 检查 EBS 卷加密状态
- [ ] 审查 EC2 密钥对 — 未使用/孤立的密钥对
- [ ] 测试 SSH 访问 — 仅限基于密钥,无密码认证,禁用根登录
- [ ] 检查是否有公共 RDP (3389) 或 SSH (22) 暴露
- [ ] 枚举 Auto Scaling 组和启动模板,检查用户数据中是否有凭证泄露
### 通过 SSRF 利用 IMDSv1
如果你在运行于 EC2 上的 Web 应用中发现了 SSRF:
```
# 获取可用角色名称
curl http://169.254.169.254/latest/meta-data/iam/security-credentials/
# 获取该角色的临时凭证
curl http://169.254.169.254/latest/meta-data/iam/security-credentials/
# 返回:AccessKeyId、SecretAccessKey、Token、Expiration
```
### 工具
- [Pacu](https://github.com/RhinoSecurityLabs/pacu) — EC2 枚举和漏洞利用
- [CloudFox](https://github.com/BishopFox/cloudfox) — `cloudfox aws instances` 用于快速清点
- [Metasploit](https://github.com/rapid7/metasploit-framework) — 在被入侵的 EC2 上进行后渗透
## 6. 容器安全 (EKS / ECR)
### EKS 检查清单
- [ ] 枚举 EKS 集群和节点组
- [ ] 检查集群端点访问 — 是否启用公共端点?是否锁定到特定 CIDR?
- [ ] 测试 IAM 到 Kubernetes RBAC 的映射(`aws-auth` ConfigMap 或 EKS Access Entries)
- 谁拥有 `system:masters`?是否有过度宽泛的绑定?
- [ ] 枚举服务账户 IAM 角色关联(IRSA)— Pod 拥有什么权限?
- [ ] 检查是否存在特权 Pod 或具有 `hostPID`、`hostNetwork`、`hostPath` 挂载的 Pod
- [ ] 测试容器逃逸路径 — 挂载的 Docker socket、可写的 `hostPath`
- [ ] 检查 Kubernetes RBAC — 是否有 `ClusterRoleBindings` 将 `cluster-admin` 授予宽泛的组
- [ ] 枚举 Kubernetes 中的密钥 — `kubectl get secrets -A`
- [ ] 测试对 Kubernetes 仪表板的未认证访问
- [ ] 检查节点 IAM 角色 — EC2 节点实例配置文件应具有最小权限
### ECR 检查清单
- [ ] 检查是否有公共 ECR 存储库 — `aws ecr-public describe-repositories`
- [ ] 拉取容器镜像并扫描层中烘焙的密钥
- [ ] 检查镜像扫描结果 — 基础镜像中是否有未修补的 CVE?
- [ ] 验证生命周期策略 — 是否清理旧镜像?
### 工具
- [kube-bench](https://github.com/aquasecurity/kube-bench) — CIS Kubernetes 基准检查
- [kube-hunter](https://github.com/aquasecurity/kube-hunter) — 主动 Kubernetes 渗透测试
- [Trivy](https://github.com/aquasecurity/trivy) — 容器镜像漏洞扫描
- [Peirates](https://github.com/inguardians/peirates) — Kubernetes 渗透测试工具
- [CDK](https://github.com/cdk-team/CDK) — 容器逃逸和横向移动工具包
- [rbac-tool](https://github.com/alcideio/rbac-tool) — 可视化和审计 Kubernetes RBAC
## 7. 无服务器 (Lambda 与 API Gateway)
### Lambda 检查清单
- [ ] 枚举所有 Lambda 函数:`aws lambda list-functions`
- [ ] 检查执行角色 — 是否权限过高?(`iam:PassRole` + Lambda 是权限提升路径)
- [ ] 审查环境变量,查找硬编码的密钥、API 密钥、数据库凭证
- [ ] 检查 Lambda 层是否存在供应链风险 — 具有广泛账户访问权限的第三方层
- [ ] 测试事件注入 — 你能否控制传递给 Lambda 的事件参数?
- [ ] 检查基于资源的策略 — Lambda 是否可由 `Principal: "*"` 调用?
- [ ] 审查 VPC 配置 — VPC 内的 Lambda 可能暴露内部资源
- [ ] 检查超时和内存设置 — 资源耗尽向量
- [ ] 测试 Lambda 是否通过获取外部 URL 存在 SSRF
### API Gateway 检查清单
- [ ] 测试身份验证 — 仅 API 密钥(较弱)、Cognito JWT、IAM 授权
- [ ] 检查特定路由/方法是否缺少授权
- [ ] 测试方法级别的授权差距(POST 受保护,GET 未受保护)
- [ ] 测试阶段变量是否存在注入
- [ ] 检查访问日志 — 是否启用?
- [ ] 枚举 API 阶段 — `dev`/`staging` 阶段通常比 `prod` 控制更弱
- [ ] 测试速率限制绕过 — 操作 `X-Forwarded-For` 头
### 工具
- [Pacu](https://github.com/RhinoSecurityLabs/pacu) — Lambda 和 API GW 漏洞利用模块
- [LambdaGuard](https://github.com/Skyscanner/LambdaGuard) — Lambda 安全审计
- [Serverless Security](https://github.com/puresec/sas-top-10) — OWASP 无服务器 Top 10 参考
## 8. 数据库安全
### 检查清单
- [ ] 枚举所有 RDS 实例 — `aws rds describe-db-instances`
- 是否启用了公共访问?(`PubliclyAccessible: true`)
- 是否启用了静态加密?
- 自动备份和快照共享 — 快照是否公开?
- [ ] 检查 RDS 安全组 — 数据库端口(5432, 3306, 1433, 1521)是否对 `0.0.0.0/0` 开放?
- [ ] 枚举 DynamoDB 表 — 通过基于资源的策略检查是否存在公共访问
- [ ] 检查未加密的 DynamoDB 表
- [ ] 测试 ElastiCache(Redis/Memcached)— 是否需要身份验证?是否暴露在互联网?
- [ ] 枚举 Redshift 集群 — 公共访问性、加密、审计日志
- [ ] 检查 RDS 代理配置 — 凭证是否存储在 Secrets Manager 中?
- [ ] 测试使用 RDS 的应用程序是否存在 SQL 注入(sqlmap)
- [ ] 检查自动快照策略 — 谁可以恢复?是否支持跨账户恢复?
### 工具
- [sqlmap](https://github.com/sqlmapproject/sqlmap) — SQL 注入测试
- [Pacu](https://github.com/RhinoSecurityLabs/pacu) — RDS 快照和数据库枚举模块
- [S3Scanner](https://github.com/sa7mon/S3Scanner) — 检查公共 RDS/Redshift 快照
## 9. 身份与应用程序安全
### Cognito
- [ ] 枚举用户池和身份池
- [ ] 测试未认证访问 — 身份池可以在不进行身份验证的情况下授予 AWS 凭证
- [ ] 检查自注册功能 — 是否任何人都可以创建账户?
- [ ] 测试属性操作 — 用户能否设置 `isAdmin`、`role` 等自定义属性?
- [ ] 检查访问令牌范围 — OAuth 范围是否权限过大?
- [ ] 测试 Cognito 令牌中的 JWT 缺陷(alg:none、弱签名)
- [ ] 枚举应用客户端 — 是否存在不应有的无密钥客户端(公共客户端)?
- [ ] 测试 MFA 策略 — 是否对管理员角色强制执行 MFA?
### 联合身份与 SSO
- [ ] 在 AWS SSO / IAM Identity Center 中测试 SAML 断言操作
- [ ] 检查 OIDC 提供商信任 — 是否验证了指纹?
- [ ] 测试 GitHub Actions OIDC 滥用 — 角色信任策略中是否存在过度宽泛的 `sub` 声明条件
- [ ] 枚举 IAM Identity Center 中的权限集 — 谁拥有管理员访问权限?
### CloudFront 与 CDN
- [ ] 测试源访问控制 — 你能否绕过 CloudFront 直接访问 S3 源?
- [ ] 检查 HTTP 到 HTTPS 重定向是否强制执行
- [ ] 测试缓存行为 — 你能否毒化缓存响应?
- [ ] 验证传递给源的自定义头部是否已从用户输入中剥离
### 工具
- [Pacu](https://github.com/RhinoSecurityLabs/pacu) — Cognito 和身份枚举模块
- [jwt_tool](https://github.com/ticarpi/jwt_tool) — JWT 分析和攻击测试
## 10. 密钥与密钥管理
### 检查清单
- [ ] 枚举 Secrets Manager 密钥 — `aws secretsmanager list-secrets`
- 谁拥有 `secretsmanager:GetSecretValue`?权限是否过于宽泛?
- 密钥是否自动轮换?
- [ ] 枚举 Parameter Store 值 — 检查 `/` 前缀下的敏感配置
- `aws ssm describe-parameters` 然后使用 `get-parameter --with-decryption` 检索
- [ ] 审计 KMS 密钥策略 — 谁拥有客户管理的密钥的 `kms:Decrypt` 权限?
- [ ] 检查代码仓库、环境变量、EC2 用户数据、Lambda 环境变量中是否存在 AWS 访问密钥
- [ ] 验证密钥未以明文形式嵌入 CloudFormation 模板中
- [ ] 检查 Systems Manager Session Manager 日志 — 会话是否被记录?
### 工具
- [TruffleHog](https://github.com/trufflesecurity/trufflehog) — 扫描代码、S3 和 CI/CD 管道中的密钥
- [Gitleaks](https://github.com/gitleaks/gitleaks) — 检测 git 仓库中的密钥
- [git-secrets](https://github.com/awslabs/git-secrets) — 防止提交 AWS 凭证
- Pacu 模块:`aws__enum_secrets_manager`, `aws__enum_ssm`
## 11. 日志记录、监控与检测
### 检查清单
- [ ] 验证 CloudTrail 在所有区域(包括全局服务跟踪)均已启用
- [ ] 检查 CloudTrail 日志文件验证 — 是否启用了完整性?
- [ ] 验证 CloudTrail 日志存储在独立的、加固的 S3 存储桶中(优选不同账户)
- [ ] 检查 CloudTrail 存储桶上的 S3 访问日志
- [ ] 验证 GuardDuty 在所有区域均已启用 — 威胁检测覆盖范围
- [ ] 检查 GuardDuty 抑制规则 — 是否正在屏蔽威胁发现?
- [ ] 审查 Security Hub 调查结果 — 所有安全问题的聚合视图
- [ ] 检查是否为关键服务启用了 AWS Config 规则
- [ ] 验证是否为所有 VPC 启用了 VPC 流日志
- [ ] 检查关键安全事件(根登录、MFA 停用、安全组更改)的 CloudWatch 警报
- [ ] 验证是否在敏感存储桶上启用了 S3 服务器访问日志记录
- [ ] 测试检测绕过:来自异常区域、用户代理、IP 的 API 调用 — GuardDuty 是否会报警?
### 检测缺口检查(攻击者视角)
- 你能否从未列入正常基线的 IP 发出 API 调用而不触发警报?
- 你能否枚举 IAM 而不触发 `IAMUser/AnomalousBehavior` 发现?
- 能否禁用 CloudTrail?(`cloudtrail:StopLogging` — 应被 SCP 阻止)
- 能否禁用 GuardDuty?(`guardduty:DeleteDetector` — 应被 SCP 阻止)
## 12. 权限提升路径
除了 IAM 特定的路径,这些跨服务链通常也是可利用的:
| 起始权限 | 链 | 最终访问权限 |
|---|---|---|
| `ec2:RunInstances` + `iam:PassRole` | 使用管理员实例配置文件启动 EC2 | 通过元数据获取管理员权限 |
| `lambda:CreateFunction` + `iam:PassRole` + `lambda:InvokeFunction` | 创建具有管理员角色的 Lambda | 通过函数获取管理员权限 |
| `ecs:RegisterTaskDefinition` + `ecs:RunTask` + `iam:PassRole` | 运行具有管理员角色的 ECS 任务 | 通过容器获取管理员权限 |
| `glue:CreateJob` + `iam:PassRole` + `glue:StartJobRun` | 创建具有管理员角色的 Glue 作业 | 通过 Glue 获取管理员权限 |
| `cloudformation:CreateStack` + `iam:PassRole` | 部署具有管理员角色的 CF 堆栈 | 任意 AWS 操作 |
| `datapipeline:CreatePipeline` + `iam:PassRole` | 创建具有管理员角色的管道 | 通过管道获取管理员权限 |
| `sts:AssumeRole` | 承担同一或不同账户中权限更高的角色 | 提升后的访问权限 |
| `secretsmanager:GetSecretValue` | 读取数据库凭证、API 密钥等 | 横向移动 |
| `ssm:StartSession` | SSM 会话到 EC2 → 实例配置文件凭证 | 横向移动 |
### 工具
- [PMapper](https://github.com/nccgroup/PMapper) — 自动化基于图的权限提升路径分析
- [Pacu](https://github.com/RhinoSecurityLabs/pacu) — `iam__privesc_scan` 模块
- [cloudfox](https://github.com/BishopFox/cloudfox) — `cloudfox aws permissions` + 权限提升检查
## 13. 后渗透与持久化
### 检查清单
- [ ] 创建后门 IAM 用户或访问密钥(记录以便清理 — 在任务结束后移除)
- [ ] 为现有 IAM 用户添加新密钥对
- [ ] 创建一个可从攻击者控制的外部账户承担的 IAM 角色
- [ ] 静默地将策略附加到现有角色
- [ ] 植入由 CloudWatch 事件或 S3 上传触发的 Lambda 后门
- [ ] 修改现有 EC2 用户数据,在重启时执行有效载荷
- [ ] 在 AWS SSO 权限集中创建影子管理员
- [ ] 在 IAM 中注册恶意 OIDC 提供商
### 数据外泄渠道
- S3 同步到攻击者控制的存储桶(`aws s3 sync s3:// s3://`)
- 通过 Lambda/EC2 进行 DNS 外泄的数据提取
- SQS/SNS 消息转发
- EC2 AMI 创建并公开共享
## 14. 事件响应
### 检查清单
- [ ] 验证事件响应计划存在并经过测试
- [ ] 测试 GuardDuty 报警 — SOC 是否接收并处理调查结果?
- [ ] 验证 Security Hub 是否聚合到中央 SIEM
- [ ] 测试 IAM 凭证撤销流程 — 禁用被泄露的密钥有多快?
- [ ] 验证 CloudTrail 日志可访问并可查询(Athena、CloudWatch Log Insights)
- [ ] 测试 CloudTrail `StopLogging` 是否被 SCP 阻止
- [ ] 验证 EC2 取证能力 — 能否快速对可疑实例进行快照和隔离?
- [ ] 检查 GuardDuty 发现是否触发自动修复(Security Hub + EventBridge + Lambda)
### 工具
- [AWS CloudTrail](https://aws.amazon.com/cloudtrail/) — API 活动日志记录
- [AWS GuardDuty](https://aws.amazon.com/guardduty/) — 威胁检测
- [Amazon Detective](https://aws.amazon.com/detective/) — 调查和根本原因分析
- [ELK Stack](https://www.elastic.co/elastic-stack/) / [OpenSearch](https://opensearch.org/) — 日志分析
- [Matano](https://github.com/matanolabs/matano) — AWS 上的开源安全湖
## 15. 合规性框架
| 框架 | 范围 | 关键 AWS 控制措施 |
|---|---|---|
| [CIS AWS Foundations Benchmark](https://www.cisecurity.org/benchmark/amazon_web_services) | AWS 账户加固 | IAM, CloudTrail, S3, VPC |
| [NIST CSF](https://www.nist.gov/cyberframework) | 风险管理 | 识别、保护、检测、响应、恢复 |
| [SOC 2 Type II](https://www.aicpa.org/soc2) | 信任服务标准 | 访问控制、可用性、保密性 |
| [PCI DSS](https://www.pcisecuritystandards.org/) | 支付卡数据 | 加密、访问控制、日志记录 |
| [HIPAA](https://www.hhs.gov/hipaa/) | 医疗数据 | PHI 加密、访问控制、审计日志 |
| [FedRAMP](https://www.fedramp.gov/) | 美国联邦系统 | AWS 中的 NIST 800-53 控制措施 |
| [ISO 27001](https://www.iso.org/iso-27001-information-security.html) | 信息安全管理体系 | 风险处置、访问管理 |
### 自动化合规工具
- [Prowler](https://github.com/prowler-cloud/prowler) — 映射到 CIS、NIST、PCI、HIPAA、SOC2、ISO 27001 的 AWS/GCP/Azure 安全检查
- [ScoutSuite](https://github.com/nccgroup/ScoutSuite) — 多云安全审计
- [AWS Security Hub](https://aws.amazon.com/security-hub/) — 具有合规标准的原生聚合
## 16. 工具参考
| 工具 | 类别 | 描述 |
|---|---|---|
| [Pacu](https://github.com/RhinoSecurityLabs/pacu) | 漏洞利用 | 模块化 AWS 漏洞利用框架(AWS 的 Metasploit) |
| [CloudFox](https://github.com/BishopFox/cloudfox) | 枚举 | 攻击面枚举 — 清点、权限、密钥、权限提升 |
| [PMapper](https://github.com/nccgroup/PMapper) | IAM 分析 | 基于图的 IAM 权限提升路径分析 |
| [enumerate-iam](https://github.com/andresriancho/enumerate-iam) | IAM 分析 | 暴力破解一组凭证允许的所有 IAM 操作 |
| [cloudsplaining](https://github.com/salesforce/cloudsplaining) | IAM 分析 | IAM 策略最小权限分析和风险报告 |
| [iamlive](https://github.com/iann0036/iamlive) | IAM 分析 | 捕获实际 IAM 调用以生成最小策略 |
| [S3Scanner](https://github.com/sa7mon/S3Scanner) | 存储 | 开放 S3 存储桶枚举和权限测试 |
| [TruffleHog](https://github.com/trufflesecurity/trufflehog) | 密钥 | 扫描 git 仓库、S3、CI/CD 中的暴露密钥 |
| [Gitleaks](https://github.com/gitleaks/gitleaks) | 密钥 | 检测 git 仓库和 CI 管道中的密钥 |
| [Prowler](https://github.com/prowler-cloud/prowler) | 合规 | 多云 CIS/NIST/PCI/HIPAA/SOC2 安全检查 |
| [ScoutSuite](https://github.com/nccgroup/ScoutSuite) | 合规 | 多云安全审计和报告 |
| [LambdaGuard](https://github.com/Skyscanner/LambdaGuard) | 无服务器 | Lambda 安全审计 — 角色、环境变量、触发器 |
| [kube-hunter](https://github.com/aquasecurity/kube-hunter) | 容器 | 主集群渗透测试 |
| [kube-bench](https://github.com/aquasecurity/kube-bench) | 容器 | CIS Kubernetes 基准合规检查 |
| [Trivy](https://github.com/aquasecurity/trivy) | 容器 | 容器镜像和 IaC 漏洞扫描 |
| [Peirates](https://github.com/inguardians/peirates) | 容器 | Kubernetes 渗透测试和权限提升 |
| [CDK](https://github.com/cdk-team/CDK) | 容器 | 容器逃逸和横向移动 |
| [cloud_enum](https://github.com/initstring/cloud_enum) | 侦察 | 针对 AWS/Azure/GCP 暴露资源的 OSINT 枚举 |
| [aws-recon](https://github.com/darkbitio/aws-recon) | 侦察 | 多线程 AWS 库存收集 |
| [Amazon Detective](https://aws.amazon.com/detective/) | IR | AWS 原生调查和根本原因分析 |
| [Nmap](https://github.com/nmap/nmap) | 网络 | 端口扫描和服务检测 |
| [sqlmap](https://github.com/sqlmapproject/sqlmap) | Web | SQL 注入检测和利用 |
## 贡献
欢迎 PR。有用的补充:新的攻击技术、更新的工具链接、尚未列出的 AWS 服务覆盖范围。条目应简洁,并引用主要来源。
## 许可
MIT 许可证。详情见 `LICENSE`。
标签:AWS, DPI, EKS, IAM, Lambda, S3, Web截图, 云基础设施, 人工智能安全, 反取证, 合规性, 子域名突变, 存储安全, 安全测试, 安全评估, 实践者指南, 容器安全, 工具参考, 攻击性安全, 攻击面, 无服务器安全, 日志审计, 检查清单, 渗透测试指南, 漏洞利用检测, 漏洞探索, 特权提升, 网络安全, 自动化部署, 计算安全, 请求拦截, 跨账户攻击, 逆向工具, 隐私保护