AWS研究记录(上)
字数 2490 2025-09-01 11:26:02
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):
{
"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 凭证泄露
-
常见泄露位置:
- 前端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>
- 准备资源:
-
示例命令:
# 查看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官方文档
- 实践攻击模拟工具
- 参与安全社区交流
-
防御最佳实践:
- 启用多因素认证(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)