Red Hat недавно объявила о серьезной ошибке, связанной с безопасностью, в оболочке Bash. Некоторые называют это ошибкой «раковины». Поскольку OS X построена на основе Unix, уязвима ли она для атак, использующих эту ошибку?
Должен ли я, как конечный пользователь, беспокоиться о немедленном исправлении? Или мне лучше дождаться официального обновления ПО от Apple?
Да, вы технически уязвимы. Так что, если вам хочется запаниковать или выставить счет паникующему клиенту за несколько часов панической работы, дерзайте!
Но на самом деле, если вы не разрешаете доступ по SSH из удаленных подключений или веб-сервера, на котором выполняются сценарии на стороне сервера, вы не подвергаетесь риску. Вы действительно уязвимы только в том случае, если кто-то, кого вы не знаете, может удаленно получить доступ к вашей машине и сделать это таким образом, чтобы можно было выполнить команду Bash.
Это означает, что ваш настольный Mac, на котором на самом деле не работают какие-либо серверные приложения, не подвергается серьезному риску. Я готов съесть немного пресловутого «скромного пирога», но я не думаю, что большинство пользователей Mac будут в опасности в конце дня.
Таким образом, эта проблема в основном касается системных администраторов серверов Mac OS X и Unix/Linux, открытых для всего мира, а не пользователей настольных компьютеров, которые не разрешают совместное использование SSH.
Возможно, существует риск того, что для использования этого риска будет создано вредоносное ПО или вирус для Mac, но я в этом сомневаюсь.
РЕДАКТИРОВАТЬ: И просто чтобы уточнить, как эта проблема, по моему скромному мнению, не является проблемой для большинства обычных пользователей, да, я могу запустить следующую команду из bash
Mac OS X 10.9.5:
env x='() { :;}; echo vulnerable' bash -c 'echo hello'
И я вижу это:
vulnerable
hello
Угадай, что? Это ужасно, только если вы не продумаете это рационально. Я должен был уже войти в свой Mac, чтобы даже открыть Терминал. И чтобы опровергнуть то, что я сказал о SSH выше, чтобы даже добраться до того момента, когда я могу запустить этот тест, даже если SSH включен, мне все равно нужно будет войти в систему для начала. А затем — скажем, я получаю доступ через SSH — команда не позволяет мне делать НИЧЕГО помимо моих обычных прав пользователя, таких как это:
env x='() { :;}; echo vulnerable' bash -c 'cat /etc/ssh_host_rsa_key'
Это означает, что если вы действительно уязвимы для использования этим взломом, ваша основная безопасность в системе должна быть настолько скомпрометирована, что тот факт, что bash
у вас есть недостаток, действительно является наименьшей из ваших проблем.
Это проблема общего контроля и прав, так как это может привести к непреднамеренному доступу, поскольку поведение выходит за рамки ожидаемых норм. Но, по моему скромному мнению, это не такой риск, как OpenSSL или садовая разновидность риска «позвольте мне оставить свой пароль в заметке, приклеенной к моему экрану».
В конце концов, я все еще исправляю все свои серверы Linux/Unix, которые запускаю по стандартной процедуре. И с радостью пропатчу компьютеры Mac, которыми я управляю, как только выйдет исправление. Но для практического повседневного использования я чувствую себя прекрасно, не беспокоясь об этом, поскольку я не понимаю, как недостаток, который не позволяет повышенным привилегиям пользователя, добавляется к чему-либо.
ОБНОВЛЕНИЕ: здесь опубликовано официальное сообщение от Apple ; акцент мой:
«Подавляющее большинство пользователей OS X не подвержены риску недавно обнаруженных уязвимостей bash, — сказал iMore представитель Apple. — Bash, командная оболочка UNIX и язык, включенный в OS X, имеет уязвимость, которая может позволить контроль уязвимых систем. В OS X системы безопасны по умолчанию и не подвергаются удаленным эксплойтам bash, если только пользователи не настроят расширенные службы UNIX. Мы работаем над тем, чтобы быстро предоставить обновление программного обеспечения для наших опытных пользователей UNIX».
Перевод: Что я сказал выше о том, что это проблема сервера, а не проблема клиента? Точно.
ПОСЛЕДНЕЕ ОБНОВЛЕНИЕ: Для тех, кто испытывает трудности с компиляцией из исходного кода, с 29 сентября Apple официально выпустила исправления для Mac OS X 10.9.5, 10.8.5, а также 10.7.5:
ЕЩЕ ОДНО ПОСЛЕДНЕЕ ОБНОВЛЕНИЕ: И вот сегодня Apple выпустила комбинированное обновление безопасности, которое также включает это bash
обновление !
Примечание. Обновление безопасности 2014-005 включает в себя содержимое системы безопасности OS X bash Update 1.0.
bash
. Так страх основан на чем именно? Кроме того, даже если гостевая учетная запись открыта и каким-то образом bash
ее можно использовать, что тогда? Судя по тому, что я вижу, использование этого эксплойта не будет иметь повышенных привилегий или чего-то даже близкого к этому. Серьезно, я готов отказаться от своей позиции, но это больше похоже на панику, основанную на незначительном, тогда как OpenSSL был реальной проблемой.bash
уязвимость, он может заставить любого демона, работающего от имени пользователя root, использовать bash для выполнения любой команды с привилегиями root . По умолчанию на Mavericks гостевая учетная запись отключена, и ssh
доступ тоже отключен :).bash
вручную из исходников. Из-за таких советов клиентским машинам будет нанесен НАМНОГО больше вреда, чем от любого настоящего эксплойта «Shellshock».@mac.com
адрес вредоносный PDF-файл. Вы ничего не делаете, кроме как пролистываете сообщение в Mail.app, которое показывает PDF-файл в области предварительного просмотра, что затем запускает полезную нагрузку (CVE-2014-4377). Ваш неисправленный bash может превратить этот пользовательский эксплойт (плохой) в эксплойт корневого уровня (хуже).Да!
Введите это в своей оболочке
env x='() { :;}; echo vulnerable' bash -c 'echo hello'
Если это говорит, vulnerable
то вы уязвимы.
Если он говорит
bash: warning: x: ignoring function definition attempt
bash: error importing function definition for `x'
hello
тогда ты молодец.
Изменить: ссылка на исправление
env X="() { :;} ; echo busted" /bin/sh -c "echo completed"
— даже после исправления моей системы, эта выдает «сбой» в командной строке. Бах./bin/sh
... вам нужно заменить оба /bin/sh
и /bin/bash
защитить себя. /bin/sh
на самом деле более проблематична, так как это оболочка, которую языки сценариев, вероятно, будут использовать для выполнения команд оболочки.bash
и другое sh
за один шаг. Сборка из ванильного исходного кода GNU требует отдельной компиляции. Кроме того, bashbug
он имеет другое место установки в OS X, чем вывод GNU, поэтому его также необходимо переместить.Как конечный пользователь убедитесь, что:
ваша гостевая учетная запись отключена:
Системные настройки > Пользователи и группы > Гость
ваш ssh
доступ отключен:
Системные настройки > Общий доступ > Удаленный вход
По умолчанию они оба отключены в Mavericks.
Как конечному пользователю , безопаснее дождаться официального обновления безопасности Apple, устраняющего эту bash
уязвимость.
Все машины с Mac OS X технически уязвимы для «Shellshock», пока Apple не выпустит обновление безопасности, исправляющее bash, но...
Ваш вопрос должен быть: Могу ли я быть взломан удаленно?
Существует так много программного обеспечения, которое используется bash
по рассеянности, что ответить на этот вопрос чрезвычайно сложно. Если вы беспокоитесь, я бы предложил несколько изменений System Preferences
для предотвращения удаленных эксплойтов:
Если вы особенно обеспокоены, нажмите Firewall
кнопку параметров, чтобы:
Automatically allow signed software to receive incoming connections
.Block all incoming connections
.По-прежнему существует респектабельный шанс, что вы уязвимы для атаки уровня с использованием DHCP, Bonjour и т. д., но, если вам нужна другая служба, то, очевидно, вы можете оставить ее работающей, пока вы надеетесь, что она не будет взломана. И вам также нужно оставить брандмауэр более открытым. Скорее всего, все будет хорошо, если ваша машина живет за другим брандмауэром.
Кроме того, есть ли локальные атаки с повышением привилегий, активируемые «Shellshock»? Да, почти наверняка. Я бы не стал беспокоиться, потому что в Mac OS X достаточно подобных атак. Apple не исправляет ошибки локального повышения привилегий быстро. И Apple часто создает их с помощью сервисов с поддержкой Apple Script. Просто предположим, что все машины Mac OS X всегда уязвимы для локальных атак. Если вам нужно посещать хакерские конференции, такие как DEFCON, купите себе Linux для этой цели.
Обновление: есть инструкции по перекомпиляции вашего собственного исправленного bash , а также другие вопросы, связанные с этим . Я сделаю это сам, но ИМХО это излишество, если вы не запускаете никаких серверов и все равно держите брандмауэр Apple включенным.
Обновление: если вам удобно использовать терминал, здесь упоминается программа ,execsnoop
которая позволит вам проверить, обычно ли bash вызывается вашими серверными процессами. Это не волшебная пуля, поскольку серверный процесс может вызывать bash только в необычных ситуациях, но это даст вам хорошую идею.
Наконец, Apple не очень хороша в исправлении уязвимостей в системе безопасности, но они хороши в PR, так что это будет исправлено относительно быстро. Поэтому разумно думать: «Мне не нужно работать быстрее медведя, мне нужно только работать быстрее, чем огромное количество легко эксплуатируемых серверов в Интернете». :)
strings /usr/libexec/bootpd | egrep '/bin|bash'
и nm -a /usr/libexec/bootpd | egrep 'fork|exec'
. Прочитав вывод этих команд в разных версиях MacOS X, вы можете пересмотреть свой анализ рисков из-за dhcpd
MacOS X… но только этот :(.otool -L /usr/libexec/bootpd
сообщает, что содержит exec
вызов. И strings
команда бессмысленна, поскольку переменные среды определяют вызываемую оболочку. Однако я впечатлен тем, что нет любимых библиотечных вызовов system
.otool -L
единственный вывод, который я получаю, — это список библиотек (CoreFoundation, SystemConfiguration, OpenDirectory, libresolv.9.dylib и libSystem.B.dylib)strings .. | grep SHELL
гораздо полезнее, чем bash
, но не абсолютно. Имхо nm -a ... | grep system
самое главное, и exec
тоже помогает, но это только для ванильного BSD, Linux и т.п. софта. Библиотеки Apple предлагают разные подпрограммы. Просто используйте способ Cocoa, например: stackoverflow.com/questions/412562/…bash
самостоятельно.Я сделал этот инструмент, как только услышал об этой уязвимости. Он предоставит вам ссылку на статью, чтобы исправить вашу оболочку, если инструмент определит, что вы уязвимы.
Требуется Mac OS X 10.6 и выше.
без холма
мммммм
расческа
В