欢迎访问 内存溢出 —— 独立后端与系统工程技术博客

专注于分布式系统、Linux内核、数据库存储与后端工程实践

SSRF 服务端请求伪造:云环境 IMDS 元数据泄露防御指南

发表于:|最后更新:|分类:Web安全|阅读:4303 次

在 AWS 等云基础设施上,SSRF(Server-Side Request Forgery) 最致命的危害是攻击者诱导服务端请求云实例元数据服务(169.254.169.254),从而偷取挂载在 EC2 上的 IAM Role 临时凭据。

一、强制启用 AWS IMDSv2 Token 验证

bash
# 禁止直接通过无状态 GET 访问元数据,强制启用基于 Token 的 IMDSv2
aws ec2 modify-instance-metadata-options \
    --instance-id i-1234567890abcdef0 \
    --http-tokens required \
    --http-endpoint enabled
python
# 防御端校验:彻底解析 URL 目标 IP 并阻断保留地址
import ipaddress, socket

def is_safe_ip(host):
    ip = socket.gethostbyname(host)
    ip_obj = ipaddress.ip_address(ip)
    return not (ip_obj.is_private or ip_obj.is_loopback or ip_obj.is_link_local)