通信矩阵检测结果中存在违规开放端口

问题描述

[安全][通信矩阵检测]通信矩阵检测结果中存在违规开放端口

实际结果

通信矩阵检测结果中存在违规开放端口,漏洞描述:通信矩阵检测结果中存在违规开放端口

检出工具:通信矩阵检测漏洞细节:

高危–TCP_40010端口不在矩阵模板中

高危–TCP_40020端口不在矩阵模板中

高危–TCP_40021端口不在矩阵模板中

高危–TCP_40023端口不在矩阵模板中

高危–TCP_40030端口不在矩阵模板中

高危–TCP_40031端口不在矩阵模板中

高危–TCP_40032端口不在矩阵模板中

高危–TCP_40033端口不在矩阵模板中

高危–TCP_40035端口不在矩阵模板中

高危–TCP_40040端口不在矩阵模板中

这些端口是做什么的?

答案内容由AI生成,仅供参考:

通信矩阵检测结果中存在违规开放端口问题分析

根据您提供的信息,设备在进行通信矩阵合规性检测时发现多个违规开放的网络端口。以下是基于所提供的知识库内容和上下文进行的详细分析与说明。


:red_circle: 问题概述

  • 漏洞名称:通信矩阵检测结果中存在违规开放端口
  • 设备地址10.66.87.192
  • 检出工具:通信矩阵检测
  • 漏洞等级:高危
  • 漏洞总数:11 个违规端口(其中部分已确认为调试端口)

检测结果显示:多个 TCP 端口(如 40010、40020、40021、40023、40035 等)在系统中处于开放状态,但未被列入通信矩阵模板中,因此被判定为“违规开放端口”。


:puzzle_piece: 涉及违规端口分析

端口号 是否在知识库中存在 服务/用途 是否应开放 风险等级
TCP 23 :white_check_mark: Telnet 服务 :warning: 不推荐 高危
TCP 40010 :white_check_mark: framework 服务(调试端口) :cross_mark: 高危
TCP 40020 :white_check_mark: hardware 服务(调试端口) :cross_mark: 高危
TCP 40021 :white_check_mark: security 服务(调试端口) :cross_mark: 高危
TCP 40023 :white_check_mark: k-patentssensor / alarm 服务 :cross_mark: 高危
TCP 40030 :white_check_mark: hardware 模块调试端口 :cross_mark: 高危
TCP 40031 :white_check_mark: om_priv 服务调试端口 :cross_mark: 高危
TCP 40032 :white_check_mark: energy 能耗管理调试端口 :cross_mark: 高危
TCP 40033 :white_check_mark: ras 可靠性分析调试端口 :cross_mark: 高危
TCP 40035 :white_check_mark: om 服务调试端口 (debug_console) :cross_mark: 高危
TCP 40040 :white_check_mark: interface 接口服务调试端口 :cross_mark: 高危

:books: 根因分析(基于知识库)

:white_check_mark: 400xx 系列端口为调试端口,仅用于开发环境

依据文档 chunk #3(BMC端口扫描)中的明确说明:

“这些400xx端口不是要开放的端口。这些400xx端口是调试(构建hpm包默认-bt为debug)包中各个服务的调试(debug_console)端口……在 release包(构建 hpm包的时候加上-bt release参数)中不会开放这些端口。”

即:

  • 这些 40010, 4002040040 端口是 各微服务的 debug_console 调试接口
  • 它们在 debug 构建版本中默认启用,用于开发调试。
  • 正式发布(release)版本中应禁用或关闭

:magnifying_glass_tilted_left: 示例:

  • 40021 对应 security 服务
  • 40035om 服务监听(见 KG 实体关系)

:warning: Telnet(端口 23)不符合安全通信规范

虽然 Telnet 在某些调试场景中可用(如 QEMU 环境),但它以明文传输数据,无加密,属于高危不安全协议

  • 在通信矩阵标准中,SSH(端口 22)是推荐的远程管理方式
  • 开放 Telnet 且未在通信矩阵中注册,属于典型的安全违规。

:bullseye: 合规通信矩阵参考(来自 openUBMC通信矩阵 文档)

标准 openUBMC 固件应仅开放以下核心服务端口:

目的端口 协议 服务 描述
22 TCP SSH/SFTP/SCP 安全远程管理(加密):white_check_mark:
80 TCP HTTP 重定向到 HTTPS :warning:
443 TCP HTTPS/Redfish Web 管理与 API 接入 :white_check_mark:
623 UDP IPMI 带外管理 :white_check_mark:
161 UDP SNMP 网管监控 :white_check_mark:
2198, 2199, 8208 TCP KVM/VMM 远程控制台 :white_check_mark:

:white_check_mark: 上述端口均在通信矩阵中有明确定义,且具备认证和加密机制。

而所有 400xx 端口 均不属于正常运行所需的服务端口,不应暴露在生产或测试环境中。


:white_check_mark: 正确处理建议

:white_check_mark: 1. 使用 Release 构建版本

确保 BMC 固件使用 -bt release 参数构建 HPM 包:

hpm build -bt release

这样可自动禁用所有 debug_console 相关的调试端口(40010, 40020…),从根本上消除此类漏洞。


:white_check_mark: 2. 禁止 Telnet,启用 SSH

  • 若非必要,关闭 Telnet(端口 23)服务
  • 所有远程访问通过 SSH(端口 22) 进行,并启用密钥认证。
  • 可将 Telnet 替换为更安全的加密通道。

:white_check_mark: 3. 审查并更新通信矩阵模板

当前检测工具使用的模板为:

920X_通信矩阵模板_嵌入式产品.中文.xlsx

建议:

  • 更新模板以明确列出所有允许开放的端口和服务。
  • 明确标注 400xx 端口为“仅限 debug 版本”,不得在 release 版本中开启。
  • 加强 CI/CD 流程中对通信矩阵的自动化校验。

:white_check_mark: 4. 运行时端口扫描验证

定期执行端口扫描命令进行自查:

nmap -sS -sV -p 1-65535 <设备IP>

比对结果是否符合通信矩阵定义,及时发现异常开放端口。


:yellow_circle: 总结结论

项目 结论
问题性质 高危安全违规
根本原因 使用了 debug 构建版本,导致大量调试端口暴露
风险影响 攻击者可能通过这些端口接入内部服务,获取敏感信息或执行未授权操作
是否合规 :cross_mark: 不符合通信矩阵规范
修复建议 使用 release 构建、关闭 Telnet、加强通信矩阵管理

:white_check_mark: 最终建议:将设备固件升级为 -bt release 构建版本后重新检测,上述“违规开放端口”问题将自动消失。


:pushpin: 如需进一步确认具体服务映射或配置路径,可查阅:

相关链接:

  1. BMC端口扫描-查看开放的端口是否为产品文档中描述的端口,是否为必须开放的服务端口?
  2. qemu启动之后,ssh可以访问,但是web和ipmi都无法访问
  3. openUBMC通信矩阵(初版)
  4. 线缆接线告警问题排查方法分享
  5. openUBMC通信矩阵 | 文档中心 | openUBMC

@huamouwei 参考帖子 BMC端口扫描-查看开放的端口是否为产品文档中描述的端口,是否为必须开放的服务端口?

另外 23 端口 是因为debug包中带了telnet 工具, 实际上release包中不能不会带这个工具。