OpenSSH 8.3 发布,修复了 scp 漏洞

经过三个月的开发 提交 发布 OpenSSH 8.3,一个开放的客户端和服务器实现,用于通过 SSH 2.0 和 SFTP 协议工作。

新版本增加了针对 scp 攻击的保护,允许服务器传递请求之外的其他文件名(与 过去的脆弱性,攻击无法更改用户选择的目录或全局掩码)。 回想一下,在 SCP 中,服务器决定将哪些文件和目录发送给客户端,而客户端仅检查返回的对象名称的正确性。 所识别问题的本质是,如果 utimes 系统调用失败,则文件的内容将被解释为文件元数据。

当连接到攻击者控制的服务器时,在调用 utimes 时导致失败的配置中使用 scp 进行复制时(例如,当 utimes 被禁止时),可以利用该功能在用户的 FS 中保存其他文件名和其他内容。 SELinux 策略或系统调用过滤器)。 估计发生真正攻击的可能性很小,因为在典型配置中 utimes 调用不会失败。 此外,该攻击不会被忽视 - 调用 scp 时,会显示数据传输错误。

一般变化:

  • 在sftp中,“-1”参数的处理已停止,类似于ssh和scp,之前被接受但被忽略;
  • 在 sshd 中,使用 IgnoreRhosts 时,现在有三种选择:“yes”- 忽略 rhosts/shosts、“no”- 尊重 rhosts/shosts 和“shosts-only”- 允许“.shosts”但不允许“.rhosts”;
  • ssh 现在支持 LocalFoward 和 RemoteForward 设置中的 %TOKEN 替换,用于重定向 Unix 套接字;
  • 如果没有包含公钥的单独文件,则允许使用私钥从未加密的文件中加载公钥;
  • 如果系统中存在 libcrypto,则 ssh 和 sshd 现在使用该库中的 chacha20 算法的实现,而不是性能落后的内置可移植实现;
  • 实现了在执行命令“ssh-keygen -lQf /path”时转储已撤销证书的二进制列表内容的功能;
  • 可移植版本实现了带有 SA_RESTART 选项的信号中断 select 操作的系统定义;
  • 解决了HP/UX和AIX系统上的汇编问题;
  • 修复了在某些 Linux 配置上构建 seccomp 沙箱的问题;
  • 改进了 libfido2 库检测并使用“--with-security-key-builtin”选项解决了构建问题。

OpenSSH 开发人员还再次警告使用 SHA-1 哈希的算法即将分解,因为 晋升 具有给定前缀的碰撞攻击的有效性(选择碰撞的成本估计约为 45 美元)。 在即将发布的版本之一中,他们计划默认禁用使用公钥数字签名算法“ssh-rsa”的功能,该算法在 SSH 协议的原始 RFC 中提到,并且在实践中仍然广泛存在(以测试使用如果您的系统中没有 ssh-rsa,您可以尝试使用选项“-oHostKeyAlgorithms=-ssh-rsa”通过 ssh 连接)。

为了顺利过渡到 OpenSSH 中的新算法,在未来版本中,将默认启用 UpdateHostKeys 设置,这将自动将客户端迁移到更可靠的算法。 推荐的迁移算法包括基于 RFC2 RSA SHA-256 的 rsa-sha512-8332/2(自 OpenSSH 7.2 起支持并默认使用)、ssh-ed25519(自 OpenSSH 6.5 起支持)和基于 ecdsa-sha2-nistp256/384/521 RFC5656 ECDSA(自 OpenSSH 5.7 起支持)。

截至最新版本,“ssh-rsa”和“diffie-hellman-group14-sha1”已从定义允许对新证书进行数字签名的算法的 CASignatureAlgorithms 列表中删除,因为在证书中使用 SHA-1 会带来额外的风险由于攻击者有无限的时间来搜索现有证书的冲突,而对主机密钥的攻击时间则受到连接超时(LoginGraceTime)的限制。

来源: opennet.ru

添加评论