Несмотря на длительную историю и широкое использование OpenSSH, 2024 год выявил ряд серьезных уязвимостей, включая «состояния гонки» (regreSSHion, CVE-2024-6387 и аналогичные CVE-2024-6409, CVE-2024-7589), способные приводить к удаленному исполнению кода с правами суперпользователя. Эти уязвимости возникают из-за небезопасных вызовов функций внутри обработчиков сигналов и потенциально позволяют злоумышленникам нарушать целостность данных в куче памяти, что ведет к несанкционированному доступу к системе.
OpenSSH использует механизмы защиты, такие как разделение привилегий (privsep), где сетевые операции выполняются непривилегированным процессом, общающимся с привилегированным монитором. Также используется песочница (seccomp), ограничивающая системные вызовы для непривилегированного процесса, уменьшая последствия эксплуатации возможных уязвимостей. Эти механизмы снижают риск получения злоумышленником root-доступа, однако привилегированный процесс монитора всё равно остается уязвимым.
Для защиты от брутфорс-атак, OpenSSH применяет лимиты на количество одновременных подключений (MaxStartups), а также реализует механизмы обнаружения и блокировки подозрительных попыток аутентификации (PerSourcePenalties, RefuseConnection). Кроме того, добавляется случайная задержка (джиттер) к тайм-ауту на аутентификацию для предотвращения «гонок», таких как regreSSHion. С версии 9.8 проводится разделение sshd на несколько бинарных файлов, что соответствует принципу минимальных привилегий, дополнительно повышая безопасность.
Эксплуатация уязвимостей «состояния гонки», вроде regreSSHion, требует точного управления аллокациями памяти. Злоумышленники используют уязвимости в процессе парсинга сертификатов ключей для создания необходимого расположения чанков памяти в куче, чтобы перехватить управление исполнением кода через подмену указателей в структурах данных при определённых условиях. Для противодействия таким атакам необходимо не только своевременно устанавливать обновления, но и использовать многоуровневую защиту, которая может затруднить эксплуатацию уязвимости.
Изображение носит иллюстративный характер
OpenSSH использует механизмы защиты, такие как разделение привилегий (privsep), где сетевые операции выполняются непривилегированным процессом, общающимся с привилегированным монитором. Также используется песочница (seccomp), ограничивающая системные вызовы для непривилегированного процесса, уменьшая последствия эксплуатации возможных уязвимостей. Эти механизмы снижают риск получения злоумышленником root-доступа, однако привилегированный процесс монитора всё равно остается уязвимым.
Для защиты от брутфорс-атак, OpenSSH применяет лимиты на количество одновременных подключений (MaxStartups), а также реализует механизмы обнаружения и блокировки подозрительных попыток аутентификации (PerSourcePenalties, RefuseConnection). Кроме того, добавляется случайная задержка (джиттер) к тайм-ауту на аутентификацию для предотвращения «гонок», таких как regreSSHion. С версии 9.8 проводится разделение sshd на несколько бинарных файлов, что соответствует принципу минимальных привилегий, дополнительно повышая безопасность.
Эксплуатация уязвимостей «состояния гонки», вроде regreSSHion, требует точного управления аллокациями памяти. Злоумышленники используют уязвимости в процессе парсинга сертификатов ключей для создания необходимого расположения чанков памяти в куче, чтобы перехватить управление исполнением кода через подмену указателей в структурах данных при определённых условиях. Для противодействия таким атакам необходимо не только своевременно устанавливать обновления, но и использовать многоуровневую защиту, которая может затруднить эксплуатацию уязвимости.