设为首页 收藏本站
查看: 470|回复: 0

[经验分享] Apache Tomcat哈希碰撞拒绝服务漏洞解决办法

[复制链接]
累计签到:2 天
连续签到:2 天
发表于 2017-1-9 10:59:53 | 显示全部楼层 |阅读模式
  起因:
Wed, 28 Dec 2011 22:28:16 GMT apache  tomcat公布了一个安全漏洞。
  http://mail-archives.apache.org/mod_mbox/www-announce/201112.mbox/%3C4EFB9800.5010106@apache.org%3E
  漏洞原理:
  在多数web容器的设计中,request都是依靠相应语言的hashtable/hashmap实现,当不同的key存入时如果hash值相等则以链表方式连接。拉链法是解决Hash冲突问题的方法之一,把所有hash值相同的元素链接在同一个单链表中,然后放入到hashtable/hashmap的桶中。这也是jdk中hashmap/hashtable的实现方式。外部拉链法的缺点是:它需要稍微多一些的空间来实现,因为添加任何元素都需要添加指向节点的指针,并且每次探查也要花费稍微多一点的时间,因为它需要间接引用逐一查找匹配,而不是直接访问元素。当大量相同hash值的元素保存时,就会导致链表巨长无比,这时get出对应元素时要在链表里比对key是否相同直到找到对应的元素。
     所以此漏洞利用碰撞相同的hash值使得hashtable/hashmap退化为一个长链表,容器从request重新get时,map的计算过程会将时间复杂度巨增,原来一个简单的过程将变成一个很费cpu的过程。
  http://www.nruns.com/_downloads/advisory28122011.pdf
  http://www.ocert.org/advisories/ocert-2011-003.html
  影响到的版本:
Apache Tomcat 5.x
Apache Tomcat 6.x
Apache Tomcat 7.x
  解决办法:
tomcat临时办法:
maxPostSize的默认大小为2097152,当maxPostSize=0时,不限制;maxPostSize=20971520时,为20M,改为一个小于10k的值,所有版本可用,会影响用户。(在server.xml的Connector中进行配置)
tomcat持久办法:
  升级Apache Tomcat到5.5.35, 6.0.35或7.0.23及以上版本。
这里些版本中,增加了maxParameterCount参数(在server.xml的Connector中进行配置,不配置时默认为10000),maxParameterCount默认值10000
  被扫描出了“Apache Tomcat Web表单哈希冲突拒绝服务漏洞”,需要全面设计线上服务器。升级线上服务器需要注意的地方:
  1.备份Tomcat服务器。
  2.注意查看server.xml、context.xml。将其中设置的内容更新到新版服务器中。
  3.查看Tomcat容器的lib将用户添加的jar拷贝到新的服务器中
  4.查看bin目录下的catalina.sh,看看是否跟新版服务器有所不同,尤其是用户可能添加JAVA_OPTS="$JAVA_OPTS -server -Xms1024m -Xmx2048m -XX:PermSize=256M -XX:MaxNewSize=512m -XX:MaxPermSize=256m"来设置服务器的可用内存大小等。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-325935-1-1.html 上篇帖子: 在C++中使用Apache的Log4cxx记录日志 下篇帖子: 转:F5 APACHE WEBLOGIC取用户真实IP的问题
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表