Уязвимость в распространенных дистрибутивах Linux может позволить злоумышленнику получить удаленный контроль над системой. Под ударом оказались пользователи Debian 7 (wheezy), Red Hat Enterprise Linux 6 & 7, CentOS 6 & 7, Ubuntu 12.04. Также уязвимы Zend Framework v2, Wordpress и ряд других популярных приложений.
Информация о новой уязвимости (CVE-2015-0235) в библиотеке glibc (GNU C Library) впервые была опубликована во французской рассылке. Некоторые специалисты считают, что это было сделано по ошибке, так как к тому моменту никто не успел подготовить обновления.
Подробное техническое описание уязвимости и эксплойт для уязвимости можно найти на Openwall, а первые описания были опубликованы в сообществе Rapid 7.
В чем проблема
Специалистам, обнаружившим уязвимость, удалось подготовить специально сформированное email-сообщение, эксплуатирующее уязвимость в почтовом сервере Exim под управлением уязвимой версии Glibc. Стоит заметить, что Exim весьма широко распространен и в некоторых операционных системах является почтовым сервером по умолчанию. Но помимо этого потенциально могут быть проэксплуатированы и другие приложения:
- SSH-серверы, использующие DNS-запросы при аутентификации с allow/deny.
- Почтовые серверы с обратными DNS-запросами.
- Многочисленные веб-приложения, которые по входным данным пользователя проводят DNS-запросы.
- СУБД MySQL, которые проводят аутентификацию по доменным именам (MySQL privileges).
Уязвимость GHOST была обнаружена в библиотеке (glibc — функции gethostbyname() и gethostbyname2()), являющейся неотъемлемой частью Linux — десктоп-компьютеров под управлением этой ОС во всем мире не так много, а вот популяция работающих на ней серверов очень велика, а это значит, что под угрозой может оказаться сетевая инфраструктура большинства технологических проектов. В других реализациях libc (такие как uclibc, musl) уязвимость отсутствует.
Ошибке было присвоено имя GHOST («призрак») — сокращение, обыгрывающее названия уязвимых функций gethostbyname() и gethostbyname2().
По одной из версий, основанных на анализе метаданных логотипа с красным привидением, специалисты знали об этой уязвимости как минимум со 2 октября 2014 года и соблюдали условия ответственного разглашения, пока разработчики исправляли ошибку.
В чем отличие от Heartbleed и Shellshock
В отличие от уязвимости в пакете OpenSSL Heartbleed, позволявшей злоумышленникам читать память сервера, ошибка GHOST позволяет захватывать управление над операционной системой с помощью удаленного исполнения кода (RCE). Поскольку опасности подвергаются главным образом серверы, проблема не должна затронуть столь широкий круг пользователей, как в случае Heartbleed, однако под угрозой оказывается инфраструктура большинства интернет-компаний.
В сравнении с другой нашумевшей уязвимостью Shellshock, эксплуатация GHOST сложнее, поскольку позволяет выполнять бинарные инструкции, а не консольные команды — это значит, что для эксплуатации необходимо обойти механизмы защиты ядра Linux.
Как защититься
Для того чтобы обезопасить свои серверы, необходимо установить патч (заплатку), выпущенную поставщиком соответствующего Linux-дистрибутива. Информация об уязвимости появилась 27 января, поэтому уже сегодня (28 января) должны появиться первые патчи.
Кроме того, ресурс Cyberciti.biz опубликовал инструкцию по обнаружению всех сервисов, приложений и исполняемых файлов в дистрибутиве, связанных с уязвимой библиотекой glibc (GNU C Library), а также устранением ошибки.