FlawOpen

flawopen.com/SSRF/云元数据与 SSRF

SSRF 如何访问云元数据?凭据何时会面临风险?

参考页面
简单解释

可以把元数据服务想成云主机内部上锁的服务窗口。SSRF 可能让应用充当信使前往该窗口,但能取到什么取决于云厂商的请求规则、实例设置以及应用的网络路径。能够访问端点并不自动意味着凭据已暴露。

元数据端点为何可能危险

AWS EC2、Azure 和 Google Compute Engine 文档说明了可从受支持虚拟机环境访问的实例元数据服务。169.254.169.254 是常见的链路本地地址,但请求格式和控制方式各不相同。元数据可能包含敏感实例信息;当实例配置文件和请求路径允许时,AWS 可返回角色的临时凭据。若攻击者能影响服务器请求并使其到达该服务,SSRF 就可能构成风险。仅能访问端点并不能证明能够取回凭据;必需的请求头或令牌、HTTP 方法、代理、网络位置和实例配置都会影响结果。

影响链如何形成

影响需要一系列条件同时成立:输入影响服务器请求;请求到达元数据服务;服务依据云厂商控制接受请求;返回的数据提供有用权限。最终影响范围取决于工作负载身份的权限。可通过固定目标、严格的出站流量控制、云厂商元数据保护以及最小权限身份来切断这条链。

常见问题

所有云厂商都使用相同的地址或访问控制吗?

不是。地址、请求头、方法、令牌要求和可用数据都可能不同。AWS 在 HttpTokens 设置为 required 时,IMDSv2 要求使用会话令牌读取元数据;Azure 要求 Metadata: true 请求头;Google 文档要求 Metadata-Flavor: Google。这些控制可以缓解部分 SSRF 路径,但不能替代对用户可控目标的限制和对不必要出站访问的阻断。请按云厂商文档核实具体虚拟机和容器配置。

来源与相关分析

另请参阅 服务器端请求伪造(SSRF,CWE-918):原理以及在各语言中的防御方法 — flawopen.com AI PR 机器人:防止 SSRF — flawopen.com Node.js fetch() SSRF:安全获取远程 URL