SSH协议惊现Terrapin攻击:前缀截断可降级ChaCha20-Poly1305安全

Terrapin攻击(CVE-2023-48795)是SSH协议的前缀截断漏洞,针对ChaCha20-Poly1305和Encrypt-then-MAC算法。攻击者通过注入SSH_MSG_IGNORE消息操纵序列号,破坏安全通道完整性,可降级扩展协商。本文详细分析攻击原理、影响范围及strict kex等缓解措施,帮助安全团队防范此次中等严重性威胁。

🔓 Medium 漏洞利用

Terrapin攻击(CVE-2023-48795)利用SSH握手期间序列号调整,通过注入并移除SSH_MSG_IGNORE消息,实现对ChaCha20-Poly1305和Encrypt-then-MAC算法的前缀截断,破坏安全通道完整性。攻击者可降级扩展协商、禁用安全加固措施,并在中间人场景下利用实现缺陷。

来源:OSV | 2023-12-18 | 原文链接

🔍 关键发现

  • Terrapin攻击针对SSH协议中ChaCha20-Poly1305和Encrypt-then-MAC(需CBC模式)算法,通过未认证的SSH_MSG_IGNORE消息操纵序列号实现前缀截断。
  • 攻击可删除安全通道起始处的任意消息,导致扩展协商降级(如禁用RFC8308扩展),削弱连接安全性。
  • OpenSSH提出的'strict kex'缓解措施需客户端和服务端同时支持才有效,否则仍可被绕过。

⚔️ 攻击链分析

['攻击者在初始密钥交换期间注入任意数量的SSH_MSG_IGNORE消息。', '利用SSH协议在密钥交换后仅检查隐式序列号,且未认证多余IGNORE消息的漏洞。', '在密钥交换完成后,移除相同数量的消息(如SSH_MSG_EXT_INFO),实现前缀截断。', '攻击者借此降级安全扩展或利用实现缺陷,完成中间人攻击。']

🚩 失陷指标 (IOC)

  • SSH会话中异常增多的SSH_MSG_IGNORE消息
  • 密钥交换后关键消息(如SSH_MSG_EXT_INFO)缺失或顺序异常

🛡️ 缓解建议

  • ✅ 升级SSH实现以支持'strict kex'(严格密钥交换),确保客户端和服务端均启用。
  • ✅ 临时禁用受影响算法(如chacha20-poly1305@openssh.com和*-etm@openssh.com),改用AES-GCM等不受影响算法。

涉及漏洞:["CVE-2023-48795"]


⚠️ 本文仅供安全研究与学习,IOC 信息请勿用于非法目的。

🤖 常见问题解答(FAQ)

❓ Terrapin攻击是否影响所有SSH实现?

仅影响支持ChaCha20-Poly1305或Encrypt-then-MAC(需CBC模式)的实现。OpenSSH 9.6+已修复,但需双方均启用strict kex。

❓ 如何检测是否受Terrapin攻击?

检查SSH会话日志中是否有异常数量的SSH_MSG_IGNORE消息,或验证密钥交换后扩展消息(SSH_MSG_EXT_INFO)是否被删除。

❓ 临时缓解措施是什么?

禁用受影响算法,强制使用AES-GCM(如ssh -o Ciphers=aes256-gcm@openssh.com),或升级至支持strict kex的版本。

[!] CONTACT_CHANNELS

如需商务合作、技术咨询或漏洞反馈,请通过以下离岸节点联系作者。

> PING_AUTHOR (@A1RedTeam)