Релиз OpenSSH 8.9 с устранением уязвимости в sshd

После шести месяцев разработки представлен релиз OpenSSH 8.9, открытой реализации клиента и сервера для работы по протоколам SSH 2.0 и SFTP. В новой версии в sshd устранена уязвимость, потенциально позволяющая получить доступ без аутентификации. Проблема вызвана целочисленным переполнением в коде аутентификации, но эксплуатация возможна только в сочетании с другими логическими ошибками в коде.

В текущем виде уязвимость не эксплуатируема при включении режима разделения привилегий, так как её проявление блокируют отдельные проверки, выполняемые в коде отслеживания разделения привилегий. Режим разделения привилегий активирован по умолчанию в 2002 году, начиная OpenSSH 3.2.2, и является обязательным начиная с выпуска OpenSSH 7.5, опубликованного в 2017 году. Кроме того, в переносимых версиях OpenSSH начиная с выпуска 6.5 (2014 год) уязвимость блокируется компиляцией с включением флагов защиты от целочисленных переполнений.

Другие изменения:

  • В переносимой версии OpenSSH в sshd удалена встроенная поддержка хэширования паролей с использованием алгоритма MD5 (для возвращения допускается связывание с внешними библиотеками, такими как libxcrypt).

  • В ssh, sshd, ssh-add и ssh-agent реализована подсистема для ограничения пересылки и использования ключей, добавленных в ssh-agent. Подсистема позволяет задавать правила, определяющие как и где можно использовать ключи в ssh-agent. Например, для добавления ключа, который может быть использован только для проведения аутентификации при подключении любого пользователя к хосту scylla.example.org, пользователя perseus к хосту cetus.example.org и пользователя medea к хосту charybdis.example.org с перенаправлением через промежуточный хост scylla.example.org, можно использовать следующую команду:
       $ ssh-add -h "perseus@cetus.example.org" \
              -h "scylla.example.org" \
              -h "scylla.example.org›medea@charybdis.example.org" \
              ~/.ssh/id_ed25519
    
  • В ssh и sshd в список KexAlgorithms, определяющий порядок выбора методов обмена ключами, по умолчанию добавлен гибридный алгоритм «sntrup761×25519-sha512@openssh.com» (ECDH/x25519 + NTRU Prime), стойкий к подбору на квантовых компьютерах. В версии OpenSSH 8.9 данный метод согласования добавлен между методами ECDH и DH, но в следующем выпуске его планируют задействовать по умолчанию.

  • В ssh-keygen, ssh и ssh-agent улучшена обработка ключей FIDO-токенов, используемых для верификации устройства, включая ключи для биометрической аутентификации.

  • В ssh-keygen добавлена команда «ssh-keygen -Y match-principals» для проверки имён пользователей в файле со списком разрешённых имён.
  • В ssh-add и ssh-agent предоставлена возможность добавления в ssh-agent FIDO-ключей, защищённых PIN-кодом (запрос PIN выводится в момент аутентификации).
  • В ssh-keygen разрешён выбор алгоритма хэширования (sha512 или sha256) во время формирования подписи.

  • В ssh и sshd для повышения производительности обеспечено чтение сетевых данных напрямую в буфер входящих пакетов, минуя промежуточную буферизацию в стеке. Аналогично реализовано прямое помещение получаемых данных в канальный буфер.
  • В ssh в директиве PubkeyAuthentication расширен список поддерживаемых параметров (yes|no|unbound|host-bound) для предоставления возможности выбора варианта используемого расширения протокола.

В одном из следующих выпусков планируется перевести по умолчанию утилиту scp на использование SFTP вместо устаревшего протокола SCP/RCP. В SFTP применяются более предсказуемые методы обработки имён и не используется обработка glob-шаблонов в именах файлов через shell на стороне другого хоста, создающая проблемы с безопасностью. В частности, при применении SCP и RCP сервер принимает решение о том, какие файлы и каталоги отправить клиенту, а клиент лишь проверяет корректность возвращённых имён объектов, что в случае отсутствие должных проверок на стороне клиента позволяет серверу передать другие имена файлов, отличающиеся от запрошенных. Протокол SFTP лишён указанных проблем, но не поддерживает раскрытие спецпутей, таких как »~/». Для устранения данного различия в прошлом выпуске OpenSSH в реализации SFTP-сервера было предложено новое расширение протокола SFTP для раскрытия путей ~/ и ~user/.



Источник: http://www.opennet.ru/opennews/art.shtml? num=56751

© OpenNet