Вы используете устаревший браузер!

Страница может отображаться некорректно.

  • добавить в избранное
    Добавить в закладки

«Юбиляру» посвящается

Прочитали: 1786 Комментариев: 101 Рейтинг: 93

В январе 2018 года стало известно об уязвимости за номером 1 000 001 (CVE-2018-1000001). Хорошо живем!

Внимание СМИ обычно привлекают громкие фразы о «дырах размером с ворота» (даже если эти ворота потом зарастают бурьяном и ими никто не пользуется). Сделаем исключение и расскажем о рядовой уязвимости, особенность которой заключается лишь в красивом номере.

В стандартной библиотеке Glibc выявлена уязвимость (CVE-2018-1000001) проявляющаяся при возврате относительного пути системным вызовом getcwd().

Так как вызов getcwd() может вернуть не полный путь, а обрезанный с заменой части на "(unreachable)", а realpath() на подобную замену не рассчитан и пытается найти "/" корня пути, при разборе подобного пути он не остановится на начале "(unreachable)", а продолжит разбор памяти. Суть нормализации в удалении лишних элементов ("/./", "/../" и "//") в пути, поэтому буфер для записи итогового пути выделяется на основе размера имеющегося пути, без расчета, что разбор продолжится за пределами "(unreachable)". Так как заполнение осуществляется в обратном порядке, то при обработке символической ссылки с комбинацией переходов "/../" можно добиться выхода указателя в нужную область памяти до начала выделенного буфера и содержимое части пути будет записано в область перед буфером.

Выявившие уязвимость исследователи подготовили рабочий прототип эксплоита.

http://www.opennet.ru/opennews/art.shtml?num=47894

Переведем на русский. Пути бывают абсолютные и относительные. Пример абсолютного пути: C:\Windows. В этом случае известно точное местоположение файла или папки. Относительный путь отсчитывается не от корневого каталога, а от текущего положения пользователя и может начинаться с "..". Во многих случаях вещь достаточно удобная. Например, когда нужно переместиться из одной папки в другую:

#drweb

Проблемы возникают, когда известен относительный путь к файлу или папке, а требуется получить абсолютный. Естественно, его длина в момент вызова такой операции неизвестна и вполне может превысить отведенный буфер. И вполне возможно, что при обработке буфера программа (по указанию хакера, передавшего в нее специальным образом сформированные данные) может выйти за его пределы. Так выглядит атака на переполнение буфера.

В случае упомянутой уязвимости возникала ошибка иного рода. Команда получения пути (getcwd(), копирует полный путь текущего рабочего каталога диска в строку указанной длины) в ответ на запрос отвечала, что по какой-то причине не может получить часть пути (unreachable). А команда, вызывавшая getcwd, этот момент не учитывала и продолжала попытки получения абсолютного пути, в результате выходя за часть пути, обозначенную как unreachable.

Типичная ситуация, характерная для несогласованной работы команд, ответственных за разные части проекта.

Естественно, для найденной уязвимости было выпущено обновление, которое нужно установить.

Интересный факт

Средний возраст наиболее устаревших неустановленных обновлений по системам, где такие уязвимости были обнаружены (прим. по итогам проведенных аудитов систем), составляет 108 месяцев (9 лет).

Самая старая из обнаруженных уязвимостей (CVE-1999-0024) опубликована более 17 лет назад и связана с тем, что DNS-сервер поддерживает рекурсию запросов. В результате эксплуатации данной уязвимости злоумышленник может проводить атаки на отказ в обслуживании.

https://www.ptsecurity.com/upload/corporate/ru-ru/analytics/Corp-Vulnerabilities-2017-rus.pdf

Вот так и живем. Уязвимости находятся, патчи под них выпускаются – и не устанавливаются. Сервер проработал наверно лет 17-18, и никто не озаботился установить на него обновления.

Кстати, знаете ли вы, что для уязвимости есть свой аналог премии «Оскар» со своими номинациями? Например, такими:

На прошедшей в Лас Вегасе конференции Black Hat состоялась церемония вручения премии Pwnie Awards 2017, в рамках которой выделены наиболее значительные уязвимости и абсурдные провалы в области компьютерной безопасности.

Наиболее раздутое объявление об уязвимости. Присуждается за наиболее пафосное и масштабное освещение проблемы в Интернете и СМИ, особенно если в итоге уязвимость оказывается неэксплуатируема на практике. В номинации упомянуты:

  • Уязвимость Dirty Cow (CVE-2016-5195), которая является локальной уязвимостью в ядре Linux, ничем не примечательной перед другими подобными проблемами, которые всплывают регулярно. Но, в отличие от остальных проблем, для Dirty Cow создан свой сайт, логотип и аккаунт в Twitter.
  • Уязвимость в Cryptsetup (CVE-2016-4484), которая была излишне демонизирована несмотря на возможность совершения атаки, только при физическом доступе к оборудованию.
  • Исследователь, выявивший код для деактивации атаки вредоносного ПО Wannacry, был возвеличен в СМИ как спаситель человечества и герой.
  • Атака Cloak and Dagger, для которой заведен свой сайт, на деле бессмысленна, так как требует, чтобы жертва установила специальное приложение с правами вывода поверх других окон.

https://www.opennet.ru/opennews/art.shtml?num=46943

#уязвимость #эксплойт

Dr.Web рекомендует

И на фоне «звезд» типа Meltdown теряются менее известные, но куда более используемые или опасные «дыры».

Получайте Dr.Web-ки за участие в проекте

Каждая активность = 1 Dr.Web-ка

Оцените выпуск

Сделайте репост

Поставьте «Нравится»

Чтобы получать награды надо войти на страницу выпуска через аккаунт на сайте «Доктор Веб» (или создать аккаунт). Аккаунт должен быть связан с вашим аккаунтом в социальной сети. Видео о связывании аккаунта.


Нам важно ваше мнение

10 Dr.Web-ок за комментарий в день выхода выпуска или 1 Dr.Web-ка в любой другой день. Комментарии публикуются автоматически и постмодерируются. Правила комментирования новостей «Доктор Веб».

Чтобы оставить комментарий, нужно зайти через свой аккаунт на сайте «Доктор Веб». Если аккаунта еще нет, его можно создать.

Комментарии пользователей


 
На страницу: