Heartbleed (CVE-2014-0160)
Что такое Heartbleed (CVE-2014-0160)?
Heartbleed (CVE-2014-0160)Чтение за пределами буфера 2014 года в расширении TLS heartbeat OpenSSL, позволявшее за один запрос прочесть до 64 КБ памяти процесса и слить ключи, сессии и пароли.
Раскрытый в апреле 2014 года и независимо обнаруженный Нилом Мехтой из Google и финской компанией Codenomicon, Heartbleed (CVE-2014-0160) — это отсутствующая проверка границ в OpenSSL версий с 1.0.1 по 1.0.1f в расширении heartbeat протокола TLS/DTLS (RFC 6520). Запрос heartbeat несёт полезную нагрузку и поле длины; уязвимый код доверял указанной атакующим длине, не сверяя её с реальным размером нагрузки, поэтому сервер копировал в ответ до 64 КБ соседней памяти кучи с помощью memcpy. Каждый запрос сливал новый фрагмент — незаметно, без аутентификации и не оставляя записи в журнале жертвы.
В раскрытой памяти обычно оказывались закрытые ключи RSA, сессионные cookie, имена пользователей, пароли и расшифрованные тела сообщений. Реальные инциденты последовали быстро: Налоговое управление Канады (Canada Revenue Agency) потеряло около 900 номеров социального страхования налогоплательщиков, а в результате утечки в Community Health Systems было раскрыто около 4,5 млн записей о пациентах через уязвимый VPN-шлюз Juniper. Поскольку в 2014 году Perfect Forward Secrecy применялась редко, украденный закрытый ключ позволял атакующим расшифровывать ранее перехваченный трафик. Исправление вышло на следующий день в OpenSSL 1.0.1g, который проверяет длину. Правильное устранение также означало ротацию всех сертификатов и ключей и инвалидацию всех сессий, так как утечку данных невозможно было обнаружить.
flowchart TD
A[Атакующий] -->|"Heartbeat: payload 1 байт, заявлено 64 КБ"| B[OpenSSL 1.0.1-1.0.1f]
B --> C{Длина сверяется<br/>с payload?}
C -->|"Нет (уязвимо)"| D["memcpy читает 64 КБ<br/>соседней памяти кучи"]
D --> E[Ответ сливает ключи RSA,<br/>сессионные cookie, пароли]
E --> A
C -->|"Да (1.0.1g+)"| F[Ответ возвращает только<br/>реальный payload]● Примеры
- 01
Атакующие извлекают TLS-приватный ключ известного SaaS, чтобы расшифровать перехваченный трафик.
- 02
Массовый сбор сессионных cookie аутентифицированных пользователей уязвимых серверов.
● Частые вопросы
Что такое Heartbleed (CVE-2014-0160)?
Чтение за пределами буфера 2014 года в расширении TLS heartbeat OpenSSL, позволявшее за один запрос прочесть до 64 КБ памяти процесса и слить ключи, сессии и пароли. Относится к категории Уязвимости в кибербезопасности.
Что означает Heartbleed (CVE-2014-0160)?
Чтение за пределами буфера 2014 года в расширении TLS heartbeat OpenSSL, позволявшее за один запрос прочесть до 64 КБ памяти процесса и слить ключи, сессии и пароли.
Как защититься от Heartbleed (CVE-2014-0160)?
Защита от Heartbleed (CVE-2014-0160) обычно сочетает технические меры и операционные практики, как описано в определении выше.
Какие есть другие названия Heartbleed (CVE-2014-0160)?
Распространённые альтернативные названия: CVE-2014-0160, Баг heartbeat в OpenSSL.