带你读《Apache Tomcat的云原生演进》——Securing Apache Tomcat(1)https://developer.aliyun.com/article/1377510
那么对于Tomcat本身和整个基于Tomcat的web应用程序基础设施来说,有哪些基本的安全考虑呢?
安全的构建过程是弹性Tomcat部署的基础,它涉及使用Tomcat源代码或二进制文件的最新稳定版本,并确保删除所有不必要的组件。配置通常存在安全风险,因为它们可能有宽松的设置,这可能会让系统容易受到攻击。因此,Tomcat管理员应该检查和定制配置,以满足其特定的安全需求,包括使用加密通信设置强密码和配置有效的TLS证书。
接下来是应用程序的安全性。除了保护Tomcat服务器之外,解决应用程序级别的安全问题也是至关重要的。包括进行定期的安全测试,漏洞评估和渗透测试,以识别和修复应用程序级别的弱点;实现安全编码实践、输入验证和输出编码,以防止常见的web应用程序的漏洞。
健壮的访问控制基于角色和职责限制用户权限;减少未经授权访问敏感资源的风险。我们必须确保只有授权的用户才能访问管理应用程序和配置文件,我的经验是,当涉及到访问控制时,应该遵循最少特权的原则。对整个web应用程序基础设施进行定期的漏洞扫描,包括底层的操作系统、web服务器和数据库,这对于识别潜在的弱点至关重要。
如果检测到任何漏洞,应立即对其进行补救,以减少攻击面并将风险降至最低。那么监控和事件响应呢?持续监视Tomcat服务器日志和web应用程序安全性有助于检测异常行为和潜在的安全漏洞。实施针对 Tomcat的有效事件响应计划,可以快速识别、遏制和解决安全事件。
让我们继续检查如何保护Tomcat中的配置。在启动Tomcat构建或使用下载的Tomcat二进制发行版之前。二进制分布的完整性必须进行检查,许多组织都在确保用于构建的源文件,甚至二进制文件不会被篡改。
Tomcat源代码发行版和二进制包发行版也提供了SHA 512校验以及PGP加密签名的ASC密钥。必须验证此分发文件的签名,并且还应该根据校验进行检查,以确保文件的完整性。从源代码构建Tomcat时,ANT Build工具用于构建Tomcat二进制文件。Tomcat源包中已经包含了用于构建所有Tomcat组件的构建XML。
默认情况下,构建XML将具有用于构建所有组件的相关依赖的项目或基本任务。这可能包括示例应用程序、文档、嵌入式Tomcat、Jar等等。所有这些在典型的企业或生产部署中可能都不是真正需要的。因此,您需要修改构建XML以使用自定义目标。
构建精简的Tomcat二进制文件,并不需要文档、示例应用程序等。即使你正在使用从Tomcat ASF下载页面下载的这个发行包的二进制文件,它不推荐直接安装用于生产使用,必须删除默认示例应用程序和文档,缺省配置不保证安全配置。例如,在默认情况下,连接器未启用HTTPS,未禁用关机端口。没有对Tomcat策略的限制,客户可以直接看到错误的异常堆栈等,这只是其中的一些。
因此,基于这些原因,请确保永远不要在生产环境中部署具有默认配置的Tomcat。
在不确保消除或保护这些易受攻击的配置之前,Tomcat还附带了用于实例管理的管理器应用程序。只有修改默认的用户名、密码和角色后,才需要部署manager应用和host manager应用。
我建议可以通过远程IP地址限制对管理器web应用程序的访问,通过添加RemoteAddrValve或RemoteHostValve,实现适当的文件或目录访问权限是另一个重要的领域。在设置Tomcat JVM运行的访问权限和账户时,必须遵守“最小权限原则”。
带你读《Apache Tomcat的云原生演进》——Securing Apache Tomcat(3)https://developer.aliyun.com/article/1377508