Security Week 2428: уязвимость в OpenSSH и поддельный эксплойт
Важная новость прошлой недели: в библиотеке OpenSSH обнаружена и закрыта уязвимость, получившая название RegreSSHion. Проблему нашли специалисты компании Qualys (общее описание, подробная техническая информация, новость на Хабре). Уязвимость получила идентификатор CVE-2024–6387 и является вариантом совсем древней проблемы в OpenSSH, CVE-2006–5051, закрытой в OpenSSH 4.4 в сентябре 2006 года. Исправление, внесенное 16 сентября 2020 года и попавшее в релиз OpenSSH 8.5 в марте 2021 года, по сути сделало старую уязвимость снова актуальной, отсюда и название: RegreSSHion.
![inxh_foqrqwpz0cx1dkyy2ourcu.jpeg](https://habrastorage.org/r/w780q1/webt/in/xh/_f/inxh_foqrqwpz0cx1dkyy2ourcu.jpeg)
Особенности уязвимости представляют собой набор хороших и плохих новостей. Плохая новость: по оценке Qualys на 1 июня, примерно 14 миллионов доступных из сети SSH-серверов были уязвимы. Впрочем, практическую атаку можно провести примерно в отношении 700 тысяч из них. Хорошая новость: уязвимость не так-то просто эксплуатировать. Уязвимость актуальна для дистрибутивов, использующих стандартную библиотеку glibc. Для успешной атаки потребуется выполнить примерно 10 тысяч подключений к уязвимому серверу, что при стандартных ограничениях на количество одновременных подключений и их длительность потребует 6–8 часов. Плохая новость номер два: если атака все же успешна, то она может дать атакующему права суперпользователя. Реальная атака была продемонстрирована только на 32-разрядном дистрибутиве, в то время как для 64-разрядных систем практического метода эксплуатации пока не существует. Осложняют потенциальную атаку и стандартные средства защиты, такие как ASLR.
Зависимость от библиотеки glibc обусловлена тем, что сервер sshd вызывает ряд функций из нее в асинхронном режиме; при этом эксплуатация этих функций таким образом является небезопасной. Это создает так называемое «состояние гонки»: если задействовать уязвимый код в нужное время и с определенными данными, записанными в память, это приводит к выполнению произвольного кода и получению полного контроля над системой. Исследователи Qualys потратили много времени на оптимизацию атаки, начав с совершенно нереалистичного сценария, когда результат достигался за месяц непрерывных обращений к серверу. В процессе были изучены старые версии OpenSSH (до 2006 года), имеющие по сути такую же уязвимость. «Выиграть» то самое «состояние гонки», то есть создать условия для успешной атаки, сложно, и именно поэтому требуются многочисленные обращения к серверу. Каждый раз потенциальный атакующий открывает соединение с SSH-сервером, но не заканчивает процесс аутентификации в течение 120 секунд, что открывает возможность для выполнения небезопасного кода.
Уязвимость закрыта в релизе OpenSSH 9.8 и актуальна для множества дистрибутивов на базе Linux, включая Debian/Ubuntu, Alpine Linux, Red Hat/Fedora, SUSE Enterprise Linux и других. Уязвимость также актуальна для FreeBSD, но не может быть эксплуатирована в OpenBSD, где вместо небезопасной в контексте асинхронного режима работы функции syslog () вызывается syslog_r (). Интересным развитием данного сюжета стало появление поддельного эксплойта для данной уязвимости. В архиве, распространение которого явно нацелено на исследователей безопасности, присутствует как публично доступный (но не работающий) proof-of-concept, так и вредоносный скрипт под Linux, загружающий дополнительные модули с командного сервера.
Что еще произошло
Еще одно громкое событие прошлой недели — появление в открытом доступе коллекции из (почти) 10 миллиардов утекших паролей. Трой Хант, известный специалист по утечкам, этой новостью не впечатлен: он ссылается на предыдущую утечку 2021 года с таким же названием объемом 8,4 миллиарда записей, в которой, в частности, присутствовали «все слова из википедии» и «все слова из книг проекта Гутенберг». На тот момент база проекта Have I Been Pwned содержала в 14 раз меньше записей, потому что в ней сохраняются пароли из реальных утечек данных, а не компиляция всего на свете.
Сразу две новости описывают одну и ту же проблему: хранение чувствительных данных на компьютере открытым текстом. В этот раз критике подверглись приложение ChatGPT и клиент Signal для Mac OS. В первом случае было добавлено шифрование сохраненной переписки с чат-ботом, вторая «проблема» обсуждается годами и, судя по всему, не учитывается в модели угроз данного мессенджера.
Сервис Cloudflare предлагает своим клиентам услугу автоматической блокировки запросов от различных автоматических систем, как правило, собирающих информацию для обучения ИИ.
Свежая научная работа демонстрирует новые методы атак на системы предсказания ветвлений в процессорах Intel.