AWS研究记录(上)
字数 2490 2025-09-01 11:26:02

AWS安全研究记录(上) - 教学文档

1. AWS基础概念

1.1 云计算服务模型

  • IaaS (基础设施即服务)

    • 提供基础计算资源(服务器、存储、网络)
    • 用户需自行安装操作系统、中间件和应用程序
    • 类比:提供地皮和建筑材料,用户自行建造房屋
  • PaaS (平台即服务)

    • 提供开发平台和工具
    • 用户只需关注应用开发,无需管理底层基础设施
    • 类比:提供建好的毛坯房,用户只需装修
  • SaaS (软件即服务)

    • 提供完整的应用软件
    • 用户直接使用,无需关心开发和维护
    • 类比:提供精装房,用户可直接入住

1.2 AWS环境搭建

  1. 注册AWS账户

    • 建议使用虚拟信用卡
    • 选择海外区域(非中国区),避免国内限制
  2. 登录AWS控制台

    • 首次登录会看到大量服务图标
    • 可通过右上角搜索框查找服务
  3. 交互方式

    • Web控制台
    • AWS CLI(命令行界面)
    • AWS SDK(编程接口)

2. AWS身份与访问管理(IAM)

2.1 IAM核心概念

  • 用户组(IAM User Groups)

    • IAM用户的集合
    • 用于批量管理用户权限
  • 用户(IAM Users)

    • 具有长期凭证的身份
    • 用于与AWS账户交互
  • 角色(IAM Roles)

    • 具有特定权限的临时身份
    • 凭证有效期短
    • 可被信任的实体承担
  • 策略(Policies)

    • 定义权限的JSON文档
    • 可附加到用户、组或角色

2.2 IAM用户凭证类型

  1. 控制台登录密码
  2. 访问密钥(Access Key, AK/SK)
  3. Amazon Bedrock API密钥
  4. AWS CodeCommit SSH公钥
  5. AWS CodeCommit HTTPS Git凭证
  6. 其他凭证类型

2.3 IAM权限策略示例

管理员策略(AdministratorAccess):

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "*",
      "Resource": "*"
    }
  ]
}

EC2完全访问策略(AmazonEC2FullAccess):

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "ec2:*",
      "Resource": "*"
    },
    {
      "Effect": "Allow",
      "Action": "elasticloadbalancing:*",
      "Resource": "*"
    },
    // 其他相关权限...
  ]
}

3. AWS核心服务安全

3.1 CloudTrail服务

  • 功能:记录AWS账户活动(API调用、资源变更等)

  • 特点

    • 默认记录90天内的活动
    • 可配置将日志长期存储到S3
    • 日志延迟约3-5分钟
  • 安全风险

    • 攻击者可能停止或删除CloudTrail日志
    • 绕过方法:
      • 使用未记录的API
      • 具备管理员权限后直接停止服务
  • 检测规则示例

    event.action:StopLogging AND event.outcome:success
    

3.2 S3服务(Simple Storage Service)

  • 安全风险

    • 存储桶公开访问权限配置错误
    • 域名劫持风险(释放后重新注册相同名称的存储桶)
    • 供应链攻击(劫持更新源)
  • 攻击案例

    • 劫持企业代码仓中的JS文件更新源
    • 劫持iOS/macOS应用更新源
    • 劫持SSLVPN客户端更新路径
    • 接管防病毒与安全设备更新源
    • 替换虚拟化与部署模板
  • 防御建议

    • 启用"屏蔽公共访问权限"设置
    • 谨慎管理存储桶生命周期
    • 监控异常访问模式

3.3 EC2服务(Elastic Compute Cloud)

  • 安全风险

    • SSRF攻击获取元数据服务(IMDS)中的临时凭证
    • 旧版IMDSv1易受攻击
  • 防御措施

    • 使用IMDSv2(需要PUT请求获取令牌)
    • 监控来自服务器的非法外部调用
  • 检测规则

    • 监控IAM临时凭证在非预期位置的使用

3.4 Lambda服务

  • 特点

    • 无服务器计算服务
    • 可配置执行角色(IAM身份)
    • 自动触发执行
  • 安全风险

    • 代码漏洞可能导致安全问题
    • 可能影响CI/CD流程
    • 被滥用作为C2基础设施

4. AWS攻击手法

4.1 凭证泄露

  • 常见泄露位置

    1. 前端JS代码硬编码
    2. GitHub/GitLab等代码托管平台
    3. Web与云交互的功能点(报错信息)
    4. CI/CD工具日志
    5. 本地计算环境(AWS CLI配置)
    6. 客户端安装包/小程序硬编码
    7. 调试页面(如phpinfo)
  • 空间测绘示例

    • 查询phpinfo泄露:约1000个独立IP
    • 直接查询AK/SK泄露:约39,059条记录

4.2 IAM权限提升

  • 常见提权方法

    1. iam:CreateAccessKey - 为管理员创建访问密钥
    2. iam:CreateLoginProfile - 为管理员创建登录密码
    3. iam:AttachUserPolicy - 附加管理员策略给自己
    4. iam:PassRole + 特定服务执行权限 - 传递管理员角色给服务
  • 防御建议

    • 遵循最小权限原则
    • 定期审计IAM策略
    • 监控异常权限变更

5. 攻击模拟与评估

5.1 MITRE ATT&CK Cloud Matrix

  • Initial Access

    • 利用面向公众的应用程序
    • 钓鱼攻击
    • 使用合法账户
  • Execution

    • 通过API执行命令
    • 通过CLI执行命令
  • Persistence

    • 创建IAM用户
    • 创建后门角色
  • 其他战术

    • 权限提升
    • 防御规避
    • 凭证访问
    • 发现
    • 横向移动
    • 收集
    • 数据渗出
    • 影响

5.2 紫队攻击模拟工具(stratus-red-team)

  • 使用流程

    1. 准备资源:stratus warmup <TECHNIQUE_ID>
    2. 执行攻击:stratus detonate <TECHNIQUE_ID>
    3. 清理资源:stratus revert <TECHNIQUE_ID>
  • 示例命令

    # 查看AWS相关战术
    stratus list --platform aws
    
    # 指定战术阶段
    stratus list --mitre-attack-tactic persistence
    
    # 模拟攻击
    stratus warmup aws.persistence.create-user
    stratus detonate aws.persistence.create-user
    stratus revert aws.persistence.create-user
    

6. 防御检测工程

  • 关键点

    • 深入理解攻击技术原理
    • 分析大量日志区分正常与异常
    • 持续跟踪TTPs演变
  • 挑战

    • 攻击技术不断进化
    • 防御规则需要持续更新
    • 合法与非法活动难以区分

7. 总结与建议

  • 学习建议

    • 持续研究AWS官方文档
    • 实践攻击模拟工具
    • 参与安全社区交流
  • 防御最佳实践

    1. 启用多因素认证(MFA)
    2. 遵循最小权限原则
    3. 启用CloudTrail并监控关键事件
    4. 定期审计IAM配置
    5. 使用IMDSv2替代IMDSv1
    6. 谨慎配置S3存储桶权限
    7. 监控异常API调用模式

8. 参考资源

  • AWS IAM官方文档
  • MITRE ATT&CK Cloud Matrix
  • stratus-red-team工具
  • AWS安全博客(Wiz, BishopFox等)
  • 云安全研究社区(Hacking the Cloud等)
  • SSRF绕过技术指南(PortSwigger)
AWS安全研究记录(上) - 教学文档 1. AWS基础概念 1.1 云计算服务模型 IaaS (基础设施即服务) 提供基础计算资源(服务器、存储、网络) 用户需自行安装操作系统、中间件和应用程序 类比:提供地皮和建筑材料,用户自行建造房屋 PaaS (平台即服务) 提供开发平台和工具 用户只需关注应用开发,无需管理底层基础设施 类比:提供建好的毛坯房,用户只需装修 SaaS (软件即服务) 提供完整的应用软件 用户直接使用,无需关心开发和维护 类比:提供精装房,用户可直接入住 1.2 AWS环境搭建 注册AWS账户 建议使用虚拟信用卡 选择海外区域(非中国区),避免国内限制 登录AWS控制台 首次登录会看到大量服务图标 可通过右上角搜索框查找服务 交互方式 Web控制台 AWS CLI(命令行界面) AWS SDK(编程接口) 2. AWS身份与访问管理(IAM) 2.1 IAM核心概念 用户组(IAM User Groups) IAM用户的集合 用于批量管理用户权限 用户(IAM Users) 具有长期凭证的身份 用于与AWS账户交互 角色(IAM Roles) 具有特定权限的临时身份 凭证有效期短 可被信任的实体承担 策略(Policies) 定义权限的JSON文档 可附加到用户、组或角色 2.2 IAM用户凭证类型 控制台登录密码 访问密钥(Access Key, AK/SK) Amazon Bedrock API密钥 AWS CodeCommit SSH公钥 AWS CodeCommit HTTPS Git凭证 其他凭证类型 2.3 IAM权限策略示例 管理员策略(AdministratorAccess): EC2完全访问策略(AmazonEC2FullAccess): 3. AWS核心服务安全 3.1 CloudTrail服务 功能 :记录AWS账户活动(API调用、资源变更等) 特点 : 默认记录90天内的活动 可配置将日志长期存储到S3 日志延迟约3-5分钟 安全风险 : 攻击者可能停止或删除CloudTrail日志 绕过方法: 使用未记录的API 具备管理员权限后直接停止服务 检测规则示例 : 3.2 S3服务(Simple Storage Service) 安全风险 : 存储桶公开访问权限配置错误 域名劫持风险(释放后重新注册相同名称的存储桶) 供应链攻击(劫持更新源) 攻击案例 : 劫持企业代码仓中的JS文件更新源 劫持iOS/macOS应用更新源 劫持SSLVPN客户端更新路径 接管防病毒与安全设备更新源 替换虚拟化与部署模板 防御建议 : 启用"屏蔽公共访问权限"设置 谨慎管理存储桶生命周期 监控异常访问模式 3.3 EC2服务(Elastic Compute Cloud) 安全风险 : SSRF攻击获取元数据服务(IMDS)中的临时凭证 旧版IMDSv1易受攻击 防御措施 : 使用IMDSv2(需要PUT请求获取令牌) 监控来自服务器的非法外部调用 检测规则 : 监控IAM临时凭证在非预期位置的使用 3.4 Lambda服务 特点 : 无服务器计算服务 可配置执行角色(IAM身份) 自动触发执行 安全风险 : 代码漏洞可能导致安全问题 可能影响CI/CD流程 被滥用作为C2基础设施 4. AWS攻击手法 4.1 凭证泄露 常见泄露位置 : 前端JS代码硬编码 GitHub/GitLab等代码托管平台 Web与云交互的功能点(报错信息) CI/CD工具日志 本地计算环境(AWS CLI配置) 客户端安装包/小程序硬编码 调试页面(如phpinfo) 空间测绘示例 : 查询 phpinfo 泄露:约1000个独立IP 直接查询AK/SK泄露:约39,059条记录 4.2 IAM权限提升 常见提权方法 : iam:CreateAccessKey - 为管理员创建访问密钥 iam:CreateLoginProfile - 为管理员创建登录密码 iam:AttachUserPolicy - 附加管理员策略给自己 iam:PassRole + 特定服务执行权限 - 传递管理员角色给服务 防御建议 : 遵循最小权限原则 定期审计IAM策略 监控异常权限变更 5. 攻击模拟与评估 5.1 MITRE ATT&CK Cloud Matrix Initial Access : 利用面向公众的应用程序 钓鱼攻击 使用合法账户 Execution : 通过API执行命令 通过CLI执行命令 Persistence : 创建IAM用户 创建后门角色 其他战术 : 权限提升 防御规避 凭证访问 发现 横向移动 收集 数据渗出 影响 5.2 紫队攻击模拟工具(stratus-red-team) 使用流程 : 准备资源: stratus warmup <TECHNIQUE_ID> 执行攻击: stratus detonate <TECHNIQUE_ID> 清理资源: stratus revert <TECHNIQUE_ID> 示例命令 : 6. 防御检测工程 关键点 : 深入理解攻击技术原理 分析大量日志区分正常与异常 持续跟踪TTPs演变 挑战 : 攻击技术不断进化 防御规则需要持续更新 合法与非法活动难以区分 7. 总结与建议 学习建议 : 持续研究AWS官方文档 实践攻击模拟工具 参与安全社区交流 防御最佳实践 : 启用多因素认证(MFA) 遵循最小权限原则 启用CloudTrail并监控关键事件 定期审计IAM配置 使用IMDSv2替代IMDSv1 谨慎配置S3存储桶权限 监控异常API调用模式 8. 参考资源 AWS IAM官方文档 MITRE ATT&CK Cloud Matrix stratus-red-team工具 AWS安全博客(Wiz, BishopFox等) 云安全研究社区(Hacking the Cloud等) SSRF绕过技术指南(PortSwigger)