LINUX.ORG.RU

Уязвимость в bash и множественные уязвимости в APT

 , ,


3

9

Опубликованы подробности уязвимости CVE-2014-6271 в bash, которая позволяет злоумышленнику произвести удалённое выполнение кода.

Уязвимость возможна благодаря одной из особенностей bash - использования переменных окружения для экспорта функций (если в переменной содержится "() {", то её содержимое будет интерпретировано как функция). Проблема заключается в том, что обработка продолжается даже после символа «}», поэтому, если добавить любую команду — она будет выполнена. Атаке подвержены sshd, Git и Subversion (при определённых обстоятельствах), Apache с mod_cgi или mod_cgid (если скрипты CGI написаны на bash или вызывают bash-скрипты), клиенты DHCP (если они вызывают скрипты для настройки системы), CUPS и вообще любые приложения, которые запускают bash (или bash-скрипты) и могут устанавливать переменные окружения на основе данных, полученных извне.

Для проверки наличия уязвимости в системе можно выполнить команду

env x='() { :;}; echo vulnerable' bash -c "echo this is a test"
Если система уязвима, в консоль будут выведены строки «vulnerable» и «this is a test», а при отсутствии уязвимости, сообщение об ошибке вида
bash: warning: x: ignoring function definition attempt
bash: error importing function definition for `x'
this is a test

Обновление с исправлением уязвимости уже выпущено для некоторых популярных дистрибутивов.

Кроме того, объявлено об исправлении множественных уязвимостей в пакетном менеджере APT. Уязвимости CVE-2014-0487, CVE-2014-0490, CVE-2014-0488 и CVE-2014-0489 позволяют обойти проверку цифровых подписей пакетов и репозиториев, а уязвимость CVE-2014-6273 - выполнение произвольного кода, отправленного злоумышленником, вмешавшимся в трафик.

anonymous

Проверено: JB ()

Поговаривают, что в линуксе dhclinet любит записывать в ENV что-то что пришло от DHCP-сервера и потем дергать всякие разные шелл скрипты. От рута, конечно

Поговаривают, что iOS-устройства подвержены уязвимости через DHCP тоже. Скорее всего, скоро будет jailbreak для Apple TV. DHCP-клиенты-то от root работают.

anonymous
()

shellshock.brandonpotter.com/ — онлайн-проверка веб-серверов на наличие уязвимости

anonymous
()

В зоне риска системы удаленного управления серверами и промышленными системами. Зачастую они разработаны с широким использованием shell-технологий и при этом крайне редко обновляются. Другие потенциальные кандидаты на взлом с использованием новой уязвимости — точки доступа, маршрутизаторы, встраиваемые устройства, принтеры и вообще любые устройства, связанные «интернетом вещей».

Более того, потенциально атака может быть произведена и на пользовательские устройства, такие как смартфоны и планшеты под управлением Android: достаточно просто подключится к управляемой злоумышленником точке беспроводного доступа. Такие атаки наиболее опасны в местах массового скопления людей, активно использующих Wi-Fi, — в кафе, в метро, в аэропорту.

«Эта уязвимость примечательна тем, что использует вполне «легальный» механизм командной оболочки, в сочетании с распространенной в *nix-сообществе техникой применения команд операционной системы. К сожалению, многие встраиваемые устройства, используемые как в корпоративных сетях, так и в домашних системах, потенциально уязвимы для атаки ShellShock. Усугубляет дело тот факт, что системы на таких устройствах крайне редко обновляются и часто содержат устаревшие версии ОС и системных компонентов. Пользователям смартфонов, планшетов и ноутбуков под управлением Linux и Mac OS X не рекомендуется подключаться к незнакомым точкам беспроводного доступа до установки обновления безопасности», — отметил Сергей Гордейчик, заместитель генерального директора Positive Technologies.

anonymous
()

Убунта еще вчера прислала заплатку.

bash: внимание: x: ignoring function definition attempt
bash: ошибка при импортировании определения функции`x'
this is a test

akutyrev
()
Ответ на: комментарий от anonymous

но ведь в андроиде mksh. эксперты такие эксперты...

alegzz
()

У меня (Opensuse 13.1) уже исправлено.... или сломано не было :)

gigamax ★★
()

А я думаю что за обновление баша в опенсусе прилетело вчера.

unclechu
()
Ответ на: комментарий от ptarh

Так и не понял, зачем эппл в макось тащит убогий GPL-ный bash, вместо трушного zsh под MIT. С линуксом все ясно - Столлман не завещал, но эпплу то что?

У меня zsh стоит, вроде отдельно не устанавливал. А bash, потому что самый популярный shell, странно его не тащить.

Legioner ★★★★★
()
Ответ на: комментарий от Legioner

Учитывая то, что он уже и необновляем толком, странно его тащить. Свои то системные службы они на zsh переписать смогут. Может эта чудная дырень их чему научит. Хотя вряд ли.

ptarh ★★★★★
()
Ответ на: комментарий от EvilFox

А сколько втихую эту уязвимость использовали?

Скорее всего нисколько. Профессиональный аудит атаки очень быстро выявит её причину и об уязвимости сразу всем станет известно.

Legioner ★★★★★
()
Ответ на: комментарий от ptarh

Так а какие претензии конкретно к башу? Уязвимость? zsh выглядит сильно сложнее баша и в нём этих уязвимостей потенциально хватает, просто неуловимый джо никому не нужен. Зачем от него избавляться, какая цель?

Legioner ★★★★★
()
Ответ на: комментарий от Legioner

Банально - эпплу не нравится GPLv3 и поэтому их версия баша не обновляется(можешь сам проверить, какая установлена в макоси и какая актуальная). Со временем скрипты для актуального баша из-за таких вещей все равно начнут лягать в живот пользователей макоси, что сводит ценность шелла, «который все знают», к нулю. Я уж не говорю о том, что эти заплатки им тоже надо будет бакпортировать руками.

ptarh ★★★★★
()
Последнее исправление: ptarh (всего исправлений: 1)
Ответ на: комментарий от unclechu

Кто-нибудь в курсе, в Debian 6 прилетит обновление?

Должно прилететь. По-моему, пофиксили: https://security-tracker.debian.org/tracker/CVE-2014-6271

UPD: Вру. Это прошлый патч как раз, а вот самый новый еще на шестерку не наложили: https://security-tracker.debian.org/tracker/CVE-2014-7169

Zubok ★★★★★
()
Последнее исправление: Zubok (всего исправлений: 2)
Ответ на: комментарий от WARNING

Хороший, годный баг. По шкале эпичности ставлю ему 0.6 heartbleed'а.

Какой-же он годный, если не работает?

evgenij@evg-dsk:~$ env x='() { :;}; echo vulnerable' bash -c «echo this is a test» bash: внимание: x: ignoring function definition attempt bash: ошибка при импортировании определения функции`x' this is a test

EvgenijM86
()
Ответ на: комментарий от anonymous

Сергей Гордейчик, заместитель генерального директора Positive Technologies.

Интересно, кто его папик или сожитель... С таким идиотизмом получить такую должность другими способами нереально. Заместитель генерального директора Positive Technologies, которая якобы специализируется на всяческой безопасности даже не в курсе, что в точках тоступа и прочей хрени скорее всего ash из busybox'a (ну или msh из него же), а в ведроиде - в худшем случае какой-то свой костыль...

А потом возникают топики - почему в рашке всё так уныло везде, и с промышленностью, и с IT и с наукой. Да вот поэтому и уныло, что на всех руководящих должностях в сколь-нибудь значимой промышленности, IT и науке - либо сыночки, либо сопидары чьи-нибудь.

Stanson ★★★★★
()
Ответ на: комментарий от anonymous

Все зло от баб :) Не нашла бы, мужики бы спали спокойно, а некоторые поднимали бабло на этом.

gh0stwizard ★★★★★
()
Ответ на: комментарий от anonymous

Хороший способ автоматизировать создание ботнетов.

anonymous
()

Для шестого дебиана исправление ещё что-ли не выпустили?

MrClon ★★★★★
()
Ответ на: комментарий от I-Love-Microsoft

Пришло очередное обновление bash в Ubuntu 14.04 - уязвимость по прежнему остается.

I-Love-Microsoft ★★★★★
()

Интересно, скольких поимели через баш, пока не обнародовали дырку?

Vinni_Pooh ★★★★★
()
Ответ на: комментарий от anonymous

Кто-нибудь может объяснить эту bash-магию?

В код баша не смотрел, но, судя по патчу, который это исправляет, идея такая: хоть определение функции X и некорректно (нет завершающей фигурной скобки), но наличие \ в конце приводит к тому, что последний символ перед \ (здесь это >) попадает в начало непосредственно вызываемой команды. Т.е. по факту команда становится такой:

bash -c ">echo date"; cat date

unterwulf
()
Ответ на: комментарий от Legioner

Профессиональный аудит атаки очень быстро выявит её причину и об уязвимости сразу всем станет известно.

Профессиональный атакующий потрет логи и хоть завыясняйся.

xtraeft ★★☆☆
()
Ответ на: комментарий от xtraeft

Профессиональный аудит, а не хомячковый, не только логи смотрит, но и сравнивает копии до и после.

anonymous
()
Ответ на: комментарий от anonymous

не только логи смотрит, но и сравнивает копии до и после.

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

xtraeft ★★☆☆
()

В Debian Testing все печально с безопасностью?

Кстати, может кто знает, ветка Debian Testing попрежнему не обеспечивается обновлениями безопасности?

CoolAller
()
Ответ на: комментарий от xtraeft

Вот кстати, про стирание строчки в логе. Хакер стёр строчку - админ-мимоходом глянул в логи, ничего подозрительного не увидел. А если бы использовался systemd, в котором каждая последующая строчка завязана на предыдущую - пришлось бы чистить логи полностью, что уже намного сильнее привлечёт внимание к тому, что сервер-то уже скомпрометирован и нужно его чистить.

anonymous
()
Ответ на: комментарий от Tactile

Вообще какой-то странный совет если честно. Бинарник ведь при обновлении перезапишется и программы его вызывающие будут обращаться уже к новой копии. Не совсем понятен смысл. С таким же успехом можно предложить переустановить систему для большей уверенности.

ЗЫ это претензия не к тебе, а к совету редхата :)

Хотя по идее какой-то из процессов может висеть в памяти и не обновиться. Было бы интересно знать точно возможно ли такое.

soko1 ★★★★★
()
Ответ на: комментарий от soko1

Было бы интересно знать точно возможно ли такое.

Демон на баше? Вполне возможно.

om-nom-nimouse ★★
()
Ответ на: комментарий от anonymous

«Вот кстати, про стирание строчки в логе. Хакер стёр строчку - админ-мимоходом глянул в логи, ничего подозрительного не увидел. А если бы использовался systemd, в котором каждая последующая строчка завязана на предыдущую - пришлось бы чистить логи полностью, что уже намного сильнее привлечёт внимание к тому, что сервер-то уже скомпрометирован и нужно его чистить.»

Один единственный битый сектор или ошибка в процессе записи на HDD приведет в негодность все логи, а админ будет думать, что его ломанули.

anonymous
()
Ответ на: комментарий от soko1

Фраза про ребут была вырвана из контекста.

Там речь идёт о том, что даже с патчами наследование функций через окружение может быть опасно и поэтому предлагаются дополнительные костыли.

Один из них в виде либы, которая добавляется в прелоад. Перезапуск здесь — простой способ гарантированно перезапустить все сервисы, используя изменённый /etc/ld.so.preload. Сам RedHat о таком подходе (прелоад для всех) говорит «Note that this is potentially very dangerous» и не рекомендует его.

https://access.redhat.com/articles/1212303

unterwulf
()
Ответ на: комментарий от Myau

проверь ещё раз, потому что в нем уязвимости нет.

maloi ★★★★★
()
Ответ на: комментарий от soko1

ага, и не одни. я ж там привел сорцес.лст.
тут дело в чем: в сецурити-репах для тестинга пустота. на тот момент исправленная версия была в wheezy-security, но номер версии там меньше (см. мое сообщение, опять же), потому она и не накатилась. сегодня прилетела 4.3.9-1, для которой в ченджлоге уже прописан фикс, и которая на тот момент еще отстаивалась в анстэйбле.
получается интересная ситуация: залатанные версии идут в stable-security, но там меньше версия.и в анстэйбол, но оттуда оно переезжает в тестинг не сразу, даже, как видим, в таких вот случаях.
можно бы повысить пин для stable-security, но там обновления для пакетов из стэйбла, может выйти какая-нибудь шляпа с зависимостями. и вот я хз, как быть

PerdunJamesBond
()
Ответ на: комментарий от anonymous

Кто-нибудь может объяснить эту bash-магию?

плюсую, нифига не понял конструкцию
(a)=>\

PerdunJamesBond
()
Ответ на: комментарий от Tactile

Ну так ведь апач перезапускается при обновлении, по крайней мере в debian так )

soko1 ★★★★★
()
Ответ на: комментарий от PerdunJamesBond

На самом деле ситуация не забавная. На лицо полное головотяпство, уязвимость 0Day в широких кругах живет уже около недели, а скрипты и тулзы в изобилии представлены на GitHub) И это при том, что ShellShock опаснее, чем Heartbleed) ИМХО конечно, но такое отношение к безопасности вообще неприемлимо, особенно в корпоративной среде. И еще, лично я не верю в то, что это просто «ошибка», как и в случае с сегельмановским Heartbleed. А еще сдается мне, что ShellShock это не единственная дыра в безопасности, так как те кто причастны к ShellShock должны были об этом позаботится.

CoolAller
()
Ответ на: комментарий от anonymous

А если бы использовался systemd, в котором каждая последующая строчка завязана на предыдущую - пришлось бы чистить логи полностью

Это Поттеринг головного мозга какой-то! Тем админам, которым нужны маниакально-безопасные логи нужно просто поставить бинарный логгер с базами данных, цифровыми подписями, QR-кодами и прочей херней. Зачем его нужно прибивать гвоздями к системе инициализации, непонятно...

anonymous
()
Ответ на: комментарий от CoolAller

На самом деле ситуация не забавная. На лицо полное головотяпство, уязвимость 0Day в широких кругах живет уже около недели, а скрипты и тулзы в изобилии представлены на GitHub)

тут я хз, каковва «политика партии». выше вон кто-то говорил, мол первичен стэйбл (там таки быстро выпустили патченый пакет), а тестинг в последнюю очередь. но выходит как - в анстэйбл пофикшенный пакет попал тоже довольно быстро (кому интересно, можно глянуть на qa.packages.debian.org). с учетом того, что тестинг юзают многие, а на чистом анстэйбле, поди, мало кто сидит - кому надо, ставят нужные пакеты оттуда, выставляя им приоритет.
в итоге получается либо стэйбл, либо анстэйбл тоже с быстрыми фиксами, но и потенциальными свежими багами (и свежими дырами, ага), либо тестинг и хрен пойми что...

А еще сдается мне, что ShellShock это не единственная дыра в безопасности

да ну, брось. выполнение произвольного кода через переменные, передаваемые извне - популярная «детская болезнь». школосайты вон на похапе так ломают...

PerdunJamesBond
()
Ответ на: комментарий от PerdunJamesBond

там таки быстро выпустили патченый пакет

Ага, выпустили, только оказалось, что проблему он так и не устраняет.

CoolAller
()
Ответ на: комментарий от CoolAller

Ага, выпустили, только оказалось, что проблему он так и не устраняет.

ну, тут уж гонка вооружений)) команду из заглавного поста поломали. а приведенная далее по треду - как бы и не совсем тот же самый баг. в оригинальной версии было законченное определение функции (с ; и } ), после которого почему-то выполнялась написанная далее хрень. в новой версии функция недоделана (нет закрывающих ;} ), и происходит хрен пойми что)))

PerdunJamesBond
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.