2 окт. 2014 г.

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

Начиная с 24 сентября 2014 года исследователи безопасности публикуют информацию о критических уязвимостях в командной оболочке Bash. 
Уязвимости Shellshock подвержены все системы использующие bash в качестве shell. Проблема наблюдается во всех версиях, начиная с Bash - 1.14.

Суть проблемы

В переменные окружения возможно передать функцию, в результате эта функция выполнится. Особо критичным является, что все cgi скрипты запускаются из bash окружения, и в http заголовках можно без проблем передать bash скрипт.
Уязвимость затронула не только интернет-серверы и рабочие станции, но и устройства, которые мы используем в повседневной жизни — смартфоны и планшеты, домашние маршрутизаторы, ноутбуки. Уязвимости присвоен максимальный уровень угрозы. А так как для использования Bash с cgi скриптами не требует аутентификации, то последствия взлома могут быть фатальны.

Чем грозит уязвимость?

Злоумышленник может получить доступ к внутренним данным, перенастройке окружения, распространению вирусов… В общем, возможности зловредительства практически не ограничены.

Уязвим ли ваш сервер?

Это легко проверить командой:
env X="() { :;} ; echo busted" bash -c "echo test" 

Если версия bash установленная на сервер уязвима, ответ будет: busted hello

Если не подвержена уязвимости: bash: warning: x: ignoring function definition attempt bash: error importing function definition for `x' hello

Debian 6

Отредактируйте /etc/apt/sources.list и добавьте в него следующую строку:deb 
http://ftp.us.debian.org/debian squeeze-lts main non-free contrib
После этого необходимо обновить информацию о пакетах:
apt-get update
И обновить сам bash:
apt-get install bash

Debian 7

На текущей версии Debian обновление проходит без редактирования sources.list. Просто выполняем сперва
apt-get update
затем обновляем
bashapt-get install bash