В последнее время, группа ученых из Рурского университета в Бохуме, Германия, представил детали новой техники атаки MITM через SSH, который у них есть окрещенный как «Черепаха» и который, по их словам, может позволить злоумышленнику ухудшить безопасность SSH-соединения при использовании согласования расширения SSH. На практике влияние во многом будет зависеть от поддерживаемых расширений, но «почти все» уязвимы.
Terrapin, использует уязвимость (уже внесен в каталог CVE-2023-48795), который злоумышленник может воспользоваться возможностью организовать MITM-атаку при использовании OpenSSH, уязвимость позволяет перевернуть соединение, чтобы использовать менее безопасные алгоритмы аутентификации или отключить защиту от атак по побочным каналам, которые воссоздают ввод путем анализа задержек между нажатиями клавиш на клавиатуре.
«Тщательно корректируя порядковые номера во время рукопожатия, злоумышленник может удалить произвольное количество сообщений, отправленных клиентом или сервером в начале защищенного канала, причем клиент или сервер этого не заметят», — отмечают исследователи.
Что касается уязвимости, упоминается, что это влияет на все реализации SSH, которые поддерживают шифры режима ChaCha20-Poly1305 или CBC. в сочетании с режимом ETM (Encrypt-then-MAC). Например, аналогичные возможности доступны в OpenSSH уже более 10 лет.
«Чаще всего это влияет на безопасность аутентификации клиента при использовании открытого ключа RSA. При использовании OpenSSH 9.5 его также можно использовать для отключения определенных мер противодействия атакам с использованием тайминга нажатия клавиш», — пишут исследователи.
Уязвимость связана с тем, что злоумышленник, контролирующий трафик соединения (например, владелец вредоносной беспроводной точки) может корректировать порядковые номера пакетов во время процесса согласования соединения и обеспечить автоматическое удаление произвольного количества служебных сообщений SSH, отправленных клиентом или сервером.
Entre otras cosas, злоумышленник может удалить сообщения SSH_MSG_EXT_INFO, используемые для настройки расширений. протокола, который используется. Чтобы другая сторона не обнаружила потерю пакета из-за пробела в порядковых номерах, злоумышленник инициирует отправку фиктивного пакета с тем же порядковым номером, что и удаленный пакет, чтобы изменить порядковый номер. Фиктивный пакет содержит сообщение с флагом SSH_MSG_IGNORE, которое игнорируется при обработке.
Чтобы осуществить атаку Terrapin на практике, злоумышленникам необходимы возможности «человека посередине» на сетевом уровне для перехвата и изменения трафика. Кроме того, необходимо согласовать конкретные методы шифрования, чтобы обеспечить безопасную передачу данных во время соединения.
Атака не может быть осуществлена с использованием потоковых шифров и CTR, поскольку нарушение целостности будет обнаружено на уровне приложения. На практике, используется только шифрование ChaCha20-Poly1305 в котором состояние отслеживается исключительно по порядковым номерам сообщений и комбинации режима Encrypt-Then-MAC (*-etm@openssh.com). ) и шифры CBC подвержены атакам.
Упоминается, что также был обнаружен в библиотеке Python AsyncSSH, В сочетании с уязвимостью (CVE-2023-46446) во внутренней реализации конечного автомата атака Terrapin позволяет нам взломать сеанс SSH.
Уязвимость Исправлено в OpenSSH версии 9.6. и в этой версии OpenSSH и других реализациях реализовано расширение протокола «строгий KEX» для блокировки атаки, который включается автоматически, если есть поддержка на стороне сервера и клиента. Расширение разрывает соединение при получении любых аномальных или ненужных сообщений (например, с флагом SSH_MSG_IGNORE или SSH2_MSG_DEBUG), полученных в процессе согласования соединения, а также сбрасывает счетчик MAC (кода аутентификации сообщения) после завершения каждого обмена ключами.
Наконец, если вы хотите узнать об этом больше, вы можете ознакомиться с подробностями в по следующей ссылке.