Уязвимость Shellshock в bash

Уязвимость 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 уязвим и:

Проверка на уязвимость в bash и исправление

Проверка на уязвимость в bash и исправление

Но если при выполненной команде, Вы увидите только «this is a test»,  то на вашей ОС  уже все обновлено и использует исправленный bash:

Проверка на уязвимость в bash

Проверка на уязвимость в 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.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.