четверг, 25 сентября 2014 г.

В командной оболочке bash обнаружена критическая уязвимость

Просуществовавшая в течение 22 лет брешь позволяет удаленно выполнить код.
В командной оболочке bash, пользующейся популярностью в среде Linux, обнаружена критическая уязвимость, которая позволяет удаленно извлекать код. По десятибалльной шкале Национального Института стандартов и технологий США (NIST) брешь получила 10 баллов.
Уязвимость CVE-2014-6271 связана с некорректной обработкой переменных окружений и  функций. Стоит отметить, что в используемых в настоящее время версиях bash наименование переменной окружения и функции совпадают. При этом определение функции начинается со знаков () {.
Брешь возникает по причине того, что после обработки функции оболочка не останавливается, а продолжает осуществлять синтаксический анализ кода и выполнять дальнейшие команды bash. Это позволяет злоумышленнику использовать переменну окружения с произвольным именем для доставки команд на системы жертвы.
Просуществовавшая в течение 22 лет CVE-2014-6271 была обнаружена на прошлой неделе ИБ-экспертом Стефаном Чазеласом (Stephane Chazelas), однако подробности раскрыты только сейчас. Уязвимость присутствует во всех версиях bash до 4.3. Исправления были выпущены в среду, 24 сентября.  
Уязвимости позволяют удаленному пользователю выполнить произвольный ввод кода на целевой системе.
Уязвимость существует из-за ошибки обработки входных данных при выполнении синтаксического анализа кода. Удаленный пользователь может выполнить произвольные команды на целевой системе.

Как уязвимость может затронуть пользователя?

bash и ОС хранят список перемены окружения, которые описывают текущего пользователя, путь к приложениям на жестком диске и прочие функции. Создав переменну окружения с особой структурой, взломщик сможет выполнить произвольный код на ПК жертвы во время следующего запуска bash.Создать переменну окружения можно следующим образом:

· Установить удаленное соединение через SSH и попробовать войти в систему. Подобрав специфический логин или имя хоста, можно создать перемену окружения со специфическими данными;
· Вынудить пользователя создать перемену окружения самостоятельно;
· Вынудить определенные программы задать нужное значение перемены окружения. К примеру, пользователь запустил web-сервер и скрипт, устанавливающий собственную перемену окружения. Даже несмотря на то, что работа скрипта не изменяет системные перемены окружения, ОС уже уязвима.
Установив собственную перемену окружения, хакеры смогут выполнить произвольный ввод кода на устройстве пользователя при следующем запуске bash. Ситуация может стать еще опаснее при использовании команды sudo –s, запускающей bash с корневыми правами.
Отметим, что некоторые программы используют bash для совершения собственных операций. Даже если пользователь не использует bash, его ПК уже может быть уязвимым. 

Проверка

Для того чтобы проверить, уязвима ли система, следует выполнить в терминале команду:
env x='() { :;}; echo vulnerable' bash -c 'echo hello'
Если система пользователя защищена, bash вернет следующее сообщение:
bash: warning: x: ignoring function definition attempt
bash: error importing function definition for `x'
hello
Если система пользователя уязвима, bash вернет следующее сообщение:
vulnerable
hello

Исправление


Разработчики Bash выпустили срочное исправление, устраняющее эту уязвимость. Всем пользователям ОС Linux (особенно дистрибьюторам  Ubuntu и Debian) рекомендуется как можно скорее загрузить последние обновления для данного программного продукта.


Источник : securitylab.ru

Комментариев нет:

Отправить комментарий