The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Terrapin - уязвимость в протоколе SSH, позволяющая снизить защиту соединения

18.12.2023 23:22

Группа исследователей из Рурского университета в Бохуме (Германия) представила новую технику MITM-атаки на SSH - Terrapin, эксплуатирующую уязвимость (CVE-2023-48795) в протоколе. Атакующий, способный организовать MITM-атаку, имеет возможность в процессе согласования соединения блокировать отправку сообщения с настройкой расширений протокола для снижения уровня защиты соединения. Прототип инструментария для совершения атаки опубликован на GitHub.

При применении OpenSSH уязвимость позволяет откатить соединение на использование менее защищённых алгоритмов аутентификации или отключить защиту от атак по сторонним каналам, воссоздающим ввод через анализ задержек между нажатиями клавиш на клавиатуре. В Python-библиотеке AsyncSSH в сочетании с уязвимостью (CVE-2023-46446) в реализации внутреннего конечного автомата (internal state machine) атака Terrapin позволяет вклиниться в SSH-сеанс.

Уязвимость затрагивает все реализации SSH, поддерживающие ChaCha20-Poly1305 или шифры в режиме CBC в сочетании с режимом ETM (Encrypt-then-MAC). Например, подобные возможности доступны в OpenSSH уже более 10 лет. Уязвимость блокирована в сегодняшнем выпуске OpenSSH 9.6, а также в обновлениях PuTTY 0.80, libssh 0.10.6/0.9.8 и AsyncSSH 2.14.2. В Dropbear SSH исправление уже добавлено в код, но новый выпуск пока не сформирован.

Уязвимость вызвана тем, что атакующий, контролирующий трафик соединения (например, владелец вредоносной беспроводной точки), может откорректировать порядковые номера пакетов в процессе согласования соединения и добиться незаметного удаления произвольного числа служебных SSH-сообщений, отправленных клиентом или сервером. Среди прочего, атакующий может удалить сообщения SSH_MSG_EXT_INFO, используемые для настройки применяемых расширений протокола. Для того чтобы другая сторона не определила пропадание пакета из-за разрыва в порядковых номерах, атакующий для сдвига порядкового номера инициирует отправку фиктивного пакета с тем же порядковым номером, что и у удалённого пакета. Фиктивный пакет содержит сообщение с флагом SSH_MSG_IGNORE, которое игнорируется при обработке.

Атака не может быть проведена при использовании потоковых шифров и CTR, так как нарушение целостности будет выявлено на уровне приложения. На практике атаке подвержены только шифр ChaCha20-Poly1305 (chacha20-poly1305@openssh.com), при котором состояние отслеживается только по порядковым номерам сообщений, и связка из режима Encrypt-Then-MAC (*-etm@openssh.com) и шифров CBC.

В OpenSSH 9.6 и других реализациях для блокирования атаки реализовано расширение протокола "strict KEX", которое автоматически включается при наличии поддержки на стороне сервера и клиента. Расширение завершает соединение при поступлении любых нештатных или лишних сообщений (например, с флагом SSH_MSG_IGNORE или SSH2_MSG_DEBUG), полученных в процессе согласования соединения, а также сбрасывает счётчик MAC (Message Authentication Code) после завершения каждого обмена ключами.

  1. Главная ссылка к новости (https://www.openwall.com/lists...)
  2. OpenNews: Релиз OpenSSH 9.5
  3. OpenNews: Воссоздание RSA-ключей через анализ SSH-соединений к сбойным серверам
  4. OpenNews: Представлен SSH3, вариант протокола SSH, использующий HTTP/3
  5. OpenNews: Удалённо эксплуатируемая уязвимость в OpenSSH ssh-agent
  6. OpenNews: Прогресс в создании эксплоита для OpenSSH 9.1
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/60304-openssh
Ключевые слова: openssh, ssh
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (26) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (1), 23:35, 18/12/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • –8 +/
    Вот и ssh3 пригодится...
     
  • 1.2, Аноним (2), 23:43, 18/12/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Даже целый сайт сделали
     
     
  • 2.3, Аноним (3), 23:57, 18/12/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Это частая практика:
    https://meltdownattack.com/
    https://heartbleed.com/
     
     
  • 3.34, эйчар (?), 20:39, 28/01/2024 [^] [^^] [^^^] [ответить]  
  • +/
    это для резюме и больших экспертных зарплат.
     

  • 1.4, Аноним (4), 00:00, 19/12/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А нельзя ли при генерации ключа к ключу добавлять метаданные, говорящие, какие фичи безопасности обязательны? Плюс на клиенте хранить все фичи, поддерживаемые сервером, и отныне и впредь их требовать?
     
     
  • 2.6, Sw00p aka Jerom (?), 00:53, 19/12/2023 [^] [^^] [^^^] [ответить]  
  • +4 +/
    а я ваще не понимаю всяких даунгрейдов (фейспалм), может сразу протокол пусть меняет на телнет какой-нить.
     
     
  • 3.15, Аноним (15), 04:20, 19/12/2023 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Даунгрейд это любимая фишка бекдорщиков. Все купленные протоколы его поддерживают: LTS, wifi3, bluetooth. Очень удобно до выхода протокола получить утилиту для его взлома.
     
  • 3.31, InuYasha (??), 12:35, 20/12/2023 [^] [^^] [^^^] [ответить]  
  • +/
    когда у тебя APC UPS с SSH v1 vs Telnet only, становишься весьма понимающим.
     
     
  • 4.32, Sw00p aka Jerom (?), 14:39, 20/12/2023 [^] [^^] [^^^] [ответить]  
  • +/
    > когда у тебя APC UPS с SSH v1 vs Telnet only,

    о да, почему-то легаси системы живут, а ПО для управления (клиенты) - нет.

    пс: обратная совместимость - обратная уязвимость :)

     
  • 2.11, Аноним (11), 01:56, 19/12/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Последнее уже есть присутствует в OpenSSH. Просто добавьте ваш сервер в конфиг через Host или Match и добавляете в него опции, которые НЕ будут переписаны, если опция встретится ниже по конфигу и если её поведение явно не описано в ssh_config(5) иначе, а все остальные "дефолты" просто пихаете в конец под Match all. Все обязательные никак не переписываемые опции пишем в начале, до любого Match или Host; например, отключаем вообще везде ForwardX11 и ForwardAgent как потенциально небезопасные фичи.
     
     
  • 3.14, Аноним (14), 03:33, 19/12/2023 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Смысл в том, чтобы автоматически. Потому что иначе надо самому следить, что там на каком сервере добавили.
     

  • 1.7, Ivan_83 (ok), 01:13, 19/12/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    > поддерживающие ChaCha20-Poly1305 или шифры в режиме CBC в сочетании с режимом ETM (Encrypt-then-MAC).

    # Specifies the ciphers allowed.
    Ciphers aes256-gcm@openssh.com,aes256-ctr

    достаточно чтобы быть секурным, совместимым со всем подряд и слать лесом всяких таких какеров.

     
     
  • 2.9, Аноним (11), 01:51, 19/12/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Можно ещё добавить 192- и 128-битные версии, всё равно когда через один ключ пройдёт достаточно данных произойдёт автоматический ре-кей, а так совместимость вырастет ещё больше (или скорость/энергоэффективность на определённых тачках поднимется чуть-чуть)
     
     
  • 3.17, Ivan_83 (ok), 07:14, 19/12/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Смысла ниже 256 бит нет, там на несколько раундов меньше уходит всего то.
    Я рассчитываю что либо есть AES-NI либо скорости не надо.
     

  • 1.10, Kuromi (ok), 01:55, 19/12/2023 Скрыто ботом-модератором [﹢﹢﹢] [ · · · ]     [к модератору]
  • –1 +/
     

     ....ответы скрыты (2)

  • 1.16, Аноним (16), 05:51, 19/12/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Пользуюсь rlogin, никаких проблем с уязвимостями не имею.
     
     
  • 2.29, Аноним (29), 16:37, 19/12/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Если через безопасный туннель то и не должно быть.
     

  • 1.19, аНОНИМ (?), 08:17, 19/12/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    > 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.

    как всегда пейсатели новостёв истерят (а переводятели -- переводят), а суть не излагают.
    Кто ещё и статью смотрел, там в основном какой-то наколенный ссх-сервер на пуфоне проламывают, опенссх же практически неуязвим.

     
     
  • 2.21, Аноним (21), 08:38, 19/12/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Кто ещё и статью смотрел, там в основном какой-то наколенный ссх-сервер на
    > пуфоне проламывают, опенссх же практически неуязвим.

    Ровно об этом в новости и написано: "В контексте OpenSSH уязвимость позволяет откатить соединение на использование менее защищённых алгоритмов аутентификации или отключить защиту от атак по сторонним каналам, воссоздающим ввод через анализ задержек между нажатиями клавиш на клавиатуре. В Python-библиотеке AsyncSSH в сочетании с уязвимостью (CVE-2023-46446) в реализации внутреннего конечного автомата (internal state machine) атака Terrapin позволяет вклиниться в SSH-сеанс."

     

  • 1.25, Пряник (?), 10:10, 19/12/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Наплодили клиентов SSH на питоне: parallel-ssh, paramiko, pssh, mitogen, plumbum, parallax, spur, tomahawk. Да я и сам свой создал на биндах для libssh.
     
  • 1.26, Пряник (?), 10:12, 19/12/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Это не уязвимость. Человек сам виноват, что не отключил слабые алгоритмы.
     
     
  • 2.27, Аноним (27), 10:59, 19/12/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Это так не работает. Тем более дело не в алгоритме.
     

  • 1.28, Аноним (28), 13:51, 19/12/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > Уязвимость блокирована ... в обновлениях ... libssh 0.10.6/0.9.8

    А libssh2 это никак не касается?

     
  • 1.33, dimuspav (ok), 11:58, 27/12/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    фстек читает опеннет)))
    https://bdu.fstec.ru/vul/2023-08853
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру