Heartbleed - Heartbleed

Heartbleed
Heartbleed.svg
Логотип, представляющий Heartbleed. Охранная компания Codenomicon дала Heartbleed название и логотип, чтобы привлечь внимание общественности к проблеме.
Идентификатор (ы) CVE CVE-2014-0160
Выпущенный 1 февраля 2012 г . ; 9 лет назад ( 2012-02-01 )
Дата обнаружения 1 апреля 2014 г . ; 7 лет назад ( 2014-04-01 )
Дата исправления 7 апреля 2014 г . ; 7 лет назад ( 2014-04-07 )
Первооткрыватель Нил Мехта
Затронутое программное обеспечение OpenSSL (1.0.1)
Веб-сайт heartbleed .com

Heartbleed был ошибкой безопасности в библиотеке криптографии OpenSSL , которая является широко используемой реализацией протокола безопасности транспортного уровня (TLS). Он был введен в программное обеспечение в 2012 году и публично раскрыт в апреле 2014 года. Heartbleed может быть использован независимо от того, работает ли уязвимый экземпляр OpenSSL в качестве TLS-сервера или клиента. Это произошло из-за неправильной проверки ввода (из-за отсутствия проверки границ ) в реализации расширения пульса TLS . Таким образом, название ошибки происходит от сердцебиения . Уязвимость была классифицирована как чрезмерное чтение буфера , то есть ситуация, когда можно прочитать больше данных, чем должно быть разрешено.

Heartbleed был зарегистрирован в базе данных Common Vulnerabilities and Exposures как CVE - 2014-0160 . Федеральный канадский центр реагирования на киберинциденты выпустил бюллетень по безопасности, информирующий системных администраторов об ошибке. Фиксированная версия OpenSSL была выпущена 7 апреля 2014 года, в тот же день, когда Heartbleed было публично раскрыто.

Системные администраторы часто не спешили исправлять свои системы. По состоянию на 20 мая 2014 года 1,5% из 800 000 самых популярных веб-сайтов с поддержкой TLS все еще были уязвимы для Heartbleed. По состоянию на 21 июня 2014 г. 309 197 общедоступных веб-серверов оставались уязвимыми. По состоянию на 23 января 2017 года, согласно отчету Shodan , почти 180000 подключенных к Интернету устройств все еще были уязвимы. По данным поиска на shodan.io по запросу «vuln: cve-2014-0160», по состоянию на 6 июля 2017 года их число упало до 144 000. По состоянию на 11 июля 2019 года Shodan сообщил, что уязвимыми оказались 91063 устройства. Первыми оказались США с 21 258 (23%), в 10 ведущих странах - 56 537 (62%), а в остальных странах - 34 526 (38%). В отчете также были разбиты устройства по 10 другим категориям, таким как организация (в тройку лидеров вошли компании-производители беспроводной связи), продукты (Apache httpd, nginx) или услуги (https, 81%).

TLS , кроме OpenSSL реализации, такие как GnuTLS , Mozilla «s Network Security Services , а также реализация платформы Windows , в TLS , не были затронуты , так как дефект существовал в реализации OpenSSL о TLS , а не в самом протоколе.

История

Расширение Heartbeat Extension для протоколов Transport Layer Security (TLS) и Datagram Transport Layer Security (DTLS) было предложено в качестве стандарта в феврале 2012 года RFC  6520 . Это дает возможность тестировать и поддерживать безопасные каналы связи без необходимости каждый раз заново согласовывать соединение. В 2011 году один из авторов RFC, Робин Сеггельманн, тогда доктор философии. Студент Высшей школы Мюнстера внедрил расширение Heartbeat Extension для OpenSSL. После того, как Сеггельманн попросил поместить результат своей работы в OpenSSL, его изменение было рассмотрено Стивеном Н. Хенсоном, одним из четырех основных разработчиков OpenSSL. Хенсон не заметил ошибки в реализации Сеггельмана и 31 декабря 2011 года представил ошибочный код в репозитории исходного кода OpenSSL. Дефект распространился с выпуском OpenSSL версии 1.0.1 14 марта 2012 года. Поддержка Heartbeat была включена по умолчанию, что привело к уязвимые версии.

Открытие

По словам Марка Дж. Кокса из OpenSSL, Нил Мехта из группы безопасности Google в частном порядке сообщил о Heartbleed команде OpenSSL 1 апреля 2014 года в 11:09 UTC.

Ошибка была названа инженером Synopsys Software Integrity Group, финской компании по кибербезопасности, которая также создала логотип с кровоточащим сердцем и запустила домен heartbleed .com, чтобы объяснить ошибку общественности. Хотя группа безопасности Google сначала сообщила о Heartbleed OpenSSL, и Google, и Codenomicon обнаружили его независимо примерно в одно и то же время. Codenomicon сообщает 3 апреля 2014 года как дату их обнаружения и дату уведомления NCSC для координации уязвимостей.

На момент раскрытия информации около 17% (около полумиллиона) защищенных веб-серверов Интернета, сертифицированных доверенными органами, считались уязвимыми для атаки, что делало возможным кражу закрытых ключей серверов, а также файлов cookie и паролей сеансов пользователей. Electronic Frontier Foundation , Ars Technica , и Брюс Шнайер все считаются ошибкой Heartbleed «катастрофическим». Обозреватель Forbes, посвященный кибербезопасности, Джозеф Стейнберг написал:

Кто-то может возразить, что Heartbleed - наихудшая обнаруженная уязвимость (по крайней мере, с точки зрения ее потенциального воздействия) с тех пор, как коммерческий трафик начал течь в Интернете.

Представитель британского кабинета министров рекомендовал:

Людям следует посоветоваться по поводу смены паролей на сайтах, которые они используют. Большинство веб-сайтов исправили ошибку и лучше всего могут посоветовать, какие действия нужно предпринять, если таковые имеются.

В день раскрытия информации The Tor Project сообщил:

Если вам нужна строгая анонимность или конфиденциальность в Интернете, вы можете полностью отказаться от Интернета в течение следующих нескольких дней, пока все уляжется.

The Sydney Morning Herald опубликовала график открытия 15 апреля 2014 года, показав, что некоторым организациям удалось исправить ошибку до ее публичного раскрытия. В некоторых случаях непонятно, как они узнали.

Исправление и развертывание

Бодо Мёллер и Адам Лэнгли из Google подготовили исправление для Heartbleed. Полученный патч был добавлен в систему отслеживания проблем Red Hat 21 марта 2014 года. Стивен Н. Хенсон применил исправление к системе контроля версий OpenSSL 7 апреля. В тот же день была выпущена первая исправленная версия 1.0.1g. По состоянию на 21 июня 2014 г. 309 197 общедоступных веб-серверов оставались уязвимыми. По состоянию на 23 января 2017 года, согласно отчету Shodan, почти 180000 подключенных к Интернету устройств все еще были уязвимы. Согласно поиску на shodan.io по запросу "vuln: cve-2014-0160", число упало до 144 000 по состоянию на 6 июля 2017 года.

Продление и отзыв сертификата

По данным Netcraft , около 30 000 из 500 000+ сертификатов X.509, которые могли быть скомпрометированы из-за Heartbleed, были перевыпущены к 11 апреля 2014 года, хотя меньше было отозвано.

К 9 мая 2014 года только 43% затронутых веб-сайтов перевыпустили свои сертификаты безопасности. Кроме того, в 7% повторно выпущенных сертификатов безопасности использовались потенциально скомпрометированные ключи. Netcraft заявил:

При повторном использовании одного и того же закрытого ключа сайт, затронутый ошибкой Heartbleed, по-прежнему сталкивается с теми же рисками, что и сайты, которые еще не заменили свои сертификаты SSL .

В eWeek говорится: «[Heartbleed], вероятно, останется риском на месяцы, если не годы, в будущем».

Эксплуатации

Агентство дохода Канады сообщило о краже социального страхования чисел , принадлежащих к 900 налогоплательщикам, и сказал , что они были доступны через эксплоит жук в течение 6-часового периода по 8 апреля 2014 г. После открытия атаки, агентство закрыло своего веб-сайта и продлил крайний срок подачи налоговых деклараций с 30 апреля до 5 мая. Агентство заявило, что бесплатно предоставит услуги по защите кредита всем пострадавшим. 16 апреля RCMP объявил, что они обвинили студента, изучающего информатику, в связи с кражей с несанкционированным использованием компьютера и нанесением вреда данным .

У британского сайта для родителей Mumsnet было похищено несколько учетных записей пользователей, а его генеральный директор выдал себя за другое лицо . Позже сайт опубликовал объяснение инцидента, в котором говорилось, что он произошел из-за Heartbleed, и технический персонал немедленно исправил его.

Исследователи антивирусного ПО также использовали Heartbleed в своих интересах для доступа к секретным форумам, используемым киберпреступниками. Также были проведены исследования путем преднамеренной установки уязвимых машин. Например, 12 апреля 2014 года по крайней мере два независимых исследователя смогли украсть закрытые ключи с экспериментального сервера, специально настроенного для этой цели CloudFlare . Кроме того , на 15 апреля 2014, J. Alex Halderman , профессор Мичиганского университета , сообщил , что его приманка сервер, преднамеренно уязвима сервер предназначен для привлечения атак в целях их изучения, получил многочисленные атаки , исходящие из Китая. Халдерман пришел к выводу, что, поскольку это был довольно малоизвестный сервер, эти атаки, вероятно, были широкомасштабными атаками, затронувшими большие области Интернета.

В августе 2014 года стало известно, что уязвимость Heartbleed позволила хакерам украсть ключи безопасности у Community Health Systems , второй по величине коммерческой сети больниц США в Соединенных Штатах, что поставило под угрозу конфиденциальность 4,5 миллионов историй болезни пациентов. Нарушение произошло через неделю после того, как Heartbleed впервые было обнародовано.

Возможные предварительные знания и эксплуатация

Многие крупные веб-сайты исправили ошибку или отключили расширение Heartbeat Extension в течение нескольких дней после его объявления, но неясно, знали ли потенциальные злоумышленники об этом ранее и в какой степени оно использовалось.

На основании изучения журналов аудита исследователями было сообщено, что некоторые злоумышленники могли использовать уязвимость в течение как минимум пяти месяцев до обнаружения и объявления. Errata Security указала, что широко используемая невредоносная программа под названием Masscan , представленная за шесть месяцев до раскрытия информации Heartbleed, внезапно прерывает соединение во время квитирования так же, как Heartbleed, генерируя те же сообщения журнала сервера, добавляя «Две новые вещи создание одних и тех же сообщений об ошибках может показаться, что они взаимосвязаны, но, конечно, это не так ».

Согласно Bloomberg News , два неназванных инсайдерских источника сообщили ему, что Агентство национальной безопасности США было осведомлено об этой уязвимости вскоре после ее появления, но - «вместо того, чтобы сообщить о ней» - «держало ее в секрете среди других незарегистрированных уязвимостей нулевого дня, с тем чтобы использовать его в собственных целях АНБ. АНБ отвергло это утверждение, как и Ричард А. Кларк , член Национальной разведывательной группы по разведке и коммуникационным технологиям, которая изучила политику США в области электронного наблюдения; 11 апреля 2014 года он сказал агентству Рейтер, что АНБ не знало о Heartbleed. Обвинение побудило американское правительство впервые сделать публичное заявление о своей политике уязвимостей нулевого дня, приняв рекомендацию отчета группы проверки за 2013 год, в которой утверждалось, что «почти во всех случаях для широко используемого кода это в национальных интересах устранить уязвимости программного обеспечения, а не использовать их для сбора разведданных США », и заявив, что решение об отказе должно быть принято АНБ в Белый дом.

Поведение

Изображение Heartbleed.

RFC 6520 Heartbeat Extension проверяет защищенные каналы связи TLS / DTLS, позволяя компьютеру на одном конце соединения отправлять сообщение Heartbeat Request , состоящее из полезной нагрузки, обычно текстовой строки, вместе с длиной полезной нагрузки в виде 16-битного целого числа. . Затем принимающий компьютер должен отправить точно такую ​​же полезную нагрузку обратно отправителю.

Затронутые версии OpenSSL выделяют буфер памяти для сообщения, которое должно быть возвращено, на основе поля длины в запрашивающем сообщении, без учета фактического размера полезной нагрузки этого сообщения. Из-за того, что не удалось выполнить надлежащую проверку границ , возвращаемое сообщение состоит из полезной нагрузки, за которой, возможно, следует все, что находится в выделенном буфере памяти.

Таким образом, Heartbleed используется путем отправки искаженного запроса пульса с небольшой полезной нагрузкой и полем большой длины уязвимой стороне (обычно серверу), чтобы вызвать ответ жертвы, позволяя злоумышленникам прочитать до 64 килобайт памяти жертвы, что было вероятно ранее использовался OpenSSL. Если запрос Heartbeat Request может потребовать от стороны «отправить обратно четырехбуквенное слово« птица »», в результате будет получен ответ «птица», «Heartbleed Request» (злонамеренный запрос сердечного ритма) «отправить обратно 500-буквенный» слово «птица» заставляло жертву возвращать слово «птица», за которым следовали все 496 последующих символов, которые жертва имела в активной памяти. Таким образом, злоумышленники могут получать конфиденциальные данные, нарушая конфиденциальность сообщений жертвы. Хотя злоумышленник имеет некоторый контроль над размером раскрытого блока памяти, он не может контролировать его местоположение и, следовательно, не может выбрать, какой контент раскрывается.

Затронутые установки OpenSSL

Затронутые версии OpenSSL: OpenSSL 1.0.1–1.0.1f (включительно). Последующие версии (1.0.1g и новее) и предыдущие версии (ветка 1.0.0 и старше) не уязвимы. Установки уязвимых версий уязвимы, если OpenSSL не был скомпилирован с -DOPENSSL_NO_HEARTBEATS .

Уязвимая программа и функция

Уязвимые исходные файлы программы - это t1_lib.c и d1_both.c, а уязвимые функции - это tls1_process_heartbeat () и dtls1_process_heartbeat ().

Пластырь

Проблема может быть решена путем игнорирования сообщений Heartbeat Request, которые запрашивают больше данных, чем требуется для их полезной нагрузки.

Версия 1.0.1g OpenSSL добавляет некоторые проверки границ для предотвращения переполнения буфера. Например, был представлен следующий тест, чтобы определить, вызовет ли запрос сердцебиения Heartbleed; он молча отклоняет злонамеренные запросы.

if (1 + 2 + payload + 16 > s->s3->rrec.length) return 0; /* silently discard per RFC 6520 sec. 4 */

Система контроля версий OpenSSL содержит полный список изменений.

Влияние

Данные , полученные с помощью атаки Heartbleed может включать незащищенную обмены между TLS сторон , вероятно, будет конфиденциальной, включая любые формы почтовых данные в запросах пользователей. Более того, представленные конфиденциальные данные могут включать секреты аутентификации, такие как файлы cookie сеанса и пароли, которые могут позволить злоумышленникам выдавать себя за пользователя службы.

Атака также может раскрыть закрытые ключи скомпрометированных сторон, что позволит злоумышленникам расшифровать сообщения (будущий или прошлый сохраненный трафик, захваченный с помощью пассивного подслушивания, если не используется идеальная прямая секретность , и в этом случае только будущий трафик может быть расшифрован, если он перехвачен через человека. посередине атаки ).

Злоумышленник, получивший аутентификационный материал, может выдать себя за владельца материала после того, как жертва установила исправление Heartbleed, пока материал принимается (например, до тех пор, пока не будет изменен пароль или закрытый ключ не будет отозван). Таким образом, Heartbleed представляет собой серьезную угрозу конфиденциальности. Однако злоумышленник, выдающий себя за жертву, также может изменить данные. Таким образом, косвенно последствия Heartbleed могут выходить далеко за рамки нарушения конфиденциальности для многих систем.

Опрос взрослых американцев, проведенный в апреле 2014 года, показал, что 60 процентов слышали о Heartbleed. Среди тех, кто пользуется Интернетом, 39 процентов защитили свои онлайн-аккаунты, например, путем изменения паролей или аннулирования аккаунтов; 29% считают, что их личная информация подверглась риску из-за ошибки Heartbleed; и 6% считают, что их личная информация была украдена.

Уязвимость на стороне клиента

Хотя ошибка привлекла больше внимания из-за угрозы, которую она представляет для серверов, клиенты TLS, использующие затронутые экземпляры OpenSSL, также уязвимы. В том, что Guardian поэтому назвала Reverse Heartbleed , вредоносные серверы могут использовать Heartbleed для чтения данных из памяти уязвимого клиента. Исследователь безопасности Стив Гибсон сказал о Heartbleed следующее:

Это не только уязвимость на стороне сервера, это также уязвимость на стороне клиента, потому что сервер или кто бы то ни было, к кому вы подключаетесь, может запросить у вас ответное сердцебиение так же, как и вы, чтобы попросить их.

Украденные данные могут содержать имена пользователей и пароли. Reverse Heartbleed затронул миллионы экземпляров приложений. Некоторые из уязвимых приложений перечислены в разделе «Программные приложения» ниже .

Затронуты определенные системы

Cisco Systems определила 78 своих продуктов как уязвимые, включая системы IP-телефонии и системы телеприсутствия (видеоконференцсвязи).

Веб-сайты и другие онлайн-сервисы

Анализ наиболее посещаемых веб-сайтов 8 апреля 2014 г., опубликованный на GitHub, выявил уязвимости на таких сайтах, как Yahoo! , Imgur , Stack Overflow , Slate и DuckDuckGo . Следующие сайты имеют затронутые услуги или сделали объявления, рекомендующие пользователям обновить пароли в ответ на ошибку:

Канадское федеральное правительство временно закрыло онлайн-сервисы Налогового управления Канады (CRA) и нескольких государственных ведомств из-за проблем с безопасностью Heartbleed. До закрытия онлайн-сервисов CRA хакер получил около 900 номеров социального страхования . Серверы другого канадского правительственного агентства, Статистического управления Канады , были скомпрометированы из-за ошибки, а также временно отключили свои службы.

Сопровождающие платформы, такие как Фонд Викимедиа, посоветовали своим пользователям сменить пароли.

Серверы LastPass были уязвимы, но из-за дополнительного шифрования и прямой секретности потенциальные атаки не могли использовать эту ошибку. Однако LastPass рекомендовал своим пользователям менять пароли для уязвимых веб-сайтов.

Проект Tor рекомендовал операторам ретранслятора Tor и операторам скрытых служб отозвать и сгенерировать новые ключи после исправления OpenSSL, но отметил, что ретрансляторы Tor используют два набора ключей и что многопозиционная конструкция Tor сводит к минимуму влияние использования одного ретранслятора. 586 реле, которые, как позже выяснилось, были восприимчивы к ошибке Heartbleed, были отключены в качестве меры предосторожности.

Сервисы, связанные с играми, включая Steam , Minecraft , Wargaming , League of Legends , GOG.com , Origin , Sony Online Entertainment , Humble Bundle и Path of Exile, были затронуты и впоследствии исправлены.

Программные приложения

Уязвимые программные приложения включают:

  • Несколько серверных приложений Hewlett-Packard , например HP System Management Homepage (SMH) для Linux и Windows.
  • Некоторые версии FileMaker 13
  • LibreOffice с 4.2.0 по 4.2.2 (исправлено в 4.2.3)
  • LogMeIn утверждал, что «обновил многие продукты и части наших услуг, которые полагаются на OpenSSL».
  • Несколько продуктов McAfee , в частности, некоторые версии программного обеспечения, обеспечивающего антивирусное покрытие для Microsoft Exchange, программных брандмауэров, а также шлюзов электронной почты и веб-шлюзов McAfee.
  • Соединитель Oracle MySQL / C 6.1.0-6.1.3 и соединитель / ODBC 5.1.13, 5.2.5-5.2.6, 5.3.2
  • Oracle Big Data Appliance (включает Oracle Linux 6)
  • Primavera P6 Professional Project Management (включает Primavera P6 Enterprise Project Portfolio Management)
  • WinSCP (FTP-клиент для Windows) 5.5.2 и некоторые более ранние версии (уязвимы только с FTP через TLS / SSL, исправлено в 5.5.3)
  • Несколько продуктов VMware , включая VMware ESXi 5.5, VMware Player 6.0, VMware Workstation 10 и серию продуктов, эмуляторов и облачных вычислений Horizon.

Были затронуты несколько других приложений корпорации Oracle .

Операционные системы / прошивки

Пострадало несколько дистрибутивов Linux, включая Debian (и производные, такие как Linux Mint и Ubuntu ) и Red Hat Enterprise Linux (и производные, такие как CentOS , Oracle Linux 6 и Amazon Linux ), а также следующие операционные системы и реализации прошивки:

  • Android 4.1.1, используемый в различных портативных устройствах. Крис Смит в отчете Boy Genius Report пишет, что затронута только эта одна версия Android, но это популярная версия Android ( Chitika утверждает, что 4.1.1 установлена ​​на 50 миллионах устройств; Google описывает ее как менее 10% активированных Android-устройств). . Другие версии Android не уязвимы, так как в них либо отключены тактовые импульсы, либо используется незатронутая версия OpenSSL.
  • Прошивки для некоторых базовых станций AirPort
  • Прошивки для некоторых маршрутизаторов Cisco Systems
  • Прошивки для некоторых роутеров Juniper Networks
  • pfSense 2.1.0 и 2.1.1 (исправлено в 2.1.2)
  • Версии DD-WRT между 19163 и 23881 включительно (исправлено в 23882)
  • Прошивка семейства продуктов Western Digital My Cloud

Услуги по тестированию уязвимостей

Было предоставлено несколько сервисов для проверки того, влияет ли Heartbleed на данный сайт. Однако было заявлено, что многие службы неэффективны для обнаружения ошибки. Доступные инструменты включают:

  • Tripwire SecureScan
  • AppCheck - статическое двоичное сканирование и фаззинг от Synopsys Software Integrity Group (ранее Codenomicon)
  • Аналитика безопасности Pravail от Arbor Network
  • Средство проверки Norton Safeweb Heartbleed
  • Инструмент тестирования Heartbleed от европейской компании по ИТ-безопасности
  • Тест Heartbleed итальянского криптографа Филиппо Валсорда
  • Тест на уязвимость Heartbleed от Cyberoam
  • Critical Watch Бесплатный онлайн-тестер Heartbleed
  • Модуль сканера Metasploit Heartbleed
  • Серверный сканер Heartbleed от Rehmann
  • Lookout Mobile Security Heartbleed Detector, приложение для устройств Android, которое определяет версию OpenSSL устройства и указывает, включен ли уязвимый пульс.
  • Проверка Heartbleed на сервере LastPass
  • Онлайн-сканер сетевого диапазона для выявления уязвимости Heartbleed от Pentest-Tools.com
  • Официальный офлайн-сканер Red Hat, написанный на языке Python
  • Тест SSL-сервера Qualys SSL Labs, который не только ищет ошибку Heartbleed, но также может найти другие ошибки реализации SSL / TLS.
  • Расширения браузера, такие как Chromebleed и FoxBleed
  • SSL-диагностика
  • CrowdStrike Heartbleed Scanner - сканирует маршрутизаторы, принтеры и другие устройства, подключенные к сети, включая веб-сайты интрасети.
  • Отчет Netcraft Site Report - указывает, может ли конфиденциальность веб-сайта быть поставлена ​​под угрозу из-за использования Heartbleed в прошлом, путем проверки данных из опроса Netcraft SSL Survey, чтобы определить, предлагал ли сайт расширение TLS heartbeat до раскрытия Heartbleed. Расширения Netcraft для Chrome, Firefox и Opera также выполняют эту проверку при поиске потенциально скомпрометированных сертификатов.

Другие инструменты безопасности добавили поддержку для поиска этой ошибки. Например, Tenable Network Security написала подключаемый модуль для своего сканера уязвимостей Nessus, который может сканировать эту ошибку. Nmap сканер безопасности включает в себя сценарий обнаружения Heartbleed с версии 6.45.

Sourcefire выпустил правила Snort для обнаружения трафика атаки Heartbleed и возможного трафика ответа Heartbleed. Программное обеспечение для анализа пакетов с открытым исходным кодом, такое как Wireshark и tcpdump, может идентифицировать пакеты Heartbleed с помощью специальных фильтров пакетов BPF, которые можно использовать для сохраненных захватов пакетов или живого трафика.

Исправление

Уязвимость к Heartbleed устраняется путем обновления OpenSSL до исправленной версии (1.0.1g или новее). OpenSSL может использоваться как отдельная программа, динамический общий объект или статически связанная библиотека ; поэтому процесс обновления может потребовать перезапуска процессов, загруженных с уязвимой версией OpenSSL, а также повторного связывания программ и библиотек, которые связывали его статически. На практике это означает обновление пакетов, которые статически связывают OpenSSL, и перезапуск запущенных программ, чтобы удалить находящуюся в памяти копию старого уязвимого кода OpenSSL.

После исправления уязвимости администраторы сервера должны устранить потенциальное нарушение конфиденциальности. Поскольку Heartbleed позволил злоумышленникам раскрыть закрытые ключи , их следует рассматривать как скомпрометированные; пары ключей должны быть повторно сгенерированы, а сертификаты, которые их используют, должны быть перевыпущены; старые сертификаты должны быть отозваны . Heartbleed также может позволить раскрыть другие секреты в памяти; следовательно, другой аутентификационный материал (например, пароли ) также должен быть восстановлен. Редко возможно подтвердить, что система, которая была затронута, не была взломана, или определить, была ли утечка конкретной информации.

Поскольку сложно или невозможно определить, когда учетные данные могли быть скомпрометированы и как они могли быть использованы злоумышленником, некоторые системы могут потребовать дополнительных работ по исправлению даже после исправления уязвимости и замены учетных данных. Например, подписи, сделанные ключами, которые использовались с уязвимой версией OpenSSL, вполне могли быть сделаны злоумышленником; это повышает вероятность нарушения целостности и открывает возможности для отказа . Проверка подписей и легитимность других аутентификаций, выполненных с потенциально скомпрометированным ключом (например, с использованием сертификата клиента ), должна выполняться с учетом конкретной задействованной системы.

Уведомление об отзыве сертификата безопасности браузера

Поскольку Heartbleed угрожает конфиденциальности закрытых ключей, пользователи скомпрометированного веб-сайта могут продолжать страдать от последствий Heartbleed до тех пор, пока их браузер не узнает об отзыве сертификата или не истечет срок действия скомпрометированного сертификата. По этой причине исправление также зависит от пользователей, использующих браузеры, которые имеют актуальные списки отзыва сертификатов (или поддерживают OCSP ) и учитывают отзывы сертификатов.

Основные причины, возможные уроки и реакции

Хотя оценить общую стоимость Heartbleed сложно, eWEEK оценил отправную точку в 500 миллионов долларов США.

В статье Дэвида А. Уиллера « Как предотвратить следующее Heartbleed» анализируется, почему Heartbleed не было обнаружено раньше, и предлагается несколько методов, которые могли бы привести к более быстрой идентификации, а также методы, которые могли бы уменьшить его влияние. По словам Уиллера, наиболее эффективный метод, который мог бы предотвратить Heartbleed, - это набор тестов, тщательно выполняющий тестирование устойчивости , т. Е. Тестирование того , что неверные входные данные вызывают скорее отказы, чем успехи. Уилер подчеркивает, что единый набор тестов общего назначения может служить основой для всех реализаций TLS.

Согласно статье Роберта Меркель в The Conversation , Heartbleed обнаружил серьезную неудачу в анализе рисков . Меркель считает, что OpenSSL придает большее значение производительности, чем безопасности, что, по его мнению, больше не имеет смысла. Но Меркель считает, что нельзя обвинять OpenSSL в такой степени, как пользователей OpenSSL, которые решили использовать OpenSSL, не финансируя более качественный аудит и тестирование. Меркель объясняет, что два аспекта определяют риск того, что большее количество похожих ошибок вызовет уязвимости. Во-первых, исходный код библиотеки влияет на риск написания таких ошибок. Во-вторых, процессы OpenSSL влияют на шансы быстрого обнаружения ошибок. По первому аспекту Меркель упоминает использование языка программирования C как один из факторов риска, который способствовал появлению Heartbleed, вторя анализу Уиллера.

В том же аспекте, Тео де Раадт , основатель и руководитель проектов OpenBSD и OpenSSH , раскритиковал разработчиков OpenSSL за написание собственных процедур управления памятью и тем самым, как он утверждает, обходя контрмеры для использования стандартной библиотеки OpenBSD C , заявив, что «OpenSSL не разработан ответственной командой ". После раскрытия информации Heartbleed участники проекта OpenBSD разделили OpenSSL на LibreSSL .

Автор изменения, которое представило Heartbleed, Робин Сеггельманн, заявил, что он пропустил проверку переменной, содержащей длину, и отрицал какое-либо намерение представить некорректную реализацию. После раскрытия информации Heartbleed Сеггельманн предложил сосредоточиться на втором аспекте, заявив, что OpenSSL не проверяется достаточным количеством людей. Хотя работа Сеггельманна была рассмотрена разработчиком ядра OpenSSL, обзор также был предназначен для проверки функциональных улучшений, что значительно упрощает пропуск уязвимостей.

Разработчик ядра OpenSSL Бен Лори утверждал, что проверка безопасности OpenSSL могла бы выявить Heartbleed. Инженер-программист Джон Уолш прокомментировал:

Подумайте об этом, у OpenSSL есть только два [штатных] человека, которые пишут, поддерживают, тестируют и проверяют 500 000 строк критически важного для бизнеса кода.

Президент фонда OpenSSL Стив Маркиз сказал: «Загадка не в том, что несколько перегруженных работой добровольцев пропустили эту ошибку; загадка в том, почему это не происходило чаще». Дэвид А. Уиллер описал аудит как отличный способ поиска уязвимостей в типичных случаях, но отметил, что «OpenSSL использует излишне сложные структуры, что затрудняет проверку как людьми, так и машинами». Он написал:

Необходимо постоянно прилагать усилия для упрощения кода, поскольку в противном случае простое добавление возможностей будет постепенно увеличивать сложность программного обеспечения. Код необходимо со временем реорганизовать, чтобы сделать его простым и понятным, а не просто постоянно добавлять новые функции. Целью должен быть код, который «очевидно правильный», в отличие от кода, который настолько сложен, что «я не вижу никаких проблем».

LibreSSL провел большую очистку кода, удалив более 90 000 строк кода C всего за первую неделю.

По словам исследователя безопасности Дэна Камински , Heartbleed является признаком экономической проблемы, которую необходимо исправить. Видя время, затраченное на то, чтобы отловить эту простую ошибку в простой функции из «критической» зависимости, Камински опасается многочисленных будущих уязвимостей, если ничего не будет сделано. Когда открыли Heartbleed, OpenSSL обслуживала горстка добровольцев, из которых только один работал полный рабочий день. Ежегодные пожертвования на проект OpenSSL составляли около 2000 долларов США. Сайт Heartbleed от Codenomicon посоветовал сделать денежные пожертвования проекту OpenSSL. Узнав о пожертвованиях в течение 2 или 3 дней после раскрытия информации Heartbleed на общую сумму 841 доллар США, Камински прокомментировал: «Мы создаем самые важные технологии для мировой экономики на шокирующе недофинансируемой инфраструктуре». Разработчик ядра Бен Лори квалифицировал проект как «полностью нефинансированный». Хотя OpenSSL Software Foundation не имеет программы вознаграждений за ошибки, инициатива Internet Bug Bounty присудила 15 000 долларов США Нилу Мехте из Google, который обнаружил Heartbleed, за его ответственное раскрытие информации.

Пол Кьюзано предположил, что Heartbleed, возможно, возник в результате неудачной экономики программного обеспечения.

Коллективным ответом отрасли на кризис стала инициатива Core Infrastructure Initiative - многомиллионный проект, объявленный Linux Foundation 24 апреля 2014 года для финансирования важнейших элементов глобальной информационной инфраструктуры. Инициатива направлена ​​на то, чтобы ведущие разработчики могли работать над своими проектами полный рабочий день и оплачивать аудит безопасности, аппаратную и программную инфраструктуру, командировочные и другие расходы. OpenSSL претендует на звание первого получателя финансирования инициативы.

После открытия Google создал Project Zero, задачей которого является обнаружение уязвимостей нулевого дня для защиты Интернета и общества.

Рекомендации

Библиография

Внешние ссылки