В последнее время ходят новости о «CVE-2014-6271» (см. USN-2362-1 ), который является уязвимостью в Bash. Как я узнаю, что на меня это влияет, как я могу это исправить, и почему меня это должно волновать?
Это сделано как канонический ответ на эту уязвимость из-за ее масштабов и серьезности.
Ответы:
Что такое Баш?
Bash - это интерактивная оболочка по умолчанию в Ubuntu. Когда вы взаимодействуете с терминалом (через эмулятор терминала, через tty или ssh), вы, как правило, вводите команды, которые
bash
будут читать и выполнять. Даже если вы вообще не используете терминал, у вас все равно есть Bash.На Ubuntu
/bin/sh
это не bash (это тире). Эта уязвимость затрагивает только bash.Как подвиг влияет на меня?
Bash и ОС отслеживают набор переменных среды, которые описывают текущего вошедшего в систему пользователя, где искать программы на жестком диске и другие подобные функции. Создав переменную среды с определенной структурой, злоумышленник сможет выполнить код при следующем запуске Bash.
Атакующий может установить эту переменную среды несколькими способами:
ForceCommand
опции sshd является вектором атаки. Аккаунты, оболочка которых не bash, не затрагиваются.Как только они установят эту переменную, в следующий раз
bash
по любой причине откроется код вашего злоумышленника. Это особенно опасноsudo -s
, поскольку порождает bash как суперпользователя (административное правило пользователя, которое полностью контролирует данные и программы вашего компьютера). Даже если вы запускаете bash только как обычный пользователь, файлы этого пользователя могут быть удалены.Важно отметить, что, даже если вы сами не используете bash, многие программы сами запускают bash в рамках своей работы. Даже в этом случае вы уязвимы. Однако Ubuntu не
/bin/sh
является bash, поэтому затрагиваются только программы, которые явно вызывают bash, а не оболочку сценариев по умолчанию.По словам Митры:
Я уязвим?
Используйте dpkg, чтобы проверить версию установленного пакета:
Это будет искать информацию о вашем
bash
пакете и фильтровать вывод, чтобы показать вам только версию. Фиксированные версии4.3-7ubuntu1.4
,4.2-2ubuntu2.5
и4.1-2ubuntu3.4
.Например, я вижу:
и могу определить, что я не уязвим.
Как мне обновить?
Стандартный менеджер обновлений предложит вам это обновление. Это яркий пример того, как важны обновления безопасности, независимо от того, какую операционную систему вы используете или насколько хорошо она поддерживается.
В бюллетене USN говорится, что были выпущены новые версии для Ubuntu 14.04 Trusty Tahr, 12.04 Precise Pangolin и 10.04 Lucid Lynx. Если вы не пользуетесь одной из этих версий LTS, но пользуетесь достаточно свежей версией, вы, скорее всего, сможете найти пропатченный пакет.
Во-первых, проверьте, если вы
Если вы уязвимы, вы должны сначала получить новейшие списки пакетов:
Первая команда гарантирует, что у вас есть список новейших пакетов, который включает в себя фиксированную версию, а вторая команда устанавливает самую новую (фиксированную) версию bash.
Несмотря на то, что ошибка появляется только при появлении bash, все же рекомендуется перезагрузить компьютер немедленно, если это возможно.
источник
Украл это у Хакера Новости . Если у вас есть проблемы с вашими репозиториями, такими как я (Odroid-XU), то это должно хорошо работать, если вы хотите патчить / строить из исходного кода.
Затем запустите:
И если вы получите:
Тогда у тебя все хорошо!
ВНИМАНИЕ: make install установит bash
/usr/local/bin
, поэтому/bin/bash
не изменяется и может быть вызван из curl !!источник
Примечание. Обновление безопасности для CVE-2014-7169 было выпущено как стандартное обновление безопасности. Нет необходимости добавлять дополнительные ppa для получения этого патча. Нужно только следующее.
Чтобы убедиться, что вы исправили Bash правильно, выполните следующую команду
Если вы находитесь на 14.04 LTS, вы должны увидеть результат:
Если вы находитесь на 12.04 LTS, ваш вывод должен быть:
источник
Если вы на 11.04: используйте следующие шаги (у меня это сработало)
если не скачивается требуемый патч то установите пакет ftp
Чтобы увидеть, был ли применен патч:
источник
Я использую Natty 11.04, который является EOL (и я обновил /etc/apt/sources.list, чтобы использовать old-releases.ubuntu.com), поэтому я должен собрать из исходного кода. Я хотел создать .deb, поэтому, по крайней мере, менеджер пакетов «знает», что версия bash не является версией по умолчанию. Я не на 100% успешен - однако, пакет зарегистрирован как «более новый» и
bash
бинарный файл исправлен, так что вот что я сделал:Теперь в каталоге (sub)
bash-4.2/
есть: файлbash-4.2.tar.xz
, который нужно распаковать, чтобы добраться доbash
источника; и подкаталог называетсяdebian
.Я сделал следующие изменения, чтобы избежать зависимости от
texlive
: вbash-4.2/debian/control
:... и в
bash-4.2/debian/rules
:Чтобы изменить версию, в этом
bash-4.2/
каталоге выполните:... и заполните примечания в журнале изменений, когда их спросят. Это обеспечит вызов .deb (и связанных с ним метаданных) (в моем случае)
bash_4.2-0ubuntu3patchCVE1_i386.deb
.Затем вы можете попробовать построить с помощью
dpkg-buildpackage -us -uc
илиdebuild
команды. Обратите внимание - любой из них повторно распакует исходный код из zip-файла - переопределив любые патчи, которые у вас могли быть! Тем не менее, запустите один из них один раз, чтобы исходный код был распакован и собран (примечаниеdebuild
может все же завершиться с ошибкой в конце из-за texlive, но он должен распаковать и собрать источник).Затем примените патчи; обратите внимание, что вы должны использовать
-p1
здесь, потому что в данный момент вы находитесь вbash-4.2/
каталоге:Затем пересоберите исправленную версию, выполнив:
Это перестроит исполняемый файл; чтобы проверить это:
Чтобы собрать файлы .deb, запустите:
Это сохранит файлы .deb в родительском каталоге; перечислить их содержание:
Чтобы установить .deb:
Однако по какой-то причине этот .deb содержит непатентованный двоичный файл (?!), Поэтому мне пришлось дополнительно сделать:
... и после этого тест начал проходить правильно для меня:
источник