供应商中立的云安全测试指南,包含结构化的阶段,用于在AWS、Azure、GCP和PaaS平台上进行枚举、权限提升、横向移动和后利用。
云安全测试指南(CSTG) 是一份全面、厂商中立的云环境安全测试手册。它面向渗透测试人员、云和平台工程师、安全架构师、检测工程师以及审计师——任何需要评估或防御运行在主流云提供商上的基础设施的人员。
云提供商发布和变更服务的速度比任何单一个团队能够追踪的速度都要快,而每一项新的托管服务都带来了其自身的身份模型、网络暴露面和滥用路径。传统的网络和应用测试方法论无法捕获这些提供商特定的风险:一个 S3 存储桶策略、一个权限过高的 IAM 角色、一个附加到虚拟机的托管标识、或者一个可写入的部署存储桶——这些都不是端口扫描或 Web 代理能够发现的结果。CSTG 的存在正是为了通过一种结构化、可重复、针对特定提供商的测试方法论来弥补这一空白。
每个提供商被划分为测试阶段,在每个阶段内,原子单元是一个单独的服务页面:
| 阶段 | 它回答的问题 |
|---|---|
| 基本信息 | 该提供商的身份、访问和资源模型如何工作? |
| 未认证/外部 | 对于没有凭据的攻击者来说,什么暴露在外? |
| 服务(枚举) | 使用有效凭据,部署了什么以及如何配置? |
| 权限提升 | 低权限主体如何获得更多访问权限? |
| 横向移动 | 访问如何在服务、账户之间或移动到本地环境? |
| 后利用 | 攻击者利用获得的访问权限可以做什么? |
| 持久化 | 如何建立和隐藏持久访问? |
本指南最鲜明的分界线是未认证与已认证测试,这反映了任何云评估中唯一最重要的问题:我们一开始拥有什么访问权限?
每个页面遵循固定的结构——概述、前提条件、枚举、错误配置与发现项、利用、检测与日志记录、修复与加固、工具、参考——并包含机器可读的前置元数据(提供商、服务、阶段、所需访问权限、所需权限)。请参见 STRUCTURE.md 了解编写格式和访问级别定义。
身份(IAM/STS)、存储(S3、EBS)、计算(EC2、Lambda、ECS/EKS、ECR)、数据(RDS、DynamoDB)、 应用与集成(API Gateway、SNS/SQS、Cognito)、基础设施即代码(CloudFormation)、 密钥与凭据(Secrets Manager、SSM、KMS)、日志与监控(CloudTrail)。
身份(Entra ID、RBAC、托管标识)、存储(存储账户)、计算(虚拟机、AKS)、应用(App Service、Functions、Logic Apps)、自动化(自动化账户、ARM 模板)、密钥与凭据(Key Vault)、网络。
身份(IAM、服务账号)、存储(Cloud Storage)、计算(Compute Engine、GKE、Cloud Run、Cloud Functions)、数据(Cloud SQL)、构建与集成(Cloud Build、Pub/Sub)、密钥与凭据(Secret Manager、KMS)、Workspace 横向移动。
其安全模型基于 API 密钥、令牌和应用层控制而非基础设施 IAM 的平台服务。其阶段已相应调整。
service_role 密钥模型、自动生成的 PostgREST API 以及 PostgreSQL 行级安全(RLS),此外还有 Auth、Storage 和 Edge Functions。授权与交战规则。 测试云环境须遵守各提供商的可接受使用政策和渗透测试政策。在不事先获得批准的情况下,默认禁止在 AWS、Azure 和 GCP 上进行拒绝服务和破坏性操作。始终只测试你明确授权评估的环境,并在约定范围内进行。
CSTG 由社区驱动。欢迎提供新的服务页面、补充技术、修正错误以及扩展提供商覆盖范围——请参阅 STRUCTURE.md 了解页面格式,以及 .github/ISSUE_TEMPLATE/ 下的问题模板。所有贡献均以 CC BY-SA 4.0 许可。
本作品采用 Creative Commons Attribution-ShareAlike 4.0 International License 许可。