Гид по технологиям

Heartbleed: проверить и устранить уязвимость OpenSSL

• 4 min read • Безопасность • Обновлено 21 Nov 2025
Heartbleed: проверить и устранить уязвимость OpenSSL
Heartbleed: проверить и устранить уязвимость OpenSSL

Что такое Heartbleed

Heartbleed — ошибка в реализации heartbeat в OpenSSL (версии от 1.0.1 до 1.0.1f). При эксплойте можно прочитать часть памяти процесса, что потенциально позволяет получить приватный ключ сервера, сессионные данные и другие секреты. Уязвимость исправлена в OpenSSL 1.0.1g.

Важно: отсутствие уязвимой версии OpenSSL (по выводу команды openssl version) не всегда означает отсутствие патча в пакетах дистрибутива — некоторые дистрибутивы backport’ят исправления в номера пакетов.

Кому угрожает

  • Сервера, использующие OpenSSL 1.0.1–1.0.1f
  • Веб-серверы, почтовые, FTP, LDAP, VPN и другие сервисы, которые связываются по TLS/SSL
  • Клиенты и приложения, которые доверяют скомпрометированным ключам

Как проверить версию OpenSSL

Выполните в терминале:

openssl version

Если видите, например:

OpenSSL 1.0.1e 11 Feb 2013

— версия может быть уязвимой (меньше 1.0.1g). Для OpenSSL 0.9.8 (например, на Debian squeeze) heartbeat отсутствует, значит уязвимость не действует:

OpenSSL 0.9.8o 01 Jun 2010

Исправление уязвимости (шаги)

  1. Установите обновления пакетов вашего дистрибутива (см. команды ниже).
  2. Перезапустите все сервисы, использующие OpenSSL.
  3. Проверьте, что пакет с OpenSSL действительно содержит исправление.
  4. Проверьте сертификаты и приватные ключи: при подозрении на компрометацию — отозовите и переиздайте.
  5. Прогоните тесты (например, http://filippo.io/Heartbleed/).

Команды обновления по дистрибутиву

Debian / Ubuntu

apt-get update
apt-get upgrade

Fedora / CentOS

yum update

OpenSuSE

zypper update

После обновления перезапустите сервисы — минимум те, которые используют OpenSSL: sshd, apache/nginx, postfix, dovecot, courier, pure-ftpd, bind, openvpn и т.п. На критичных системах проще выполнить полную перезагрузку:

reboot

Проверка, что пакет действительно содержит исправление

Некоторые дистрибутивы backport’ят патчи, и команда openssl version не покажет разницы. Проверьте пакетную базу:

Debian / Ubuntu:

dpkg-query -l 'openssl'

Пример корректно запатченного вывода для Debian 7:

dpkg-query -l 'openssl'
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name                Version         Architecture   Description
ii  openssl             1.0.1e-2+deb7u5 amd64          Secure Socket Layer (SSL) binary and related

Fedora / CentOS:

rpm -qa | grep openssl

Ссылки на заметки безопасности (оригиналы):

Альтернатива: собрать OpenSSL из исходников и установить собственную версию (только для опытных администраторов).

Что делать при подозрении на компрометацию ключа

  • Немедленно заменить приватный ключ и сертификат (создать новый CSR и получить новый сертификат).
  • Отозвать старый сертификат через CA (если возможно) и опубликовать CRL/OCSP.
  • Проверить логи на признаки доступа/эксплойта в период до и после обновления.
  • Сообщить пользователям/клиентам, если компрометация могла повлиять на их данные.

Важно: даже если вы установили патч, ранее украденный приватный ключ остаётся компрометированным — его нужно заменить.

Тестирование

Публичный тест доступен по адресу:

http://filippo.io/Heartbleed/

Также протестируйте локально утилитами и сценариями, которые проверяют побочные чтения из памяти TLS-процесса.

Критерии приёмки

  • Пакет OpenSSL обновлён до версии с исправлением (1.0.1g или backport из дистрибутива).
  • Все сервисы, использующие OpenSSL, перезапущены или сервер перезагружен.
  • Тест на http://filippo.io/Heartbleed/ возвращает «not vulnerable» или эквивалент.
  • При подозрении: старые приватные ключи отозваны и заменены новым сертификатом.

Мини-методология: быстрый чеклист (оперативные шаги)

  1. Проверить версию: openssl version.
  2. Обновить пакеты (apt/yum/zypper).
  3. Перезапустить сервисы / перезагрузить сервер.
  4. Проверить пакет через dpkg/rpm.
  5. Прогнать внешний тест (filippo.io).
  6. При подозрении — ротация ключей и уведомление.

Роли и чеклисты

  • Системный администратор: обновление пакетов, перезапуск сервисов, проверка пакетов, перезагрузка по необходимости.
  • Инженер безопасности: оценка риска, проверка логов, принятие решения о ротации ключей и уведомлении.
  • Оператор службы поддержки: готовит сообщения для клиентов и планы по реагированию.

Когда исправление может не сработать (контрпримеры)

  • Если приватный ключ уже был скомпрометирован до установки патча — простое обновление OpenSSL не решит проблему.
  • Если пакет дистрибутива не содержит явного номера версии 1.0.1g, но содержит backport, необходимо проверить содержание пакета.
  • Если служба не была перезапущена после обновления, старый процесс останется уязвимым.

Небольшая decision flow (Mermaid)

flowchart TD
  A[Проверить версию openssl] --> B{Версия уязвима?}
  B -- Да --> C[Обновить пакеты]
  B -- Нет --> D[Проверить пакетный бэкпорт]
  C --> E[Перезапустить сервисы]
  D --> F{Патч в пакете?}
  F -- Да --> E
  F -- Нет --> C
  E --> G[Прогнать тесты и проверить логи]
  G --> H{Есть признаки компрометации?}
  H -- Да --> I[Ревокировать ключи и переиздать сертификаты]
  H -- Нет --> J[Мониторинг]

Шаблон уведомления для клиентов (коротко)

«Мы обнаружили и устранили уязвимость OpenSSL (Heartbleed). Все серверы обновлены, соответствующие ключи заменены (если требовалось). Рекомендуем проверить ваши учётные данные и при обнаружении подозрительных действий сменить пароли.»

Краткое глоссарий (1 строка на термин)

  • Heartbeat: служебное сообщение в протоколе TLS для проверки доступности соединения.
  • Backport: перенос исправления в старую версию пакета без изменения основного номера версии.
  • CSR: запрос на подпись сертификата (Certificate Signing Request).

Ресурсы и ссылки

Резюме: обновите OpenSSL до 1.0.1g или примените патчи дистрибутива, перезапустите сервисы, протестируйте систему и при признаках компрометации замените ключи и сертификаты.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро