【SAE安全漏洞通告及解决方案】Apache Tomcat AJP漏洞
背景
Apache Tomcat是由Apache软件基金会下Jakarta项目开发的Servlet容器。在默认情况下,Apache Tomcat会开启AJP连接器,便于与其他Web服务器通过AJP协议进行数据传输。
由于Apache Tomcat AJP协议的缺陷,攻击者可以通过Tomcat AJP Connector读取含Apache Tomcat在内其下所有webapp目录下的任何文件,因此攻击者可以读取webapp配置文件或源代码。如果目标应用支持文件上传功能,攻击者可以向服务端上传含有恶意JSP脚本代码的文件,然后利用漏洞进行文件包含,从而达到远程代码执行获取服务器权限等攻击目的。在未对外网开启AJP服务的情况下,不受漏洞影响(Tomcat默认开启AJP服务并将其绑定至0.0.0.0),由于SAE应用实例部署在VPC网络内部,所以如应用实例的8009端口对外不可访问,则可以认为受AJP漏洞攻击的风险较低。
影响范围
- 在SAE中使用WAR包方式进行应用部署的客户。
- 在SAE中使用镜像方式部署的且Tomcat Server.xml配置文件中开启了Tomcat AJP Connector的客户。
解决方案
- 在SAE中使用WAR包方式部署的客户,请通过Console或API方式重新部署应用即可。
- 在SAE中使用镜像方式部署的客户,请使用注释掉Tomcat AJP Connector的Tomcat版本重新制作镜像并重新部署。
验证方法
通过WebShell登录容器,找到相应的tomcat conf目录,查看server.xml文件内是否存在<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
配置。
- 如果不存在,表示该漏洞修补成功。
- 如果存在,修补该漏洞。具体操作,请参见解决方案。