AWS IMDSv1 攻击
AWS IMDSv1 攻击 是什么?
AWS IMDSv1 攻击通过向旧版 IMDSv1 端点发送未认证的 GET 请求(通常借助 SSRF)窃取 EC2 实例角色凭据。
AWS 实例元数据服务版本 1(IMDSv1)会响应从 EC2 实例发往 http://169.254.169.254 的任何 HTTP GET 请求,包括通过有 SSRF 漏洞的应用转发的请求。攻击者访问 /latest/meta-data/iam/security-credentials/<role>/ 即可获取临时的 AccessKeyId、SecretAccessKey 和 SessionToken,可在任何位置使用 AWS API。IMDSv2 通过要求先以 PUT 获取会话令牌、限制跳数并阻止对实例外调用方的响应来缓解该攻击。最佳实践是在启动模板和实例默认设置中全局强制 IMDSv2,并在 CloudTrail 中监控异常的角色调用。
● 示例
- 01
Web 应用中的 SSRF 导致 curl http://169.254.169.254/latest/meta-data/iam/security-credentials/myrole/ 泄露凭据。
- 02
攻击者在外部主机上重放泄露的临时凭据来列出 S3 桶。
● 常见问题
AWS IMDSv1 攻击 是什么?
通过向旧版 IMDSv1 端点发送未认证的 GET 请求(通常借助 SSRF)窃取 EC2 实例角色凭据。 它属于网络安全的 云安全 分类。
AWS IMDSv1 攻击 是什么意思?
通过向旧版 IMDSv1 端点发送未认证的 GET 请求(通常借助 SSRF)窃取 EC2 实例角色凭据。
AWS IMDSv1 攻击 是如何工作的?
AWS 实例元数据服务版本 1(IMDSv1)会响应从 EC2 实例发往 http://169.254.169.254 的任何 HTTP GET 请求,包括通过有 SSRF 漏洞的应用转发的请求。攻击者访问 /latest/meta-data/iam/security-credentials/<role>/ 即可获取临时的 AccessKeyId、SecretAccessKey 和 SessionToken,可在任何位置使用 AWS API。IMDSv2 通过要求先以 PUT 获取会话令牌、限制跳数并阻止对实例外调用方的响应来缓解该攻击。最佳实践是在启动模板和实例默认设置中全局强制 IMDSv2,并在 CloudTrail 中监控异常的角色调用。
如何防御 AWS IMDSv1 攻击?
针对 AWS IMDSv1 攻击 的防御通常结合技术控制与运营实践,详见上方完整定义。
AWS IMDSv1 攻击 还有哪些其他名称?
常见的别称包括: IMDSv1 凭据窃取, EC2 元数据攻击。
● 相关术语
- cloud-security№ 187
云元数据 SSRF
一种服务端请求伪造攻击,通过有漏洞的应用让虚拟机查询云厂商的实例元数据服务,窃取临时凭据。
- cloud-security№ 190
云端令牌窃取
从云身份服务窃取 OAuth、SAML 或签名令牌,并重放以冒充用户或服务,无需密码。
- cloud-security№ 505
IAM 权限提升
利用现有的云 IAM 权限获取更高权限,常见手段包括修改策略、传递角色或为自身授予管理员权限。
- cloud-security№ 186
云密钥泄露
长期有效的云访问密钥意外暴露在公开仓库、容器镜像、日志或客户端代码中,通常在几分钟内被滥用。
- cloud-security№ 183
云端数据外泄
未经授权将数据从云账户复制或传输出去,通常通过对象存储 API、快照、跨账户复制或攻击者控制的账户实现。