Россиянин нашел «дыру», жившую в ядре Linux 7 лет
Сотрудник российской компании Positive Technologies вскрыл уязвимость ядра Linux, существующей с 2009 г. Ошибка в драйвере n_hdlc провоцирует «состояние гонки», приводит к двойному освобождению ядра и дает хакеру максимальные права в системе. Уязвимость присутствует в RHEL 6/7, Fedora, SUSE, Debian и Ubuntu.
Уязвимость 7-летней давности
В ядре Linux устранена уязвимость, просуществовавшая незамеченной семь лет. Используя ее, злоумышленник может получить права суперпользователя, повысив привилегии в атакуемой системе, а также спровоцировать сбой в работе. Сбой носит характер «отказа в обслуживании».
Уязвимость получила название CVE-2017-2636. Она присутствует в таких распространенных дистрибутивах Linux как RHEL 6/7, Fedora, SUSE, Debian и Ubuntu. Эти версии Linux широко используются в области государственного управления, телекоммуникаций, авиаперевозок, здравоохранения, банков и др.
Уязвимость была обнаружена российским исследователем безопасности Александром Поповым, сотрудником компании Positive Technologies. Из-за большого срока давности она широко представлена на рабочих станциях и серверах под управлением Linux, отмечает Попов. По данным Positive Technologies более 90% веб-серверов в интернете используют эту ОС. Угроза была оценена по 3-ей версии Общей системы оценки уязвимостей (CVSS), получив 7,8 балла из 10. Конкретных случаев ее использования в Positive Technologies не зафиксировали.
Технические подробности
Как удалось установить Попову, в драйвере n_hdlc содержится ошибка типа «состояние гонки» (race condition), которая провоцирует двойное освобождение памяти ядра. Полученное состояние можно использовать, чтобы повысить привилегии в системе. При этом, по словам Попова, для автоматической загрузки модуля n_hdlc злоумышленнику достаточно прав непривилегированного пользователя. Проведение атаки не требует специализированного ПО.
Уязвимость присутствует в ядре с 22 июня 2009 г. Ее удалось обнаружить благодаря тестированию системных вызовов Linux фаззером syzkaller. 28 февраля 2017 г. Попов поделился информацией об уязвимости на kernel.org, предоставив прототип эксплойта. Также он приложил патч, устраняющий ошибку.
7 марта о находке было объявлено публично, за этим последовал выпуск обновлений безопасности. Чтобы защитить устройство, достаточно установить эти обновления, также можно заблокировать уязвимый модуль вручную.
Последствия повышения привилегий
Атака на выбранную организацию обычно начинается с того, что преступник пытается получить доступ к ее информационным ресурсам с минимальными правами. Исследования Positive Technologies показывают, что в 46% случаев хакер может получить доступ к внутренней сети даже при отсутствии высокой квалификации. В 47% случаев для начала атаки используются уязвимости веб-приложений. В 53% случаев вторжение происходит с помощью словарных паролей, установленных пользователями.
Сразу вслед за проникновением в систему злоумышленник, как правило, начинает добиваться расширения своих пользовательских прав. Повышение привилегий дает хакеру возможность совершать в системе действия, на которые у него нет права, в том числе удалять файлы, знакомиться с частной информацией, устанавливать вредоносное ПО и т. д. CVE-2017-2636 позволяет хакеру расширить свои права в Linux до максимума за несколько секунд.
Например, у атакуемого банка есть веб-сайт, к которому подключаются клиенты, приводит пример Positive Technologies. Сервер сайта работает под управлением Linux. Он обращается к базе данных, которая содержит персональные данные клиентов, в том числе логины, пароли, паспортные данные, номера счетов и транзакций. Чтобы работать с базой – копировать данные, совершать переводы – хакеру нужны права администратора, которых у него нет. Но уязвимость сайта даст ему возможность с минимальными пользовательскими правами исполнить на сервере код, и тогда он может расширить свои права до нужного уровня.