C10:阻止服务器端请求伪造
描述
注入攻击通常针对受害服务器本身,而服务器端请求伪造(SSRF)攻击则试图胁迫服务器代表攻击者执行请求。当攻击者能够诱骗服务器向内部或外部服务发出非预期的请求时,就会发生SSRF,这可能会绕过安全控制。
这为什么对攻击者有利?传出请求将以受害服务器的身份执行,因此攻击者可能会以更高的权限执行操作。
威胁
这方面的例子包括
- 如果DMZ内的服务器可能受到SSRF攻击,攻击者可能无需通过边界防火墙即可访问DMZ内的其他服务器。
- 许多服务器在localhost上运行本地服务,通常作为localhost没有任何身份验证/授权。这可能被SSRF攻击滥用。
- 如果使用SSO,SSRF可用于从服务器等提取令牌/票据/哈希值。
实施
有多种方法可以防止SSRF
- 输入验证
- 如果必须发出传出请求,请对照允许列表检查目标。
- 如果使用XML,请安全配置解析器以防止XEE。
在执行输入验证时,请注意Unicode和其他字符转换。