byoniq/AWS-Security

GitHub: byoniq/AWS-Security

这是一份全面的AWS云渗透测试指南,帮助安全人员发现和利用环境中的配置错误与漏洞。

Stars: 0 | Forks: 0

# AWS 渗透测试指南 ![License](https://img.shields.io/badge/license-MIT-blue.svg) ![Status](https://img.shields.io/badge/status-active-success.svg) ![PRs](https://img.shields.io/badge/PRs-welcome-brightgreen.svg) 一份面向从业者的 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截图, 云基础设施, 人工智能安全, 反取证, 合规性, 子域名突变, 存储安全, 安全测试, 安全评估, 实践者指南, 容器安全, 工具参考, 攻击性安全, 攻击面, 无服务器安全, 日志审计, 检查清单, 渗透测试指南, 漏洞利用检测, 漏洞探索, 特权提升, 网络安全, 自动化部署, 计算安全, 请求拦截, 跨账户攻击, 逆向工具, 隐私保护