Первоисточники
Beget – официальная группа Вконтакте
Kaspersky – уязвимость regreSSHion в OpenSSH
Российская газета – в XZ Utils был внедрен вредоносный код
ChatGPT – уязвимость OpenSSH 2024
Как обновить OpenSSH до версии 9.8p1
Qualys недавно обнаружила критическую уязвимость в OpenSSH, получившую идентификатор CVE-2024-6387. Эта уязвимость, названная "regreSSHion," затрагивает серверы OpenSSH на системах с библиотекой glibc и позволяет удалённое выполнение кода (RCE). Уязвимость считается очень серьёзной, поскольку злоумышленники могут выполнять произвольный код на уязвимых системах, что может привести к компрометации системы.
Уязвимость присутствует в версиях OpenSSH, которые широко используются в различных дистрибутивах Linux, что означает, что многие системы могут быть под угрозой, если не будут своевременно установлены патчи. Администраторам систем рекомендуется проверить версию OpenSSH, установленную на их системах, и обновить её до последней версии, как только станет доступен патч.
Чтобы проверить версию OpenSSH, выполните следующую команду в терминале:
ssh -V
Команда ssh -V показывает версию клиента OpenSSH, а не сервера. Клиент и сервер могут иметь разные версии. Давайте уточним различия:
- Клиент OpenSSH (
ssh): используется для подключения к другим серверам. - Сервер OpenSSH (
sshd): отвечает за входящие подключения на вашем сервере.
Я знаю 2 способа узнать версию запущенного OpenSSH-сервера
1. Вариант:
команда:
which sshd
вывод на экране:
/usr/sbin/sshd
запоминаем это путь и далее используем его:
/usr/sbin/sshd -V
в выводе на экране будет версия ssh-сервера:
unknown option -- V
OpenSSH_8.2p1 Ubuntu-4ubuntu0.11, OpenSSL 1.1.1f 31 Mar 2020
...
2. Вариант
команда:
ps -C sshd -o pid,cmd
вывод на экране:
PID CMD
730 sshd: /usr/sbin/sshd -D [listener] 1 of 10-100 startups
...
из этого вывода запоминаем PID процесса нашего SSH-сервера чтоб использовать его для следующей команды:
sudo strings /proc/730/exe | grep OpenSSH
видим в выводе на экране версию нашего SSH-сервера:
OpenSSH_8.2p1 Ubuntu-4ubuntu0.11
...
Если ваша версия уязвима, следует немедленно обновить OpenSSH до версии 9.8p1.
Для получения более детальной информации об уязвимости и шагах по её устранению, вы можете обратиться к официальным рекомендациям от Qualys и объявлениям безопасности вашего дистрибутива Linux (Ubuntu) (Computer Weekly).
Уязвимость затрагивает версии OpenSSH ранее чем 4.4p1 и версии с 8.5p1 < 9.8p1. Проблема была устранена в версии 9.8p1 (CYBERSECURITY THREATS) (LSMC Template).
Если обновление до версии 9.8p1 невозможно, рекомендуется временно установить параметр LoginGraceTime в конфигурационном файле sshd_config на 0 для уменьшения риска эксплуатации уязвимости (LSMC Template). К сожалению, это приводит к риску других атак, например, DDoS-атак. Признаком DDoS-атаки могут быть частые записи "Timeout before authentication" в логе.
В 2024 году была обнаружена критическая уязвимость в OpenSSH, связанная с библиотекой XZ Utils. Уязвимость имеет код CVE-2024-3094 и является удалённой уязвимостью исполнения кода (RCE). Она затрагивает версии XZ Utils 5.6.0 и 5.6.1, которые используются во многих дистрибутивах Linux.
Уязвимость была найдена в результате внедрения вредоносного кода одним из контрибьюторов, который смог в течение двух лет оставаться незамеченным в проекте с открытым исходным кодом. Вредоносный код вмешивался в процесс аутентификации OpenSSH, позволяя злоумышленнику с правильным приватным ключом обходить проверки и выполнять произвольные команды на целевой системе до аутентификации (ARMO) (CERT-EU).
Наибольшую опасность уязвимость представляет для дистрибутивов, использующих уязвимые версии XZ Utils, таких как Fedora, openSUSE Tumbleweed, Debian testing, Kali Linux и Arch Linux. Некоторые дистрибутивы, такие как Ubuntu, Red Hat Enterprise Linux и Amazon Linux, не были затронуты (Security Boulevard) (Pentest-Tools.com).
Рекомендации для предотвращения эксплуатации уязвимости включают в себя обновление XZ Utils до версии, предшествующей 5.6.0, или использования исправленных версий. Также важно применять лучшие практики безопасности, такие как использование принципа наименьших привилегий и ограничение доступа к SSH-серверам (CERT-EU) (Pentest-Tools.com).
Для проверки наличия уязвимой версии XZ Utils можно использовать команду:
strings $(which xz) | grep '5\.6\.[01]'
Если вывод команды показывает, что установлена версия 5.6.0 или 5.6.1, необходимо немедленно обновить пакет (Pentest-Tools.com).
Детальная информация и дальнейшие обновления по уязвимости доступны на соответствующих ресурсах безопасности, таких как CERT-EU и другие.
Command 'strings' not found, but can be installed with:
apt install binutils
Стоит ли устанавливать пакет 'binutils'?
Установка пакета binutils для использования команды strings – это разумный шаг, если вам нужно проверить наличие уязвимой версии XZ Utils на вашей системе. binutils – это набор инструментов, который включает в себя strings и другие полезные утилиты для работы с бинарными файлами.
Команда strings используется для поиска печатных строк в бинарных файлах, и она может помочь вам определить версию XZ Utils, установленную на вашей системе.
Чтобы установить binutils, выполните следующую команду:
sudo apt install binutils
После установки вы сможете использовать команду strings, чтобы проверить версию XZ Utils, как было указано ранее:
strings $(which xz) | grep '5\.6\.[01]'
Если вывод покажет, что установлена версия 5.6.0 или 5.6.1, вам нужно будет обновить пакет для устранения уязвимости.
Зачем устанавливать 'binutils'?
- Безопасность: Проверка уязвимых версий XZ Utils поможет защитить вашу систему от потенциальных атак.
- Инструменты:
binutilsсодержит полезные инструменты для анализа и работы с бинарными файлами, которые могут быть полезны и в других ситуациях.
Таким образом, установка binutils оправдана и рекомендуется для обеспечения безопасности вашей системы.
'XZ Utils' что это вообще такое? Может у меня нет этого пакета, а просто установлен 'OpenSSH'?
XZ Utils – это набор инструментов для сжатия данных, который включает в себя команду xz и библиотеку liblzma. Основной инструмент xz используется для сжатия и распаковки файлов, аналогично gzip и bzip2, но с улучшенной степенью сжатия и скоростью. XZ Utils часто предустановлены в современных дистрибутивах Linux и используются для сжатия пакетов и архивации данных.
Как проверить, установлен ли XZ Utils на вашей системе?
Для проверки, установлен ли XZ Utils на вашей системе, можно воспользоваться следующей командой:
xz --version
Если XZ Utils установлен, команда выведет версию программы. Если нет, вы увидите сообщение об ошибке.
Проверка наличия уязвимости
Если XZ Utils установлен, вы можете использовать команду strings, чтобы проверить версию и убедиться, что вы не используете уязвимую версию (5.6.0 или 5.6.1):
strings $(which xz) | grep '5\.6\.[01]'
Важность проверки XZ Utils
Хотя уязвимость CVE-2024-3094 связана с XZ Utils, она может влиять на работу OpenSSH, если скомпрометированные версии XZ Utils используются в вашей системе. Проверка и обновление пакетов помогают избежать возможных атак, особенно если XZ Utils используется в вашем окружении.
В заключение
Если XZ Utils не установлен на вашей системе, и у вас установлены только OpenSSH, то проблема уязвимости, вероятно, вас не касается. Однако, для полной уверенности лучше выполнить проверки, описанные выше.
