xaker

Автор бага Heartbleed: это была случайная ошибка

  • суббота, 12 апреля 2014 г. в 03:10:46
http://www.xakep.ru/post/62342/

Уязвимость в OpenSSL доставила немало хлопот веб-мастерам и пользователям интернета. Приходится в срочном порядке обновлять программу OpenSSL, менять ключи и перевыпускать сертификаты, а пользователям — менять пароли на всех сайтах, потому что те могут быть скомпрометированы за прошлые два года, пока уязвимость могли эксплуатировать неизвестные злоумышленники. Есть свидетельства, что сканирование памяти серверов с использованием этой уязвимости наблюдалось еще в 2013 году, то есть кто-то знал о ней заранее. Сейчас только ленивый не исследует чужие серверы в поисках паролей и другой ценной информации. «По шкале от 0 до 10 я бы оценил опасность этой уязвимости в 11», — сказал известный криптограф Брюс Шнайер.

Спустя несколько дней после начала переполоха наконец-то дал комментарий немецкий программист Робин Сеггельманн (Robin Seggelmann). Именно он 1 января 2012 года предложил код расширения Heartbeat (RFC6520) для протокола TLS, в одной из процедур которого отсутствовала необходимая проверка границ. Из-за этого оказалось возможным осуществлять запросы к серверу и получать «снимки» его оперативной памяти до 64 КБ за один запрос.

Д-р Сеггельманн из города Мюнстер (Германия) говорит, что допустил ошибку в коде по недосмотру. К сожалению, баг не заметил ни он сам, ни рецензент, который одобрил код перед принятием патча. Такая проверка требуется по правилам разработки проектов Open Source. «Я работал над улучшением OpenSSL, отправил много исправлений багов и реализаций нового функционала, — объясняет Сеггельманн. — В одной из новых функций, к сожалению, я упустил проверку переменной длины». Автор говорит, что ошибка довольно тривиальная, хотя и согласен, что она вызвала серьезные последствия.

Судя по логам, рецензентом является д-р Стивен Хенсон (Stephen Henson), тоже довольно известный разработчик в сообществе Open Source.

Судя по всему, программистов вряд ли приходится винить в том, что они внедрили баг умышленно. Но даже если уязвимость появилась по недосмотру, ее вполне могли заметить компетентные товарищи из органов еще в 2012 году. Код программ открыт и наверняка люди там работают над поиском чужих ошибок, помимо внедрения собственных бэкдоров.

Робин Сеггельманн уверен: чтобы уменьшить количество багов и быстрее находить ошибки, надо привлечь к работе над проектами Open Source больше разработчиков.