掘金 后端 ( ) • 2024-04-27 09:33

highlight: a11y-dark

最近在处理客户的 Nessus 漏洞扫描文件,记录下处理修改 EMQX 密码套件的过程。

1. 漏洞提示

image.png

图片中没显示全的下面列出来,并翻译一下:

Name(名称)

SSL/TLS Recommended Cipher Suites (PCI DSS)

SSL/TLS推荐密码套件(PCI DSS)

Synopsis(概要)

The remote host advertises discouraged SSL/TLS ciphers.

远程主机不鼓励使用SSL/TLS密码。

Description(描述)

The remote host has open SSL/TLS ports which advertise discouraged cipher suites. It is recommended to only enable support for the following cipher suites:

远程主机具有开放的SSL/TLS端口,这些端口宣传不推荐的密码套件。建议只启用对以下密码套件的支持:

TLSv1.3:

  • 0x13,0x01 TLS13_AES_128_GCM_SHA256
  • 0x13,0x02 TLS13_AES_256_GCM_SHA384
  • 0x13,0x03 TLS13_CHACHA20_POLY1305_SHA256

TLSv1.2:

  • 0xC0,0x2B ECDHE-ECDSA-AES128-GCM-SHA256
  • 0xC0,0x2F ECDHE-RSA-AES128-GCM-SHA256
  • 0xC0,0x2C ECDHE-ECDSA-AES256-GCM-SHA384
  • 0xC0,0x30 ECDHE-RSA-AES256-GCM-SHA384
  • 0xCC,0xA9 ECDHE-ECDSA-CHACHA20-POLY1305
  • 0xCC,0xA8 ECDHE-RSA-CHACHA20-POLY1305
  • 0xCC,0xAA DHE_RSA_WITH_CHACHA20_POLY1305_SHA256

This is the recommended configuration for the vast majority of services, as it is highly secure and compatible with nearly every client released in the last five (or more) years.

这是大多数服务的推荐配置,因为它非常安全,并且与过去五年(或更长时间)发布的几乎所有客户机兼容。

Solution(解决方案)

Only enable support for recommended cipher suites.

只启用对推荐密码套件的支持。

See Also(参见)

https://wiki.mozilla.org/Security/Server_Side_TLS https://ssl-config.mozilla.org/ https://ciphersuite.info/page/faq/ https://ciphersuite.info/cs/TLS_DHE_RSA_WITH_AES_128_GCM_SHA256/ https://ciphersuite.info/cs/TLS_DHE_RSA_WITH_AES_256_GCM_SHA384/

Plugin Output(插件输出)

The remote host has listening SSL/TLS ports which advertise the discouraged cipher suites outlined below:

远程主机有侦听SSL/TLS端口,这些端口宣传下面列出的不推荐的密码套件:

High Strength Ciphers (>= 112-bit key)

高强度密码(>= 112位密钥)

Name                          Code             KEX           Auth     Encryption             MAC
----------------------        ----------       ---           ----     ---------------------  ---
ECDHE-RSA-AES128-SHA256       0xC0, 0x27       ECDH          RSA      AES-CBC(128)           SHA256
ECDHE-RSA-AES256-SHA384       0xC0, 0x28       ECDH          RSA      AES-CBC(256)           SHA384

The fields above are :

上面的字段是:

{Tenable ciphername} 有效密码名

{Cipher ID code} 密码ID代码

Kex={key exchange} 密钥交换算法

Auth={authentication} 身份认证算法

Encrypt={symmetric encryption method} 对称加密算法

MAC={message authentication code} 消息认证码算法

{export flag} 导出标志

2. 解决方案

这个报错信息表明,对位于特定服务器上的 EMQX 服务所使用的 8883 端口进行了安全扫描,扫描工具发现该端口正在使用 SSL/TLS 协议,并且建议使用符合 PCI DSS(Payment Card Industry Data Security Standard)的加密套件。

PCI DSS 是一项应用在处理信用卡交易安全的标准。其中一项规定是要使用强加密算法来保护数据传输的安全。SSL/TLS 协议和其推荐的密码套件是实现这一标准的关键部分。

解决方法:

  1. 确认 EMQX 服务器配置文件中的监听端口 8883 配置,检查是否使用了推荐的加密套件。
  2. 更新 EMQX 的配置,使用更安全的加密套件。
  3. 如果不确定如何配置,可以参考 EMQX 的官方文档,找到如何设置 SSL/TLS 加密套件的指导。
  4. 更新配置后,重启 EMQX 服务以应用新的配置。
  5. 再次进行安全扫描,确保报错已经解决。

注意:在配置加密套件时,应当考虑到兼容性和安全性之间的平衡,确保选择的加密套件符合当前的安全标准,同时不会对现有应用程序造成不必要的麻烦。

3. 处理过程

根据以上方法,找到了 EMQX 的官方文档,因为我们公司使用的是 4.2.1 版本的 EMQX,选择对应版本的文档,找到如下内容:

image.png

ECDHE-ECDSA-AES256-GCM-SHA384,ECDHE-RSA-AES256-GCM-SHA384,ECDHE-ECDSA-AES256-SHA384,ECDHE-RSA-AES256-SHA384,ECDHE-ECDSA-DES-CBC3-SHA,ECDH-ECDSA-AES256-GCM-SHA384,ECDH-RSA-AES256-GCM-SHA384,ECDH-ECDSA-AES256-SHA384,ECDH-RSA-AES256-SHA384,DHE-DSS-AES256-GCM-SHA384,DHE-DSS-AES256-SHA256,AES256-GCM-SHA384,AES256-SHA256,ECDHE-ECDSA-AES128-GCM-SHA256,ECDHE-RSA-AES128-GCM-SHA256,ECDHE-ECDSA-AES128-SHA256,ECDHE-RSA-AES128-SHA256,ECDH-ECDSA-AES128-GCM-SHA256,ECDH-RSA-AES128-GCM-SHA256,ECDH-ECDSA-AES128-SHA256,ECDH-RSA-AES128-SHA256,DHE-DSS-AES128-GCM-SHA256,DHE-DSS-AES128-SHA256,AES128-GCM-SHA256,AES128-SHA256,ECDHE-ECDSA-AES256-SHA,ECDHE-RSA-AES256-SHA,DHE-DSS-AES256-SHA,ECDH-ECDSA-AES256-SHA,ECDH-RSA-AES256-SHA,AES256-SHA,ECDHE-ECDSA-AES128-SHA,ECDHE-RSA-AES128-SHA,DHE-DSS-AES128-SHA,ECDH-ECDSA-AES128-SHA,ECDH-RSA-AES128-SHA,AES128-SHA

需要去掉的密码套件:

ECDHE-RSA-AES128-SHA256,ECDHE-RSA-AES256-SHA384

去掉后更新 emqx.cong 文件,重启服务即可。

看官方更新日志,好像是在 5.3.1 版本才支持的 TLS1.3,上面推荐的 TLS1.3 密码套件在目前这个版本中果然没有。

1714118711381.jpg