Видео: Linux - Case esac statement (Ноември 2024)
Една грешка, открита в Bash, широко използван интерпретатор на команди, представлява критичен риск за сигурността на системите Unix и Linux, заявиха експерти по сигурността. И да не би да се изкушите да отхвърлите проблема като просто проблем със сървъра, не забравяйте, че Mac OS X използва Bash. Много експерти предупреждават, че може да е по-лошо от Heartbleed.
Уязвимостта е налична в повечето версии на Bash, от версия 1.13 до 4.3, според Stephane Chazelas, Unix и Linux мрежа и администратор на телекомуникациите в Akamai, който за първи път разкри грешката. Компютърният екип за спешни реакции (CERT) към Министерството на вътрешната сигурност предупреди в предупреждение, че ако бъде използвана, уязвимостта може да позволи на отдалечен хакер да изпълнява злонамерен код на засегната система. Базата данни за уязвимост на NIST оцени грешката 10 от 10 по отношение на тежестта.
„Тази уязвимост е потенциално много голяма работа“, казва Тод Беърдсли, инженерен мениджър в Rapid7.
Уязвимостта е свързана с това как Bash борави с променливите на средата. При задаване на функция на променлива, всеки допълнителен код в дефиницията също ще бъде изпълнен. Така че един атакуващ трябва да направи по някакъв начин да добави куп команди в тази дефиниция - класическа атака с инжектиране на код - и те ще могат да отдалечат дистанционно засегнатата машина. Chazelas и други изследователи, които разгледаха недостатъка, потвърдиха, че е лесно използваем, ако кодът се инжектира в променливи на околната среда, като например функцията ForceCommand в OpenSSH sshd, модулите mod_cgi и mod_cgid в Apache HTTP Server или скриптите, които задават среда за DHCP клиенти.
"Голям брой програми на Linux и други UNIX системи използват Bash за настройка на променливи в околната среда, които след това се използват при изпълнение на други програми", пише в публикация в блога Джим Рейвис, главен изпълнител на Cloud Security Alliance.
Неизбежно сравнение със сърце
Обмислете две неща за тази уязвимост: Linux / Unix сървърите се използват широко в центрове за данни по целия свят, както и в вградени в много устройства; уязвимостта присъства от години. Тъй като Bash е толкова разпространен, сравнението с Heartbleed, уязвимостта в OpenSSH, която беше открита през април, е неизбежна. Робърт Греъм от Errata Security вече нарече недостатъка на ShellShock.
Но дали е Heartbleed 2? Малко е трудно да се каже. Това определено е сериозен проблем, тъй като дава на нападателите достъп до командната обвивка, което е златният билет да могат да правят каквото си искат на тази машина.
Нека помислим по отношение на размера. Уеб сървърите на Apache захранват огромното мнозинство от уебсайтовете в света. Както научихме по време на Heartbleed, има много не-Linux / Unix машини, които използват OpenSSH и Telnet. DHCP е от съществено значение за това, че ни е лесно да скачаме и изключваме мрежи. Това означава, че в допълнение към компютрите и сървърите е възможно и други вградени системи, като рутери, да са уязвими за отвличане. Греъм на Errata Security - който направи някои от най-задълбочените анализи на бъга досега - извърши някои сканирания и лесно намери няколко хиляди уязвими сървъра, но в този момент е малко трудно да се оцени степента на проблема.
Въпреки това, недостатъкът на Heartbleed присъства само чрез инсталиране на уязвима версия на OpenSSL. Тази грешка не е толкова проста.
"Това не е толкова просто", колкото "да стартирате Bash", каза Биърдсли. За да може машината да бъде уязвима за атака, трябва да има приложение (като Apache), което да въвежда потребителски вход (като заглавието на User-Agent) и да го поставя в променлива среда (което правят скриптите на CGI), каза той. Съвременните рамки на Web като цяло няма да бъдат засегнати, каза той.
Това може би е причината, поради която Греъм каза, че докато ShellShock е толкова тежък, колкото Heartbleed, "няма нужда да бързате и да коригирате тази грешка. Вашите първични сървъри вероятно не са уязвими за тази грешка."
Но преди да се чудим за рутери и вградени устройства (и Интернет на нещата), имайте предвид, че не всички системи използват Bash. Ubuntu и други системи, получени от Debian, могат да използват различен интерпретатор на команди, наречен Dash. Вградените устройства често използват такова, наречено BusyBox, което не е уязвимо, заяви Роуел Шууенбърг, старши изследовател в лабораторията на Касперски в Twitter.
Уязвим или не?
Можете да проверите дали сте уязвими, като изпълните следните команди (код, предоставен от CSA). Отворете прозорец на терминал и въведете следната команда в подканата $:
env x = '() {:;}; ехо уязвим 'bash -c "ехо това е тест"
Ако сте уязвими, ще отпечатате:
уязвим
това е тест
Ако сте актуализирали Bash, ще видите само:
това е тест
Обикновено бих казал, че продължете напред и кръпка веднага, но се оказва, че наличните лепенки не са пълни. Все още има начини за инжектиране на команди чрез променливи на средата, дори и след кръпка Bash, съобщи Red Hat тази сутрин. Ако просто разполагате с шепа машини, може да си струва да продължите напред и да приложите наличните лепенки, но ако имате хиляди машини, които да се лепят, може би си струва да изчакате още няколко часа. Всички дистрибуции на Linux нагоре (и да се надяваме, че Apple!) Работят по поправка в момента.
"Не забравяйте, че дори и никога досега да не сте чували за Bash или да не го стартирате, може много добре да имате софтуер, работещ на вашия компютър, който да породи Bash процеси", заяви независимият консултант по сигурността Греъм Клули.