Bash shellshock: обновляем bash в Debian, включая старые версии
Bash shellshock: обновляем bash в Debian, включая старые версии

Сложно переоценить масштабы распространения уязвимости Bash Shellshock, ведь она присутствует во всех версиях Bash, начиная с версии 1.14, выпущенной в 1994 году. На фоне масштабов распространения Shellshock, недавно обнаруженная уязвимость OpenSSL Heartbleed просто меркнет, ведь она затрагивала версии openssl, выпущенные только за последние два года.

Казалось бы, чтобы получить доступ к bash, нужно иметь shell на соответствующем сервере, поэтому какая разница уязвим ваш сервер или нет, ведь shell от него есть только у вас? Увы, все гораздо хуже. Если у вас на сервере запускаются CGI/FastCGI скрипты, а это может быть и даже php, ведь он запускается в режиме FastCGI с помощью скрипта-wrapper’а, написанного на … bash. Поэтому если на вашем сервере установлен bash с уязвимостью Shellshock, злоумышленник может выполнять произвольные команды на вашем сервере просто указывая их в полях http-заголовков, например в поле User-Agent.

Если мы уже в достаточной степени убедили вас проверить вашу систему и обновить ее по необходимости, давайте приступим к активным действиям.

1. Проверим наличие уязвимости

Для проверки вашего bash на предмет уязвимости достаточно зайти в консоль сервера и выполнить вот такую команду:

env X="() { :;} ; echo vulnerable" bash -c "echo stuff"

Если в результате выполнения этой команды вы увидите две строки и одна из них будет со словом ‘vulnerable’, ваш bash уязвим.

2. Выясняем версию debian

Чтобы выяснить, какая версия debian установлена на вашем сервере, нужно выполнить команду

cat /etc/debian_version

Если в результате вы видите цифру, начинающуюся с 7 или со слова wheezy, вам повезло и debian у вас самый свежий, поэтому обновить его весьма просто (см.следующий раздел). Если же debian у вас версии 6 или 5, отчаиваться все равно не стоит и мы чуть ниже покажем что вы можете сделать в вашем случае.

3. Обновляем Debian версии 7 (Wheezy)

Все просто. Выполняем в консоли от имени пользователя root команды:

apt-get update
apt-cache policy bash

В выводе последней команды нас интересуют строки Installed: и Candidate: (“Установлен” и “Кандидат” в случае русской локали в консоли). Скорее всего вы увидите что-то вроде:

Installed: 4.2+dfsg-0.1
Candidate: 4.2+dfsg-0.1+deb7u3

Если вдруг версия Candidate тоже равна 4.2+dfsg-0.1, значит вам необходимо в файл /etc/apt/sources.list добавить строку:

deb http://security.debian.org/ wheezy/updates main contrib non-free

И снова выполнить apt-get update

Наконец, обновляем bash:

apt-get install bash

После этого необходимо открыть новую консоль, либо выйти из текущей консоли и зайти в нее снова, и снова повторить тест из первого раздела этой статьи.

4. Обновляем более старые версии Debian (Lenny, Squeeze)

Мы предлагаем весьма простой вариант обновления bash для вашего случая: установить пакет bash-static из Debian Wheezy. На многих сайтах вы прочитаете советы по сборке bash из исходных текстов, либо установки обновления bash из squeeze-lts, но нам кажется, что наш вариант наиболее простой.

Для начала необходимо выяснить установлена у вас 32х битная система или 64х битная. Это можно сделать, выполнив команду:

file /bin/ls

Если в результате ее выполнения вы увидите строку “/bin/ls: ELF 32-bit ...”, значит система 32 битная. Если строка будет “/bin/ls: ELF 64-bit ...”, соответственно, система у вас 64 битная.

Теперь скачаем требуемый пакет. Для 32 битной версии debian выполним:

wget -c http://security.debian.org/debian-security/pool/updates/main/b/bash/bash-static_4.2+dfsg-0.1+deb7u3_i386.deb
dpkg -i bash-static_4.2+dfsg-0.1+deb7u3_i386.deb

Для 64 битной версии выполним:

wget -c http://security.debian.org/debian-security/pool/updates/main/b/bash/bash-static_4.2+dfsg-0.1+deb7u3_amd64.deb
dpkg -i bash-static_4.2+dfsg-0.1+deb7u3_amd64.deb

Далее, независимо от версии debian:

dpkg-divert --divert /bin/bash.old-diverted --rename /bin/bash
ln -s /bin/bash-static /bin/bash
ln -sf /bin/bash /bin/sh

Готово, bash обновлен. После этого необходимо открыть новую консоль, либо выйти из текущей консоли и зайти в нее снова, и снова повторить тест из первого раздела этой статьи.

С 2003 года
Надежность.
Нам доверяют десятки тысяч компаний и разработчиков
18 лет
Предоставляем услуги профессионального хостинга
35 000
Клиентов доверяют нам размещение своих сайтов
99.99%
Подтвержденный uptime
наших серверов хостинга
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты