Tomcat的AJP漏洞的补救措施

背景

tomcat是较为常用的web服务器,近日公司发布了Tomcat中间件漏洞的整改通知,来进行对tomcat的AJP漏洞的补救,下面讲述对于tomcat的两种补救措施。

漏洞详情

国家信息安全漏洞共享平台于2月22日发布了一份关于Apache  Tomcat存在文件包含漏洞的安全报告。该漏洞综合评级为“高危”,影响的产品版本包括:Tomcat6、Tomcat7、Tomcat8、Tomcat9。报告中提到Tomcat AJP协议由于存在实现缺陷导致相关参数可控,攻击者利用该漏洞可通过构造特定参数,读取服务器webapp下的任意文件,若服务器端同时存在文件上传功能,攻击者可进一步实现远程代码的执行。

官网修复漏洞版本

官网已经发布修复漏洞的Apache Tomcat版本,版本分别为:Tomcat9.0.31、Tomcat8.5.51、Tomcat7.0.100,大家可以通过Apache Tomcat官网下载相应的版本进行更新。

一、springBoot内置tomcat

首先要确定是否开启了AJP,一般springboot是默认不开启AJP协议的。如果使用的是springboot的内置tomcat,且手动开启了AJP协议,则需要升级内置tomcat版本。

springboot开启AJP方法

@Bean
    public WebServerFactory servletWebConnector() {
      return server -> {
        if (server instanceof TomcatServletWebServerFactory) {
            ((TomcatServletWebServerFactory) server).addAdditionalTomcatConnectors(redirectConnector());
        }
      };
    }
 
    private Connector redirectWebConnector() {
       Connector connector = new Connector("AJP/1.3");
       connector.setScheme("http");
       connector.setPort(ajpPort);
       connector.setSecure(false);
       connector.setAllowTrace(false);
       return connector;
    }

springboot如何升级内置tomcat版本

首先要引入依赖包,然后根据依赖包进行升级

 
      org.springframework.boot
      spring-boot-starter-web
      
        
          tomcat-embed-core
          org.apache.tomcat.embed
        
        
          tomcat-embed-el
          org.apache.tomcat.embed
        
        
          tomcat-embed-websocket
          org.apache.tomcat.embed
        
      
    
    
      org.apache.tomcat.embed
      tomcat-embed-core
      9.0.31
    
    
      org.apache.tomcat.embed
      tomcat-embed-el
      9.0.31
    
    
      org.apache.tomcat.embed
      tomcat-embed-websocket
      9.0.31
      
        
          tomcat-embed-core
          org.apache.tomcat.embed
        
      
    

二、通常tomcat

1、如未使用Tomcat AJP协议:

如未使用Tomcat AJP协议,直接下载对应版本修复漏洞

如有更老版本或者无法立即进行版本更新的用户,建议直接关闭AJPConnector,或将其监听地址改为仅监听本机localhost。具体操作如下:

(1)编辑/conf/server.xml,找到如下行(为Tomcat的工作目录):

        

(2)将此行注释(也可删掉改行)

(3)保存后需重新启动,规则方可生效。

2、如果使用了Tomcat AJP协议:

建议将 Tomcat 立即升级到 9.0.31、8.5.51 或 7.0.100 版本进行修复,同时为 AJP Connector 配置 secret 来设置 AJP 协议的认证凭证。例如(注意必须将 YOUR_TOMCAT_AJP_SECRET 更改为一个安全性高、无法被轻易猜解的值):

另外,如无法立即进行版本更新、或者是更老版本的用户,建议为 AJPConnector 配置 requiredSecret 来设置 AJP 协议认证凭证。例如(注意必须将 YOUR_TOMCAT_AJP_SECRET 更改为一个安全性高、无法被轻易猜解的值):

 

你可能感兴趣的:(后端项目部署)