Что такое OpenSSL?
Криптографический пакет OpenSSL, в котором был обнаружен баг Heartbleed, используется уже очень давно. Первый релиз OpenSSL состоялся еще в конце 90-х. Приставка «Open» в его названии означает, что исходный код пакета находится в открытом доступе.
Как можно догадаться по второй части названия, OpenSSL основывается на протоколе SSL (Secure Sockets Layer, или «уровень защищенных сокетов»). Протокол еще старше. Он был разработан компанией Netscape Communications в 1994 году и изначально использовался только в браузере Netscape Navigator.
Сегодня SSL интегрирован во все основные интернет-браузеры. Используют протокол и многие популярные сайты и сервисы. Например, Google или Facebook включают SSL-шифрование по умолчанию.
Основная задача OpenSSL — обеспечить безопасную передачу данных между сервером и пользователем, открывающим расположенный на нем сайт.
Внешне установку защищенного SSL-соединения можно заметить по небольшой иконке закрытого замка, которая появляется в строке браузера. Сам адрес в строке при этом начинается не с привычного http://, а с https:// (буква «s» обозначает здесь слово secure, то есть «безопасный»).
Все данные, передаваемые по такому соединению, особым образом кодируются. Расшифровать их может только получатель. Для любого же, кто пытается перехватить информацию, она предстает в виде случайного на первый взгляд набора символов.
В чем суть уязвимости Heartbleed?
Работа OpenSSL устроена таким образом, что компьютеры, соединяемые с помощью этого пакета, имеют возможность посылать друг другу так называемые запросы о текущем состоянии. Для этого в OpenSSL прописана специальная функция под названием heartbeat («пульс»). С помощью heartbeat, как поясняет новостной интернет-портал Vox, один компьютер может узнавать у другого, находится ли тот до сих пор онлайн или нет.
Из-за ошибки в коде, во время использования функции heartbeat отвечающий на запрос компьютер не проверял фактическую длину отправленного ему запроса. При желании, запрос можно было составить таким образом, чтобы обманным путем заставить получателя информации выдать до 64 килобайт из оперативной памяти зашифрованного процесса.
Что именно окажется в этих килобайтах, злоумышленник предугадать не мог.
Тем не менее, запрос данных по 64 килобайта можно повторять какое угодно количество раз, а значит для получения хранящихся в оперативной памяти криптографических ключей, паролей или логинов требовалось только время и немного усердия.
Насколько все плохо?
СМИ поспешили назвать heartbeat «самым опасным» и «катастрофическим» багом в истории интернета. В какой-то мере это действительно так.
Ужас ситуации заключается в том, что OpenSSL является самым распространенным криптографическим пакетом в сети. По данным Netcraft, его используют более 65 процентов всех интернет-ресурсов (от Google и Yahoo до сайтов ФБР и «Альфа-банка»). От бага не защищен ни проект Tor (адрес его страницы torproject.org начинается с https://), , ни серверы Apache, — на которых работают миллионы сайтов —, ни многие операционные системы — семейств Linux и BSD (например, Ubuntu).
Подключается ли пользователь к сети через обычное соединение или через VPN, в данном случае не имеет никакого значения. Как только heartbleed удается в блоках по 64 килобайта добыть не просто персональные данные, а ключ для их расшифровки, использовавший уязвимость хакер может беспрепятственно получать доступ к информации человека, не оставляя при этом никаких следов взлома соединения. Как уже отмечалось выше, в руках «третьих лиц» могут таким образом оказаться логины, пароли, данные кредитных карт, имейлы — практически все, что передается между уязвимым сервером и клиентом.
Не добавляет оптимизма и то, что баг в общей сложности просуществовал около двух лет. Узнать кто, когда и в каком объеме успел за это время им воспользоваться, невозможно. Сейчас, когда уязвимость уже устранена, потребуется время, чтобы сотни тысяч оказавшихся в опасности сайтов и серверов установили исправленную версию OpenSSL и перевыпустили SSL-сертификаты.
<q>Слово «катастрофический» в этой ситуации совершенно оправданно. По шкале от 1 до 10 это примерно 11. Настоящий вопрос — не вписал ли кто-то два года назад этот баг в OpenSSL намеренно, чтобы получить доступ к защищенным сведениям. Я думаю, что это случайность, но доказательств, подкрепляющих эту точку зрения, у меня нет.Брюс Шнайер, американский криптограф и специалист по компьютерной безопасности</q>
Но даже после этого трудно будет сказать не использует ли кто-то схожую с heartbleed уязвимость для создания новых обходных путей для взлома зашифрованных соединений.
Что делать?
Обычному пользователю остается только ждать. До тех пор, пока сайты и серверы не установят обновленный патч OpenSSL (Google, Facebook, Twitter и Yahoo это уже сделали), менять пароли от аккаунтов и как-то еще пытаться защитить свои данные не имеет смысла. Проверить, насколько безопасен тот или иной ресурс, пока можно на специально созданном для этого сайте. С другой стороны, как советует администрация Tor, если вам действительно дорога ваша анонимность в интернете, в ближайшие несколько дней лучше вообще не выходить онлайн.
Виктор Степанов@kertyschoo
Комментарии