作为一名网络开发人员,我越来越多地调试问题,发现我们的IT部门正在使用我们的防火墙来过滤HTTP响应标头。
他们正在使用已知标头的白名单,因此某些较新的技术(CORS,websockets等)会被自动剥离,直到我调试问题并请求列入白名单。
受影响的响应是我们正在使用的第三方服务 - 因此,如果我们有一个使用disqus的内部站点,则无法加载注释,因为disqus的响应正在删除它的标头。我们所服务的资源不受影响,因为它只是进入办公室的流量。
是否有正当理由阻止某些标头?显然有一些问题,例如中间人,重定向到钓鱼网站等,但这些需要的不仅仅是错误的标题才能成功。
维护允许的HTTP响应标头的白名单有哪些安全原因?
答案 0 :(得分:2)
指纹识别可能是剥离响应标头的主要原因:
https://www.owasp.org/index.php/Fingerprint_Web_Server_%28OTG-INFO-002%29
这取决于您正在运行的堆栈,并且大多数情况下,响应头中包含的信息可在每个服务器中配置,但它需要单独篡改每个服务应用程序(并且可能存在软件是私有的,不提供设置HTTP标头的选项。
让我们举一个简单的例子:
在我们的示例数据中心中,我们为不同的目的运行一组服务器,并且我们已正确配置它们,以便它们不会在标头上返回不必要的元数据。
但是,用于管理打印作业的新(虚构)闭源应用程序安装在其中一台服务器上,它提供了一个我们想要出于任何原因使用的Web界面。 如果此应用程序返回一个额外的标题,例如(假设)“x-printman-version”(并且它可能希望这样做,以确保与使用其API的客户端兼容),它将有效地公开其版本。
并且,如果此打印作业管理器已知某些版本的漏洞,则攻击者只需查询它以了解此特定安装是否容易受到攻击。
这可能看起来不那么重要,会打开一个自动/随机攻击窗口,扫描感兴趣的端口,并等待出现正确的标题(“指纹”),以便发动攻击确定成功。
因此,在组织中剥离大多数(为我们想要保留的那些设置策略和规则)可能听起来很合理。
有了这一点,从传出连接中删除标题响应是过度的。确实,它们可以构成一个向量,但由于它是一个传出连接,这意味着我们“信任”端点。控制可信端点的攻击者将使用元数据而不是有效负载,这没有直接的原因。
我希望这有帮助!