安全原因,以维护允许的HTTP响应标头的白名单

时间:2013-11-29 10:25:55

标签: security http header firewall

作为一名网络开发人员,我越来越多地调试问题,发现我们的IT部门正在使用我们的防火墙来过滤HTTP响应标头。

他们正在使用已知标头的白名单,因此某些较新的技术(CORS,websockets等)会被自动剥离,直到我调试问题并请求列入白名单。

受影响的响应是我们正在使用的第三方服务 - 因此,如果我们有一个使用disqus的内部站点,则无法加载注释,因为disqus的响应正在删除它的标头。我们所服务的资源不受影响,因为它只是进入办公室的流量。

是否有正当理由阻止某些标头?显然有一些问题,例如中间人,重定向到钓鱼网站等,但这些需要的不仅仅是错误的标题才能成功。

维护允许的HTTP响应标头的白名单有哪些安全原因?

1 个答案:

答案 0 :(得分:2)

指纹识别可能是剥离响应标头的主要原因:

https://www.owasp.org/index.php/Fingerprint_Web_Server_%28OTG-INFO-002%29

这取决于您正在运行的堆栈,并且大多数情况下,响应头中包含的信息可在每个服务器中配置,但它需要单独篡改每个服务应用程序(并且可能存在软件是私有的,不提供设置HTTP标头的选项。

让我们举一个简单的例子:

在我们的示例数据中心中,我们为不同的目的运行一组服务器,并且我们已正确配置它们,以便它们不会在标头上返回不必要的元数据。

但是,用于管理打印作业的新(虚构)闭源应用程序安装在其中一台服务器上,它提供了一个我们想要出于任何原因使用的Web界面。 如果此应用程序返回一个额外的标题,例如(假设)“x-printman-version”(并且它可能希望这样做,以确保与使用其API的客户端兼容),它将有效地公开其版本。

并且,如果此打印作业管理器已知某些版本的漏洞,则攻击者只需查询它以了解此特定安装是否容易受到攻击。

这可能看起来不那么重要,会打开一个自动/随机攻击窗口,扫描感兴趣的端口,并等待出现正确的标题(“指纹”),以便发动攻击确定成功。

因此,在组织中剥离大多数(为我们想要保留的那些设置策略和规则)可能听起来很合理。

有了这一点,从传出连接中删除标题响应是过度的。确实,它们可以构成一个向量,但由于它是一个传出连接,这意味着我们“信任”端点。控制可信端点的攻击者将使用元数据而不是有效负载,这没有直接的原因。

我希望这有帮助!