Уязвимость BASH и ее значение для системных администраторов

Опубликовано: 19 Марта, 2023
Уязвимость BASH и ее значение для системных администраторов

Введение

Критическая уязвимость в оболочке Bourne Again SHell (BASH) была недавно обнаружена и получила широкое освещение в технической прессе. BASH — это важный программный компонент UNIX/Linux/BSD, который обеспечивает оболочку операционной системы для большинства распространенных дистрибутивов Linux, а также операционной системы Apple OS X на базе UNIX для настольных и портативных компьютеров. Уязвимость называют либо ошибкой BASH, либо Shellshock.

Оболочка была создана для проекта GNU и существует уже давно — с 1989 года. Уязвимость тоже существует давно, но исследователь безопасности Стефан Чазелас, работающий в Akamai Technologies, наткнулся на нее совсем недавно. Как только новость стала известна, эксперты по безопасности подхватили эту историю, и сетевые администраторы начали беспокоиться о том, уязвимы ли системы на базе Linux и UNIX в их сетях и что им нужно с этим делать.

Миф о безопасности с открытым исходным кодом

Следуя вплотную за Heartbleed (уязвимость в криптографической библиотеке OpenSSL, которая затронула так много веб-серверов Apache и некоторые системы Linux), BASH является еще одним напоминанием о том, что, несмотря на распространенное в некоторых кругах мнение, что клиенты и серверы на основе *NIX защищены, и только компьютеры с Windows открыты для атак и вредоносных программ, в действительности все обстоит иначе.

В этом месяце (сентябрь 2014 г.) Apple выпустила обновление для OS X Mountain Lion и Mavericks, которое исправило более 40 уязвимостей безопасности в ОС, в том числе критические, которые могут быть использованы злоумышленниками для удаленного выполнения кода и полного захвата системы.. Каждый месяц Ubuntu выпускает от 20 до 50 исправлений безопасности, и другие поставщики Linux выпускают сопоставимое количество обновлений.

Основная предпосылка о том, что открытый исходный код по своей сути безопасен, основана на идее о том, что, поскольку за кодом следят тысячи людей (то есть любой и каждый может просматривать и редактировать исходный код ОС), программных ошибок будет меньше — и те те, которые проникают, будут обнаружены гораздо быстрее и будут немедленно исправлены, потому что нет необходимости ждать, пока частная компания создаст патч. Звучит неплохо, а иногда даже так работает.

Но иногда это не так. Эксперты подсчитали, что Heartbleed скрывался в Open SSL в течение многих лет, а BASH существует еще дольше. Простая истина заключается в том, что все операционные системы, все веб-браузеры, все приложения — короче говоря, — имеют уязвимости, и во многих случаях эти ошибки не очевидны и остаются бездействующими в течение очень долгого времени, прежде чем кто-то (исследователь безопасности, если мы) нам повезло, хакер/злоумышленник, если мы не) натыкается на это. Когда хорошие парни добираются до этого первыми, они в частном порядке сообщают об этом поставщику программного обеспечения, чтобы дать компании время решить проблему, и / или они сами разрабатывают для нее исправление. Когда злоумышленники находят его, они используют его для создания атак, которые могут быть выполнены до того, как системы будут защищены от него.

В то время как открытый исходный код означает, что часть бюрократических проволочек, связанных с разработкой и последующим тестированием исправления безопасности, иногда можно обойти, это также означает меньшую ответственность и, следовательно, в некоторых случаях меньший стимул для создания исправления или, наоборот, хаотичную ситуацию, когда несколько источников мешают друг другу. для разработки исправлений и иногда может поторопиться с выпуском этих исправлений, прежде чем определить, что они полностью эффективны.

Red Hat, Fedora и Ubuntu выпустили обновления для устранения уязвимости BASH в течение нескольких дней после ее обнаружения. Однако позже US-CERT выпустил бюллетень, в котором говорилось, что те обновления, которые были выпущены изначально, не полностью устранили проблему и что злоумышленники все еще могут использовать ошибку даже в исправленных системах. Между тем Apple несколько дней не отвечала на вопросы о влиянии BASH на их системы. Затем они опубликовали заявление о том, что компьютеры Mac «вряд ли» будут затронуты BASH. Затем, через несколько дней после этого, они выпустили обновление для OS X, исправляющее уязвимость.

Как работает эксплойт BASH

Вкратце, как работает эксплойт этой уязвимости: злоумышленник отправляет запрос на компьютер, на котором работает неисправленная версия BASH, данные которой хранятся в переменной среды. Эти данные создаются как вредоносная команда, которую запускает операционная система, «думая» что это законный скрипт. Это означает, что злоумышленник может запускать любой код, который он хочет, используя те же привилегии доступа, что и система, запускающая оболочку. Это позволяет ему полностью управлять системой и запускать другие программы, получать доступ к файлам и управлять ими, изменять настройки и т. д.

Почему BASH важен

Этот веб-сайт не просто так называется WindowsNetworking.com; он предназначен для администраторов сетей на базе Windows. Если это то, кем вы являетесь, вам может быть интересно, стоит ли вам вообще беспокоиться о BASH и почему. В конце концов, это всего лишь проблема *NIX, верно?

Да и нет. BASH не является частью какой-либо версии серверной и клиентской операционных систем Windows. Командная оболочка Windows, cmd.exe, используется для выполнения функций, для которых используется BASH. Однако существует инструмент с открытым исходным кодом для Windows под названием Cygwin, который является своего рода «BASH для Windows» и, согласно отчетам, подвержен той же уязвимости.

Хорошо, но есть большая вероятность, что вы не используете Cygwin; только небольшой процент администраторов и пользователей Windows. Это не значит, что вы можете с радостью заниматься своими делами и не беспокоиться о них. Во-первых, во многих магазинах, специализирующихся на Windows, есть несколько серверов, спрятанных в уголке под управлением Linux, часто из соображений экономии. Возможно, вы настроили веб-сервер Linux, чтобы не платить за лицензию Windows Server, или вы можете использовать сервер Linux для какой-то специальной задачи, например, для наблюдения за камерами наблюдения компании или для управления компьютеризированной системой климат-контроля или освещения.

Все еще не относится к вам? Вы абсолютно уверены, что в вашей серверной комнате или центре обработки данных *NIX-free? Хорошо, теперь подумайте, работает ли кто-нибудь из ваших пользователей на ноутбуках с Linux или, что более вероятно, с Mac OS X в вашей сети. С распространением программ BYOD существует большая вероятность того, что даже если в вашей компании нет компьютеров, отличных от Windows, некоторые из этих персональных компьютеров — это Mac.

Однако это не самая большая угроза. Другая проблема заключается во всех этих компьютерах, полностью находящихся за пределами вашей организации, к которым ваши компьютеры подключаются через Интернет. Буквально миллионы серверов в Интернете работают на Linux, UNIX или BSD: веб-серверы, почтовые серверы, базы данных и так далее. Если ваши пользователи обмениваются какой-либо конфиденциальной информацией о компании или личной информацией с этими машинами и страдают от этой уязвимости, они могут быть скомпрометированы, а это означает, что все эти данные могут быть скомпрометированы.

Помните также, что не только традиционные клиентские и серверные компьютеры подвержены риску от BASH. , что работает на *NIX, потенциально в опасности. Последней модной фразой в области ИТ является «Интернет вещей» (также известный как IoT). Большой процент этих «вещей» — бытовых приборов и специализированных устройств, которые могут подключаться к Интернету и управляться через него, — работают на программном обеспечении на базе Linux. В вашей компании могут быть системы сигнализации, торговые автоматы, интеллектуальные термостаты, служебные автомобили и системы управления автопарком, даже холодильник в комнате отдыха, внутри которых установлена Linux.

Если злоумышленник сможет использовать ошибку BASH, последствия могут быть серьезными. Злоумышленник может полностью захватить пораженную систему. И это не просто теория; были сообщения о том, что всего через несколько дней после того, как ИТ-мир узнал об этом, BASH уже использовался в дикой природе, чтобы получить контроль над рядом веб-серверов на базе Linux и сделать их частью ботнета. Плохая новость заключается в том, что эту уязвимость относительно легко использовать, и как только она стала широко известна, количество атак и попыток атак увеличилось.

Учитывая огромное количество компьютеров и устройств, которые потенциально могут быть затронуты BASH, в сочетании с серьезностью последствий эксплойта, неудивительно, что некоторые эксперты называют это более серьезной проблемой, чем Heartbleed, и одной из самых значительных уязвимостей. через некоторое время.

Как противостоять угрозе BASH

Что же вы можете сделать, чтобы защитить свою организацию от BASH? Первый шаг — как можно скорее исправить все компьютеры на базе *NIX, находящиеся под вашим контролем. На данный момент большинство крупных поставщиков *NIX выпустили исправления, а также был разработан неофициальный патч. Все прошлые и текущие выпуски BASH без исправлений (т. е. версии с 1.x по 4.x) уязвимы.

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

Вы можете узнать, уязвимы ли ваши компьютеры на базе *NIX, (по иронии судьбы) запустив BASH и введя следующую команду:

$ env "x=() {:;}; echo vulnerable" "BASH_FUNC_x()=() {:;}; echo vulnerable" bash -c "echo test"

Если ваша версия BASH действительно уязвима, будет выведена строка, содержащая только слово «уязвимый».

Если вы используете коммерческую версию Linux/UNIX/BSD, ваш поставщик может также предоставить автоматизированные инструменты для проверки уязвимости BASH. Например, Red Hat предоставляет скрипт для своих клиентов (вы должны зарегистрировать свое программное обеспечение и войти в свою зарегистрированную учетную запись).

Также существует ряд онлайн-инструментов для тестирования удаленных веб-сайтов на наличие уязвимости. Большинство из них были созданы отдельными людьми в сообществе открытого исходного кода, поэтому при их использовании возникает вопрос доверия.

Похоже, что эта конкретная уязвимость (или, точнее, набор уязвимостей) может быть постоянной проблемой в течение некоторого времени, поскольку обнаруживаются новые способы использования BASH, поэтому обязательно будьте в курсе последних событий.