『CVE』简析CVE-2023-48795:SSH协议前缀截断攻击(Terrapin攻击)

文章目录

  • OpenSSH 9.6更新公告
  • Terrapin攻击 (CVE-2023-48795)
    • 基本信息
    • 利用手段
    • 利用路径
    • 利用条件
    • 利用原理及示意图
    • 危害
    • Terrapin-Scanner
  • 基于Terrapin的潜在风险:CVE-2023-46445 & 46446
  • 参考

OpenSSH 9.6更新公告

*ssh(1), sshd(8):

implement protocol extensions to thwart the so-called “Terrapin attack” discovered by Fabian Bäumer, Marcus Brinkmann and Jörg Schwenk. This attack allows a MITM to effect a limited break of the integrity of the early encrypted SSH transport protocol by sending extra messages prior to the commencement of encryption, and deleting an equal number of consecutive messages immediately after encryption starts. A peer SSH client/server would not be able to detect that messages were deleted.


实施协议扩展以挫败 Fabian Bäumer、Marcus Brinkmann 和 Jörg Schwenk 发现的所谓 “Terrapin 攻击”。这种攻击允许中间人(adversary-in-the-middle, MITM) 在加密开始前发送额外信息,并在加密开始后立即删除相同数量的连续信息,从而有限度地破坏早期加密 SSH 传输协议的完整性。对等 SSH 客户端/服务器将无法检测到信息已被删除。

While cryptographically novel, the security impact of this attack is fortunately very limited as it only allows deletion of consecutive messages, and deleting most messages at this stage of the protocol prevents user user authentication from proceeding and results in a stuck connection.


虽然在密码学上很新颖,但幸运的是,这种攻击对安全的影响非常有限,因为它只允许删除连续的报文,而在协议的这一阶段删除大部分报文会阻止用户验证的进行,并导致连接卡死。

The most serious identified impact is that it lets a MITM to delete the SSH2_MSG_EXT_INFO message sent before authentication starts, allowing the attacker to disable a subset of the keystroke timing obfuscation features introduced in OpenSSH 9.5. There is no other discernable impact to session secrecy or session integrity.


已发现的最严重影响是,它使 MITM 能够删除在身份验证开始前发送的 SSH2_MSG_EXT_INFO 消息,使攻击者能够禁用 OpenSSH 9.5 中引入的按键定时混淆功能的一个子集。对会话保密性或会话完整性没有其他明显影响。

OpenSSH 9.6 addresses this protocol weakness through a new “strict KEX” protocol extension that will be automatically enabled when both the client and server support it. This extension makes two changes to the SSH transport protocol to improve the integrity of the initial key exchange.


OpenSSH 9.6 通过新的 **"严格 KEX "**协议扩展解决了这一协议弱点,当客户端和服务器都支持该扩展时,它将自动启用。该扩展对 SSH 传输协议做了两处修改,以提高初始密钥交换的完整性。

Firstly, it requires endpoints to terminate the connection if any unnecessary or unexpected message is received during key exchange (including messages that were previously legal but not strictly required like SSH2_MSG_DEBUG). This removes most malleability from the early protocol.


首先,它要求端点在密钥交换过程中收到任何不必要或意外信息(包括 SSH2_MSG_DEBUG 等以前合法但并非严格要求的信息)时终止连接。这就消除了早期协议的大部分可变性。

Secondly, it resets the Message Authentication Code counter at the conclusion of each key exchange, preventing previously inserted messages from being able to make persistent changes to the sequence number across completion of a key exchange. Either of these changes should be sufficient to thwart the Terrapin Attack.


其次,它在每次密钥交换结束时重置信息验证码计数器,防止先前插入的信息在密钥交换完成后对序列号进行持续更改。无论哪种变化,都足以挫败 Terrapin 攻击。

More details of these changes are in the PROTOCOL file in the OpenSSH source distribition.


有关这些更改的更多详情,请参阅 OpenSSH 源代码发行版中的 PROTOCOL 文件。

Terrapin攻击 (CVE-2023-48795)

基本信息

CVE-2023-48795: BaseScore N/A

CVSS:3.1/N/A

The SSH transport protocol with certain OpenSSH extensions, found in OpenSSH before 9.6 and other products, allows remote attackers to bypass integrity checks such that some packets are omitted (from the extension negotiation message), and a client and server may consequently end up with a connection for which some security features have been downgraded or disabled, aka a Terrapin attack. This occurs because the SSH Binary Packet Protocol (BPP), implemented by these extensions, mishandles the handshake phase and mishandles use of sequence numbers. For example, there is an effective attack against SSH’s use of ChaCha20-Poly1305 (and CBC with Encrypt-then-MAC). The bypass occurs in chacha20-poly1305@openssh.com and (if CBC is used) the -etm@openssh.com MAC algorithms.


在 9.6 之前的 OpenSSH 和其他产品中找到的具有某些 OpenSSH 扩展的 SSH 传输协议允许远程攻击者绕过完整性检查,从而省略某些数据包(来自扩展协商消息),因此客户端和服务器可能最终获得某些安全功能已降级或禁用的连接。 又名 Terrapin 攻击。这是因为这些扩展实现的 SSH 二进制数据包协议 (BPP) 错误地处理了握手阶段,并错误地处理了序列号的使用。例如,针对 SSH 使用 ChaCha20-Poly1305(以及带有 Encrypt-then-MAC 的 CBC)的攻击存在有效攻击。旁路发生在 chacha20-poly1305@openssh.com 和(如果使用 CBC)-etm@openssh.com MAC 算法中。

利用手段

中间人攻击、SSH握手、流量攻击

利用路径

在SSH双方建立安全通道前,有一次明文消息握手,中间人此时向SSH服务器发送X条报文,可以阻止Server在安全通道中发送给Client的前X条消息,可以干扰连接的设置,降低所使用的安全性

握手使用计数器计算收发包数,之后计数器用于验证握手过程是否完整。只要计数正确,允许继续连接。

利用条件

  1. 特定加密算法:ChaCha20-Poly1305和CBC with Encrypt-then-MAC

  2. 攻击者处于中间人位置,可以在 TCP/IP 层拦截和修改连接的流量

  3. 本地网络发起,从Internet发起很困难

    The Terrapin attack requires an active Man-in-the-Middle attacker, that means some way for an attacker to intercept and modify the data sent from the client or server to the remote peer. This is difficult on the Internet, but can be a plausible attacker model on the local network.

利用原理及示意图

攻击者可以在初始密钥交换期间注入任意数量的SSH消息,并在交换完成后移除相同数量的消息,从而破坏SSH扩展协商(RFC8308),可降级连接的安全性。

ChaCha20-Poly1305:

攻击者在握手结束前注入 IGNORE 信息,计数器的变化会在安全通道中阻断 EXT_INFO消息

在这里插入图片描述

CBC-EtM:

攻击者在Client发送 NEWKEYS 之前注入 UNKNOWN。 由于Server已经发送了 NEWKEYS,UNIMPLMENTED 消息将在 EXTINFO 之后在安全通道内发送。 损坏的未实现消息很可能被忽略

在这里插入图片描述

危害

该漏洞官方描述为:General Protocol Flaw(一般协议缺陷)

……通过中间人攻击,攻击者可能迫使SSH客户端采用较弱的身份验证方式,并停用一些防御机制,目前很难准确评估这个漏洞的真正影响……

……漏洞利用成本高,在真实场景中被利用几率很低,但影响面较大……

The data in the messages exchanged after the completion of the handshake determines the severity of the attack’s repercussions.
握手完成后交换的消息中的数据决定了攻击影响的严重性。

Right now, the biggest mitigation factor for the attack is the MiTM requirement, which makes Terrapin a less severe threat. For this reason, patching CVE-2023-48795 may not be a priority in many cases.
目前,攻击的最大缓解因素是 MiTM 的需求,这使得 Terrapin 的威胁不那么严重。因此,在许多情况下,修补 CVE-2023-48795 可能不是优先事项。

Terrapin-Scanner

官方给出了一个漏扫工具,开源在gthb

https://github.com/RUB-NDS/Terrapin-Scanner
Terrapin Vulnerability Scanner 是一个用 Go 编写的小型实用程序,可用于确定 SSH 客户端或服务器对 Terrapin 攻击的漏洞。漏洞扫描程序需要与对等方建立单个连接,以收集所有支持的算法。但是,它不会执行完全成熟的 SSH 密钥交换,永远不会尝试在服务器上进行身份验证,并且在实践中不会执行攻击。相反,漏洞是通过检查支持的算法和对已知对策(严格密钥交换)的支持来确定的。这可能会错误地声明漏洞,以防对等方支持此工具未知的对策。

看一下该工具的核心代码,在Terrapin-Scanner/blob/main/tscanner/tscanner.go#Scan()

在这里插入图片描述
这里就是简单的发了个tcp包到目标服务器,通过ssh服务器返回的banner来判定是否符合版本号、是否使用了有问题的算法、是否修复了该漏洞

在这里插入图片描述

基于Terrapin的潜在风险:CVE-2023-46445 & 46446

Python SSH客户端AsyncSSH的开源代码中存在可利用风险,目前Terrapin研究员上报了两个CVE

CVE-2023-46445: BaseScore 5.9

CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:H/A:N

An issue in AsyncSSH before 2.14.1 allows attackers to control the extension info message (RFC 8308) via a man-in-the-middle attack, aka a “Rogue Extension Negotiation.”


低于 2.14.1 的 AsyncSSH 中存在一个问题,允许攻击者通过中间人攻击(也称为“恶意扩展协商”)来控制扩展信息消息 (RFC 8308)。

CVE-2023-46446: BaseScore 6.8

CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:N

An issue in AsyncSSH before 2.14.1 allows attackers to control the remote end of an SSH client session via packet injection/removal and shell emulation, aka a “Rogue Session Attack.”


低于 2.14.1 的 AsyncSSH 中存在一个问题,允许攻击者通过数据包注入/删除和 shell 仿真来控制 SSH 客户端会话的远程端,也称为“恶意会话攻击”。

参考

oss-security - Announce: OpenSSH 9.6 released (openwall.com)

Terrapin attacks can downgrade security of OpenSSH connections

terrapin-attack.com

NVD - CVE-2023-48795 — NVD - CVE-2023-48795 (nist.gov)

NVD - CVE-2023-46445— NVD - CVE-2023-46445 (nist.gov)

NVD - CVE-2023-46446— NVD - CVE-2023-46446 (nist.gov)

Harden AsyncSSH state machine against message injection during handshake · ronf/asyncssh@83e43f5 (github.com)

新型攻击动摇互联网安全基础,SSH安全性是否被打破?

欢迎关注我的博客 :CSDN@Ho1aAs
版权属于:Ho1aAs
本文链接:https://ho1aas.blog.csdn.net/article/details/135199758
版权声明:本文为原创,转载时须注明出处及本声明

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/577654.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

算法问题:最优二叉搜索树

给定一个序列 有n个有序且各不相同的键, 集合表示在K中成功的搜索的概率; 为n1 个不同的哑键,表示所有在和之间的值, 表示不成功的搜索的概率. 创建二叉搜索树, 使得其期望搜索花费最小。 一个例子 最优子结构 如果一棵最优二叉搜…

udp多播/组播那些事

多播与组播 多播(multicast)和组播(groupcast)是相同的概念,用于描述在网络中一对多的通信方式。在网络通信中,单播(unicast)是一对一的通信方式,广播(broad…

Mybatis如何兼容各类日志?

文章目录 适配器模式日志模块代理模式1、静态代理模式2、JDK动态代理 JDBC Logger总结 Apache Commons Logging、Log4j、Log4j2、java.util.logging 等是 Java 开发中常用的几款日志框架,这些日志框架来源于不同的开源组织,给用户暴露的接口也有很多不同…

边缘计算AI智能盒子的视频源必须是固定点监控摄像头吗?

边缘计算AI盒子的视频输入源,要求是RTSP或者GB28181,可以是固定点监控摄像头(枪机、球机等),也可以是移动摄像头,例如执法记录仪、智能安全帽、布控球等,但由于RTSP输入要求摄像头有固定IP&…

使用 Postman 进行并发请求:实用教程与最佳实践

背景介绍 最近,我们发起了一个在线图书管理系统的项目。我负责的一个关键模块包括三个主要后台接口: 实现对books数据的检索。实施对likes数据的获取。通过collections端点访问数据。 应对高流量的挑战 在设计并部署接口时,我们不可避免地…

西南科技大学计算机网络实验二 (IP协议分析与以太网协议分析)

一、实验目的 通过分析由跟踪执行traceroute程序发送和接收捕获得到的IP 数据报,深入研究在IP 数据报中的各种字段,理解IP协议。基于ARP命令和Ethereal进行以太网帧捕获与分析,理解和熟悉ARP协议原理以及以太网帧格式。 二、实验环境 与因特网连接的计算机网络系统;主机操…

编写第一个APP自动化脚本 appium_helloworld ,将脚本跑起来

一、前置说明 我们把学习 Appium 的第一个脚本称为 appium_helloworld,它用于展示 Appium 的基本用法,验证配置和环境是否正确。 Appium 自动化操作 APP 的基本流程(Android平台): 启动 Appium Serveradb 连接设备&…

【ctf】whireshark流量分析之tcp_杂篇

目录 简介 常考 图片类 提取png.pcap(常规) 异常的流量分析(*,特殊) john-in-the-middle(特殊) ​编辑 zip类 1.pcap(常规) 方法1(常规提取压缩包&…

[足式机器人]Part4 南科大高等机器人控制课 CH10 Bascis of Stability Analysis

本文仅供学习使用 本文参考: B站:CLEAR_LAB 笔者带更新-运动学 课程主讲教师: Prof. Wei Zhang 南科大高等机器人控制课 Ch10 Bascis of Stability Analysis 1. Background1.1 What is Stability Analysis1.2 General ODE Models for Dynamic…

Web前端VScode/Vue3/git/nvm/node开发环境安装

目录 1 基本配置 2 安装vscode 3 安装vue 4 配置bash 5 安装nvm 6 安装node 7 安装yarn 8 新建项目 9 运行helloworld 1 基本配置 本篇是为了做前端开发的环境而写。使用的操作系统是windows 10 64位 2 安装vscode 现在做vue和node基本就是vscode和webstorm&#x…

Cesium.js三维地图的实现(依托天地图CDN文件)

零、技术选型: Vue2、VueCli5、天地图、Cesium.js 一、通过天地图官网案例实现 需要引入天地图官方提供的CDN链接访问Cesium.js相关文件 相关文件: https://api.tianditu.gov.cn/cdn/demo/sanwei/static/cesium/Cesium.js https://api.tianditu.gov.cn/…

【WPF.NET开发】数据绑定应用场景

目录 1、实现属性更改通知 示例 2、双向绑定​​​更新源 示例 3、对分层数据使用主-从模式 示例 4、对分层 XML 数据使用主-从模式 示例 5、绑定两个控件的属性 示例 6、创建和绑定到 ObservableCollection 示例 7、使用 XMLDataProvider 和 XPath 查询绑定到 XML…

喜报!酷克数据携手中移在线入选2023大数据“星河”数据库优秀案例

12月20日-21日,由中国信通院、中国通信标准化协会主办,中国通信标准化协会大数据技术标准推进委员会承办的“2023数据资产管理大会”在京召开。 在会上,第七届大数据“星河(Galaxy)”案例评选结果正式公布。中移在线服…

Local Binary Convolutional Neural Networks (LBCNN)

论文:https://arxiv.org/abs/1608.06049 代码:GitHub - juefeix/lbcnn.torch: Torch implementation of CVPR17 - Local Binary Convolutional Neural Networks http://xujuefei.com/lbcnn.html 摘要: 我们提出了局部二值卷积(LBC)&#x…

【ScienceAI Weekly】DeepMind最新研究再登Nature;我国首个自研地球系统模型开源;谷歌推出医疗保健模型

AI for Science 的新成果、新动态、新视角抢先看—— * DeepMind 最新研究 FunSearch 登 Nature * 谷歌推出医疗保健行业模型 MedLM * 晶泰科技冲刺港交所,AI机器人赋能 AI for Science * GHDDI 与微软研究院科学智能中心达成合作 * 用于地震学处理分析的 AI 工…

【华为机试】2023年真题B卷(python)-分月饼

一、题目 题目描述&#xff1a; 中秋节公司分月饼&#xff0c;m个员工&#xff0c;买了n个月饼&#xff0c;m<n&#xff0c;每个员工至少分1个月饼&#xff0c;但可以分多个&#xff0c;单人份到最多月饼的个数为Max1&#xff0c;单人分到第二多月饼的个数是Max2&#xff0c…

python(上半部分)

第一部分 1、input()语句默认结果是字符串 2、type()可以判断变量的类型 3、input()输出语句 &#xff08;默认为字符串类型&#xff09; 4、命名规则&#xff1a;中文、英文、数字、_&#xff0c;数字不可开头&#xff0c;大小写敏感。 5、 %s&#xff1a;将内容转换成…

Java并发(二十一)----wait notify介绍

1、小故事 - 为什么需要 wait 由于条件不满足&#xff08;没烟干不了活啊&#xff0c;等小M把烟送过来&#xff09;&#xff0c;小南不能继续进行计算 但小南如果一直占用着锁&#xff0c;其它人就得一直阻塞&#xff0c;效率太低 于是老王单开了一间休息室&#xff08;调…

vue场景 无分页列表条件过滤,子组件多选来自父组件的列表

日常开发中&#xff0c;经常会遇到下面场景&#xff1a; 页面加载一个无分页列表&#xff0c;同时工具栏设置多个条件可对列表过滤的场景(典型的就是关键字模糊查询)父组件传给子组件列表&#xff0c;子组件中需要多选列表多选&#xff0c;选择结果返回父组件 1 无分页列表过…

行业首台7英寸彩屏,掌阅iReader Color 7 发布

12月22日消息&#xff0c;掌阅iReader 继2021年发布 C6 Pro 后&#xff0c;时隔2年再次推出彩屏系列新产品 Color 7&#xff0c;该产品为彩色电子纸智能阅读本&#xff0c;采用 Kaleido3 新一代彩色电子纸技术&#xff0c;黑白像素密度为 300PPI &#xff0c;彩色像素密度为 15…