Разработчики: | The OpenBSD Foundation |
Дата премьеры системы: | 2022/04/08 |
Дата последнего релиза: | 2024/06/07 |
Технологии: | ИБ - Аутентификация, ИБ - Средства шифрования |
Содержание |
Основные статьи:
OpenSSH — это основной инструмент для удаленного входа в систему по протоколу SSH. Он шифрует весь трафик для предотвращения прослушивания, перехвата соединения и других атак. Кроме того, OpenSSH предоставляет большой набор возможностей безопасного туннелирования, несколько методов аутентификации и различные варианты конфигурации.
2024
В популярном сервере удаленного доступа OpenSSH обнаружена опасная уязвимость. ФСТЭК предупреждает
В популярном средстве защищённого удалённого доступа — сервере OpenSSH — была обнаружена достаточно опасная уязвимость. Об этом предупреждает ФСТЭК. Ее название BDU:2024-04914[1] в базе данных угроз и уязвимостей, однако в широких кругах она получила собственное имя — regreSSHion. Это не первая уязвимость в средстве криптографической защиты, получившая собственное имя — в 2014 году в OpenSSL была обнаружена ошибка, получившая наименование Heartbleed.
Исследователи компании Qualys[2] обнаружили, что процесс сервера OpenSSH — sshd — может быть введён в состояние гонки обработчиков сигналов, что позволяет перезаписать память и выполнить неаутентифицированный удаленный код с привилегиями суперпользователя (root). Ошибка точно срабатывает в системах Linux на базе glibc, а вот про Windows и macOS подтверждений пока нет. Возможность совершения атаки продемонстрирована на 32-разрядной системе с Glibc с включённой защитой от переполнения буфера ASLR (рандомизация адресного пространства). Для успешной атаки в лабораторных условиях потребовалось 6-8 часов, в течение которых с сервером непрерывно устанавливались соединения с максимально допустимой в конфигурации sshd интенсивностью.
Уязвимость появилась в результате регрессивного изменения, вошедшего в состав выпуска OpenSSH 8.5 и приводящего к состоянию гонки в коде обработки сигналов в sshd. Именно поэтому она и получила название regreSSHion. Внесенные изменения привели к прекращению действия защиты от старой уязвимости CVE-2006-5051, обнаруженной до версии OpenSSH 4.4 (2006 год) и носившей теоретический характер. Ошибка исправлена в OpenSSH 9.8p1.
![]() | Не только в России, но и в мире OpenSSH – один из популярнейших компонентов серверного ПО, — прояснил для TAdviser технический директор «Гарда WAF» Лука Сафонов. — Использование эксплойта данной уязвимости крайне опасно, об этом говорит значение уровня опасности CVSS — 8.1. | ![]() |
![]() | OpenSSH – популярный сервис в нашей стране, — подтвердил TAdviser Дмитрий Калинин, руководитель департамента по работе с уязвимостями и инцидентами ИБ системного интегратора «Бастион». — Прежде всего это связано с тем, что помимо серверов и рабочих станций он повсеместно используется в сетевом оборудовании (роутерах, маршрутизаторах, межсетевых экранах и т.п.). Встречаются как последние версии, которые до выхода указанной уязвимости считались безопасными, так и более старые, где есть известные уязвимости. В связи с этим эксплуатация данной уязвимости несет очень высокие риски.
Единственным сдерживающим фактором может выступать то, что протокол SSH, реализацию которого представляет собой OpenSSH, зачастую является внутренним протоколом. То есть используется в так называемых management сетях и в корректно настроенной с точки зрения безопасности инфраструктуре, недоступен из сети Интернет или доступен только с определенных IP-адресов. | ![]() |
Qualys поделилась подробным разбросом regreSSHion, но не публикует примеров ее эксплуатации, чтобы не стимулировать вредоносную активность. По данным компании по всему миру около 700 тыс. систем, подключенных к Интернету, могут быть уязвимы для данной уязвимости. В России по данным сервиса ZoomEye.hk находится почти 4 млн серверов OpenSSH. Однако насколько они уязвимы – не очень понятно. Компания Qualys предоставила индикаторы компрометации, с помощью которых любой владелец сервера на базе OpenSSH может выявить возможные атаки.
![]() | В связи выявлением данной уязвимости специалисты Центра противодействия киберугрозам Innostage CyberART рекомендуют выполнить обновление ПО OpenSSH до версии 9.8p1, – озвучил TAdviser свои рекомендации для владельцев OpenSSH Альберт Антонов, руководитель группы OSINT центра противодействия киберугрозам SOC CyberART Innostage. – В качестве временных компенсирующих мер возможны следующие действия: | ![]() |
- В sshd_config выставить параметр "LoginGraceTime=0", при этом отключение таймаута упростит инициирование отказа в обслуживании при установке большого числа соединений, превышающих лимиты, заданные через параметр "MaxStartups".
- Ограничить доступ по SSH с помощью сетевых средств управления путем внедрения белого списка IP-адресов для минимизации рисков атак.
Сама ФСТЭК также рекомендует максимально быстро установить обновления. Но если это по какой-то причине невозможно, то можно предпринять следующие компенсирующие меры:
- для ограничения возможности эксплуатации в sshd_config выставить параметр «LoginGraceTime=0»;
- установить для LoginGraceTime значение 0 в /etc/ssh/sshd_config и перезапустить sshd;
- использовать антивирусное ПО для отслеживания попыток эксплуатации уязвимости;
- использовать средства межсетевого экранирования для ограничения возможности удалённого доступа.
Встроенная защита от атак по подбору паролей
В кодовую базу OpenSSH добавлена встроенная защита от автоматизированных атак по подбору паролей, в ходе которых боты пытаются угадать пароль пользователя, перебирая различные типовые комбинации. Для блокирования подобных атак в файл конфигурации sshd_config добавлен параметр PerSourcePenalties, позволяющий определить порог блокировки, срабатывающий при большом числе неудачных попыток соединений с одного IP-адреса. Данный механизм защиты войдёт в состав следующего выпуска OpenSSH и будет включён по умолчанию в OpenBSD 7.6. Об этом стало известно 7 июня 2024 года.
При включении защиты процесс sshd начинает отслеживать статус завершения дочерних процессов, определяя ситуации когда не прошла аутентификация или когда процесс был аварийно завершён из-за сбоя. Большая интенсивность сбоев при аутентификации свидетельствует о попытках подбора паролей, а аварийное завершение может указывать на попытки эксплуатации уязвимостей в sshd.«Гознак» развивает систему «Электронный бюджет» с помощью импортозамещенных решений экосистемы EvaTeam
Через параметр PerSourcePenalties задаётся минимальный порог аномальных событий, после превышения которого IP-адрес, для которого зафиксирована подозрительная активность, будет заблокирован. При помощи параметра PerSourceNetBlockSize дополнительно можно определить маску подсети для блокирования всей подсети, к которой принадлежит проблемный IP.
Для отключения срабатывания блокировки для отдельных подсетей предложен параметр PerSourcePenaltyExemptList, который может оказаться полезным в ситуациях, приводящих к ложным срабатываниям, например, когда к SSH-серверу осуществляются обращения из крупной сети, запросы разных пользователей из которой приходят с одинаковых IP из-за использования транслятора адресов или прокси[3].
2023: OpenSSH 9.2 c исправлением уязвимости аутентификации на сервере
Разработчики OpenSSH выпустили версию OpenSSH 9.2 для устранения ряда недостатков, включая уязвимость, которая проявляется на этапе аутентификации на сервере OpenSSH (sshd). Об этом стало известно 6 февраля 2023 года.
Уязвимость предварительной аутентификации (двойного освобождения) в OpenSSH 9.1 CVE-2023-25136 возникает в непривилегированном процессе предварительной аутентификации, который подвергается операции «chroot» и дополнительно изолирован на большинстве основных платформ.
Chroot – операция изменения корневого каталога в Unix-подобных ОС. Программа, запущенная с изменённым корневым каталогом, будет иметь доступ только к файлам, содержащимся в данном каталоге.
OpenSSH — это реализация протокола безопасной оболочки (SSH) с открытым исходным кодом, которая предлагает набор услуг для зашифрованной связи по незащищенной сети в архитектуре клиент-сервер.
Недостатки двойного освобождения возникают, когда уязвимый фрагмент кода вызывает функцию « free()», которая используется для освобождения блоков памяти дважды, что приводит к повреждению памяти и к дальнейшему сбою или выполнению произвольного кода.
Исследователь безопасности из Qualys Саид Аббаси сказал, что воздействие происходит в блоке памяти, освобождаемом дважды - ‘options.kex_algorithms’. Он также добавил, что проблема приводит к «двойному освобождению в непривилегированном процессе sshd».
Абасси пояснил, что активная эксплуатация уязвимости маловероятна, поскольку процесс использования слишком усложнён - современные библиотеки распределения памяти предоставляют защиту от двойного освобождения памяти, а процесс «pre-auth», в котором присутствует ошибка, выполняется с пониженными привилегиями в изолированной песочнице[4].
2022
Релиз OpenSSH 9.1 с директивой RequiredRSASize
5 октября 2022 года стало известно о том, что опубликован релиз OpenSSH 9.1, открытой реализации клиента и сервера для работы по протоколам SSH 2.0 и SFTP. Выпуск характеризуется как в основном содержащий исправление ошибок, в том числе устранено нескольких потенциальных уязвимостей, вызванных проблемами при работе с памятью:
- Однобайтовое переполнение в коде обработки SSH-баннера в утилите ssh-keyscan.
- Двойной вызов функции free() в случае ошибки при вычислении хэшей для файлов в коде создания и проверки цифровых подписей в утилите ssh-keygen.
- Двойной вызов функции free() при обработке ошибок в утилите ssh-keysign.
Основные изменения:
- В ssh и sshd добавлена директива RequiredRSASize, позволяющая определить минимально допустимый размер RSA-ключей. В sshd ключи меньшего размера будут игнорироваться, а в ssh приводить к завершению соединения.
- Переносимая редакция OpenSSH переведена на использование SSH-ключей для заверения цифровой подписью коммитов и тегов в Git.
- Директивы SetEnv в файлах конфигурации ssh_config и sshd_config теперь применяют значение из первого упоминания переменной окружения, если она определена в конфигурации несколько раз (до этого применялось последнее упоминание).
- При вызове утилиты ssh-keygen с флагом "-A" (генерация всех поддерживаемых по умолчанию типов хостовых ключей) отключена генерация ключей DSA, которые уже несколько лет не используются по умолчанию.
- В sftp-server и sftp реализовано расширение "users-groups-by-id@openssh.com", дающее клиенту возможность запросить имена пользователей и групп, соответствующих указанному набору цифровых идентификаторов (uid и gid). В sftp данное расширение использовано для отображения имён при выводе содержимого каталога.
- В sftp-server реализовано расширение "home-directory" для раскрытия путей ~/ и ~user/, альтернативное ранее предлагавшемуся для тех же целей расширению "expand-path@openssh.com" (расширение "home-directory" предложено для стандартизации и уже поддерживается некоторыми клиентами).
- В ssh-keygen и sshd добавлена возможность указания времени в часовом поясе UTC при определении интервалов действия сертификатов и ключей, в дополнение к системному времени.
- В sftp разрешено указание дополнительных аргументов в опции "-D" (например, "/usr/libexec/sftp-server -el debug3").
- В ssh-keygen разрешено использование флага "-U" (использование ssh-agent) вместе с операциями "-Y sign" для определения, что закрытые ключи размещены в ssh-agent[5].
Релиз OpenSSH 9.0 с переводом scp на протокол SFTP
8 апреля 2022 года стало известно, что представлен релиз OpenSSH 9.0, открытой реализации клиента и сервера для работы по протоколам SSH 2.0 и SFTP. В данной версии утилита scp переведена по умолчанию на использование SFTP вместо устаревшего протокола SCP/RCP (сокращения от англ. Secure Copy Protocol и Remote Copy Protocol).
В SFTP применяются более предсказуемые методы обработки имён и не используется обработка glob-шаблонов в именах файлов через shell на стороне другого хоста, создающая проблемы с безопасностью. В частности, при применении SCP и RCP сервер принимает решение о том, какие файлы и каталоги отправить клиенту, а клиент лишь проверяет корректность возвращённых имён объектов, что в случае отсутствия должных проверок на стороне клиента позволяет серверу передать другие имена файлов, отличающиеся от запрошенных.
Протокол SFTP лишён указанных проблем, но не поддерживает раскрытие спецпутей, таких как "~/". Для устранения данного различия начиная с OpenSSH 8.7 в реализации SFTP-сервера поддерживается расширение протокола "expand-path@openssh.com" для раскрытия путей ~/ и ~user/.
При использовании SFTP пользователи также могут столкнуться с несовместимостью, вызванной необходимостью двойного экранирования спецсимволов раскрытия путей в запросах SCP и RCP, чтобы предотвратить их интерпретацию на удалённой стороне. В SFTP такое экранирование не требуется и лишние кавычки могут привести к ошибке передачи данных. При этом разработчики OpenSSH отказались от добавления расширения для повторения поведения scp в этом случае, так как двойное экранирование рассматривается как недостаток, который не имеет смысл повторять.
Другие изменения в выпуске:
- В ssh и sshd по умолчанию включён гибридный алгоритм обмена ключами "sntrup761x25519-sha512@openssh.com" (ECDH/x25519 + NTRU Prime), стойкий к подбору на квантовых компьютерах и совмещённый с ECDH/x25519 для блокирования возможных проблем в NTRU Prime, которые могут всплыть в будущем. В списке KexAlgorithms, определяющем порядок выбора методов обмена ключами, упомянутый алгоритм теперь поставлен на первое место и является более приоритетным, чем алгоритмы ECDH и DH. Квантовые компьютеры ещё не достигли уровня, позволяющего взламывать традиционные ключи, но применение гибридной защиты позволит оградить пользователей от атак, связанных с сохранением перехваченных SSH-сеансов с расчётом, что их можно будет расшифровать в будущем, когда появятся необходимые квантовые компьютеры.
- В sftp-server добавлено расширение "copy-data", позволяющее копировать данные на стороне сервера, без транзитной отправки клиенту, если исходный и целевой файл находятся на одном сервере.
- В утилиту sftp добавлена команда "cp" для инициирования клиентом копирования файлов на стороне сервера.[6]
Примечания
- ↑ BDU:2024-04914
- ↑ regreSSHion: Remote Unauthenticated Code Execution Vulnerability in OpenSSH server
- ↑ В OpenSSH добавлена встроенная защита от атак по подбору паролей
- ↑ Выпущена версия OpenSSH 9.2 c исправлением уязвимости аутентификации на сервере
- ↑ Релиз OpenSSH 9.1
- ↑ Релиз OpenSSH 9.0 с переводом scp на протокол SFTP
Подрядчики-лидеры по количеству проектов
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
Распределение вендоров по количеству проектов внедрений (систем, проектов) с учётом партнёров
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
Данные не найдены
Распределение систем по количеству проектов, не включая партнерские решения
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
Подрядчики-лидеры по количеству проектов
Данные не найдены
Данные не найдены
Данные не найдены
Данные не найдены
Данные не найдены