freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

Tomcat中间件基线核查
2020-09-17 11:32:31

一、身份鉴别

1.1应启用身份鉴别、 用户身份标识唯一性检查、用户身份鉴别信息复杂度检查以及登录失败处理功能,并根据安全策略配置相关参数

检查是否按照用户分配账号,避免账号共享,至少存在两个账号:

修改tomcat-users.xml配置文件,修改或添加账号。

<user username=”tomcat” password=” testPasswd&” roles=”admin”>

1.2应提供用户身份标识唯一和鉴别信息复杂度检查功能,保证应用系统中不存在重复用户身份标识,身份鉴别信息不易被冒用

密码长度不小于8位且包括数字、小写字母、大写字母和特殊符号中至少两类:

在配置文件tomcat-users.xml中设置口令的长度不小于8位,复杂度符合要求。 eg: <user username="tomcat" password="testPasswd&" roles="admin" />

二、访问控制

2.1应提供访问控制功能,依据安全策略控制用户对文件、数据库表等客体的访问

2.1.1检查是否禁用非法HTTP方法

禁用非法HTTP方法:

编辑web.xml文件中配置 org.apache.catalina.servlets.DefaultServlet的 <init-param> <param-name>readonly</param-name>

<param-value>true</param-value> </init-param>

其中param-value为true时,即不允许delete和put操作。

2.1.2检查是否修改tomcat manager文件夹名称

修改manager文件夹名称:

eg:将C:\Program Files\Apache Software Foundation\Tomcat 7.0\webapps\manager修改为C:\Program Files\Apache Software Foundation\Tomcat 7.0\webapps\XXX XXX为新的文件夹名称

2.1.3检查是否更改tomcat服务器默认端口

应更改tomcat服务器默认端口:

修改配置文件server.xnl,更改默认管理端口: <Connector port="新的端口" protocol="HTTP/1.1" connectionTimeout="300" redirectPort="8443" />

2.1.4检查是否禁止tomcat列表显示文件

禁止Tomcat列表显示文件:

编辑配置文件web.xml,修改如下: <init-param> <param-name>listings</param-name> <param-value>true</param-value> </init-param> 把true改成false

2.2应由授权主体配置访问控制策略,并严格限制默认帐户的访问权限

2.2.1检查是否禁用超级用户启用tomcat

应禁止超级用户启用tomcat:

在超级用户模式下启用tomcat,如果可以启用,建议禁用超级用户,改为普通用户进行启用。

2.2.2检查是否设置防止恶意关闭tomcat服务

应避免恶意shutdown TOMCAT服务:

打开tomcat_home/conf/server.xml,查看是否设置了复杂的字符串 <Server port="8005" shutdown="复杂的字符串"> 避免恶意shutdown TOMCAT服务

2.3应授予不同帐户为完成各自承担任务所需的最小权限,并在它们之间形成相互制约的关系

检查是否设置在设备权限配置能力内,根据用户的业务需要,配置其所需的最小权限

修改用户角色权限,授权tomcat具有远程管理权限:

编辑tomcat-users.xml配置文件,修改用户角色权限,授权tomcat具有远程管理权限: eg:<user username=”tomcat” password=”***” roles=”manager”>

2.4应对通信过程中的整个报文或会话过程进行加密

检查是否配置设备支持使用HTTPS加密协议

设备应支持使用HTTPS加密协议:

  1. 使用JDK自带的keytool工具生成一个证书(keystore文件),其中包含了密钥。
  2. 在命令行输入以下命令:keytool -genkey -alias tbb -keyalg RSA -keystore d:\tbb.keystore(可自选地址)
  3. 根据系统提示输入“keystore”密码和其他信息,注意:您的名字与姓氏是什么?此项要输入本机IP地址
  4. 输入私钥密码,确认私钥密码 系统将在当前目录下生成一个“keystore”文件
  5. 创建自签名的证书
  6. 使用使用JDK自带的命令keytool创建自签名证书:keytool -selfcert -alias tbb -keystore d:\tbb.keystore(可自选地址)
  7. 创建成功后,将证书导出:keytool -export -alias tbb -keystore d:\tbb.keystore -storepass 123456 -rfc -file d:\tbb.cer(可自选地址)
  8. 将证书导入到“受信任的根证书颁发机构”,开始->运行->certmgr.msc
  9. 修改配置文件xml,如下: <Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true" maxThreads="150" scheme="https" secure="true" clientAuth="false" sslProtocol="TLS" keystorePass="your passwd" keystoreFile="your keystore"/>
  10. 重启tomcat

三、安全审计

3.1应提供覆盖到每个用户的安全审计功能,对应用系统重要安全事件进行审计

检查是否配置日志功能,对用户登录进行记录

应对用户登录使用的账号,登录是否成功,登录时间,以及远程登录时用户使用的IP地址进行记录:

编辑server.xml配置文件,在<HOST>标签中增加记录日志功能,将以下内容的注释标记< ! -- -- >取消: <Valve className=”org.apache.catalina.valves.AccessLogValve” Directory=”logs” prefix=”localhost_access_log.” Suffix=”.txt” Pattern=”common” resloveHosts=”false”/>

四、软件容错

4.1在故障发生时,应用系统应能够继续提供一部分功能,确保能够实施必要的措施

检查是否配置tomcat错误页面重定向

配置Tomcat错误页面重定向:

编辑配置文件web.xml,

修改如下: <error-page> <error-code>404</error-code> <location>/错误页面</location> </error-page> …………… <error-page> <exception-type>java.lang.NullPointerException</exception-type> <location>/错误页面</location> </error-page>

五、资源控制

5.1当应用系统的通信双方中的一方在一段时间内未作任何响应,另一方应能够自动结束会话

检查是否设置连接超时时间

应设置Connector接受一个连接后等待的时间不大于默认时间60秒(60000毫秒):

编辑配置文件server.xml,修改超时时间: <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="xxx" redirectPort="8443" /> 注意:0为永不超时,也属于不合规。

应设置Connector接受一个连接后等待的时间不为0:

编辑配置文件server.xml,修改超时时间: <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="xxx" redirectPort="8443" /> 注意:0为永不超时,也属于不合规。

5.2应能够对应用系统的最大并发会话连接数进行限制

5.2.1检查是否设置连接数

应根据机器性能和业务需求,设置最小连接数:

编辑server.xml文件,样例如下: <Connector   port="8080"  minSpareThreads="25" ……/> minSpareThreads="25" 表示即使没有人使用也开这么多空线程等待 根据实际情况设置连接数

应根据机器性能和业务需求,设置最大连接数:

编辑server.xml文件,样例如下: <Connector   port="8080" maxThreads="150"……/> maxThreads="150" 表示最多同时处理150个连接 根据实际情况配置连接数

# 系统安全
本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者