Heartbleed все еще встречается в дикой природе: знаете ли вы, что можете быть уязвимы?

Heartbleed

Прошло шесть лет с момента первого обнаружения Heartbleed, и уязвимость OpenSSL до сих пор можно найти и эксплуатировать в интернете. Фактически, 19% глобальных атак нацелены на уязвимость OpenSSL Heartbleed из-за большого количества неисправленных общедоступных серверов. Будь то из-за ненадлежащего сканирования или опасения перезагрузить рабочие серверы, оставление серверов открытыми для эксплойтов OpenSSL подвергает риску клиентов и их данные. В этой статье подробно рассматривается Heartbleed и его угроза конфиденциальности данных и соблюдению нормативных требований. Также обсуждается, как определить, используют ли ваши процессы устаревшие библиотеки, даже если вы обновили их на диске.

Краткий обзор Heartbleed

OpenSSL — это библиотека с открытым исходным кодом для обеспечения зашифрованного обмена данными между клиентом и сервером. Благодаря открытому исходному коду любой желающий может внести свой вклад в её кодовую базу и использовать её в своих собственных протоколах связи с сервером. Уязвимый код был добавлен в 2011 году и выпущен в 2012 году. Только в 2014 году исследователи Google обнаружили уязвимый код.

При первом установлении связи между сервером с поддержкой TLS/SSL и клиентом клиент отправляет серверу 16-битное целочисленное «сообщение», которое затем отправляется обратно клиенту. Это первоначальное установление связи необходимо для установления безопасного соединения TLS/SSL. При выполнении запроса сервер выделяет память для 16-битного сообщения.

Эксплойт Heartbleed отправляет на сервер искажённое начальное сообщение о рукопожатии, то есть сообщение, в котором утверждается, что оно имеет определённую длину, но на самом деле сообщение гораздо короче. Например, в начальном сообщении о рукопожатии клиента заявлена длина 64 байта, но на самом деле это всего 8 байт. Когда сервер получает этот искажённый запрос, он дополняет оставшиеся биты, возвращаемые клиенту, считывая смежные значения памяти и отправляя их обратно клиенту. Эти смежные значения памяти могут содержать мусорные значения, учётные данные пользователя, закрытые ключи, используемые для расшифровки сообщений, или персональную информацию (PII), например, номера социального страхования.

Обнаружение Heartbleed имело важное значение, и администраторам было крайне важно как можно быстрее установить исправления на все серверы, использующие OpenSSL версий 1.0.1, 1.0 и 1.0.2 beta 1.1f, поскольку эксплойт уже был доступен. Исследование Netcraft показало, что 17% SSL-серверов (примерно 500 000 серверов) были уязвимы к Heartbleed. Как показывает исследование, несмотря на то, что уязвимость Heartbleed была обнаружена ещё в 2014 году, она до сих пор остаётся актуальной на многих общедоступных серверах и пользовательских устройствах.

Почему администраторы не устанавливают исправления серверах

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

Администраторы часто оставляют серверы без обновлений из-за риска, связанного с перезагрузкой. Текущие графики установки обновлений и перезагрузки рискованны по двум основным причинам:

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

  2. Окно уязвимости: Крупные организации обычно ежемесячно обновляют и перезагружают серверы. Это означает, что серверы остаются уязвимыми для открытых угроз на протяжении недель. Чем больше окно уязвимости, тем выше вероятность, что злоумышленник сможет просканировать серверы и обнаружить их уязвимыми для эксплойтов и новых угроз.

Ручное исправление без перезагрузки и ложные отрицательные результаты

Помимо OpenSSL, сообщество разработчиков ПО с открытым исходным кодом располагает множеством общедоступных библиотек, работающих на критически важных производственных серверах. Однако для обеспечения безопасности этих библиотек необходимо устанавливать исправления вместе с исправлениями операционной системы. Чтобы избежать взлома, некоторые администраторы вручную устанавливают исправления на серверах без перезагрузки, чтобы исключить риск простоя. Без подходящих инструментов для установки исправлений в режиме реального времени, установка исправлений без перезагрузки оставляет уязвимый код в памяти, но исправленная версия находится на диске, и сервер остаётся уязвимым.

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

Для поиска ложноотрицательных результатов требуется сканер, который обнаруживает уязвимые библиотеки в памяти, а не использует результаты на диске. UChecker от KernelCare — один из таких сканеров с открытым исходным кодом, доступный сообществу FOSS, который помогает находить уязвимые серверы, даже если они были исправлены на диске.

Это свободное программное обеспечение, созданное с использованием JSON и открытое для распространения и/или модификации в соответствии с условиями GNU General Public License. Uchecker обнаруживает процессы, использующие устаревшие (т.е. неисправленные) общие библиотеки. Он обнаруживает и сообщает о неактуальных общих библиотеках, используемых запущенными процессами. С помощью сканера KernelCare администраторы получают идентификатор процесса и имя уязвимой общей библиотеки, а также идентификатор сборки библиотеки. Эта информация может быть использована для выявления уязвимостей и исправлений, необходимых для устранения проблемы.

Учекер

Uchecker обнаружил устаревшие общие библиотеки в памяти

Uchecker (сокращение от «userspace checker») работает со всеми современными дистрибутивами Linux, начиная с версии 6. На следующей графической иллюстрации показан принцип работы Uchecker.

Как работает Uchecker

Как работает Uchecker

С помощью всего одной команды Uchecker просканирует вашу систему на наличие устаревших общих библиотек:

 curl -s -L https://kernelcare.com/checker | python

Посетите страницу UChecker на Github, чтобы узнать больше или посмотреть демонстрацию того, как это работает .

Заключение

Использование эффективных сканеров уязвимостей, таких как UChecker, и внедрение надлежащего управления установкой патчей в режиме реального времени позволит устранить значительную часть рисков, связанных с перезагрузками, при этом постоянно обновляя библиотеки с открытым исходным кодом. Организациям крайне важно ускорить установку патчей для уязвимых библиотек, особенно тех, которые потенциально могут раскрыть закрытые ключи и учётные данные пользователей, например, OpenSSL. В настоящее время многие серверы остаются уязвимыми в течение нескольких недель после выхода патча из-за проблем, которые могут возникнуть при перезагрузке, но это лишает организацию возможности соответствовать требованиям и подвергает риску серьёзной утечки данных. Malwarebytes сообщает , что тысячи веб-сайтов по-прежнему уязвимы для Heartbleed, что делает любого, кто подключается к этим веб-сайтам, уязвимым к проблемам с конфиденциальностью данных. Правильное решение для установки патчей в режиме реального времени и сканирования уязвимостей поможет администраторам устанавливать патчи на этих серверах, предотвращать раскрытие информации о своих клиентах и защищать их от кражи личных данных и захвата учётных записей.

Если у вас есть вопросы или пожелания, не стесняйтесь оставлять комментарии.

безопасность

Об авторах

KernelCare

KernelCare — это служба обновления ядра в режиме реального времени, которая предоставляет исправления безопасности и ошибок для ряда популярных ядер Linux, которые можно установить без перезагрузки системы.

Связанные руководства

Источник

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

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