Баг известен как Heartbleed .
Я уязвим?
Как правило, это зависит от того, запущен ли какой-либо сервер, на котором вы создали ключ SSL в какой-то момент. Большинство конечных пользователей не затронуты (напрямую); по крайней мере Firefox и Chrome не используют OpenSSL. SSH не влияет. Распределение пакетов Ubuntu не затрагивается (оно зависит от подписей GPG).
Вы уязвимы, если вы запускаете любой сервер, который использует OpenSSL версии 1.0-1.0.1f (за исключением конечно версий, которые были исправлены с момента обнаружения ошибки). Затронутые версии Ubuntu составляют 11,10 однократных до 14,04 надежных предварительных выпусков. Это ошибка реализации, а не ошибка в протоколе, поэтому затрагиваются только программы, использующие библиотеку OpenSSL. Если у вас есть программа, связанная со старой версией OpenSSL версии 0.9.x, это не влияет. Это касается только программ, использующих библиотеку OpenSSL для реализации протокола SSL; программы, которые используют OpenSSL для других вещей, не затрагиваются.
Если вы запустили уязвимый сервер, открытый в Интернете, считайте его скомпрометированным, если в вашем журнале нет соединения с момента объявления в 2014-04-07. (Это предполагает, что уязвимость не была использована до его объявления.) Если ваш сервер был открыт только внутри страны, нужно ли вам менять ключи, будет зависеть от того, какие другие меры безопасности существуют.
Какое влияние?
Ошибка позволяет любому клиенту , который может подключиться к вашему серверу SSL, чтобы получить около 64 КБ памяти с сервера. Клиент не должен быть аутентифицирован каким-либо образом. Повторяя атаку, клиент может сбрасывать разные части памяти при последовательных попытках.
Одна из критических частей данных, которую злоумышленник может получить, - это закрытый ключ сервера SSL. С помощью этих данных злоумышленник может выдавать себя за ваш сервер.
Как восстановить на сервере?
-
Отключить все уязвимые серверы в автономном режиме. Пока они работают, они потенциально могут протекать критически важные данные.
-
Обновите пакет libssl1.0.0
и убедитесь, что все затронутые серверы перезагружены.
Вы можете проверить, продолжают ли затронутые процессы работать с '' grep 'libssl. (deleted)' / proc / / maps '
-
Создать новые ключи . Это необходимо, потому что ошибка могла позволить злоумышленнику получить старый закрытый ключ. Следуйте той же самой процедуре, которую вы использовали вначале.
- Если вы используете сертификаты, подписанные сертификационным центром, отправьте свои открытые ключи в ваш центр сертификации. Когда вы получите новый сертификат, установите его на свой сервер.
- Если вы используете самозаверяющие сертификаты, установите его на свой сервер.
- В любом случае, удалите старые ключи и сертификаты (но не удаляйте их, просто убедитесь, что они больше не используются).
-
Теперь, когда у вас есть новые бескомпромиссные ключи, вы можете вернуть сервер обратно в сеть .
-
Отменить старые сертификаты.
-
Оценка ущерба : любые данные, хранящиеся в памяти процесса, поддерживающего SSL-соединения, могут быть утечки. Это может включать пароли пользователей и другие конфиденциальные данные. Вы должны оценить, какими были эти данные. Р>
- Если вы используете службу, которая разрешает аутентификацию по паролю, то пароли пользователей, которые подключались с момента, когда была объявлена уязвимость, должны считаться скомпрометированными. (Немного раньше, потому что на некоторое время пароль может остаться неиспользуемым в памяти.) Проверьте свои журналы и измените пароли любого затронутого пользователя.
- Также недействительны все файлы cookie сеанса, поскольку они могут быть скомпрометированы.
- Клиентские сертификаты не подвергаются риску.
- Любые данные, которые были обменены с небольшим до того, как уязвимость, возможно, осталась в памяти сервера и, возможно, были утечены злоумышленнику.
- Если кто-то записал старое SSL-соединение и извлек ключи вашего сервера, он теперь может расшифровать свою стенограмму. (Если бы PFS не было обеспечено - если вы этого не знаете, это не так.)
Как мне восстановить клиент?
Есть только несколько ситуаций, в которых затронуты клиентские приложения. Проблема на стороне сервера заключается в том, что каждый может подключиться к серверу и использовать ошибку. Чтобы использовать клиента, необходимо выполнить три условия:
- Клиентская программа использовала баггированную версию библиотеки OpenSSL для реализации протокола SSL.
- Клиент подключен к вредоносному серверу. (Например, если вы подключились к поставщику электронной почты, это не вызывает беспокойства.) Это должно было произойти после того, как владелец сервера узнал об этой уязвимости, поэтому предположительно после 2014-04-07.
- Клиентский процесс имел конфиденциальные данные в памяти, которые не были совместно использованы сервером. (Так что если вы просто запустили
wget
, чтобы загрузить файл, утечки данных не было.)
Если вы сделали это между UTC 2014-04-07 и обновлением библиотеки OpenSSL, рассмотрите любые данные, которые были в памяти клиентского процесса, чтобы быть скомпрометированы.
Ссылки