在 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 enabledpython
# 防御端校验:彻底解析 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)