Apache ActiveMQ / Artemis 消息中间件测评

Apache ActiveMQ Classic 与 Artemis 三级等保现场测评取证命令单:按控制点组织 broker 配置、JAAS 认证、授权策略核查命令、判定要点与取证要求。

定位:Apache ActiveMQ / Artemis 三级等保现场测评取证命令单,按 GB/T 22239-2019 安全计算环境控制点分节组织核查命令、判定要点与取证要求。 适用范围:Apache ActiveMQ Artemis 2.x 单机、主备、集群场景。 配套文章:22、高风险判定指引与加固对照表、16、安全评估加固记录表3.0、21、Web中间件安全加固。

使用说明:

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

不适用标识说明:

  • 使用 【不适用】 明确标记现场可判定为不适用的控制点。
  • 判定依据采用 GB/T 28448-2019 的对象边界原则;消息内容和控制插件能力需结合现场实际启用情况判定。

基础信息

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

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

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

核查命令:

./artemis version 2>/dev/null
ps -ef | grep artemis
find . -name broker.xml -o -name bootstrap.xml
  • 备注:确认版本、实例目录、配置目录、控制台地址、端口和数据目录。
  • 预期证据:版本截图、进程截图、配置目录截图、端口截图。
示例输出(节选)
./artemis version
Apache ActiveMQ Artemis 2.28.0
ps -ef | grep artemis
artemis 5501 java -Xms512M -Xmx2G -jar artemis-boot.jar
./broker0/etc/broker.xml
./broker0/etc/bootstrap.xml

身份鉴别

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

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

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

A. 管理控制台登录

核查命令:

grep -R "console\\|hawtio\\|management" etc 2>/dev/null
  • 备注:核查控制台是否启用、地址和认证方式。
  • 预期证据:控制台截图、地址截图。
示例输出(节选)
grep console/hawtio etc(节选)
etc/bootstrap.xml: <binding uri="http://0.0.0.0:8161" name="artemis">
etc/broker.xml: <web bind="http://192.168.10.51:8161" path="console">
(控制台经 Nginx 反代+SSO 访问,直连仅限内网)

B. 用户与角色

核查命令:

grep -R "artemis-users.properties\\|artemis-roles.properties" etc 2>/dev/null
  • 备注:核查本地用户、角色、默认账户和共享账户。
  • 预期证据:用户配置截图、访谈记录。
示例输出(节选)
grep users/roles properties etc
etc/artemis-users.properties: demo-admin=***
etc/artemis-roles.properties: admins=demo-admin
(口令默认经 mask 加密存储:ENC(...))

C. 口令与失败处理

核查命令:

grep -R "security-setting\\|authentication\\|authorization" etc 2>/dev/null
  • 备注:锁定能力有限,应结合来源限制、统一认证或上位平台综合判断。
  • 预期证据:配置截图、平台材料。
示例输出(节选)
grep security-setting/authentication etc/broker.xml(节选)
<security-enabled>true</security-enabled>
<security-setting match="#">
   <permission type="send" roles="producers"/>
   <permission type="consume" roles="consumers"/>
</security-setting>

D. 会话与 HTTPS

核查命令:

grep -R "sslEnabled\\|keyStorePath\\|trustStorePath" etc 2>/dev/null
  • 备注:管理和客户端接入应关注 TLS 和远程运维保护。
  • 预期证据:HTTPS/TLS 截图、证书材料。
示例输出(节选)
grep sslEnabled etc
etc/broker.xml: <acceptor name="artemis">tcp://192.168.10.51:61617?sslEnabled=true;keyStorePath=...
(对外仅开放 TLS 端口,61616 明文端口关闭)

访问控制

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

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

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

A. 地址与队列授权

核查命令:

grep -R "security-setting" etc/broker.xml 2>/dev/null
  • 备注:应区分发送、消费、创建队列、管理等权限。
  • 预期证据:授权配置截图、权限说明。
示例输出(节选)
grep security-setting etc/broker.xml
<security-setting match="demo.#">
  <permission type="send" roles="producers"/>
  <permission type="consume" roles="consumers"/>
  <permission type="createNonDurableQueue" roles="producers"/>
</security-setting>
(队列级最小授权,# 通配权限已收敛)

B. 管理接口来源限制

核查命令:

grep -R "bind\\|host\\|http-upgrade-enabled" etc 2>/dev/null
  • 备注:控制台和管理接口应限制来源。
  • 预期证据:配置截图、网络材料。
示例输出(节选)
grep bind/host etc
etc/bootstrap.xml: <binding uri="http://192.168.10.51:8161">
etc/broker.xml: http-upgrade-enabled=true
(控制台绑定内网地址,未监听 0.0.0.0)

C. 默认账户与测试对象

核查命令:

grep -R "guest" etc 2>/dev/null
  • 备注:默认账户、测试队列和示例配置应清理或限制。
  • 预期证据:配置截图、处置说明。
示例输出(节选)
grep guest etc
(无输出,guest 角色未定义,匿名接入被拒绝)

D. 文件权限

核查命令:

find etc -maxdepth 1 -type f -exec ls -l {} \\
2>/dev/null
  • 备注:配置、日志和数据目录权限应最小化。
  • 预期证据:权限截图、运行用户截图。
示例输出(节选)
-rw-r----- 1 artemis artemis 5230 broker.xml
-rw-r----- 1 artemis artemis 1102 bootstrap.xml
-rw------- 1 artemis artemis  340 artemis-users.properties
(配置文件权限合规)

安全审计

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

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

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

A. 日志配置

核查命令:

find log -type f 2>/dev/null
grep -R "logging\\|audit" etc 2>/dev/null
  • 备注:核查访问、认证、管理和异常日志。
  • 预期证据:日志目录截图、配置截图。
示例输出(节选)
find log -type f
log/artemis.log
log/artemis.audit.log
grep logging etc
etc/logging.properties: logger.handlers=FILE
(audit 日志独立文件,记录管理操作)

B. 日志样例

核查命令:

tail -n 20 log/* 2>/dev/null
  • 备注:需证明关键连接、认证失败和异常事件留痕。
  • 预期证据:日志样例、平台截图。
示例输出(节选)
tail log/artemis.log(节选)
2026-08-24 09:00:01,001 INFO [org.apache.activemq.artemis] AMQ241001: HTTP Server started
2026-08-24 10:11:22,340 WARN [org.apache.activemq.artemis.core.client] AMQ212037: Connection failure: /192.168.8.66 authentication failed
tail log/artemis.audit.log
2026-08-24 10:05:40 AUDIT admin created queue demo.dlq

C. 留存与轮转

核查命令:

grep -R "size-rotating\\|periodic" etc 2>/dev/null
  • 备注:需核实留存和轮转策略。
  • 预期证据:配置截图、制度、访谈记录。
示例输出(节选)
grep size-rotating/periodic etc
etc/logging.properties: handler.FILE.formatter=PATTERN
(日志按大小轮转,配合外部脚本归档保留 90 天)

D. 集中审计

核查命令:

journalctl | grep artemis | tail -n 50
  • 备注:如日志进入平台,应补平台证据。
  • 预期证据:平台截图、告警截图。
示例输出(节选)
journalctl | grep artemis(节选)
Aug 24 08:59:30 host systemd[1]: Started artemis.service.
Aug 24 09:00:02 host java[5501]: AMQ241001: HTTP Server started at http://192.168.10.51:8161
Aug 24 10:11:22 host java[5501]: AMQ212037: authentication failed /192.168.8.66

数据完整性

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

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

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

A. 地址与消息持久化

核查命令:

grep -R "persistence-enabled\\|journal-type" etc/broker.xml 2>/dev/null
  • 备注:需核查持久化、镜像、复制和主备情况。
  • 预期证据:配置截图、架构说明。
示例输出(节选)
grep persistence-enabled/journal-type etc/broker.xml
<persistence-enabled>true</persistence-enabled>
<journal-type>NIO</journal-type>
(持久化开启,消息写入 journal 后确认)

B. 传输完整性

核查命令:

grep -R "sslEnabled\\|connectors\\|acceptors" etc/broker.xml 2>/dev/null
  • 备注:客户端和节点间通信如使用 TLS,应明确其完整性保护作用。
  • 预期证据:SSL 配置截图、证书材料。
示例输出(节选)
grep sslEnabled/connectors/acceptors etc/broker.xml
<acceptor name="netty-ssl">tcp://192.168.10.51:61617?sslEnabled=true
<connector name="netty-ssl">tcp://mq-node2:61617?sslEnabled=true
(集群互联与客户端均走 TLS)

数据保密性

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

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

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

A. TLS 与证书

核查命令:

grep -R "keyStorePath\\|trustStorePath\\|sslEnabled" etc 2>/dev/null
  • 备注:管理和敏感业务连接应优先启用 TLS。
  • 预期证据:TLS 截图、证书截图。
示例输出(节选)
grep keyStorePath etc
keyStorePath=/opt/artemis/certs/broker.jks
trustStorePath=/opt/artemis/certs/truststore.jks
sslEnabled=true
(密钥库口令经 artemis.mask 加密存储)

B. 敏感配置保护

核查命令:

grep -R "password\\|secret\\|credential" etc 2>/dev/null
  • 备注:用户名、密码、信任库和密钥库保护是重点。
  • 预期证据:脱敏截图、权限说明。
示例输出(节选)
grep password etc(节选)
artemis-users.properties: demo-admin=ENC(1024:A1b2...)
broker.xml: cluster-password=ENC(...)
(口令均 ENC() 掩码存储,未见明文)

备份恢复

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

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

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

A. 配置备份

核查命令:

find etc -type f 2>/dev/null
  • 备注:应覆盖 broker、bootstrap、用户角色和证书配置。
  • 预期证据:备份目录截图、策略说明。
示例输出(节选)
find etc -type f
broker.xml  bootstrap.xml  jolokia-access.xml
artemis-users.properties  artemis-roles.properties
logging.properties  broker.password.codec

B. 数据与日志备份

核查命令:

find data log -type f 2>/dev/null | head
  • 备注:需说明 Journal、Paging、Bindings 等目录备份策略。
  • 预期证据:目录截图、备份说明。
示例输出(节选)
find data log | head
data/journal/activemq-journal.act
data/paging/demo/#page.bin
log/artemis.log
log/artemis.audit.log

C. 恢复能力

核查命令:

./artemis data print 2>/dev/null
  • 备注:可通过主备切换、数据恢复和实例重建说明恢复能力。
  • 预期证据:恢复手册、演练记录、工单。
示例输出(节选)
./artemis data print(节选)
Journal is read from data/journal
Journal records: 152340 messages, 88 files
(journal 完整可读,用于故障后消息恢复核查)

剩余信息保护

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

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

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

A. 历史数据与临时目录

核查命令:

find . -type d | grep -E "tmp|backup|old|paging|journal"
  • 备注:旧实例、测试队列数据和临时目录应清理。
  • 预期证据:目录截图、清理说明。
示例输出(节选)
find . -type d
data/paging  data/journal  backup-broker0  tmp/
(存在旧版本备份目录 backup-broker0,纳入备份台账)

B. 凭据残留

核查命令:

grep -R "password\\|secret\\|token" . 2>/dev/null
  • 备注:配置、日志和脚本中的敏感信息残留应重点核查。
  • 预期证据:脱敏截图、整改说明。
示例输出(节选)
grep password/secret/token .(节选)
etc/artemis-users.properties: demo-admin=ENC(***)
log/artemis.log: authentication failed(无敏感明文)

个人信息保护

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

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

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

A. 消息中的个人信息

核查命令:

grep -R "address-setting" etc/broker.xml 2>/dev/null
  • 备注:不建议现场直接查看敏感消息正文,应结合业务访谈判断。
  • 【不适用】若承载消息不含个人信息,则该点可判定不适用。
  • 预期证据:业务说明、访谈记录、队列/地址清单。
示例输出(节选)
grep address-setting etc/broker.xml
<address-setting match="demo.#">
  <dead-letter-address>demo.dlq</dead-letter-address>
  <max-size-bytes>104857600</max-size-bytes>
  <message-counter-history-day-limit>7</message-counter-history-day-limit>
</address-setting>

B. 导出与共享控制

核查命令:

find . -type f | grep -i "export\\|cli\\|consumer" 2>/dev/null
  • 备注:消费工具、管理控制台和数据导出能力需关注个人信息扩散风险。
  • 【不适用】若不承载个人信息,且无相关导出共享能力,则该点不适用。
  • 预期证据:权限说明、制度、访谈记录。
示例输出(节选)
find . | grep export|cli|consumer
bin/artemis consumer
bin/artemis producer
bin/artemis data print
(CLI 工具使用需堡垒机授权并留痕)

入侵防范

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

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

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

A. 控制台与管理端口暴露

核查命令:

grep -R "console\\|management\\|acceptors" etc 2>/dev/null
  • 备注:重点核查控制台、管理端口和客户端接入端口暴露情况。
  • 预期证据:配置截图、端口截图、网络材料。
示例输出(节选)
grep console/management/acceptors etc
bootstrap.xml: binding http://192.168.10.51:8161
broker.xml: acceptor tcp://192.168.10.51:61617?sslEnabled=true
(控制台与接入端口均已收敛并启用认证/TLS)

B. 默认账户与危险地址权限

核查命令:

grep -R "artemis-users.properties\\|security-setting" etc 2>/dev/null
  • 备注:关注默认用户、过度开放地址权限和测试队列。
  • 预期证据:用户截图、权限截图、处置说明。
示例输出(节选)
grep users/security-setting etc
artemis-users.properties: demo-admin=***
security-setting match="demo.#": send/consume 最小授权
(无匿名用户,角色映射实名对应运维人员)

C. 版本与漏洞风险

核查命令:

./artemis version 2>/dev/null
  • 备注:需确认版本和高危漏洞整改情况。
  • 预期证据:版本截图、补丁或整改记录。
示例输出(节选)
./artemis version
Apache ActiveMQ Artemis 2.28.0
(版本较新,CVE 修复情况见补丁台账)

D. 防护与告警联动

核查命令:

tail -n 20 log/* 2>/dev/null
  • 备注:Artemis 入侵防范通常依赖网络隔离、主机防护和日志告警平台联动。
  • 预期证据:平台截图、告警记录、主机防护材料。
示例输出(节选)
tail log/artemis.log(节选)
2026-08-24 10:11:22,340 WARN AMQ212037: Connection failure: /192.168.8.66 authentication failed
2026-08-24 10:11:25,101 INFO RemotingService: Removed connection for /192.168.8.66
(认证失败事件完整记录并联动防火墙封禁告警)

参考依据

关联文章