Како да го заштитите вашиот сервер од ранливоста на Shellshock Bash


Вовед

На 24 септември 2014 година, беше откриена ранливоста на GNU Bash, наречена Shellshock или „Bash Bug“. Накратко, ранливоста им овозможува на далечинските напаѓачи да извршат произволен код под одредени услови, со предавање низи код по променлива на околината задачи. Поради сеприсутниот статус на Bash меѓу дистрибуциите на Linux, BSD и Mac OS X, многу компјутери се ранливи на Shellshock; сите незакрпени верзии на Bash помеѓу 1.14 и 4.3 (т.е. сите изданија до сега) се изложени на ризик.

Ранливоста на Shellshock може да се експлоатира на системи што работат на Услуги или апликации што им овозможуваат на неовластени далечински корисници да доделуваат променливи на околината Bash. Примери за експлоатирани системи го вклучуваат следново:

  • Apache HTTP сервери кои користат CGI скрипти (преку mod_cgi и mod_cgid) кои се напишани во Bash или се стартуваат во подшколки на Bash
  • Одредени DHCP клиенти
  • OpenSSH сервери кои ја користат способноста ForceCommand
  • Разни услуги изложени на мрежа кои користат Bash

Детален опис на бубачката може да се најде на CVE-2014-7187.

Бидејќи ранливоста на Shellshock е многу распространета - дури и повеќе од грешката OpenSSL Heartbleed - и е особено лесна за експлоатација, многу се препорачува погодените системи да бидат соодветно ажурирани за да се поправи или ублажи ранливоста што е можно поскоро. Ќе ви покажеме како да тестирате дали вашите машини се ранливи и, доколку се, како да го ажурирате Bash за да ја отстраните ранливоста.

Проверете ја ранливоста на системот

На секој ваш систем што работи Bash, може да проверите дали има ранливост на Shellshock со извршување на следнава команда на промптот bash:

env 'VAR=() { :;}; echo Bash is vulnerable!' 'FUNCTION()=() { :;}; echo Bash is vulnerable!' bash -c "echo Bash Test"

Означениот echo Bash е ранлив! дел од командата го претставува местото каде далечинскиот напаѓач може да инјектира злонамерен код; произволен код по дефиниција на функција во рамките на доделување на променлива на околината. Затоа, ако го видите следниов излез, вашата верзија на Bash е ранлива и треба да се ажурира:

Bash is vulnerable!
Bash Test

Ако вашиот излез не го вклучува симулираниот товар на напаѓачот, т.е. „Bash е ранлив“ не е испечатен како излез, вие сте заштитени барем од првата ранливост (CVE-2014-6271), но можеби сте ранливи на другите CVE кои беа откриени подоцна. Ако има предупредувања или грешки за bash на излезот, треба да го ажурирате Bash на неговата најнова верзија; овој процес е опишан во следниот дел.

Ако единственото нешто што се добива од тест командата е следново, вашиот Bash е безбеден од Shellshock:

Bash Test

Тестирајте далечински сајтови

Ако едноставно сакате да тестирате дали веб-локациите или специфичните CGI скрипти се ранливи, користете ја оваа врска: Алатка за тестирање на ранливост на Bash „ShellShock“ CVE-2014-6271.

Едноставно внесете го URL-то на веб-страницата или скриптата CGI што сакате да ја тестирате во соодветната форма и поднесете.

Поправете ја ранливоста: ажурирајте го Bash

Најлесен начин да ја поправите ранливоста е да го користите стандардниот менаџер на пакети за да ја ажурирате верзијата на Bash. Следните потсекции опфаќаат ажурирање на Bash на различни дистрибуции на Linux, вклучувајќи ги Ubuntu, Debian, CentOS, Red Hat и Fedora.

APT-GET: Ubuntu/Debian

За моментално поддржаните верзии на Debian, ажурирајте го Bash на најновата верзија достапна преку apt-get:

sudo apt-get update && sudo apt-get install --only-upgrade bash

Сега повторно проверете ја ранливоста на вашиот систем со извршување на командата во претходниот дел (Проверете ја ранливоста на системот).

Крај на животот Изданија на Ubuntu/Debian

Ако користите издание на Ubuntu/Debian што се смета за статус крај на животот, ќе мора да го надградите на поддржано за да го користите менаџерот на пакети за ажурирање на Bash. Следната команда може да се користи за надградба на ново издание (препорачливо е прво да направите резервна копија на вашиот сервер и важни податоци, во случај да наидете на какви било проблеми):

sudo do-release-upgrade

Откако ќе заврши надградбата, погрижете се да го ажурирате Bash.

YUM: CentOS/Red Hat/Fedora

Ажурирајте го Bash на најновата верзија достапна преку yum:

sudo yum update bash

Сега повторно проверете ја ранливоста на вашиот систем со извршување на командата во претходниот дел (Проверете ја ранливоста на системот).

Крај на животот Изданија на CentOS/Red Hat/Fedora

Ако користите издание на CentOS/Red Hat/Fedora што се смета за статус крај на животот, ќе мора да го надградите на поддржан за да го користите менаџерот на пакети за ажурирање на Bash. Следната команда може да се користи за надградба на ново издание (препорачливо е прво да направите резервна копија на вашиот сервер и важни податоци, во случај да наидете на какви било проблеми):

sudo yum update

Откако ќе заврши надградбата, погрижете се да го ажурирате Bash.

Заклучок

Не заборавајте да ги ажурирате сите ваши засегнати сервери на најновата верзија на Bash! Исто така, не заборавајте да ги ажурирате вашите сервери со најновите безбедносни ажурирања!