我正在使用名为lynis的工具审核一个 ubuntu 服务器,该工具对配置文件执行多项测试并提供强化服务器的建议。例如,它建议将 MaxAuthTries 的值从 6 减少到 3,这对我来说很有意义......但是有一个建议我不明白:
* Consider hardening SSH configuration [SSH-7408]
- Details : Compression (set YES to NO)
https://cisofy.com/lynis/controls/SSH-7408/
我已经阅读了给定的链接SSH-7408,并做了一些网络研究,但我不知道在 SSH 服务器中启用压缩如何使协议比禁用它更不安全。
在历史背景下(7.4 之前的 OpenSSH sshd)不设置的建议
Compression yes
确实有意义:2005 年的 OpenSSH 4.2 引入
Compression delayed
并解释了为什么他们在发行说明中将其设为默认值。在那里他们还解释了何时/为什么Compression yes
可能需要以及它暴露的风险:基于这些评论,您可以轻松地理解为什么检测到的安全扫描器
Compression yes
可能会生成警告。这是一个有潜在风险的设置,只有遗留(2005 年已经遗留)客户才需要。
但是恕我直言,建议应该设置
Compression delayed
,这也是 OpenSSH 的默认设置。但是 OpenSSH 服务器 7.4于 2016 年发布并且:
据我所知,该版本也使
Compression yes
行为与(从那时起遗留的)指令相同Compression delayed
。因此,对于 OpenSSH sshd 7.4 和更新版本,
Compression yes
不应触发任何警告。当安全扫描器生成发现并提出具体建议而不提供任何支持理由和/或不会将它们与特定版本相关联时,这是一件非常糟糕的事情。
当被问及2016 年 Github 上关于 Lynis 建议设置的来源和理由时,
Compression no
它似乎是以下的组合“大多数人不需要 SSH 压缩”
因为显然ssh 手册页指出:
“通常:不要启用不需要的设置”
减少功能会自动减少攻击面,这是有效且难以争论的,但对几乎所有其他设置也适用,并不表示使用时有任何特定风险
Compression delayed|yes
压缩和加密是危险的
在CRIME和BREACH以及类似的压缩 oracle 相关攻击的背景下,暴露秘密和/或凭据。
前两个原因不是很令人信服,最后一个不再适用,如果它真的适用的话,因为多年来在请求压缩时,默认情况下任何当前的 OpenSSH 服务器将仅在用户成功验证后才支持压缩。