Уязвимость в SSH-клиентах OpenSSH и PuTTY

4 июля 2020 года

В SSH-клиентах OpenSSH и PuTTY выявлена (Архивная копия от 19 сентября 2020 на Wayback Machine) уязвимость (Архивная копия от 4 июля 2020 на Wayback Machine) (CVE-2020-14002 в PuTTY и CVE-2020-14145 в OpenSSH), приводящая к утечке сведений в алгоритме согласования соединения. Уязвимость позволяет атакующему, способному перехватить трафик клиента (например, при подключении пользователя через контролируемую атакующим точку беспроводного доступа), определить попытку первоначального подключения клиента к хосту, когда клиентом ещё не прокэширован ключ хоста.

Зная, что клиент пытается подключиться в первый раз и ещё не имеет на своей стороне ключ хоста, атакующий может транслировать соединение через себя (MITM) и выдать клиенту свой хостовый ключ, который SSH-клиент посчитает ключом целевого хоста, если не выполнит сверку отпечатка ключа. Таким образом, атакующий может организовать MITM не вызвав подозрения у пользователя и игнорировать сеансы, в которых на стороне клиента уже имеются прокэшированные ключи хостов, попытка подмены которых приведёт к выводу предупреждения об изменении ключа хоста. Атака строится на беспечности пользователей, не выполняющих ручную проверку fingerprint-отпечатка ключа хоста при первом подключении. Те кто проверяют отпечатки ключей от подобных атак защищены.

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

Проблема проявляется в выпусках с OpenSSH c 5.7 по 8.3 и в PuTTY с 0.68 по 0.73. Проблема устранена в выпуске PuTTY 0.74 через добавление опции для отключения динамического построения списка алгоритмов обработки хостовых ключей в пользу перечисления алгоритмов в постоянном порядке.

Проект OpenSSH не планирует изменять поведение SSH-клиента, так как если не указать алгоритм имеющегося ключа на первом месте, будет применена попытка применения не соответствующего прокэшированному ключу алгоритма с выводом предупреждения о неизвестном ключе. Т.е. возникает выбор - либо утечка информации (OpenSSH и PuTTY), либо вывод предупреждений о смене ключа (Dropbear SSH) в случае, если сохранённый ключ не соответствует первому алгоритму в списке по умолчанию.

Для обеспечения защиты в OpenSSH предлагается использовать альтернативные способы проверки ключа хоста при помощи записей SSHFP в DNSSEC и сертификатов хоста (PKI). Также можно отключить адаптивный выбор алгоритмов хостовых ключей через опцию HostKeyAlgorithms и использовать опцию UpdateHostKeys для получения клиентом дополнительных ключей хоста после аутентификации.

Источники

править
 
 
Creative Commons
Эта статья содержит материалы из статьи «Уязвимость в SSH-клиентах OpenSSH и PuTTY», опубликованной OpenNET и распространяющейся на условиях лицензии Creative Commons Attribution (CC BY) — указание автора, источник и лицензию.
 
Эта статья загружена автоматически ботом NewsBots и ещё не проверялась редакторами Викиновостей.
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.

Комментарии

Викиновости и Wikimedia Foundation не несут ответственности за любые материалы и точки зрения, находящиеся на странице и в разделе комментариев.