Во-первых , прежде чем волноваться, убедитесь, что вы понимаете, действительно ли эта уязвимость применима к вам. Если у вас есть сервер, но на самом деле никогда не было приложений, использующих TLS, то это не является приоритетной задачей для вас. Если, с другой стороны, у вас когда-либо были приложения с поддержкой TLS, тогда вас ждет угощение. Читать дальше:
Что именно представляет собой CVE-2014-0160 aka «Heartbleed»?
Это большой беспорядок, вот что это такое. Короче говоря, в OpenSSL версий 1.0.1 - 1.0.1f была обнаружена уязвимость, позволяющая использовать ее удаленно, с помощью которой злоумышленник может считывать определенные части системной памяти. Это те части, которые содержат конфиденциальные данные, такие как закрытые ключи, общие ключи, пароли и ценные корпоративные данные.
Ошибка была независимо обнаружена Нилом Мехта из Google Security (21 марта 2014 г.) и финской компанией по тестированию ИТ-безопасности Codenomicon (2 апреля 2014 г.).
В чем причина?
Ну, ошибочный код в OpenSSL. Вот коммит, который представил уязвимость, и вот коммит, который исправил уязвимость. Ошибка обнаружилась в декабре 2011 года и была исправлена сегодня, 7 апреля 2014 года.
Ошибка также может рассматриваться как признак более серьезной проблемы. Две связанные проблемы: (1) какой процесс используется, чтобы гарантировать, что ошибочный код не введен в базу кода, и (2) почему протоколы и расширения настолько сложны и трудны для тестирования. Пункт (1) - это проблема управления и процесса с OpenSSL и многими другими проектами. Многие разработчики просто сопротивляются таким практикам, как проверка кода, анализ и сканирование. Пункт (2) обсуждается в рабочей группе IETF по TLS. См. Heartbleed / сложность протокола .
Был ли ошибочно вставлен ошибочный код?
Я не буду размышлять о том, действительно ли это было ошибкой или, возможно, был добавлен фрагмент кода от имени плохого актера. Однако, человек, который разработал код для OpenSSL, утверждает, что он был непреднамеренным. См. Человек, который ввел серьезный недостаток безопасности «Heartbleed» отрицает, что он вставил его намеренно .
Какие ОС и версии OpenSSL уязвимы?
Как упомянуто выше, любая операционная система, которая использует, или приложение, которое связано с OpenSSL 1.0.1 до 1.0.1f.
Каковы симптомы, существуют ли какие-либо методы для обнаружения успешного использования?
Это страшная часть. Насколько нам известно, не существует известного способа определить, была ли эта уязвимость использована. Теоретически возможно, что в ближайшее время будут выпущены сигнатуры IDS, которые могут обнаружить этот эксплойт, но на момент написания они недоступны.
Существуют свидетельства того, что Heartbleed активно эксплуатировался в условиях дикой природы уже в ноябре 2013 года. См. EFF Wild in the Heart: были ли разведывательные агентства, использующие Heartbleed в ноябре 2013 года? И Bloomberg сообщает, что АНБ применило эксплойт вскоре после того, как была обнаружена уязвимость. Посмотрите, что АНБ сказал, что эксплуатирует ошибку Heartbleed для разведки в течение многих лет . Однако разведывательное сообщество США отрицает претензии Bloomberg. Смотрите IC на записи .
Как я могу проверить, не повреждена ли моя система?
Если вы поддерживаете OpenSSL в своей системе, вы можете просто выполнить openssl version
:
$ openssl version
OpenSSL 1.0.1g 7 Apr 2014
Если распределение поддерживает OpenSSL, то вы , вероятно , не может определить версию OpenSSL из - за спины Patching с помощью openssl
команды или информацию о пакете (например, apt-get
, dpkg
, yum
или rpm
). Процесс обратного исправления, используемый большинством (всеми?) Дистрибутивами, использует только базовый номер версии (например, «1.0.1e»); и не включает эффективную версию безопасности (например, «1.0.1g»).
У Супер пользователя есть открытый вопрос, чтобы определить эффективную версию безопасности для OpenSSL и других пакетов, когда пакеты возвращаются. К сожалению, нет полезных ответов (кроме как проверить сайт дистрибутива). См. Определить эффективную версию безопасности, когда сталкиваются с Backpatching ?
Практическое правило: если вы когда-либо устанавливали одну из уязвимых версий и когда-либо запускали программы или службы, связанные с OpenSSL для поддержки TLS, то вы уязвимы.
Где я могу найти программу для проверки на уязвимость?
В течение нескольких часов после объявления Heartbleed несколько человек в Интернете опубликовали общедоступные веб-приложения, которые предположительно можно было использовать для проверки сервера на наличие этой уязвимости. На момент написания этой статьи я не рассматривал ни одного из них, поэтому я не буду больше публиковать их заявки. Их можно относительно легко найти с помощью предпочитаемой вами поисковой системы.
Как эта уязвимость смягчается?
Обновите версию до незащищенной и сбросьте или повторно защитите уязвимые данные. Как отмечено на сайте Heartbleed , соответствующие шаги ответа в широком смысле:
- Патч уязвимых систем.
- Восстановить новые закрытые ключи.
- Отправьте новый CSR в свой CA.
- Получите и установите новый подписанный сертификат.
- Неправильные ключи сеанса и куки
- Сбросить пароли и общие секреты
- Отменить старые сертификаты.
Более подробный анализ и ответ см. В разделе Что должен делать оператор веб-сайта в отношении эксплойта Heartbleed OpenSSL? на бирже стека безопасности.
Должен ли я быть обеспокоен тем, что мои ключи или другие личные данные были скомпрометированы? Какие еще побочные эффекты мне следует беспокоить?
Абсолютно. Системные администраторы должны предположить, что их серверы, которые использовали уязвимые версии OpenSSL, действительно скомпрометированы и реагируют соответствующим образом.
Вскоре после того, как уязвимость была обнаружена, Cloudfare предложила проверить, можно ли на практике восстановить личный ключ сервера. В соревнованиях независимо друг от друга победили Федор Индутный и Илкка Маттила. См. «Вызов из сердца» .
Где я могу найти больше информации?
Ссылка дамп, для тех, кто ищет более подробную информацию:
Довольно подробный график событий раскрытия можно найти на графике раскрытия Heartbleed: кто знал, что и когда .
Если вы программист и интересуетесь различными хитростями программирования, такими как обнаружение атаки Heartbleed с помощью msg_cb
обратного вызова OpenSSL , см. Рекомендацию по безопасности OpenSSL 2014047 .