Уязвимость в 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 для получения клиентом дополнительных ключей хоста после аутентификации.
Источники
правитьЛюбой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.
Комментарии
Если вы хотите сообщить о проблеме в статье (например, фактическая ошибка и т. д.), пожалуйста, используйте обычную страницу обсуждения.
Комментарии на этой странице могут не соответствовать политике нейтральной точки зрения, однако, пожалуйста, придерживайтесь темы и попытайтесь избежать брани, оскорбительных или подстрекательных комментариев. Попробуйте написать такие комментарии, которые заставят задуматься, будут проницательными или спорными. Цивилизованная дискуссия и вежливый спор делают страницу комментариев дружелюбным местом. Пожалуйста, подумайте об этом.
Несколько советов по оформлению реплик:
- Новые темы начинайте, пожалуйста, снизу.
- Используйте символ звёздочки «*» в начале строки для начала новой темы. Далее пишите свой текст.
- Для ответа в начале строки укажите на одну звёздочку больше, чем в предыдущей реплике.
- Пожалуйста, подписывайте все свои сообщения, используя четыре тильды (~~~~). При предварительном просмотре и сохранении они будут автоматически заменены на ваше имя и дату.
Обращаем ваше внимание, что комментарии не предназначены для размещения ссылок на внешние ресурсы не по теме статьи, которые могут быть удалены или скрыты любым участником. Тем не менее, на странице комментариев вы можете сообщить о статьях в СМИ, которые ссылаются на эту заметку, а также о её обсуждении на сторонних ресурсах.