Дом Securitywatch Серьезный недостаток bash позволяет злоумышленникам захватывать компьютеры Linux и Mac

Серьезный недостаток bash позволяет злоумышленникам захватывать компьютеры Linux и Mac

Видео: Linux - Case esac statement (Ноябрь 2024)

Видео: Linux - Case esac statement (Ноябрь 2024)
Anonim

Эксперты по безопасности считают, что ошибка, обнаруженная в Bash, широко используемом интерпретаторе команд, представляет серьезную угрозу безопасности для систем Unix и Linux. И чтобы не поддаться искушению отклонить проблему как проблему сервера, помните, что Mac OS X использует Bash. Многие эксперты предупреждают, что это может быть хуже, чем Heartbleed.

Эта уязвимость присутствует в большинстве версий Bash, начиная с версии 1.13 до 4.3, по словам Стефана Чазеласа, администратора сетей и телекоммуникаций Unix и Linux в Akamai, который первым раскрыл эту ошибку. Группа реагирования на компьютерные инциденты (CERT) в Министерстве национальной безопасности предупредила, что в случае ее использования уязвимость может позволить удаленному хакеру выполнить вредоносный код в уязвимой системе. База данных уязвимостей NIST оценила ошибку 10 из 10 с точки зрения серьезности.

«Эта уязвимость потенциально очень серьезна», - сказал Тод Бирдсли, технический менеджер Rapid7.

Уязвимость связана с тем, как Bash обрабатывает переменные среды. При назначении функции переменной любой дополнительный код в определении также будет выполнен. Таким образом, все, что нужно сделать злоумышленнику, это каким-то образом добавить несколько команд в этом определении - классическую атаку с внедрением кода - и они смогут удаленно захватить уязвимую машину. Chazelas и другие исследователи, которые рассмотрели этот недостаток, подтвердили, что его легко использовать, если код внедряется в переменные окружения, такие как функция ForceCommand в OpenSSH sshd, модули mod_cgi и mod_cgid в Apache HTTP Server или сценарии, которые устанавливают среда для клиентов DHCP.

«Большое количество программ в Linux и других системах UNIX используют Bash для настройки переменных среды, которые затем используются при выполнении других программ», - написал в своем блоге главный исполнительный директор Cloud Security Alliance Джим Ривис.

Неизбежное сравнение Heartbleed

Рассмотрим две особенности этой уязвимости: серверы Linux / Unix широко используются в дата-центрах по всему миру, а также на встроенных во многие устройства; уязвимость присутствует годами. Поскольку Bash настолько широко распространен, по сравнению с Heartbleed, уязвимость в OpenSSH, обнаруженная еще в апреле, неизбежна. Роберт Грэм из Errata Security уже назвал недостаток ShellShock.

Но это Heartbleed 2? Это немного сложно сказать. Это определенно серьезная проблема, потому что она дает злоумышленникам доступ к командной оболочке, что является золотым билетом для возможности делать все, что они хотят на этой машине.

Давайте думать с точки зрения размера. Веб-серверы Apache обеспечивают работу огромного большинства веб-сайтов в мире. Как мы узнали во время Heartbleed, есть много не-Linux / Unix-машин, которые используют OpenSSH и Telnet. А DHCP помогает нам легко подключаться и отключаться от сети. Это означает, что в дополнение к компьютерам и серверам, возможно, что другие встроенные системы, такие как маршрутизаторы, также уязвимы для угона. Грэм из Errata Security, который до сих пор проводил самый тщательный анализ ошибки, выполнил несколько сканирований и легко обнаружил несколько тысяч уязвимых серверов, но на данный момент довольно сложно оценить масштаб проблемы.

Однако недостаток Heartbleed присутствовал только благодаря установке уязвимой версии OpenSSL. Эта ошибка не так проста.

«Это не так просто, как« управлять Bash », - сказал Бердсли. По его словам, чтобы машина была уязвимой для атак, должно быть приложение (например, Apache), принимающее пользовательский ввод (например, заголовок User-Agent) и помещающее его в переменную окружения (что делают скрипты CGI). Современные веб-фреймворки, как правило, не пострадают, сказал он.

Возможно, именно поэтому Грэм и сказал, что ShellShock столь же серьезен, как и Heartbleed: «Нет необходимости торопиться и исправлять эту ошибку. Ваши основные серверы, вероятно, не уязвимы для этой ошибки».

Но прежде чем мы начнем волноваться о маршрутизаторах и встроенных устройствах (и Интернете вещей), имейте в виду, что не все системы используют Bash. Ubuntu и другие производные от Debian системы могут использовать другой интерпретатор команд, называемый Dash. Встраиваемые устройства часто используют одно устройство под названием BusyBox, которое не является уязвимым, сказал в Твиттере старший научный сотрудник «Лаборатории Касперского» Роэль Шувенберг.

Уязвимы или нет?

Вы можете проверить уязвимость, выполнив следующие команды (код, предоставленный CSA). Откройте окно терминала и введите в командной строке следующую команду:

env x = '() {:;}; echo уязвимый 'bash -c "echo это тест"

Если вы уязвимы, он напечатает:

уязвимый

это проверка

Если вы обновили Bash, вы увидите только:

это проверка

Обычно я бы сказал, что нужно сразу же исправлять ошибки, но оказывается, что доступные исправления не завершены. Red Hat сказал сегодня утром, что есть еще способы внедрить команды через переменные среды, даже после исправления Bash. Если у вас просто несколько машин, возможно, стоит пойти дальше и применить доступные исправления, но если у вас есть тысячи машин для исправления, возможно, стоит подождать еще несколько часов. Все исходные дистрибутивы Linux (и, надеюсь, Apple!) Работают над исправлением прямо сейчас.

«Помните, что даже если вы никогда раньше не слышали о Bash или не запускали его, на вашем компьютере вполне может быть запущено программное обеспечение, запускающее процессы Bash», - сказал независимый консультант по безопасности Грэм Клули.

Серьезный недостаток bash позволяет злоумышленникам захватывать компьютеры Linux и Mac