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的版本。