Ошибка известна как Кровоточащее сердце.
Уязвим ли я?
Как правило, это влияет на вас, если вы запускаете какой-то сервер, для которого в какой-то момент сгенерировали ключ SSL. Большинство конечных пользователей не затронуты (напрямую); по крайней мере, Firefox и Chrome не используют OpenSSL. SSH не затрагивается. На распространение пакетов Ubuntu это не влияет (оно зависит от подписей GPG).
Вы уязвимы, если запускаете любой сервер, использующий OpenSSL версий 1.0–1.0.1f (за исключением, конечно, версий, которые были исправлены с момента обнаружения ошибки). Затронутые версии Ubuntu - это предварительные версии с 11.10 oneiric по 14.04 trusted. Это ошибка реализации, а не недостаток протокола, поэтому затронуты только программы, использующие библиотеку OpenSSL. Если у вас есть программа, связанная со старой версией OpenSSL 0.9.x, это не повлияет на нее. Затрагиваются только программы, использующие библиотеку OpenSSL для реализации протокола SSL; программы, использующие OpenSSL для других целей, не затрагиваются.
Если вы запустили уязвимый сервер, подключенный к Интернету, считайте его скомпрометированным, если только в ваших журналах не указано отсутствие подключения с момента объявления 2014-04-07. (Это предполагает, что уязвимость не была использована до ее объявления.) Если ваш сервер был открыт только внутренне, необходимость изменения ключей будет зависеть от того, какие другие меры безопасности приняты.
Каково это воздействие?
Ошибка позволяет любой клиент который может подключиться к вашему SSL-серверу, чтобы получить с сервера около 64 КБ памяти. Клиенту не нужно каким-либо образом проходить аутентификацию. Повторяя атаку, клиент может сбрасывать различные части памяти в последовательных попытках.
Одним из важных фрагментов данных, которые злоумышленник может получить, является закрытый ключ SSL сервера. С помощью этих данных злоумышленник может выдать себя за ваш сервер.
Как мне восстановить данные на сервере?
Отключите все затронутые серверы. Пока они работают, они потенциально могут привести к утечке важных данных.
Обновите libssl1.0.0
пакет, и убедитесь, что все затронутые серверы перезапущены.
Вы можете проверить, все ли затронутые процессы все еще запущены с помощью `grep "libssl.(исключено)' /proc//карты`
-
Генерировать новые ключи. Это необходимо, поскольку ошибка могла позволить злоумышленнику получить старый закрытый ключ. Выполните ту же процедуру, которую вы использовали изначально.
- Если вы используете сертификаты, подписанные центром сертификации, отправьте свои новые открытые ключи в свой центр сертификации. Когда вы получите новый сертификат, установите его на свой сервер.
- Если вы используете самозаверяющие сертификаты, установите их на свой сервер.
- В любом случае, уберите старые ключи и сертификаты с дороги (но не удаляйте их, просто убедитесь, что они больше не используются).
Теперь, когда у вас есть новые бескомпромиссные ключи, вы можете верните свой сервер в рабочее состояние.
Отменять старые сертификаты.
-
Оценка ущерба: любые данные, которые находились в памяти процесса, обслуживающего SSL-соединения, потенциально могут быть утечены. Это может включать пароли пользователей и другие конфиденциальные данные. Вам нужно оценить, какими могли быть эти данные.
- Если вы используете службу, которая позволяет проводить аутентификацию по паролю, то пароли пользователей, подключившихся незадолго до того, как было объявлено об уязвимости, следует считать скомпрометированными. (Немного раньше, потому что пароль, возможно, некоторое время оставался неиспользованным в памяти.) Проверьте свои журналы и измените пароли любого затронутого пользователя.
- Также аннулируйте все сеансовые файлы cookie, так как они могли быть скомпрометированы.
- Клиентские сертификаты не скомпрометированы.
- Любые данные, которыми обменивались незадолго до появления уязвимости, могли остаться в памяти сервера и поэтому могли попасть к злоумышленнику.
- Если кто-то записал старое SSL-соединение и получил ключи вашего сервера, теперь он может расшифровать их расшифровку. (Если только ПФС было обеспечено — если вы не знаете, то этого не было.)
Как мне восстановить данные на клиенте?
Существует лишь несколько ситуаций, в которых затрагиваются клиентские приложения. Проблема на стороне сервера заключается в том, что любой желающий может подключиться к серверу и воспользоваться ошибкой. Для того чтобы использовать клиента, должны быть выполнены три условия:
- Клиентская программа использовала ошибочную версию библиотеки OpenSSL для реализации протокола SSL.
- Клиент подключился к вредоносному серверу. (Так, например, если вы подключились к поставщику электронной почты, это не вызывает беспокойства.) Это должно было произойти после того, как владельцу сервера стало известно об уязвимости, то есть предположительно после 2014-04-07.
- Клиентский процесс имел конфиденциальные данные в памяти, которые не были переданы серверу. (Так что, если вы просто побежали
wget
чтобы загрузить файл, не было никаких данных для утечки.)
Если вы сделали это между 2014-04-07 вечером по Гринвичу и обновлением вашей библиотеки OpenSSL, считайте, что любые данные, которые находились в памяти клиентского процесса, были скомпрометированы.
Рекомендации