Прошло шесть лет с тех пор, как Heartbleed была впервые обнаружена, а уязвимость OpenSSL все еще можно найти и использовать в Интернете. Фактически, 19% глобальных атак нацелены на уязвимость OpenSSL Heartbleed из-за большого количества непропатченных общедоступных серверов. Будь то плохое сканирование или боязнь перезагрузки производственных серверов, оставление серверов открытыми для эксплойтов OpenSSL подвергает риску клиентов и их данные. В этой статье подробно рассматривается 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 году, она по-прежнему остается проблемой на многих общедоступных серверах и пользовательских устройствах.
Очевидное решение для уязвимого сервера — это залатать его, но исправление критических производственных серверов намного сложнее и рискованнее, чем исправление стандартного пользовательского устройства. По этой причине администраторы планируют установку исправлений в непиковые часы работы, которые могут составлять недели после обнаружения уязвимости. Уязвимости с доступным кодом эксплойтов особенно опасны для конфиденциальности данных, поскольку эти уязвимости могут быть использованы немедленно и не требуют от злоумышленников разработки собственного вредоносного ПО.
Администраторы часто оставляют серверы без исправлений из-за риска, связанного с перезагрузкой. Текущие расписания установки исправлений и перезагрузки опасны по двум основным причинам:
Помимо OpenSSL, у сообщества разработчиков ПО с открытым исходным кодом есть многочисленные разделяемые библиотеки, которые работают на критически важных производственных серверах, но эти библиотеки должны быть исправлены вместе с исправлениями операционной системы, чтобы обеспечить безопасность сервера. Чтобы избежать компрометации, некоторые администраторы вручную исправляют серверы без перезагрузки, чтобы простой не представлял опасности. Без правильных инструментов исправления в реальном времени исправление без перезагрузки оставляет уязвимый код в памяти, но исправленная версия на диске и сервере остается уязвимой.
Когда администраторы запускают сканеры уязвимостей на этих исправленных серверах без перезагрузки, сканеры возвращают ложный отрицательный результат, обнаруживая исправленную версию на диске. Исправленные библиотеки, запускающие неустановленные версии в памяти, по-прежнему уязвимы для эксплойтов, поэтому это неэффективный способ исправления серверов.
Для поиска ложноотрицательных результатов требуется сканер, который обнаруживает уязвимые библиотеки в памяти вместо использования результатов на диске. UChecker от KernelCare — один из таких сканеров с открытым исходным кодом, доступных сообществу FOSS, чтобы помочь им найти уязвимые серверы, даже если они были исправлены на диске.
Это бесплатное программное обеспечение, созданное с использованием JSON и открытое для распространения и/или модификации в соответствии с условиями Стандартной общественной лицензии GNU. Uchecker обнаруживает процессы, которые используют старые (то есть не исправленные) разделяемые библиотеки. Он обнаруживает и сообщает об устаревших разделяемых библиотеках, которые используются запущенными процессами. С помощью сканера KernelCare администраторы получают идентификатор процесса и имя уязвимой разделяемой библиотеки, а также идентификатор сборки библиотеки. Эта информация может быть использована для выявления уязвимостей и исправлений, необходимых для устранения проблемы.
Uchecker (сокращение от «userpace checker») работает со всеми современными дистрибутивами Linux, начиная с версии 6.
Используя всего одну команду, Uchecker просканирует ваши системы на наличие устаревших разделяемых библиотек:
curl -s -L https://kernelcare.com/checker | python
Использование эффективных сканеров уязвимостей, таких как UChecker, и реализация правильного управления исправлениями в реальном времени устранит большую часть риска, связанного с перезагрузками, при этом поддерживая обновления библиотек с открытым исходным кодом. Очень важно, чтобы организации ускорили установку исправлений для уязвимых библиотек, особенно тех, которые потенциально могут раскрыть закрытые ключи и учетные данные пользователя, такие как OpenSSL. В настоящее время многие серверы остаются уязвимыми в течение нескольких недель после выпуска исправления из-за проблем, которые могут возникнуть при перезагрузке, но при этом организация не соблюдает нормативные требования и подвергается риску серьезной утечки данных. Отчеты Malwarebytes показывают, что тысячи веб-сайтов по-прежнему уязвимы для Heartbleed, в результате чего любой, кто подключается к этим веб-сайтам, может столкнуться с проблемами конфиденциальности данных. Правильное решение для оперативного исправления и сканирования уязвимостей поможет администраторам исправить эти серверы и остановить раскрытие информации о своих клиентах, а также защитить их от кражи личных данных и захвата учетных записей.
Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.