Вопрос второй: в чём она заключается, что именно составляет проблему? Библиотека OpenSSL содержит набор функций, реализующих криптографические протоколы SSL и (что фактически то же самое) TLS. Они помогают скрыть содержимое передаваемых через интернет-соединение данных от посторонних глаз. К примеру, всякий раз, когда в адресной строке браузера светится «HTTPS», это означает, что ваше соединение с веб-сервером защищено с помощью SSL/TLS.
Важно понимать, что OpenSSL — не единственная библиотека, реализующая функции SSL/TLS, но самая популярная. Ведь она развивается под свободной лицензией, так что большинство веб-серверов использует именно её. Важно также, что не все версии OpenSSL содержат ошибку Heartbleed: лишь около полумиллиона серверов эксплуатируют библиотеку уязвимых версий 1.0.1 и 1.0.2beta, тогда как более ранние и более поздние её варианты ошибки не содержат.
Суть проблемы в том, что сервер не проверяет корректность некоторых запросов, поступающих от клиентов. Установив соединение, клиент (не человек, конечно, а программное обеспечение) периодически обращается к серверу с просьбой подтвердить, что соединение ещё не разорвано (эта функция называется heartbeet — «биение сердца»). В ответ сервер должен вернуть некоторый небольшой объём данных, причём количество их определяет сам клиент.
Так вот, если клиент запросит больше данных, чем отправил, дефективная OpenSSL его запрос всё равно удовлетворит — и пришлёт ему кусок из оперативной памяти длиной вплоть до 64 килобайт (отсюда название ошибки: heartbleed — «кровоточащее сердце»). В куске этом, понятное дело, могут находиться сведения, к данному клиенту отношения не имеющие, — например, пароли и логины пользователей, недавно подключившихся к серверу, а также секретный криптоключ, который сервер использует для шифрования соединений.
Обращаясь к серверу, клиент просит вернуть ему ответ определённой длины. Но из-за ошибки сервер не замечает, что, хоть сам запрос состоит всего из трёх символов, вернуть его просят значительно больше...
Отсюда — вопрос и ответ номер три: чем опасна Heartbleed? Владея вышеозначенной информацией, злоумышленник в силах организовать, в частности, прослушку чужих сеансов связи с данным сервером и заглянуть в чужие аккаунты. Поскольку многие сетяне используют один и тот же пароль на нескольких сайтах, а мультифакторная авторизация по-прежнему непопулярна (то есть в подавляющем большинстве случаев для прохода в закрытую зону достаточно знания логина и пароля), можно попробовать применить украденные о пользователе сведения на других веб-ресурсах.
Впрочем, проблема шире: та же ошибка найдена и в роутерах, и в файерволах, и в IP-телефонах. А полных масштабов катастрофы не знает вообще никто — ведь OpenSSL работает не только на серверах, но и на клиентских устройствах, а также может быть интегрирована в приложения. Так, например, Google подтвердила, что ОС Android версии 4.1.1 («миллионы устройств») подвержена ошибке. Как злоумышленники смогут её использовать — не совсем ясно, но очевидно, что атака должна быть направлена на смартфон, планшетку или конкретные приложения в них.
...Что выводит нас на четвёртый вопрос: использовали ли уже дыру против рядовых сетян? И вот тут впервые появляется неопределённость. Вплоть до минувших выходных доминировали оптимисты: считалось, что практическая опасность Heartbleed чрезмерно раздута, воспользоваться ею «в полевых условиях» крайне сложно, если возможно вообще. Однако после того, как компания Cloudflare ( та самая) объявила открытый конкурсна взлом своего сервера и его один за другим, применяя только Heartbleed, хакнули четыре раза (первым, кстати, был наш соотечественник Фёдор Индутный), возобладала пессимистическая версия. К выходным же подоспели и данные о том, что зафиксированы первые реальные атаки против веб-сервисов, подверженных ошибке (списки интернет-узлов, владельцы которых поленились озадачиться обновлением OpenSSL, уже гуляют по Сети). Теперь эксперты ждут появления автоматических инструментов для эксплуатации Heartbleed, после чего, как полагают, счёт жертвам пойдёт на миллионы.
Таким образом, вопрос, знали ли о Heartbleed заранее спецслужбы (какие-токто-то то же АНБ, к примеру), кажется несущественным. Даже если и знали, то по крайней мере не воровали деньги с чужих счетов, не крали интимные фотографии, не отбирали аккаунты. Больше интересно, остались ли следы прошлых взломов. Если действительно знал о Heartbleed до 7 апреля 2014 года, знал и пытался это использовать, то в логах атакованных серверов могли остаться зацепки. Но на этот счёт мнения расходятся. Шнайер, например, считает, что следов такие атаки не оставляют. Многие другие специалисты уверены, что следы остаются, и даже нашли минимум одинв логах осени прошлого года.
Читать дальше