如何让Tomcat更强壮
声明:
本文由Tide安全团队成员”菜鸟的菜“首发于freebuf TideSec专栏:
https://www.freebuf.com/column/199893.html
Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,是开发和调试JSP 程序的首选,其深受开发人员追捧,在web安全测试中经常遇到tomcat的站点,此处通过结合tomcat几个常见配置漏洞,说说其加固建议,来打造一个更强壮的tomcat。
NO 1 不安全的http请求方法
1 漏洞描述
系统支持多种http请求方法,如图一
图一
2 加固方案
1 针对此问题,修改tomcat 的web.xml文件,在web.xml文件中增加如下内容:
2 修改后重启下tomcat服务,web.xml修改后的具体内容如下图一:
图一
3 修改后,再次查看options请求方法,提示403,具体报错信息如图二
图二
NO 2慢速dos攻击
1 漏洞描述
慢速dos攻击漏洞是让服务器等待,当服务器在保持连接等待时,恶意消耗服务器资源。
2 加固建议
修改server.xml文件,connectiontimeout默认是20000ms,此处修改为5000ms,可有效缓解该问 题,(该参数是指当建立链接后,如果既收不到客户端的fin也没有数据,此连接等待20s后会被超时释放)当在尝试用slowhttptest进行攻击测试时,提示如下
NO 3 目录文件列出漏洞
1 漏洞描述
Tomcat 8.0是自动屏蔽目录文件列出的,当web.xml中为<param-value>true</param-value>时,允许文件列出,如图一
图一
2 加固建议
当<param-value>false</param-value>,可避免目录文件列出,如图二
图二
NO 4 敏感信息泄漏之默认管理路径
1 漏洞描述
Tomcat存在默认的管理路径,存在被恶意攻击者爆破的风险。
2 加固建议
首先修改tomcat默认8080端口,修改web.xml,修改默认端口为9999,如图一
图一
重启tomcat服务即可,如图二
图二
NO 5 敏感信息泄漏之未定义错误页面
1 漏洞描述
系统报错时,错误信息会泄露出部分敏感信息,进行子定义错误页面,减少敏感信息泄露,如图一
图一
2 加固建议
修改web.xml文件,加入如下错误页面提示,如图一
图一
在webapps/ROOT目录下新建error.html,内容为自定义的错误页面,当tomcat再次报错时,显示自定义的错误信息,如图二
图二
NO 6 敏感信息泄漏之版本号泄漏
1 漏洞描述
在测试系统会发现,系统报错页面,会泄露tomcat版本信息,如下图一
图一
2 加固建议
进入tomcat/lib目录,查找catalina.jar,可以利用winrar文件打开,进\org\apache\catalina\util目录,编辑ServerInfo.properties文件,如图一
图一
修改最后三行内容,此处修改为如下内容,如图二
图二
修改完后,保存内容,更新jar包,重启tomcat服务,当系统在报错时,提示信息如图三,隐藏了Tomcat版本信息
图三
NO 7 War 包自动部署
1 项目描述
为了增加tomcat安全性,建议关闭war包自动部署功能,防止被攻击者上传恶意脚本。
2 配置方案
修改conf/server.xml文件,unpackWARs、unpackWARs默认为true,此处修改为false,如图一
图一
最后开启tomcat日志,可以随时监测用户访问情况,当系统出现安全问题时,可方便进行溯源。修改conf下的server.xml文件,默认日志文件是放在logs下,directory :修改默认存储位置,prefix :修改日志名前缀,suffix :日志名后缀,pattern :日志需要保存的具体内容。可根据实际情况自行调整日志格式。
Tide安全团队正式成立于2019年1月,是新潮信息旗下以互联网攻防技术研究为目标的安全团队,目前聚集了十多位专业的安全攻防技术研究人员,专注于网络攻防、Web安全、移动终端、安全开发、IoT/物联网/工控安全等方向。
Tide安全团队自建立之初持续向CNCERT、CNVD、漏洞盒子、补天、各大SRC等漏洞提交平台提交漏洞,在漏洞盒子先后组建的两支漏洞挖掘团队在全国300多个安全团队中均拥有排名前十的成绩。在产品研发方面,Tide自主研发了一款面向互联网基础设施的资产检索系统,即Tide(潮汐)网络空间搜索平台,平台结合网络安全技术与大数据分析处理技术,对互联网基础设施进行网络安全威胁监测和网络安全态势分析。Tide安全团队自研多套安全平台,如分布式web扫描平台WDScanner、Mars平台、潮汐指纹识别系统、内部SRC平台、安全网络课堂、安全测试案例库、社工库、MoSec移动端检测平台、漏洞知识库、代理资源池、字典权重库等等,团队成员在FreeBuf、简书、CSDN、51CTO、CnBlogs等网站均开设专栏或博客,研究安全技术、分享经验技能。