gpt4 book ai didi

java - 缓解 Tomcat 8 上的慢速 HTTP 发布漏洞

转载 作者:行者123 更新时间:2023-11-28 22:07:28 26 4
gpt4 key购买 nike

我们用于安全测试的第三方工具在 Tomcat 8 上存在慢速 HTTP POST 漏洞。我们在应用程序中有一个简单的 Spring Controller 和 JSP。

现有的 Tomcat 连接器配置如下:

<Connector port="8643" protocol="HTTP/1.1" SSLEnabled="true"
maxThreads="150" scheme="https" secure="true" compression="on"
clientAuth="false" sslProtocol="TLS" maxPostSize="20480"
maxSwallowSize="20480" maxHeaderCount="25" maxParameterCount="100"/>

注意我们在tomcat前面没有Apache或者Nginx。请建议我们可以直接在 Tomcat 上使用的配置。

最佳答案

慢速 HTTP 攻击的一个例子是 SLOWLORIS

要使用 Tomcat 缓解它,解决方案是使用 NIO Connector ,如本 tutorial 中所述.

您的问题不清楚的是,Tomcat 已经默认在 Tomcat 8 上使用 NIO 连接器,这是您的配置:

The default value is HTTP/1.1 which uses an auto-switching mechanism to select either a non blocking Java NIO based connector or an APR/native based connector.

也许你应该设置一些其他连接器参数来专门限制 POST 滥用,我建议:

maxPostSize="1048576" (1 MByte)
connectionTimeout="10000" (10 seconds between the connection and the URI request)
disableUploadTimeout="false" (activate the POST maximum time allowed)
connectionUploadTimeout="20000" (maximum POST of 20 seconds)

还有一个选项是限制 header 数量(默认为 100),但这可能会对使用智能手机的人产生副作用(众所周知,智能手机会发送许多 header ):

maxHeaderCount="25"

但这取决于您的流量是来自互联网,还是来自具有已知用户的专业内部网。在后一种情况下,您可以将设置调整得更加宽松。

编辑 1:使用 MultipartConfig 加固

如其他一些帖子所述,maxPostSize 可能不适用于限制上传。使用 Java 7 built-in uploads 时,可以通过对 Servlet 的注释或配置来配置限制。它不是您所要求的纯 Tomcat 配置,但有必要了解它并与开发团队讨论,因为从开发的早期阶段就必须考虑安全性。

编辑 2: 禁用分块传输编码

一些慢速 HTTP POST 攻击基于使用 Transfer-Encoding : chunked header 发送的请求,然后发送许多或无限数量的 block 。为了对抗这种攻击,我建议配置一个 Rewrite Valve .

要实现这一点,请在 server.xml 中的主机定义中添加阀门:

<Valve className="org.apache.catalina.valves.rewrite.RewriteValve" />

假设您的主机名是默认主机名 (localhost),您需要使用以下内容创建 $CATALINA_BASE/conf/Catalina/localhost/rewrite.config 文件:

RewriteCond %{HTTP:Transfer-Encoding} chunked
RewriteRule ^(.*)$ / [F]

如有必要,您可以调整 RewriteRule 以使用 F 标志导致的 403 Forbidden 以外的内容进行回复。这是纯 Tomcat 配置且灵活。

关于java - 缓解 Tomcat 8 上的慢速 HTTP 发布漏洞,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49442855/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com