Уязвимость Shellshock в bash
Хочу рассказать в своей статье «Уязвимость Shellshock в bash» об уязвимости в bash оболочке и как это можно исправить. Недавно было обнаружено несколько серьезных уязвимостей популярных ОС. Достаточно вспомнить о уязвимости в OpenSSl, такой как Heartbleed, которая затронула многие системы, после чего были написаны описания ошибок в сетевом стэке на FreeBSD и возможности эскалации привилегий в определенных версиях ядра Linux. Относительно недавно выложили описание ошибки в оболочке bash. Она имеет название Shellshock.
Немного об этой уязвимости
Из-за ошибки интерпретатора возможное выполнение произвольного написанного кода, описанного после кода пользовательской функции, а опасность данной ошибки в том, что этот код может быть отправлен множественными способами – в cookie, в заголовках http-запроса, в локальных переменных. Уязвимости найдены во всех версиях bash 1.14 — 4.3, а в группу риска даже попали не только традиционные веб серверы, но и множество других устройств, таких как роутеры, принт-серверы и даже мобильные телефоны (смартфоны).
Выполним проверку на уязвимость в баше:
# env x='() { :;}; echo vulnerable' bash -c "echo this is a test"
После выполненной команды, если Вы увидели текст «vulnerable», то ваш bash уязвим и:
Но если при выполненной команде, Вы увидите только «this is a test», то на вашей ОС уже все обновлено и использует исправленный bash:
Чтобы исправить уязвимости в баш на вашем сервере — нужно всего лишь обновить его.
Debian/Ubuntu/Linux Mint
Все обновления можно произвести с использованием менеджера пакетов apt-get. По этому, чтобы исправить все ошибки в bash нужно выполнить:
# apt-get update # apt-get install --only-upgrade bash
Если Вы используете устаревшую версию Debian, Ubuntu или Mint, то наиболее правильный решением — это обновить систему в целом:
# sudo do-release-upgrade
Centos/RedHat/Fedora
Все обновления можно произвести с использованием пакетного менеджера yum:
# yum update bash
FreeBSD
Хотя основная оболочка в FreeBSD -это tcsh, но иногда нужно установить bash, для работы скриптов. В последних версиях FreeBSD обновить bash можно с использования менеджера пакетов pkg:
# pkg upgrade bash
Если Вы используете старую версия фриБСД, где ПО устанавливается из ports, то нужно сначала обновить дерево портов, а потом скомпилировать, установить новую версию bash:
# cd /usr/ports/shell/bash # make BATCH=yes build # make BATCH=yes deinstall && make BATCH=yes reinstall
Тема «Уязвимость Shellshock в bash» полностью раскрыта и исправлены уязвимости в bash.