Как защитить ваш сервер от уязвимости, связанной с ударом оболочки

Вступление

24 сентября 2014 года была обнаружена уязвимость GNU Bash, называемая Shellshock или «Bash Bug». Короче говоря, эта уязвимость позволяет удаленным злоумышленникам выполнять произвольный код при определенных условиях, передавая строки кода после назначения переменных среды. Из-за повсеместного статуса Bash среди дистрибутивов Linux, BSD и Mac OS X многие компьютеры уязвимы для Shellshock; все непропатченные версии Bash между 1.14 и 4.3 (т.е. все релизы до сих пор) находятся в опасности.

Уязвимость Shellshock может быть использована в системах, где запущены службы или приложения, которые позволяют неавторизованным удаленным пользователям назначать переменные среды Bash. Примеры эксплуатируемых систем включают в себя следующее:

  • HTTP-серверы Apache, которые используют CGI-скрипты (через + mod_cgi + и + mod_cgid +), которые написаны на Bash или запускаются в подоболочки Bash

  • Некоторые клиенты DHCP

  • Серверы OpenSSH, использующие возможность + ForceCommand +

  • Различные сетевые сервисы, которые используют Bash

Подробное описание ошибки можно найти по адресу CVE-2014-6271, http: //web.nvd. .nist.gov / view / vuln / detail? vulnId = CVE-2014-7169 [CVE-2014-7169], CVE-2014- 7186 и CVE-2014-7187.

Поскольку уязвимость Shellshock очень широко распространена - даже в большей степени, чем ошибка OpenSSL Heartbleed - и особенно проста в использовании, настоятельно рекомендуется, чтобы уязвимые системы были должным образом обновлены, чтобы исправить или смягчить уязвимость как можно скорее. Мы покажем вам, как проверить, уязвимы ли ваши машины, и, если они есть, как обновить Bash, чтобы устранить уязвимость.

Проверьте уязвимость системы

На каждой из ваших систем, где работает Bash, вы можете проверить уязвимость Shellshock, выполнив в командной строке bash следующую команду:

env 'VAR=() { :;}; ' 'FUNCTION()=() { :;}; ' bash -c "echo Bash Test"

Выделенная + echo Bash уязвима! + Часть команды указывает, где удаленный злоумышленник может внедрить вредоносный код; произвольный код, следующий за определением функции в присваивании переменной среды. Поэтому, если вы видите следующий вывод, ваша версия Bash * уязвима и должна быть обновлена ​​*:

Bash Test

Если ваши выходные данные не включают в себя полезную нагрузку симулированного злоумышленника, т.е. «Bash уязвим» не выводится в качестве вывода, вы защищены как минимум от первой уязвимости (CVE-2014 -6271), но вы можете быть уязвимы для других CVE, которые были обнаружены позже. Если в выводе есть какие-либо предупреждения или ошибки + bash +, вы должны обновить Bash до последней версии; этот процесс описан в следующем разделе.

Если единственное, что выводится из команды test, это следующее, ваш Bash безопасен от Shellshock:

Bash Test

Тестирование удаленных сайтов

Если вы просто хотите проверить, уязвимы ли веб-сайты или отдельные сценарии CGI, воспользуйтесь этой ссылкой: ‘ShellShock ’Bash Vulnerability CVE-2014-6271 Test Tool.

Просто введите URL веб-сайта или CGI-скрипт, который вы хотите протестировать, в соответствующую форму и отправьте.

Исправление уязвимости: обновление Bash

Самый простой способ исправить эту уязвимость - использовать менеджер пакетов по умолчанию для обновления версии Bash. В следующих подразделах рассматривается обновление Bash в различных дистрибутивах Linux, включая Ubuntu, Debian, CentOS, Red Hat и Fedora.

APT-GET: Ubuntu / Debian

Для поддерживаемых в настоящее время версий Ubuntu или Debian обновите Bash до последней версии, доступной через + apt-get + :

sudo apt-get update && sudo apt-get install --only-upgrade bash

Теперь снова проверьте уязвимость вашей системы, выполнив команду в предыдущем разделе (https://www.digitalocean.com/community/tutorials/how-to-protect-your-server-against-the-shellshock-bash-vulnerability#check -системная уязвимость [Проверка уязвимости системы]).

Конец жизни Выпуски Ubuntu / Debian

Если вы работаете с выпуском Ubuntu / Debian, который считается end of life status, вам придется обновить его до поддерживаемого, чтобы использовать менеджер пакетов для обновления Bash. Следующая команда может использоваться для обновления до нового выпуска (рекомендуется сначала выполнить резервное копирование своего сервера и важных данных на случай возникновения каких-либо проблем):

sudo do-release-upgrade

После завершения обновления убедитесь, что вы обновили Bash.

YUM: CentOS / Red Hat / Fedora

Обновите Bash до последней версии, доступной через + yum +:

sudo yum update bash

Теперь снова проверьте уязвимость вашей системы, выполнив команду в предыдущем разделе (https://www.digitalocean.com/community/tutorials/how-to-protect-your-server-against-the-shellshock-bash-vulnerability#check -системная уязвимость [Проверка уязвимости системы]).

Конец жизни CentOS / Red Hat / релизы Fedora

Если вы работаете с выпуском CentOS / Red Hat / Fedora, который считается end of life status, вам придется перейти на поддерживаемый, чтобы использовать менеджер пакетов для обновления Bash. Следующая команда может использоваться для обновления до нового выпуска (рекомендуется сначала выполнить резервное копирование своего сервера и важных данных на случай возникновения каких-либо проблем):

sudo yum update

После завершения обновления убедитесь, что вы обновили Bash.

Заключение

Обязательно обновите все ваши уязвимые серверы до последней версии Bash! Кроме того, убедитесь, что ваши серверы обновлены до последних обновлений безопасности!