1 июля 2024 года состоялся релиз открытой реализации клиента и сервера для работы по протоколам SSH 2.0 и SFTP — инструмента OpenSSH 9.8. В новой версии проекта исправлена критическая уязвимость CVE-2024-6387 (под названием regreSSHion), а также выпущен патч против уязвимости от защиты от атак по сторонним каналам и предложено несколько существенных изменений, нацеленных на повышение безопасности. Предыдущая стабильная версия OpenSSH 9.7 вышла в марте этого года.
Ранее эксперты по ИБ из Qualys опубликовали информацию, что в OpenSSH (с версии >= 8.5 и < 4.4) обнаружена критическая уязвимость CVE-2024-6387 под названием regreSSHion, позволяющая удалённо выполнить код с правами root на серверах и пользовательских ПК со стандартной библиотекой Glibc. Патч против уязвимости CVE-2024-6387 представлен в выпуске OpenSSH 9.8. Проследить за публикацией обновлений пакетов в дистрибутивах можно на страницах других проектов, включая Debian, Ubuntu, RHEL, SUSE/openSUSE, Fedora, Rosa Linux, Gentoo, ALT Linux, Arch и FreeBSD.
Также в новой версии OpenSSH исправлены ранее зафиксированные разработчиками ошибки, добавлены некоторые опции.
Согласно данным OpenNET, основные изменения и дополнения в OpenSSH 9.8:
• исправлена уязвимость, которая позволяет обойти добавленную в версии OpenSSH 9.5 защиту от атак по сторонним каналам, анализирующим задержки между нажатиями клавиш на клавиатуре для воссоздания ввода. Уязвимость позволяет отличить пакеты, создающие фоновую активность через симуляцию фиктивных нажатий клавиш, от пакетов, отправляемых при нажатии реальных клавиш, что снижает эффективность механизма скрытия особенностей интерактивного ввода в трафике в SSH. Данные о нажатиях позволяют использовать атаки, воссоздающие ввода на основе анализа задержек между нажатиями при наборе текста, которые зависят от расположения клавиш на клавиатуре (например, реакция при вводе буквы F быстрее, чем при вводе Q или X, так как для нажатия требуется меньше движений пальцев);
• ранее реализованный алгоритм отправки пакетов с реальными и фиктивными нажатиями снижал надёжность другого метода защиты от атак по сторонним каналам. Начиная с выпуска OpenSSH 2.9.9 сервер отправлял пакеты с фиктивными нажатиями для консольного ввода в режиме echo-off, используемом, например, при вводе паролей в su или sudo. Новая логика отправки фиктивных пакетов позволяла при пассивном анализе трафика выделять пакеты с реальными нажатиями в режиме echo-off для их отдельного анализа. При этом точность сведений о времени нажатий ограничивается, так как после набора пакеты отправляются не сразу, а через фиксированные промежутки времени (по умолчанию 20 мс);
• на этапе сборки отключена по умолчанию поддержка цифровых подписей на базе алгоритма DSA. В начале 2025 года реализация DSA будет удалена из кодовой базы. В качестве причины удаления называется не соответствующий современным требованиям уровень защиты в DSA. Затраты на продолжение сопровождения небезопасного алгоритма DSA не оправдывают себя и его удаление позволит стимулировать прекращение поддержки DSA в других реализациях SSH и криптографических библиотеках;
• для дополнительной защиты от методов эксплуатации уязвимостей, требующих установки большого числа соединений к sshd, реализован и включён по умолчанию новый режим защиты, который также помогает для блокирования автоматизированных атак по подбору паролей, в ходе которых боты пытаются угадать пароль пользователя, перебирая различные типовые комбинации. Защита реализована через блокировку IP-адресов, c которых фиксируется большое числу неудачных попыток соединений — sshd отслеживает статус завершения дочерних процессов, определяя ситуации, когда не прошла аутентификация или когда процесс был аварийно завершён из-за сбоя, и при превышении определённого порога начинает блокировать запросы с проблемных IP или подсетей. Для настройки порога срабатывания блокировки, маски блокируемой подсети и списка исключений предложены параметры PerSourcePenalties, PerSourceNetBlockSize и PerSourcePenaltyExemptList;
• осуществлено разделение sshd на несколько отдельных исполняемых файлов. Из sshd выделен процесс sshd-session, выполняющий задачи, связанные с обработкой сеансов. В процессе sshd оставлены функции, отвечающие за приём сетевых соединений, проверку конфигурации, загрузку хостовых ключей и управление запускаемыми процессами в соответствии с параметром MaxStartups. Таким образом исполняемый файл sshd теперь содержит минимальную функциональность, необходимую для приёма нового сетевого соединения и запуска sshd-session для обработки сеанса;
• изменился текст некоторых сообщений об ошибках, записываемых в лог. В частности, ряд сообщений теперь отправляется от имени процесса sshd-session, а не sshd;
• в утилите ssh-keyscan вывод информации о версии протокола и имени хоста теперь выводится в стандартный поток, а не в STDERR. Для отключения вывода предложена опция -q;
• в ssh реализована возможность отключения через директиву HostkeyAlgorithms отката от использования сертификата хостового ключа к использованию простых (plain) хостовых ключей;
• в переносимой версии sshd прекращено использование значения argv[0] для определения имени сервиса PAM. Для задания имени сервиса PAM в sshd_config добавлена новая директива PAMServiceName, которая по умолчанию выставлена в значение sshd;
• в переносимой версии sshd обеспечено сохранение автоматически генерируемых файлов (скрипт configure, config.h.in) в ветке Git с релизами (например, V_9_8), что позволило синхронизировать состав заверенных цифровой подписью tar-архивов и веток в Git;
• в переносимой версии ssh и ssh-agent обеспечено выставление режима SSH_ASKPASS при наличии переменной окружения WAYLAND_DISPLAY, по аналогии с тем, как для X11 это делалось при наличии переменной окружения DISPLAY;
• в переносимой версии sshd добавлена поддержка отправки в systemd уведомлений при создании слушающего сетевого сокета или перезапуске, используя обособленный код, не обращающийся к библиотеке libsystemd.
В апреле 2022 года состоялся релиз OpenSSH 9.0, в котором была добавлена постквантовая криптография по умолчанию.
Источник: habr.com