Apache Tomcat 中间件测评

Tomcat 7/8.5/9/10 三级等保现场测评取证命令单:按控制点组织 server.xml/tomcat-users.xml 核查命令、判定要点与取证要求。

定位:Apache Tomcat 三级等保现场测评取证命令单,按 GB/T 22239-2019 安全计算环境控制点分节组织核查命令、判定要点与取证要求。 适用范围:Tomcat 7/8.5/9/10,适用于 Linux、Windows 和容器内 Tomcat 场景。 配套文章:22、高风险判定指引与加固对照表、16、安全评估加固记录表3.0、21、Web中间件安全加固。

使用说明:

  • 本文所有命令均为只读取证命令,不修改配置、不重启服务、不执行清除类操作;确需变更由被测单位运维方在授权下实施。
  • 每个控制点小节按「对应控制点 → 判定要点 → 取证要求 → 核查命令 → 备注 → 预期证据」编排;命令回显本身即证据,须连同命令行一起截图。
  • 命令不存在或输出与示例差异较大时,先确认组件版本与部署形态(包管理器/源码编译/容器),再换用等效命令或转入配置文件、管理控制台取证,不得据命令缺失直接判不符合。
  • 示例输出中的地址、账户、路径均为演示值,现场须替换为真实取证结果并对涉及个人信息与内网管理地址的内容脱敏后再入报告。

不适用标识说明:

  • 使用 【不适用】 明确标记现场可判定为不适用的控制点。
  • 判定依据统一采用 GB/T 28448-2019 三级要求的“按测评对象实际承载功能、处理数据和安全机制进行判定”原则;若控制能力由上层应用、统一认证平台、前置代理、WAF、堡垒机或操作系统实现,应记录为“本组件原生不承载,按系统整体或上位组件另行测评”,不得机械按缺失判不符合。

基础信息

对应控制点:非独立控制点(测评对象与资产确认);部署形态与冗余情况佐证 8.1.2.1 网络架构 e) 关键设备硬件冗余

判定要点:版本、部署路径、运行账户、监听端口、集群角色五项均可取证且与实际架构一致 → 符合;版本或路径无法确认、依赖口头说明 → 部分符合。

取证要求:版本命令回显截图、配置路径截图、进程与运行账户截图、端口监听截图;集群部署补节点清单与角色截图。

核查命令:

  • ps -ef | grep tomcat
  • ./bin/catalina.sh version
  • pwd、ls
  • find . -maxdepth 2 -type f | grep -E "server.xml|web.xml|context.xml|tomcat-users.xml|logging.properties"
  • 备注:优先确认安装路径、运行用户、版本、管理端口、部署目录、日志目录;如为容器部署,还要记录镜像版本、容器名、宿主机挂载路径。
  • 预期证据:版本截图、安装路径截图、运行进程截图、配置目录截图、端口监听截图。
示例输出(节选)
Server version: Apache Tomcat/9.0.83
Server built:   Oct 12 2023 08:12:00 UTC
Server number:  9.0.83.0
OS Name:        Linux
java -version: OpenJDK 11.0.21

身份鉴别

对应控制点:GB/T 22239-2019 8.1.4.1 身份鉴别 a)~d)

判定要点:管理账户唯一且非默认口令、鉴别信息复杂度与有效期均已配置、远程管理走加密通道、失败处理与会话超时已启用 → 符合;仅满足其中一部分(如有口令但无复杂度/无锁定/无超时)→ 部分符合;管理入口无鉴别或沿用出厂口令 → 不符合(高风险)。

取证要求:账户清单截图、口令策略配置截图、加密通道配置截图、失败锁定与超时配置截图;由统一认证平台承载时补平台侧配置与对接截图。

A. 管理入口与登录要求

核查命令:

grep -R "manager\\|host-manager" conf webapps server.xml
  • 备注:若 manager/host-manager 未部署或已删除,可直接记为“管理控制台默认关闭”;该情况通常优于开放控制台。
  • 预期证据:管理应用目录截图、管理入口访问截图或未部署截图。
示例输出(节选)
conf/server.xml:<Context docBase="manager" path="/manager">
webapps/manager
webapps/host-manager
conf/Catalina/localhost/manager.xml

B. 本地账户与角色

核查命令:

grep -n "user username\\|role rolename" conf/tomcat-users.xml
  • 备注:核查是否存在共享管理员、默认账户、空口令、弱口令;如接入统一认证,应补平台材料。
  • 预期证据:tomcat-users.xml 关键截图、账号台账、访谈记录。
示例输出(节选)
conf/tomcat-users.xml:<user username="demo-admin" password="***" roles="manager-gui"/>
conf/tomcat-users.xml:<role rolename="manager-gui"/>
conf/tomcat-users.xml:<role rolename="admin-gui"/>

C. 口令与失败处理

核查命令:

grep -R "lockOutTime\\|failureCount\\|Realm" conf
  • 备注:Tomcat 原生能力有限,若口令复杂度、锁定策略由前置统一认证或反向代理实现,应按等效控制取证。
  • 预期证据:锁定参数截图、统一认证平台截图、口令制度。
示例输出(节选)
conf/server.xml:<Realm className="org.apache.catalina.realm.LockOutRealm">
conf/server.xml:<Realm className="org.apache.catalina.realm.UserDatabaseRealm"
(LockOutRealm 已启用,lockOutTime 默认 300 秒,未自定义 failureCount)

D. 会话与远程管理鉴别

核查命令:

grep -n "connectionTimeout\\|session-timeout" conf/server.xml conf/web.xml
  • 备注:重点判断管理会话是否超时、是否通过 HTTPS、堡垒机、VPN 等方式保护运维入口。
  • 【不适用】如现场已删除 manager/host-manager,且 Tomcat 不提供独立管理登录界面,则“管理会话超时”可判定为不适用。理由:测评对象不存在独立管理登录会话。依据:GB/T 28448-2019 对身份鉴别控制的判定应基于实际存在的鉴别交互面。
  • 预期证据:会话超时截图、HTTPS 页面截图、远程运维方案材料。
示例输出(节选)
conf/server.xml:         connectionTimeout="20000"
conf/web.xml:    <session-timeout>30</session-timeout>

访问控制

对应控制点:GB/T 22239-2019 8.1.4.2 访问控制 a)~f)

判定要点:账户与角色齐备且权限最小化、默认账户已重命名或改口令、无多余/过期/共享账户、管理来源受限制 → 符合;有账户体系但权限未按最小化分配或管理来源未限制 → 部分符合;全员共用超级账户、管理端口对全网开放 → 不符合(高风险)。

取证要求:账户与角色对应表、授权策略截图、管理来源限制(ACL/绑定地址/防火墙策略)截图、多余账户处置记录。

A. 管理页面来源限制

核查命令:

grep -R "RemoteAddrValve\\|RemoteCIDRValve\\|allow\\|deny" webapps conf
  • 备注:只开放给运维网段优于全网可访问;若控制台关闭,可记为“通过关闭管理面实现控制”。
  • 预期证据:context.xml 或 Valve 配置截图、ACL 截图。
示例输出(节选)
webapps/manager/META-INF/context.xml:<Valve className="org.apache.catalina.valves.RemoteAddrValve"
webapps/manager/META-INF/context.xml:        allow="192\.168\d+\d+\.\d+" />
(仅 manager 配置了来源限制,业务应用未配置)

B. 用户角色与最小权限

核查命令:

grep -n "manager-gui\\|manager-script\\|admin-gui\\|admin-script" conf/tomcat-users.xml
  • 备注:避免将高权限角色赋给普通运维;不同用户应按职责分组授权。
  • 预期证据:角色分配截图、审批记录、访谈记录。
示例输出(节选)
conf/tomcat-users.xml:<user username="demo-admin" password="***" roles="manager-gui,admin-gui"/>

C. 默认应用与无关组件

核查命令:

ls webapps
  • 备注:docs、examples、ROOT 示例页、未使用应用应清理或明确限制访问。
  • 预期证据:webapps 目录截图、处置说明。
示例输出(节选)
docs
examples
host-manager
manager
ROOT
(examples、docs 为默认自带应用,应评估清理)

D. 主机侧文件权限

核查命令:

ls -ld . conf logs webapps temp work
find conf -maxdepth 1 -type f -exec ls -l {} \\
  • 备注:运行账户不宜为 root;配置、日志、部署目录权限应最小化。
  • 预期证据:文件权限截图、运行用户截图。
示例输出(节选)
drwxr-x--- tomcat tomcat conf
drwxr-x--- tomcat tomcat logs
drwxr-x--- tomcat tomcat webapps
-rw-r----- tomcat tomcat 7600 conf/server.xml
-rw-r----- tomcat tomcat 4200 conf/web.xml

安全审计

对应控制点:GB/T 22239-2019 8.1.4.3 安全审计 a)~d)

判定要点:审计功能启用且覆盖每个用户与重要行为、审计记录字段齐全、审计记录受保护并定期备份、留存不少于 6 个月 → 符合;仅记录部分事件或留存不足 6 个月 → 部分符合;审计未启用或普通用户可删改审计记录 → 不符合(高风险)。

取证要求:审计开关与范围配置截图、审计记录明细样例(含时间、用户、事件类型、结果、来源)、日志外送与轮转配置截图、留存期限证据、非审计账户尝试删改的实测结果。

A. 日志配置

核查命令:

grep -n "handlers\\|level\\|directory\\|prefix" conf/logging.properties
  • 备注:判断是否启用访问日志、错误日志、管理日志;仅有默认控制台输出通常不足。
  • 预期证据:logging.properties 截图、日志路径截图。
示例输出(节选)
conf/logging.properties:1catalina.org.apache.juli.AsyncFileHandler.prefix = catalina
conf/logging.properties:2localhost.org.apache.juli.AsyncFileHandler.prefix = localhost
conf/logging.properties:4host-manager.org.apache.juli.AsyncFileHandler.prefix = host-manager
conf/server.xml:<Valve className="org.apache.catalina.valves.AccessLogValve" prefix="access_log" suffix=".txt"/>

B. 访问与管理日志

核查命令:

find logs -maxdepth 1 -type f | sort
grep -R "AccessLogValve" conf
  • 备注:应至少能证明访问日志、错误日志、管理日志留存;如日志转储到平台,应补平台查询截图。
  • 预期证据:日志目录截图、样例日志截图、日志平台材料。
示例输出(节选)
logs/catalina.out
logs/catalina.2026-08-24.log
logs/localhost_access_log.2026-08-24.txt
conf/server.xml:<Valve className="org.apache.catalina.valves.AccessLogValve" pattern="%h %l %u %t &quot;%r&quot; %s %b"/>

C. 日志留存与轮转

核查命令:

grep -R "maxDays\\|rotatable\\|fileDateFormat" conf
  • 备注:现场需说明保留周期、轮转方式、是否备份;没有明确周期时需补制度或访谈。
  • 预期证据:轮转配置截图、制度、访谈记录。
示例输出(节选)
conf/server.xml:               rotatable="true"
(maxDays 仅在 Tomcat 9.0.28+ 的 AccessLogValve 支持,当前未显式配置保留天数)

D. 主机审计联动

核查命令:

last
grep -i audit /etc/*release 2>/dev/null
  • 备注:Tomcat 应用审计往往不足,通常需要结合操作系统审计、堡垒机和日志平台进行综合判断。
  • 预期证据:堡垒机记录、主机审计截图、日志平台截图。
示例输出(节选)
tomcat   pts/0        192.168.20.31    Fri Aug 21 09:12 - 10:05  (00:53)
root     pts/0        192.168.20.31    Thu Aug 20 15:40 - 16:22  (00:42)
(主机登录记录;应用级审计需结合访问日志)

数据完整性

对应控制点:GB/T 22239-2019 8.1.4.7 数据完整性 a)b)

判定要点:配置与关键数据在传输/存储过程中具备校验或完整性保护机制(TLS、签名、校验和、配置版本归档)→ 符合;仅有部分链路具备校验 → 部分符合;无任何完整性校验手段 → 不符合。

取证要求:传输加密配置截图、校验/签名机制说明、配置变更与归档记录、完整性检测工具输出。

A. 配置与发布完整性

核查命令:

ls -l conf/server.xml conf/web.xml conf/context.xml
  • 备注:配置变更应通过变更流程;如使用 Git、发布平台或制品库,应按等效控制记录。
  • 预期证据:配置文件截图、变更单、发布记录。
示例输出(节选)
-rw-r----- 1 tomcat tomcat 7600 Aug 20 14:02 conf/server.xml
-rw-r----- 1 tomcat tomcat 4200 Aug 12 10:31 conf/web.xml
-rw-r----- 1 tomcat tomcat 1900 Jul 02 09:44 conf/context.xml

B. 传输完整性

核查命令:

grep -n "SSLEnabled\\|keystoreFile\\|sslProtocol" conf/server.xml
  • 备注:管理接口和业务接口建议通过 TLS 保护;若由 Nginx/Apache 前置终结 TLS,应补前置设备证据。
  • 预期证据:HTTPS 配置截图、证书截图、前置代理材料。
示例输出(节选)
conf/server.xml: <Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
conf/server.xml:                SSLEnabled="true" scheme="https" secure="true"
conf/server.xml:                keystoreFile="/opt/tomcat/conf/demo-server.jks" sslProtocol="TLS"/>

数据保密性

对应控制点:GB/T 22239-2019 8.1.4.8 数据保密性 a)b)

判定要点:鉴别信息与敏感业务数据在传输和存储时均加密(TLS 1.2 及以上、口令散列存储、密钥不落明文)→ 符合;仅传输加密或仅存储加密 → 部分符合;明文传输鉴别信息或明文存储口令/密钥 → 不符合(高风险)。

取证要求:TLS 配置与证书信息截图、协议与加密套件清单、口令/密钥存储形态截图、抓包验证结果;使用国密算法时注明算法与模块。

A. 传输加密

核查命令:

grep -n "scheme=\\\"https\\\"\\|secure=\\\"true\\\"\\|keystorePass" conf/server.xml
  • 备注:敏感业务或管理面不应明文传输;证据以实际监听端口和页面访问结果为准。
  • 预期证据:HTTPS 截图、证书信息、端口监听截图。
示例输出(节选)
conf/server.xml: scheme="https" secure="true"
conf/server.xml: keystorePass="***"(明文口令残留,已记录问题)

B. 敏感配置保护

核查命令:

grep -R "password\\|secret\\|credential" conf
  • 备注:若配置中存在明文口令,应记录风险;可接受的替代方式包括加密配置、环境变量或统一密钥平台。
  • 预期证据:敏感字段脱敏截图、密钥管理说明、访谈记录。
示例输出(节选)
conf/tomcat-users.xml:<user username="demo-admin" password="***" roles="manager-gui"/>
conf/server.xml: keystorePass="***"
(口令均为加密存储或已在整改清单中)

备份恢复

对应控制点:GB/T 22239-2019 8.1.4.9 数据备份恢复 a)c)

判定要点:配置与关键数据具备本地备份、备份可恢复且经过演练、具备主备或集群冗余 → 符合;有备份但无恢复演练记录,或仅有冗余无备份 → 部分符合;无任何备份与冗余措施 → 不符合(高风险)。

取证要求:备份策略与备份文件清单截图、恢复演练记录、集群/主备状态截图、备份介质与异地存放说明。

A. 配置备份

核查命令:

find .. -maxdepth 2 -type d | grep -i backup
  • 备注:至少应覆盖 conf、部署包、证书、脚本等关键配置。
  • 预期证据:备份目录截图、备份策略、备份记录。
示例输出(节选)
../backup-tomcat-20260801
../tomcat-backup
(存在备份目录,最近一次为 2026-08-01)

B. 日志与部署包备份

核查命令:

find logs -maxdepth 1 -type f | head
  • 备注:日志通常不要求长期全量保留,但应说明保留周期、转储方式和补证来源。
  • 预期证据:日志备份说明、归档截图、平台材料。
示例输出(节选)
logs/catalina.2026-08-24.log
logs/localhost_access_log.2026-08-24.txt
logs/host-manager.2026-08-24.log

C. 恢复能力

核查命令:

ls bin
find . -maxdepth 2 -type f | grep -i "backup\\|restore"
  • 备注:现场重点看是否有恢复步骤、演练记录或可执行恢复手册。
  • 预期证据:恢复手册、演练记录、访谈记录。
示例输出(节选)
bootstrap.jar
catalina.sh
shutdown.sh
startup.sh
version.sh
(bin 目录无备份/恢复脚本,恢复依赖外部备份策略)

剩余信息保护

对应控制点:GB/T 22239-2019 8.1.4.10 剩余信息保护 a)b)

判定要点:鉴别信息与敏感数据所在存储空间在释放或清除前得到完全清除(口令散列不可逆、临时文件与旧配置定期清理、介质报废有销毁记录)→ 符合;部分清理但无制度与记录 → 部分符合;明文口令残留、旧配置与备份文件长期堆积在生产目录 → 不符合。

取证要求:清理策略与计划任务截图、残留排查命令输出、介质销毁与设备报废记录、制度文件。

A. 临时目录与历史文件

核查命令:

ls temp work
find webapps -maxdepth 1 -type f -o -type d
  • 备注:停用应用、旧 WAR 包、解压残留、临时缓存应及时清理。
  • 预期证据:目录截图、清理制度、访谈记录。
示例输出(节选)
temp/
work/Catalina/localhost
webapps/docs
webapps/examples
webapps/ROOT
webapps/manager

B. 凭据与敏感信息残留

核查命令:

grep -R "password\\|secret\\|token" conf logs 2>/dev/null
  • 备注:日志、配置、脚本中若残留口令、令牌、证书私钥,应记录问题并确认处置口径。
  • 预期证据:脱敏截图、整改说明、制度材料。
示例输出(节选)
conf/tomcat-users.xml:<user username="demo-admin" password="***" roles="manager-gui"/>
conf/server.xml: keystorePass="***"
logs/localhost_access_log.2026-08-24.txt: POST /manager/html 401(口令尝试记录)

个人信息保护

对应控制点:GB/T 22239-2019 8.1.4.11 个人信息保护 a)b)

判定要点:仅采集和保存业务必需的个人信息、禁止未授权访问与非法使用(日志字段最小化、访问受权限控制、导出有审批)→ 符合;有访问控制但未做字段最小化或无导出管控 → 部分符合;日志或配置中明文记录身份证、手机号、令牌等且无访问控制 → 不符合(高风险)。

取证要求:日志格式与字段清单截图、样例日志(脱敏后)、个人信息访问权限配置、导出审批记录;不涉及个人信息时留存数据流说明作为不适用依据。

A. 日志与界面中的个人信息

核查命令:

grep -R "idcard\\|mobile\\|phone\\|name\\|email" logs webapps 2>/dev/null
  • 备注:Tomcat 本身通常不直接定义个人信息规则,需结合部署应用判断是否记录、展示或导出个人信息。
  • 【不适用】若测评对象仅为 Tomcat 运行容器,本身不直接存储、展示、导出个人信息,且个人信息处理完全发生在承载业务系统中,则本控制点对 Tomcat 中间件层可判定为不适用。理由:Tomcat 仅提供运行环境,不直接构成个人信息处理环节。依据:GB/T 28448-2019 中个人信息保护控制点应针对实际处理个人信息的组件或系统功能判定。
  • 预期证据:日志脱敏截图、应用界面截图、访谈记录。
示例输出(节选)
logs/localhost_access_log.2026-08-24.txt: GET /api/user/info?name=%E5%BC%A0%E4%B8%89 200
(访问日志含 URL 参数中的姓名拼音,建议按个人信息保护要求脱敏)

B. 最小化处理与导出控制

核查命令:

grep -R "download\\|export" webapps 2>/dev/null
  • 备注:若 Tomcat 承载业务系统,应关注管理端是否存在批量导出、调试接口、明文日志等个人信息风险。
  • 【不适用】若 Tomcat 不提供独立导出、查询、共享个人信息的管理功能,且相关能力均由上层业务应用实现,则该点对 Tomcat 中间件层可判定为不适用。理由:测评对象不具备该业务处理能力。依据:GB/T 28448-2019 个人信息保护控制点应结合对象实际业务功能判定。
  • 预期证据:应用权限截图、制度、个人信息保护访谈记录。
示例输出(节选)
webapps/demo-app/export.jsp
webapps/demo-app/download/list.jsp
(存在导出/下载页面,权限由应用层会话控制)

入侵防范

对应控制点:GB/T 22239-2019 8.1.4.4 入侵防范 a)~h)、8.1.4.5 恶意代码防范

判定要点:遵循最小安装、关闭多余服务与高危端口、管理终端受限、具备数据有效性检验、及时修补漏洞并有加固记录 → 符合;部分项缺失但有等效补偿(WAF/IPS/主机加固)且证据齐全 → 部分符合;存在未修补高危漏洞或高危端口对全网开放且无补偿 → 不符合(高风险)。

取证要求:组件与服务清单、端口扫描结果、管理终端限制配置、漏洞扫描与修补记录、基线加固对照表、攻击告警或阻断记录。

A. 管理面与默认应用暴露

核查命令:

ls webapps
grep -R "manager\\|host-manager\\|examples\\|docs" webapps conf 2>/dev/null
  • 备注:重点核查是否暴露默认管理应用、示例应用、调试页面和未使用组件,避免形成弱口令和未授权访问入口。
  • 预期证据:webapps 目录截图、管理面访问测试截图、处置说明。
示例输出(节选)
webapps/docs
webapps/examples
webapps/host-manager
webapps/manager
webapps/ROOT
conf/Catalina/localhost/manager.xml

B. 高危配置与利用面

核查命令:

grep -R "readonly\\|PUT\\|DELETE\\|RemoteAddrValve\\|AJP" conf 2>/dev/null
  • 备注:关注 AJP、可写上传目录、危险 HTTP 方法、管理面来源不受限等高风险配置。
  • 预期证据:关键配置截图、网络访问控制材料、访谈记录。
示例输出(节选)
conf/server.xml: <Connector port="8009" protocol="AJP/1.3"
conf/server.xml:                secretRequired="true" secret="***"
conf/context.xml: <CookieProcessor sameSiteCookies="strict" />

C. 版本与补丁风险

核查命令:

./bin/catalina.sh version
cat RELEASE-NOTES 2>/dev/null | head
  • 备注:核查版本是否长期未升级,是否存在已知高危漏洞整改记录;现场至少要有版本确认和补丁处置说明。
  • 预期证据:版本截图、补丁记录、整改说明。
示例输出(节选)
Server version: Apache Tomcat/9.0.83
Server built:   Oct 12 2023 08:12:00 UTC
Server number:  9.0.83.0
JVM Version:    OpenJDK 11.0.21+9

D. 恶意利用防护联动

核查命令:

grep -R "AccessLogValve" conf 2>/dev/null
last
  • 备注:Tomcat 原生入侵防范能力有限,通常结合 WAF、主机防护、堡垒机和日志告警平台综合判断。
  • 预期证据:WAF/主机防护截图、告警记录、日志平台材料。
示例输出(节选)
conf/server.xml:<Valve className="org.apache.catalina.valves.AccessLogValve" pattern="%h %l %u %t &quot;%r&quot; %s %b"/>
last:
tomcat   pts/0        192.168.20.31    Fri Aug 21 09:12 - 10:05  (00:53)

参考依据

关联文章