Heartbleed и заблуждения о Open Source

Автор оригинала: Эран Галперин
  • Перевод
Печально известный баг Heartbleed, найденный в библиотеке OpenSSL, потряс индустрию программного обеспечения. Он также показал некоторые заблуждения о мире открытого софта.

1) Закон Линуса


«При достаточном количестве глаз баги выплывают на поверхность», — Эрик Рэймонд.

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

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

Поэтому частью задачи становятся пользователи. Конечно, если баги были пропущены на этапе проверки кода, они будут найдены во время реального использования конечной программы, верно? Опять же, это оказывается не так. Как и в случае с проверкой кода, легко находятся только очевидные ошибки. Проблема, которая проявляет себя только при очень специфических условиях или в тех условиях, которые неочевидны для конечного пользователя, может оставаться необнаруженной длительные периоды времени. Чем более сложной является программа, и чем более она выполняет задач для пользователя, тем труднее со стороны пользователя удостовериться в её правильности. Поскольку программы обычно выполняют задачи, которые для человека требуют куда больше времени, бывает очень сложно повторить процесс вручную для гарантии правильности.

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

Комментарий, который я видел на Hacker News пару дней назад хорошо подводит итог:

Ложное заявление о «множестве глаз» распространяется не только на официальные проверки. Оно также несёт идею того, что степень окрытости проекта не особо важна в отношении привилегий чтения кода: не слишком важно, открыт проект или закрыт, в основном его будут проверять мейнтейнеры и их коллеги. В действительности в большинстве случаев в мире Open Source круг людей, которые на самом деле понимают конкретные коммиты, лишь ненамного больше, чем он мог бы быть при закрытом коде. Баги лишь ненамного чаще «выплывают на поверхность», если такое вообще случается. Факт того, что в случае с Heartbleed код проверялся лишь одним человеком, несмотря на открытость, лишь подтверждает это.

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

2) Бо́льшая часть открытого программного обеспечения не разрабатывается и не поддерживается профессионально


Как показал Heartbleed, даже критические программные проекты, используемые большо́й частью Интернета, не всегда имеют ресурсы для профессиональной поддержки. Команда OpenSSL получает лишь 2000 долларов ежегодно посредством пожертвований. Многие статьи, касающиеся уязвимости Heartbleed, были написаны в обвинительном тоне, и пока никто не предположил, что эти люди работают добровольно в своё свободное время, выполняя то, что можно считать лишь неблагодарной общественной деятельностью.

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

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

В то время, как некоторые имеющие большое значение проекты имеют компаний-спонсоров, что позволяет иметь среди участников работающих в режиме полной занятости профессионалов, большинство проектов открытого программного обеспечения едва сводят концы с концами путём получения пожертвований. Я считаю, что предоставление миру open source тех же ресурсов, что и коммерческим программам, может быть лучшим свособом создать жизнеспособные проекты более высокого качества, что будет полезно для всех.

Для проектов, которые не получают помощи от компаний (а частные компании неподконтрольны обычным пользователям), доступны модели альтернативного существования типа Open-Core (как живёт, к примеру, MySQL), а также услуги и кураторство (например, Red Hat). В большинстве случаев полагаться только на пожертвования может быть недостаточно.

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

3) Каждый проект имеет баги. У мира Open Source меньше ресурсов для их поиска


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

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

Правда в том, что программное обеспечение всегда будет иметь ошибки. Это то, что знает любой разработчик по своему опыту с первого дня работы. Неважно, сколько тестов было проделано, или как строго идёт процесс разработки, какие-то баги всегда будут проявляться. Можно уменьшить их число с помощью дополнительных ресурсов, но вам никогда не избавиться от них полностью. Мог ли Heartbleed быть выловлен в процессе разработки, если бы все его мейнтейнеры работали над проектом в режиме полной занятости и имели больше времени для более строгого тестирования и процесса проверки? Возможно, но мы никогда не узнаем этого.

Это то, о чём пользователи открытого программного обеспечения должны помнить. Баги будут существовать во всех программах, включая Open Source, также разработчики программ с открытым кодом обычно имеют куда меньше ресурсов для их поиска.

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

Комментарии 139

    –33
    4. Открытость кода дает как возможность проверки, так и гораздо более легкого обнаружения уязвимости. И никто не знает, расскажет ли об уязвимости очередной ревьюер или будет ее использовать пару лет.

    Но нельзя сравнивать Open Source и проприетарное ПО. Open Source развивает IT, а проприетарщина зарабатывает деньги. Это наука и промышленность.
    И да, научные ошибки могут дорого обходиться заводам и потребителям, однако для самой науки — это лишь новый этап развития.
      +45
      Open Source развивает IT, а проприетарщина зарабатывает деньги.

      Религиозное мышление в чистом виде.
      Если «проприетарщина» — то только зарабатывает деньги, а если чистый, непорочный open-source, то только развивает IT. А R&D-департаменты в Intel, IBM, Cisco, Microsoft, Apple и пр. тратят сотни миллиардов долларов на изобретение новых маркетинговых трюков, да.
        –15
        Причем тут IT-корпорации и проприетарщина? Корпорации несут самый большой вклад в современную IT-науку, а вы зачем то подменили понятия.
          +26
          Причем тут IT-корпорации и проприетарщина?

          Ну сами-то свой первый комментарий прочитайте. Вы противопоставили open-source и «проприетарщину», сказав, что первое двигает науку, а другое — только зарабатывает деньги. Я вам ответил, что вы не правы, и обосновал это на примере корпораций, которые двигают науку вперед семимильными шагами, именно разрабатывая проприетарные продукты.
          Вообще я хочу донести мысль, что не нужно приписывать open-source мифические черты: исключительную безопасность, уникальное продвижение науки, полную бесплатность и т.п. Open-source — это, безусловно, прекрасная идея и он приносит пользу человечеству, но не нужно делать из него культа или религии.
            –5
            Я написала, что Open Source и проприетарную разработку нельзя сравнивать, что они лежат в разных категориях, а вы утверждаете, что я не права, основываясь, видимо, на мысли, что я их противопоставляю.
            Да, промышленность невозможна без науки, а науке всегда нужны стимулы и деньги промышленности и что? От этого они не становятся одним и тем же.
            Слово «уникальное» опять же используете вы. Open Source — совершенно обычное развитие науки, когда новые разработки рецензируются, а затем используются всем миром.
              +20
              вы утверждаете, что я не права, основываясь, видимо, на мысли, что я их противопоставляю.

              Так, стоп, это уже какая-то софистика пошла спора ради. «Open Source развивает IT, а проприетарщина зарабатывает деньги.» — ваши слова? Вы считаете, что эту фразу можно понять как-то иначе, кроме как противопоставление?
              Да, промышленность невозможна без науки, а науке всегда нужны стимулы и деньги промышленности и что? От этого они не становятся одним и тем же.

              А почему вы приравниваете open-source к науке? Большая часть open-source проектов никакого отношения к Computer Science не имеет, они никакую науку никуда не двигают. Это просто прикладные проекты, та же самая промышленность, только на своеобразной социально-юридической основе. Так же, как и проприетарные продукты сами по себе, в массе, не имеют никакого отношения к развитию науки. Да, часть именно научных исследований выпускается или создается с открытым кодом, например, какие-то исследования по микроядрам и т.п., но это совершенно не обязательно. Приравнять open-source к науке — все равно, что сказать «микроскоп это наука», потому что некоторые научные исследования производятся с его помощью.
                –11
                Так, стоп, это уже какая-то софистика пошла спора ради. «Open Source развивает IT, а проприетарщина зарабатывает деньги.» — ваши слова? Вы считаете, что эту фразу можно понять как-то иначе, кроме как противопоставление?

                Эммм, да эта фраза никак не является противопоставлением — это констатация факта.
                Если я напишу «Хлеб нельзя сравнивать с самолетами, ведь хлеб едят, а самолеты летают», вы видимо тоже скажете, что я сравниваю и противопоставляю их, хотя я как раз таки скажу о невозможности их противопоставления.
                То, что я употребила эти 2 понятия в одном предложении не делает это автоматически противопоставлением, а делает только для тех, кому это выгодно (вашей софистике).
                А почему вы приравниваете open-source к науке? Большая часть open-source проектов никакого отношения к Computer Science не имеет, они никакую науку никуда не двигают. Это просто прикладные проекты, та же самая промышленность, только на своеобразной социально-юридической основе.

                Конечно они двигают науку, так как в каждом таком проекте открывается что-то новое, хоть строчка кода с переносом или уникальным комментарием. Главное, что это открытое, в отличии от приприетарного.
                Приведу выдуманный пример. Допустим, TODO еще ну существует и я в своем Open Source пишу «TODO» просто чтобы обозначить место. Следующий человек исследует мой ненаучный проект, ему нравится это место и он тоже использует, а следующий человек оказывается тем, кто сделает это стандартом разработки.
                Или я делаю удобные отступы, а потом кто-то, увидев, пишет язык на основе этого.
                  +2
                  Конечно они двигают науку, так как в каждом таком проекте открывается что-то новое, хоть строчка кода с переносом или уникальным комментарием. Главное, что это открытое, в отличии от приприетарного.


                  Это не наука, это инженерная культура.

                  Вообще, налицо экстраполяция вашего личного опыта на весь мир. По моему опыту, программировать обычно учатся работая джуниором в компании, а не самостоятельно из Open source проектов.
                    +1
                    Конечно они двигают науку, так как в каждом таком проекте открывается что-то новое, хоть строчка кода с переносом или уникальным комментарием.

                    Вы запутались, это не наука. Это просто инженерная работа. Далеко не все то, в результате чего появляется новый продукт, является наукой.
                  +7
                  Просто изначально вы противопоставляете «проприетарщину» и опенсурс именно в вопросах развития IT:
                  Open Source развивает IT, а проприетарщина зарабатывает деньги
                  Типа на опенсурсе не делают деньги, а проприетарщина не развивает IT? Как внезапно. Да и вообще open source в данном контексте (вы же не про исходники говорите, да, не они же приносят пользу человечеству?) — это механизмы/модель, а IT развивают явно не механизмы как таковые, а ресурсы (человеческие итд), ресёрчинг, ну и бабло, собственно, куда без него. В итоге то опенсурс используется и корпорациями, мало того, весь серьёзный опенсурс корпорациями и двигается.
                    –8
                    мало того, весь серьёзный опенсурс корпорациями и двигается.

                    Причем тут IT-корпорации и проприетарщина? Корпорации несут самый большой вклад в современную IT-науку, а вы зачем то подменили понятия.


                    Что за желание приравнять проприетарщину к корпорациям?
                      +1
                      Хорошо, выкините последнее предложение в моём комментарии (я только там про «корпорации» сказал), смысл то не изменится. Ну или тогда дайте определение слову «проприетарщина», потому что вас явно не понимают. И в свете этого определения поясните потом почему именно оно не развивает IT. Потому как явно не открытость сама по себе развивает что-то там, о чём я выше и пытался сказать.
                +1
                Окей. Кто разрабатывает проприетарщину?
              +5
              К слову, скорее всего мы никогда не узнаем сколько на самом деле заплаток в проприетарном ПО.
                +1
                Заплаток или закладок?
                  0
                  И того и другого. MS к примеру не закрывает известные уязвимости годами и периодически тянет их в следующие версии «лучшей из ОС».
              +7
              Такое чувство, что Вы понятия не имеете о целях, которые пытается решить подход Open-Source. Про Ваши «зарабатывает денег»: Если что Open-Source тоже зарабатывает денег, ближайший пример Android. Казалось бы открытый код системы, но при этом продажи девайсов сложно даже представить.
                +2
                Open Source развивает IT, а проприетарщина зарабатывает деньги.


                Вставлю свои 5 копеек. IT и CS развивается корпорациями, обычно крупными, в R&D отделах, или в универах (имхо реже, это личное мнение :)). Open source тут вообще ни при чем, учитывая что «двигать ИТ» вообще неясная формулировка, из-за того что термин IT всеобъемлющ. Если из всего IT взять методологии разработки софта, то они тоже продвигаются в основном отдельными евангелистами.

                То лучше когда результаты исследованиий в области CS открыты — это факт. Но это напрямую с open source не связано.
                  –2
                  То лучше когда результаты исследованиий в области CS открыты — это факт. Но это напрямую с open source не связано.

                  Открытое программное обеспечение (англ. open-source software) — программное обеспечение с открытым исходным кодом. Исходный код таких программ доступен для просмотра, изучения и изменения, что позволяет пользователю принять участие в доработке самой открытой программы, использовать код для создания новых программ и исправления в них ошибок — через заимствование исходного кода, если это позволяет совместимость лицензий, или через изучение использованных алгоритмов, структур данных, технологий, методик и интерфейсов (поскольку исходный код может существенно дополнять документацию, а при отсутствии таковой сам служит документацией).

                  Найди 2 отличия? И хватит уже приравнивать проприетарщину к корпорациям. 3 раз прошу. Корпорации — это огромные машины, в которых есть все. И проприетарщина как раз таки гораздо важнее для мелких контор, у которых исходный код — серьезное конкурентное преимущество.
                    +4
                    Ну вот, а написали, что не любите демагогию.
                +63
                Как-то многие забывают, что ревизия закрытого кода, да ещё с попытками запрета оной — безопасности способствует ещё менее, вплоть до «люков», сохраняющихся в коде едва не десятилетие.
                  +37
                  В проприетарном коде менеджер просто бы сказал «хватит проверять коммиты, нам нужно зарабатывать деньги», «давайте отложим безопасность до лучших времён», «всё равно её врядли найдут (пока я тут работаю) т.к. код закрыт».
                    +3
                    Именно по-этому дыру размером с галактику нашли именно в проприетаром ПО. Хотя стоп…
                      +50
                      Дыр подобного масштаба (выполнение произвольного кода с правами ядра/администратора, например, позволяющих точно так же вытащить сертификаты) в продуктах Microsoft-а были найдены сотни, и ничего, живём.
                        –16
                        Сотни дыр такого масштаба, которые не были покрыты патчами по два года и которые поставили под удар треть (или сколько там) выставленных в интернет сайтов, в том числе банков, платежных систем и т.п.?
                          +33
                          После того, как уязвимость была обнаружена, она была исправлена. А у Microsoft в порядке вещей держать дыры по несколько дней, недель и месяцев.
                            +1
                            Я, наверное, не буду продолжать дискуссию. Заглянул сейчас в свой профиль и удивился :(
                            Вроде бы, стараюсь аргументировать свою точку зрения, не хамлю, общаюсь вежливо. Но аргументы оппонентов отчего-то, в-основном, прилетают в карму, а не в комментарии. Это, кстати, возвращаясь к религиозному мышлению, когда даже небольшая критика объекта поклонения вызывает выраженную негативную реакцию.
                              +2
                              >>>в свой профиль и удивился :(
                              Добро пожаловать на Хабр! Здесь каждому рады ;)
                            +20
                            Java 1.2
                            Содержала дыры, делающие использование чужих апплетов небезопасным. Это то самое выполнение произвольного кода, причем произвольного объема и с удобным сервисом загрузки на любой компьютер с установленным браузером.

                            Дыры закрывались быстро, но апплет имел возможность «в целях совместимости» потребовать старой версии java…

                            Закрыт механизм «совместимости» только в java 1.4. Дыра, из-за которой до сих пор можно встретить рекомендации по отключению всех апплетов, существовала с 1998 по 2002 год (4 года!).

                            И да, opensource java тогда еще не была. Если я что-то переврал, поправьте меня — я узнал об этом языке только в 2005м.
                              –15
                              Я, если что, сомневался в наличии именно таких чудовищных дыр и чтобы именно по 2 года и чтобы именно сотни и чтобы именно от Microsoft, как было в исходном комментарии :)
                                +31
                                сомневался в наличии именно таких чудовищных дыр и чтобы именно по 2 года и чтобы именно сотни и чтобы именно от Microsoft

                                ШТОА? В XP находили и находят дыры регулярно, а это значит, что они там больше 10 лет, и что? Только вот Microsoft, в отличие от OpenSSL, после того, как узнает об уязвимости, любит тянуть резину неделями прежде, чем выпустит патч.
                                Вот, например, VUPEN Security в рамках Pwn2Own 2013 обнаружила критическую уязвимость Internet Explorer 10 под Windows 8 и успешно её эксплуатировала (7 марта 2013). Спустя месяц журналисты спрашивают у Microsoft, мол, а где, блин, исправление (9 апреля 2013)? В итоге уязвимость Microsoft соизволила исправить спустя месяц (в мае 2013). То есть, у спецов, которые не хуже VUPEN, было аж два месяца на исследование и эксплуатацию уязвимости, которая в общих чертах всегда описывается по результатам конкурса. А учитывая историю Кибкало, то какова вероятность, что Майкрософт сама не слила кому надо все уязвимости, и два месяца АНБ с ЦРУ кулхацкерили владельцев Surface? :)

                                Для сравнения, открытым Chromium и Firefox на выпуск патча потребовалось 24 часа.
                                  –16
                                  потому, что Microsoft, в отличие от опенсорсных поделий, обязана все тщательно проверять и тестировать на предмет поведения исправления на сотнях, если не тысячах конфигураций.
                                    +15
                                    Очень толсто, но я ещё толще.

                                    обязана все тщательно проверять и тестировать

                                    Но никогда этого не делает, иначе бы не было всех этих дырок.
                                      –5
                                      Причем тут дырки? Какие тесты могут найти дырки, не расскажите? Речь о проверке работоспособности, очевидно, чтобы какой-нибудь патч не привел к тому, что на какой-нибудь хитрой конфигурации начнет сыпаться какой-нибудь процесс, казалось бы на ровном месте.
                                        +2
                                        Притом, что
                                        потому, что Microsoft, в отличие от опенсорсных поделий, обязана все тщательно проверять и тестировать на предмет поведения исправления на сотнях, если не тысячах конфигураций.

                                        недостаточно весомая причина долгой починки багов.
                                        К тому же почему-то считается хорошим тоном протестировать обновления на месте перед их установкой, это рекомендуют даже специалисты Майкрософта. Не подскажете почему?
                                        Какие тесты могут найти дырки?

                                        Например en.wikipedia.org/wiki/Fuzz_testing
                                          +1
                                          Какие тесты могут найти дырки, не расскажите?

                                          Например, дырки, относящиеся к переполнению буфера или use-after-free. Их вполне отлавливают автоматизировано.

                                          какой-нибудь патч не привел к тому, что на какой-нибудь хитрой конфигурации начнет сыпаться какой-нибудь процесс

                                          Это оправдывает затягивание процесса выпуска обновлений, добавляющих или кардинально изменяющих функциональность, но никак не maintenance updates.
                                            +6
                                            Причем тут дырки? Какие тесты могут найти дырки, не расскажите?

                                            Вы софт сами разрабатываете или мимо проходили?
                                              +1
                                              Уборщицей работаю в компании, которая проводит аудит IT-компаний.
                                          +3
                                          А давайте взглянем как тестируется Open Source?
                                          Например, ReactOS reactos.org/ru/testman
                                          Где-то было видео, где один из разработчиков рассказывал как у них происходит тестирование. А как тестирует свои продукты MS?
                                        +1
                                        Это скорее говорит о рабочих процессах, но практически очень мало зависит от открытости кода.
                                          +1
                                          Я правильно понимаю, что от этой дырки 2 месяца страдало полмиллиона пользователей WindowsRT? Вы это сравнили с двумя третями интернета?
                                            0
                                            Нет, неправильно.
                                            –3
                                            ШТОА? В XP находили и находят дыры регулярно, а это значит, что они там больше 10 лет, и что?

                                            А что, XP у нас треть платежных сервисов интернета обслуживает? Вы внимательно читайте мои слова, особенно про «именно таких чудовищных дыр». Это относится и к тому, что вы написали про IE. Это дыры в пользовательском софте, риск которых можно смягчить прочими мерами.

                                            А учитывая историю Кибкало, то какова вероятность, что Майкрософт сама не слила кому надо все уязвимости, и два месяца АНБ с ЦРУ кулхацкерили владельцев Surface? :)

                                            Вам шапочка из фольги мыться не мешает? При чем Кибкало к АНБ?
                                              +1
                                              C XP на эти платежные сервисы заходило куда больше, чем треть клиентов. Тоже не лучшая ситуация.
                                                +1
                                                Ну, как бы намного лучшая на самом деле. Вы еще попробуйте заразить эти XP в сколько-нибудь значимых количествах. Ботоводы тратят огромные усилия, собирая свои ботнеты, и никто из них не может похвастаться ботнетом размеров с треть числа ПК в мире. Или вы думаете, что если в XP есть уязвимость, эта машина уже у вас в кармане? На практике вам нужны ресурсы-источники заражения, покупка трафика, троян с хорошим функционалом, сеть C&C-серверов. Да плюс еще и постоянная модификация «нагрузки» с целью скрытия от антивирусов, которые начнут реагировать очень быстро. Это дорого, это сложно.

                                                А тут пожалуйста, бери любой банк по списку и начинай эксплуатировать.
                                                  +1
                                                  Зато банк можно заставить обновиться — а пользователя нет.
                                                    +1
                                                    Чтобы обновиться, во-первых, надо знать о проблеме, а здесь о проблеме не было широко известно 2 года. Во-вторых, в одной из статей тут уже описывали, как «быстро» некоторые банки патчат Heartbleed. В-третьих, пользователя обновляет система автоматических обновлений, если он ее отключил — он сам себе враг, и тут уже неважно, сидит он на Windows, MacOS или *nix.
                                                      +3
                                                      Вы еще попробуйте заразить эти XP в сколько-нибудь значимых количествах

                                                      Conficker, эксплуатировавший уязвимости в Windows, смеётся над вами.

                                                      а здесь о проблеме не было широко известно 2 года

                                                      И это нормально. Ненормально, когда об уязвимости известно несколько месяцев, а её не патчат.

                                                      Во-вторых, в одной из статей тут уже описывали, как «быстро» некоторые банки патчат Heartbleed

                                                      Это уже проблемы отдела IT-администрирования банков, а не OpenSSL. Проект OpenSSL выпустил патч, а кто его применять будет, не их забота вообще.

                                                        –2
                                                        Мне есть, что вам ответить, но я не буду этого делать :)
                                                          0
                                                          Это потому, что реальных аргументов нет.
                                                            +1
                                                            Аргументы есть, как есть и способность вести цивилизованную дискуссию, без наездов и переходов на личности. Но какое это имеет значение, когда люди, не пытаясь аргументированно общаться и отстаивать свою точку зрения, просто идут в профиль и ставят минус?
                                                            Нормально, когда у разных людей разная точка зрения, нормально о чем-то спорить, аргументировать свою позицию и критиковать позицию оппонента. Обычно на Хабре общение и идет в таком русле — ты высказываешь свое мнение или критикуешь чужое мнение, потом вы дискутируете. Но в этом топике накидали такое количество минусов в карму просто за иную точку зрения (а не за хамство или неадекватность, которые минусть нормально), что, кроме как задетыми религиозными чувствами, объяснить это я никак не могу.
                                                            Общаться в комментариях на Хабре весьма интересно и весело, не очень-то хочется терять эту возможность только ради того, чтобы убедить кого-то в своей правоте. Если хотите, можем продолжить дискуссию в личке.
                                                              +2
                                                              что, кроме как задетыми религиозными чувствами, объяснить это я никак не могу.

                                                              Вас заминусовали за то, что вы подали откровенно неверную информацию:
                                                              такого масштаба, которые не были покрыты патчами по два года

                                                              Ну а после принялись на ней настаивать.
                                                                +1
                                                                Эм. А что в ней неверного? Уязвимость была существовала 2 года, так? О ней не было широко известно, но это не означает, что ее не было, верно? Более того, по некоторой информации о ней длительное время знало и эксплуатировало АНБ. Если бы я сказал, что уязвимость известна 2 года и все два года не было патча — да, это была бы неверная информация, но я же такого не сказал и сказать не пытался.
                                                                  +2
                                                                  А что в ней неверного?

                                                                  То, что отсчёт жизни уязвимости идёт с момента public disclosure по момент выпуска исправления, а это с 1 по 7 апреля 2014 года. Откуда вы два года взяли и постулируете это как аксиому, я не в курсе.

                                                                  Более того, по некоторой информации о ней длительное время знало и эксплуатировало АНБ

                                                                  АНБ много чего знает и эксплуатирует.

                                                                  Если бы я сказал, что уязвимость известна 2 года и все два года не было патча

                                                                  Вы именно это и сказали.

                                                                  хотя бы потому, что ПО Microsoft используется куда менее, чем на трети веб-серверов

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

                                                                  однако кого это вообще интересует, если можно углядеть в моих словах нападки на open-source, правда?

                                                                  Я не знаю, причём тут нападки на Open Source, если вы сначала просто сообщаете неверную информацию, а потом, опять же неверно, считаете, что вас минусуют по религиозным соображениям.
                                                                    0
                                                                    То, что отсчёт жизни уязвимости идёт с момента public disclosure

                                                                    И как тогда, по-вашему, называется тот отрезок времени, с момента, когда уязвимость появилась в ПО до того момента, когда об этом стало известно? Я лично не представляю, каким еще образом нужно было сформулировать мысль «уязвимость существовала 2 года в виде бажного куска в коде», чтобы вы все правильно поняли.

                                                                    АНБ много чего знает и эксплуатирует.

                                                                    Если знало АНБ, могли знать и другие, не так ли? Если уязвимость существует, есть вероятность, что ее кто-то может эксплуатировать, независимо от того, насколько широко она известна, так? А тут уязвимость была в коде 2 года. АНБ я привел как почти подтвержденный пример эксплуатации сабжа.

                                                                    Вы именно это и сказали.

                                                                    Неверно. Я сказал то, что сказал и пояснил это развернутым комментарием выше. Что вы увидели в моих словах — уже на вашей совести.

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

                                                                    Это здесь каким боком вообще? Это как-то опровергает мои слова о том, что их ПО мало используется для веб-серверов? Или вы просто не могли упустить возможность куснуть Microsoft?

                                                                    Я не знаю, причём тут нападки на Open Source, если вы сначала просто сообщаете неверную информацию, а потом, опять же неверно, считаете, что вас минусуют по религиозным соображениям.

                                                                    Я высказал свое мнение, причем не в виде «аксиомы», как вы зачем-то придумали, а в виде сомнения. Перечитайте еще раз мой исходный комментарий.
                                                                    Если вы с ним были несогласны, вы вольны были высказать свое мнение, аргументировав его. Я мог бы контр-аргументировать или согласиться. Если считали, что я привел где-то неверную информацию, вы вольны привести верную, на ваш взгляд, и подкрепить ее фактами. Это нормальное течение диалога. Ненормально за несовпадающее с вашим мнение заходить в профиль и жать минус.
                                                                    Чем приятен Хабр — до этой статьи все диалоги, даже весьма горячие споры, происходили нормально. А то, что я наблюдаю тут, кроме как задетыми религиозными чувствами объяснить не могу. Или задетыми идеалами, если угодно.
                                                                      +2
                                                                      И как тогда, по-вашему, называется тот отрезок времени, с момента, когда уязвимость появилась в ПО до того момента, когда об этом стало известно?

                                                                      Я вам уже написал, что если сейчас найдут новую уязвимость в XP, то значит, что уязвимости больше 10 лет, и редиски из Майкрософт за 10 лет не сделали патча? Такой идиотизм в голову никому не придёт, поэтому срок жизни уязвимости ведётся от public disclosure, а не с момента, когда ошибка была внесена в код, и появилась теоретическая возможность её эксплуатации.

                                                                      Если знало АНБ, могли знать и другие, не так ли?

                                                                      Вы мне тут намекали на шапочку из фольги, я вам её дарю, вам нужнее.

                                                                      есть вероятность, что ее кто-то может эксплуатировать, независимо от того, насколько широко она известна, так?

                                                                      Такая вероятность есть всегда. Вот, например, в 2014 году в XP обнаружили три уязвимости с возможностью удалённой эксплуатации. Значит, её 13 лет злые редиски из АНБ эксплуатировали? Да, такая вероятность присутствует, но никого это не волнует, так как отсчёт ведётся именно с момента публичного обнародования, что такая уязвимость существует. Уязвимость в OpenSSL могла существовать хоть с момента появления проекта, но релевантна она только с момента, когда становится публично известно, что уязвимость может применяться злыми редисками.

                                                                      Что вы увидели в моих словах — уже на вашей совести.

                                                                      Я увидел ровно то, что увидели ещё два десятка человек, минусовавших вас, а именно — ложную информацию. Если вы не в состоянии сформулировать понятно свою мысль, то это не на моей совести вовсе.

                                                                      Я высказал свое мнение, причем не в виде «аксиомы», как вы зачем-то придумали, а в виде сомнения

                                                                      Слушайте, вызовите лингвиста уже, невозможно. Со стеной продуктивнее общаться.

                                                                      Сотни дыр такого масштаба, которые не были покрыты патчами по два года и которые поставили под удар треть (или сколько там) выставленных в интернет сайтов, в том числе банков, платежных систем и т.п.?
                                                                      Вы противопоставляете сотни дыр, о которых говорил kekekeks, уязвимости Heartbleed, отсюда разворачиваем определение Heartbleed.

                                                                      Heartbleed — уязвимость, которую проект OpenSSL не покрывал патчами два года, и которая поставила под удар блаблабла.

                                                                      То, что выделено полужирным — искажение информации и передёргивание. Проект OpenSSL узнал 1 апреля 2014 года о том, что тот участок кода является уязвимостью, когда они получили первое уведомление об этом от Google Security, а не тогда, когда сам код попал в репозиторий проекта. Невозможно выпустить исправление того, о чём ты не подозреваешь.

                                                                      Вот где причины ваших минусов, а не в религии. Вы (сознательно?) обвинили команду OpenSSL в злом умысле, что они два года не выпускали патч. Если вы рассчитывали получить плюсы за это, то вам надо было написать это на планерке евангелистов Microsoft. Тут их на Хабре много, кстати, позовите их, а то они наверняка не в курсе, что вы тут вместо них забесплатно минусы огребаете. Они-то за это деньги хоть получают, а вы себе просто настроение портите.
                                                                        –1
                                                                        Я вам уже написал, что если сейчас найдут новую уязвимость в XP, то значит, что уязвимости больше 10 лет, и редиски из Майкрософт за 10 лет не сделали патча?

                                                                        Ну да, а что такого? Только «редиски» это уже негативная эмоциональная оценка, которая в моем исходном комменте, если что, отсутствовала, даже если вам кажется, что это не так.

                                                                        Такой идиотизм в голову никому не придёт, поэтому срок жизни уязвимости ведётся от public disclosure

                                                                        Я, если что, не безопасник, и не в курсе, как официально ведется срок жизни. Я имел ввиду, что уязвимость по факту была, а не то, что о ней все знали два года.

                                                                        Вы мне тут намекали на шапочку из фольги, я вам её дарю, вам нужнее.

                                                                        Я, между прочим, привел ссылку на источник об АНБ. Вы свою мысль насчет Кибкало и АНБ никакими ссылками не проиллюстрировали и вообще не развернули, отчего она звучит, как конспирология очередная.

                                                                        . Вот, например, в 2014 году в XP обнаружили три уязвимости с возможностью удалённой эксплуатации. Значит, её 13 лет злые редиски из АНБ эксплуатировали?

                                                                        Да вы ж читайте, что я пишу, и ссылки смотрите. Я сказал, что именно эту уязвимость эксплуатировало АНБ, потому что в сети появилась такая информация и привел ссылку. Что там было у XP, я не знаю.

                                                                        Слушайте, вызовите лингвиста уже, невозможно. Со стеной продуктивнее общаться.

                                                                        Вот поверьте, у меня ровно те же ощущения разговора со стеной.

                                                                        То, что выделено полужирным — искажение информации и передёргивание.

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

                                                                        И слова про два года вообще здесь не ключевые, комментарий в-целом не об этом. Вы просто выдернули эти «два года» из общего смысла и тона фразы. Я уже устал объяснять, что я просто указал на наличие уязвимости, ничего не говоря о ее публичной известности. Это вопрос терминологии или моего ее понимания. Окей, я мог в этом ошибиться, но что мешало взять и написать, мол, так и, не было уязвимости 2 года, потому что срок считается иначе? Это нормальное течение дискуссии. Если человек по-вашему заблуждается и готов к диалогу, нормально ответить ему своими аргументами. Ненормально взять вместо клавиатуры мышку и пойти щелкать на минус в карме, только потому, что его мнение кажется вам неверным.
                                                                        И опять же — сколько диалогов я на Хабре не вел, только здесь вместо аргументов пошли в ход минусы в карму. Если бы в каждом случае человек, не согласный с моим мнением, вместо аргументов шел и щелкал минус, карма у меня была бы уже на минус второй тысяче.
                                                                        Объяснить такой феномен я ничем, кроме задетых идеалов или религии, не могу.
                                                                        Вы (сознательно?) обвинили команду OpenSSL в злом умысле, что они два года не выпускали патч

                                                                        Выше я уже вам объяснил, что, во-первых, никого ни в чем не обвинял, во-вторых, любое чужое мнение можно свести к обвинению кого-либо в чем-либо. Вы критикуете продукт Apple? Значит, вы обвиняете его команду в плохой работе и манкировании обязанностями. Вы нашли ошибку в веб-фреймворке? Значит, вы заявляете, что разработчики неумехи.

                                                                        Если вы рассчитывали получить плюсы за это, то вам надо было написать это на планерке евангелистов Microsoft.

                                                                        Это вы откуда вообще придумали? Я вообще-то, как обычно на Хабре, рассчитывал на нормальное общение. Ну там аргументы, контр-аргументы, обмен мнениями. Мстительные молчаливые минусы в карму я не ожидал, каюсь.
                                                                        И я, к слову, не за Microsoft, я за справедливость. Я в комментариях в защиту многих вещей выступал, не только MS. Да и MS критиковал, по делу.

                                                                        В-общем, «эта музыка будет вечной». Если я вас до сих пор не убедил — ну, продолжать смысла нет. Попробуйте через пару недель, интереса ради, перечитать наше с вам общение. Возможно, вы увидите вещи под другим углом.

                                                                          +3
                                                                          Окей, я мог в этом ошибиться

                                                                          Вот это и надо было сразу написать, а не про религию рассказывать.
                                                                            –4
                                                                            Ох, тройной фейспалм с переворотом.
                                                                            Мы с вами определенно на разных языках говорим, потому что, видимо, практически ничего из сказанного мной не проникло в ваше сознание. Ну, я тут умываю руки уже, надоело.
                                                                  0
                                                                  И если вы внимательно прочитаете мой исходный комментарий, вы увидите, что я сомневался в утверждении о том, что у Microsoft есть сотни дыр, подставляющих под удар треть защищенных сайтов интернета. Собственно, мне зачем-то тут же рассказали о скорости исправления уязвимостей в MS и привели в пример клиентскую Windows XP. Списка сотни дыр от MS на трети защищенных сайтов интернета мне почему-то не привели. Собственно, и не смогли бы, хотя бы потому, что ПО Microsoft используется куда менее, чем на трети веб-серверов.
                                                                  То есть утверждение о сотнях дыр Microsoft в том виде, в котором оно было подано, все-таки неверно, на что я и намекал, однако кого это вообще интересует, если можно углядеть в моих словах нападки на open-source, правда?
                                                                  0
                                                                  Мне не очень-то интересно продолжать дискуссию, я просто не вижу в этом смысла.
                                                                    +1
                                                                    Мне тоже не очень интересно; я предложил это на тот случай, если вы все же захотите узнать, есть ли у меня реальные аргументы, или нет.
                                                    +2
                                                    А что, XP у нас треть платежных сервисов интернета обслуживает?

                                                    Windows обслуживает 90% десктопного рынка и около 90% платёжных терминалов, как минимум. Но это вообще неважно.

                                                    Это дыры в пользовательском софте, риск которых можно смягчить прочими мерами

                                                    Отключением heartbeat, например.
                                                      –2
                                                      Мне есть, что вам ответить, но я не буду этого делать :)
                                                  +6
                                                  Как пример — та-же ms08-067, с помощью которой можно было легко получить полный доступ к компу.
                                                +1
                                                Представьте себе. Вспоминаю баг с DCOM в далеком 2003-м, которому были подвержены все NTобразные системы, в том числе xp до sp2 (или 1)… эксплоит простейший, скан компов в сети провайдера находил эту дыру в более 50% случаев, а эксплоит давал shell к системе. За какие-то 15 минут можно было насобирать сотню паролей от диалапа… а это было лишь студенческое баловство… про хакеры наверное творили совсем лютые вещи… то что баг был в большом количестве NT систем, показывает его старость. Так что да, и такое бывает.
                                                  –1
                                                  Окей, этот баг давал доступ к пользовательской системе, если система торчала 445-м портом в интернет. Я так подозреваю, что серверные системы даже тогда были прикрыты файрволом. А тут треть платежных систем мира уязвимы, и даже нет способа смягчить риск. Только патч, которого не было 2 года.
                                                    +3
                                                    >А тут треть платежных систем мира уязвимы, и даже нет способа смягчить риск.

                                                    Как это нет? А как же:

                                                    >Только патч

                                                    Этого мало? А что нужно ещё?

                                                    >которого не было 2 года.

                                                    Который появился сразу, как только разработчики узнали об уязвимости. Или они должны были исправить ошибку, о которой не знали сами?
                                                  +4
                                                  Для того, чтобы дыры в продуктах MS повлияли на сайты банков и платёжных систем, надо чтобы сайты банков и платёжных систем перешли на продукты MS. А они почему-то не хотят.
                                                +6
                                                Если в проприетарном такую дыру найдут авторы этого ПО, то в changelog просто будет «several bugs and stability issues fixed» (и далее список новых фич).
                                                • НЛО прилетело и опубликовало эту надпись здесь
                                                    +6
                                                    >Именно по-этому дыру размером с галактику нашли именно в проприетаром ПО. Хотя стоп…

                                                    Совершенно верно! Именно потому, что дыра была в опенсорсе, ее таки нашли и закрыли.
                                                  • НЛО прилетело и опубликовало эту надпись здесь
                                                      +1
                                                      Наличие менеджера и зарабатывание бабла, в общем-то, практически ортогонально открытости кода.
                                                      +74
                                                      По факту.

                                                      1. Баг обнаружен. 2 года это не так много. Баг обнаружен посторонними людьми. Будь OpenSSL закрытым, вполне вероятно этот баг не был бы обнаружен. Поэтому закон Линукса работает. Никто не обещает, что баги будут обнаружены в течение 48 часов после коммита.

                                                      2. Тут нужно исследование, чтобы делать такие заявления. По крайней мере если смотреть не просто на сам факт открытости, а на популярность. Очень многие крупные открытые программы (Linux, Firefox, Open Office, Chromium) разрабатываются профессионалами за зарплату.

                                                      3 (и некоторые предыдущие пункты). На мой взгляд это проблема исключительно OpenSSL. Проект такого уровня важности должен разрабатываться действительно серьёзными программистами за нормальную зарплату и то, что владельцы проекта не смогли его «монетизировать» это их беда. Согласен, что задача непростая и если бы какой-нибудь Google взял их под своё крыло, было бы проще, но было бы это правильно? Разумнее выглядит создание НКО, собирающей денежку с крупных компаний.
                                                        +4
                                                        >> 2 года это не так много.

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

                                                        >>Никто не обещает, что баги будут обнаружены в течение 48 часов после коммита.

                                                        Именно об этом говорится в п.1: если проект open-source и был просмотрен «миллионами глаз» то… вам никто ничего не обещает, не теште себя иллюзиями.
                                                          +3
                                                          Интересно, а в EULA какого-нибудь проприетарного продукта есть гарантии по части поиска и исправления багов?
                                                            +2
                                                            Там есть гарантии, что всем пофиг. Вариация «вы используете это ПО на свой страх и риск, никаких гарантий что оно вообще заработает» есть в практически в любом лицензионном договоре.
                                                              +1
                                                              Именно так
                                                              +2
                                                              Ищите рядом с пунктами:
                                                              — разрешения исследования и дизассемблирования этого ПО,
                                                              — гарантий пригодности (для тех целей, для которых оно покупалось) и работоспособности оного.
                                                            +9
                                                            Согласен, что задача непростая и если бы какой-нибудь Google взял их под своё крыло, было бы проще, но было бы это правильно

                                                            Google предлагает оплату для исправления уязвимостей OpenSSL. Да и по сути в нахождении этой уязвимости был отмечен один из сотрудников Google. Я так понимаю, что Google сама не заинтересована, чтобы OpenSSL был дырявым, так как в последнее время почти все продукты Google, даже Android и Chrome OS, активно предлагаются гос и корпоративному рынкам.
                                                            +5
                                                            Команда OpenSSL получает лишь 2000 долларов ежегодно посредством пожертвований.


                                                            Ну так сделайте свой вклад — помогите открытому ПО и поддержите команду OpenSSL.
                                                              +3
                                                              Ну ведь проблема то не в том, что я пользуюсь SSL и не перевожу денежку — я то как раз и могу пожертвовать пару десятков долларов, но это ведь капля в море. А проблема в том, что этого не хотят делать крупные корпорации, для которых и сто тысяч не деньги, а экономят они благодаря использованию открытого протокола ого-го как. Свой то SSL написать, поди, и миллиона не хватит.
                                                                +3
                                                                это ведь капля в море


                                                                «Капля камень точит», разве не так?

                                                                Умножьте «пару десятков долларов» (20$, для удобства) на пару сотен тысяч людей — именно столько «знающих» людей, которые «в курсе» может набраться, на мой взгляд, по всему миру. Такие суммы могут имзенить ситуацию? =)

                                                                Ещё добавьте сюда заинтересованность уймы компаний в хорошей разработке, за которую они готовы отдать не 20$, а заметно больше.

                                                                Не всё так плохо. ;)

                                                                  0
                                                                  Проблема как раз в том, что большинство тех, кто мог бы поддержать проект, этого не делают. По большей части из-за того, что нет действенных механизмов для «пожертвований», сравнимых по удобству с магазинами приложений, вроде Google Play и понимания собственной выгоды от них.
                                                                    +2
                                                                    $2000 = $20 * 100
                                                                    Всего сто таких, как вы, и можно было бы удвоить собираемую за год сумму. Но если думать в стиле «всё равно это капля в море», то проект денег не получит. Вот и всё, очень просто. Хотите пожертвовать — жертвуйте, ваш вклад принесёт пользу. Не нужно смотреть на других.
                                                                    –27
                                                                    Мизерными пожертвованиями вы вряд ли измените ситуацию. Можно сделать другой вывод — использовать не open source.
                                                                      +3
                                                                      Бредовее комментария под этой статьей я ещё не видел.
                                                                      Это называется деструктивное мышление.

                                                                      $20 от их годовых $2000 — это 1%. То есть пожертвования ещё 100 рядовых людей позволят увеличить сбор в 2 раза, тысячи — в 11 раз, а это вполне себе мотивация работать над проектом активнее. 1000 людей в мировом масштабе использования такого проекта не слишком большая цифра.

                                                                      Так же во многих проектах практикуется подход, когда за исправления бага или добавление фичи можно голосовать деньгами, потом приходит сторонний разработчик, делает что нужно, и получает деньги. Либо наоборот говорит, сколько ему нужно на исправление. Вот такой подход можно назвать конструктивным.
                                                                        +4
                                                                        Про мелкие пожертвования: В России больше 20 миллионов жителей и из них ежедневно 5 миллионов точно ходит в магазин «Супер-Маг»(не будем конкретные магазины упоминать). Если сети «Супер-Маг» обмануть каждого покупателя на 1 руб, то владелец этой сети ежедневно будет получать 5.000.000 руб!!! А ведь всего-то «обмани покупателя на 1 руб» ;)
                                                                        0
                                                                        Я думаю что им скорее профессионалов не хватает, судя по качеству кода.
                                                                        +5
                                                                        Andrey2008, наверное уже спрашивали, но мог бы PVS-Studio обнаружить баг?
                                                                          +28
                                                                          PVS-Studio не нейдёт эту ошибку. И вообще, я сомневаюсь, что её способен найти хоть один статический анализатор общего назначения, если только его специально не заточить для такого случая. Есть ещё специализированные анализаторы для поиска именно уязвимостей, но я почти не знаком с этой областью. Искать ошибки и закладки, это разное.

                                                                          Кстати, мы проверяли OpenSSL в 2012 году: www.viva64.com/ru/b/0183/

                                                                          Мы скоро напишем ещё одну статью про OpenSSL. Но я думаю, она будет скучная. OpenSSL уже протестирован и тестируется многими другими анализаторами. А написать статью, придётся из-за того, что мне каждый день в почту приходят толпы с «уникальным» предложением посмотреть этот проект и т.п. :)
                                                                          +5
                                                                          О статическом анализе и Heartbleed можно поитать в блоге John Regehr: Heartbleed and Static Analysis, A New Development for Coverity and Heartbleed.
                                                                            +1
                                                                            Спасибо.
                                                                          +20
                                                                          Прежде всего: статья выпущена в блоге компании, зарабатывающей продажей закрытого ПО. Местами высказываются очень спорные суждения, заставляющие сомневаться в знании реалий мира open source. Дискуссию можно хоть копировать с Hacker News, чтобы не повторять.

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

                                                                          Каждый проект имеет баги.
                                                                          Несомненно.

                                                                          У мира Open Source меньше ресурсов для их поиска
                                                                          Чушь. Зависит от размера проекта. Есть закрытые проекты с командой в пару-тройку человек, есть открытые с тысячами разработчиков
                                                                            +3
                                                                            С другой стороны, попытки удалить (вместо починки) сломанный до предела код тоже часто проваливаются. Вот например: lists.freedesktop.org/archives/pulseaudio-discuss/2014-March/020174.html

                                                                            Ответили ( lists.freedesktop.org/archives/pulseaudio-discuss/2014-March/020177.html ):

                                                                            I don't know how useful the module-equalizer-sink is today in practice, but even if it is completely unusable, a first step should not be to remove the code, but to stop building it by default.
                                                                              +2
                                                                              Ну это же Pulseaudio, что Вы от них хотите? ;-)
                                                                              +2
                                                                              Да ладно, вы на ник автора переводчика посмотрите. Он специализируется на таких статьях. </шутка>
                                                                                +4
                                                                                >Прежде всего: статья выпущена в блоге компании, зарабатывающей продажей закрытого ПО. Местами высказываются очень спорные суждения, заставляющие сомневаться в знании реалий мира open source

                                                                                Да там даже откровенные передергивания наружу торчат. Например:
                                                                                В книге цитируется исследование, утверждающее, что частота, с которой находятся новые баги, не увеличивается линейно с количеством проверяющих.

                                                                                То, что частота не увеличивается линейно, не говорит о том, что она вообще не увеличивается. Однако они тем самым якобы опровергают «закон Линуса» о том, что больше глаз — больше вероятность найти ошибку.
                                                                                +6
                                                                                OpenSSL, на мой взгляд, написан в чересчур замысловатом стиле, что сильно осложняет анализ кода.

                                                                                Вопрос о случайности или неслучайности этого в одной из ключевых криптографических библиотек остается открытым.
                                                                                  +1
                                                                                  Я уверен, что это случайность. Слишком «детская» и очевидная ошибка. Если бы я делал специально, я бы заморочился посложнее :)
                                                                                    +1
                                                                                    Тем не менее, свои разрушительные плоды она приносила целых 2 года.
                                                                                      +2
                                                                                      Если слухи правдивы — что ж, значит, в АНБ код-ревьюеры лучше справляются с работой. Не удивлюсь, если они мониторят все коммиты во все важные ОСС-проекты.
                                                                                        +1
                                                                                        Не думаю что лучше. Программисты везде более-менее одинаковы. Вот только в АНБ платят зарплату и это их работа! А в Open-Source все, как правило, но не всегда, зависит от чистого энтузиазма. Повторюсь: не всегда деньги решают все, но именно они мотивируют куда лучше любого человека сделать ту или иную работу. У меня было много ситуаций, когда в open-source проект предлагаешь идею, а получаешь ответы «это не надо» или «пока никто не просил, подождем еще людей», но стоило написать лично по e-mail одному из участников проекта с предложением сделать кастомную для меня версию, то человек сразу же менялся в лице и появлялось больше желания сделать для меня фичу
                                                                                          +4
                                                                                          А что удивительного в том, что именно вашу идею авторы не хотят реализовывать просто так, но готовы сделать это за деньги?

                                                                                          Мне, например, потребовалась очень быстро фича в nginx-е, но у автора и так забот — воз и маленькая тележка. А автор одного из форков согласился реализовать нужную мне фичу за небольшое вознаграждение. Мне выгодно — я сэкономил время и очень быстро решил задачу в коммерческом проекте, автору приятно — он получил прямое материальное вознаграждение за свою работу, сообществу опенсорса тоже какая-никакая выгода — фича стала общедоступной. Так что да, деньги — это мотивация и ещё какая :)
                                                                                  +5
                                                                                  Есть ещё один момент, актуальный для проектов класса OpenSSL. Хороший программист крайне редко бывает криптоаналитиком, и он далеко не всегда способен проверить, что заимплементированный им алгоритм работает правильно и не содержит каких либо уязвимостей. Отличный пример этой проблемы — реализация констант в Dual EC DRBG алгоритме в самых разных библиотеках.

                                                                                  Но эта же проблема работает и с обратную сторону: разработчики криптобиблиотеки могут быть очень хорошими криптоаналитиками, но далеко не самыми лучшими программистами. Возможно, результат именно такой комбинации мы видим сейчас.

                                                                                  Я к чему мысль веду: не всегда можно полагаться на силу open source. Причём ситуация будет аналогичной и в других продуктах, где алгоритмы пишут не программисты.
                                                                                  • НЛО прилетело и опубликовало эту надпись здесь
                                                                                      +31
                                                                                      Бо́льшая часть открытого программного обеспечения не разрабатывается и не поддерживается профессионально.
                                                                                      При этом то же можно сказать про практически любой проприентарный продукт: Бо́льшая часть проприентарного программного обеспечения не разрабатывается и не поддерживается профессионально.
                                                                                      Только в случае в опенсорс это видно, а в случае проприентарщины можно долго надувать щёки и рассказывать про enterprise-grade software.
                                                                                        +1
                                                                                        У проприетнарников платят за работу, как минимум. Это не гарантия, но тем не менее.
                                                                                          +3
                                                                                          Если т бы невидимые зарплаты хоть как-то меняло качество результата…
                                                                                        –1
                                                                                        Мне кажется что из за такой шумихи с хёртблидом кол-во украденных данных резко вырастет. Знают о баге теперь все (даже далекие от IT люди), а вот сертификаты поменяют на новые и обновят OpenSSL далеко не сразу.

                                                                                        codenomicon решил заявить о себе таким способом? Неужели нельзя было поправить баг, через какие нибудь Root CA разослать всем письмо тем кто у них (Verisig, GeoTrust, кто нибудь еще) о проблеме с просьбой обновить ossl и перевыпустить сертификаты, а только потом подымать эту шумиху?

                                                                                        Я конечно понимаю что публичность ускоряет процессы направленные на повышение безопасности, но и риски пропорционально вырастают. Это как за не по гайдлайнам названную переменную/метод идти и бить молотком по рукам или писать в корпоративный чат с логом VCS, вместо того чтобы сказать человеку.
                                                                                          +6
                                                                                          Как вы себе представляете этот процесс? Перевыпускать сертификат без обновления openssl бессмысленно. Если обновление уже вышло — по коду патча способ эксплуатации уязвимости очевиден.
                                                                                            +1
                                                                                            Без обновления бессмысленно, а с обновлением вполне целесообразно.
                                                                                            А без афиширования проблемы, этот патч просмотрело бы не так много хакеров.
                                                                                              +2
                                                                                              И? Хакеры бы начали использовать, а вот админы бы оставались в неведении об этом дальше. А если бы стоял флаг критического обновления, пошли бы вопросы, что там критическое такое. Однако общая скорость реакции была бы гораздо ниже
                                                                                          +6
                                                                                          Пусть это и похоже на теорию заговора, но в то время как NSA тратит миллиарды долларов на проекты связанные с расшифровкой https и vpn-соединений, внедрения бэкдоров в процессоры Intel, понижающих уровень энтропии встроенного генератора случайных чисел, иной раз задумаешься, не дешевле ли подкупить/убить ментейнера широко распространенного криптографического пакета?
                                                                                          Ведь зачастую коллеги по оперсорсному проекту могут и не знать друг друга лично.
                                                                                          В очередной раз устанавливая обновление Тора, думаешь, а не внесет ли оно регрессию, позволяющую слушать мой трафик?

                                                                                          Хотелось бы верить, конечно, что все это не так, но когда жизнь с каждым днем все более приближается к оруэлловской антиутопии, уверенности в этом остается все меньше…
                                                                                            +1
                                                                                            Не дешевле ли закрыть NSA? :)
                                                                                              +3
                                                                                              И оставить только ФСО. :)
                                                                                            0
                                                                                            Проблема, которая проявляет себя только при очешь специфических условиях или в тех условиях, которые неочевидны для конечного пользователя, может оставаться необнаруженной длительные периоды времени. Чем более сложной является программа, и чем более она выполняет задач для пользователя, тем труднее со стороны пользователя удостовериться в её правильности.


                                                                                            Если проблема не выявлена никем и никогда — имеет ли значение, есть ли она на самом деле или нет? Она становится актуальной лишь в момент обнаружения. И в этот момент имеет значение лишь скорость и сложность ее устранения. Если скорость устранения проблемы высока, а ущерб от нее невелик — то является ли проблема существенной?

                                                                                              +1
                                                                                              Еще имеет значение то, что сделает обнаруживший ее: сообщит о ней или будет использовать в своих корыстных целях.
                                                                                              +2
                                                                                              Таким образом, преимущества открытого кода относительно закрытого, касающиеся правильности и безопасности, является минимальными, если они вообще есть. Сила открытого программного обеспечения в возможности закрыть баг собственноручно, хотя в этом случае большинство людей (и разработчиков) ожидали официального патча, поскольку исправление программных средств защиты данных и, особенно, уровня OpenSSL, проекта, известного сложностью своего кода, вне пределов возможностей большинства программистов.

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

                                                                                              А по поводу надежности ПО в принципе хочу сказать следующее: для увеличения надежности любого ПО критически важным является время тестирования этого ПО. Чем больше времени проходит после последнего внесения серьезных изменений в активно используемое ПО — тем выше надежность этого ПО и тем меньше вероятность обнаружения в нем серьезных багов.

                                                                                              Из этого следует, что при увеличении сложности ПО критически важным становится время его активного использования. Только выдержавшее проверку временем ПО может считаться достаточно надежным.

                                                                                              Из этого следует, что с увеличением сложности ПО, более ценным становится более старое ПО. Следовательно основные силы разработчиков должны быть направлены не на разработку нового ПО, а на доработку старого, как более ценного для общества в целом.
                                                                                                +3
                                                                                                Если вы только не сторонник теорий заговора, предположение, что выполняющие такой бесплатный труд люди стали бы вводить этот баг намеренно, звучит нелепо.

                                                                                                Где логика? Люди, выполняющие такой бесплатный труд, вполне могли ввести этот баг намеренно за вознаграждение.
                                                                                                  0
                                                                                                  Логика очевидна. Если люди выполняют этот труд бесплатно — значит, мотивированы они не деньгами, а чем-то другим (честолюбием, или искренним желанием прогресса, или ещё чем-нибудь), а в этом случае на деньги они не поведутся.
                                                                                                  0
                                                                                                  Тут выше упоминалось про поддержку от компаний. На мой взгляд, если openssl ментейнеры хотят такой поддержки, им стоит последовать примеру nginx. Вот только я не уверен, что в библиотеке неожиданно что-то можно допилить до платной версии, а не просто вырубить часть функционала.

                                                                                                  PS так много статей, но ни разу не видел ссылку на коммит, исправлющий/добавляющий уязвимость
                                                                                                  +9
                                                                                                  Доктор наук? Не знал, что PhD student теперь так переводится…

                                                                                                  Разработчик, который допустил появление этого бага, даже не является профессиональным программистом — он лишь доктор наук.

                                                                                                  В оригинале:
                                                                                                  The developer who introduced the bug is not even a professional software developer himself – he is a Ph.D student (a professional is someone who does it for a living).

                                                                                                    +4
                                                                                                    Нда… Вот так аспирант был моментально повышен до доктора наук.
                                                                                                    +3
                                                                                                    Весьма спорные тезисы в статье все в стиле Get The F***s
                                                                                                      +5
                                                                                                      Так и знал, что кто-то захочет развести гуманитарные сопли на эту тему. Не упомянуты ни сравнение методик разработки, ни ссылки на какие-либо данные, ничего, кроме охренительно важного мнения автора.

                                                                                                      Бо́льшая часть открытого программного обеспечения не разрабатывается и не поддерживается профессионально


                                                                                                      Каждый проект имеет баги. У мира Open Source меньше ресурсов для их поиска
                                                                                                        +7
                                                                                                        Видите ли в чём дело. Такие ошибки в закрытом ПО могут присутствовать гораздо более продолжительное время, и не быть обнародованными. А злоумышленники (в том числе и спецслужбы) будут молча их эксплуатировать. Хорошо, что о проблеме стало известно, и ошибку быстро исправили.

                                                                                                        Были случаи, когда MS исправляла критические уязвимости в Windows Server через полгода после того, как уязвимость была обнародована.
                                                                                                          +17
                                                                                                          Кстати, раз уж на то пошло, OpenSSL используется в туевой хуче коммерческих проектов. Так какого же х. эти профессиональные программисты вовремя не осилили аудит такого важного компонента их систем, как OpenSSL? Сдаётся мне, что профессионализм этих коммерческих программистов сильно преувеличен.
                                                                                                            +4
                                                                                                            Кажется, еще не было подобной мысли. Если предположить наличие проприетарной библиотеки подобного уровня распространенности, то лично мне сразу вспоминается еще один пункт в пользу OpenSource: при появлении подобной критической уязвимости, кроме сроков (как уже приводился пример со сроками выпуска патчей Microsoft'ом) еще важно и количество платформ, на которые выйдет обновление — в случае с OpenSource во многих случаях любой может сделать заплатку для нужной ему версии и под нужную платформу (кроме закрытых платформ, тех же роутеров/NAS/...), которая вполне может считаться устаревшей и более не поддерживаться проприетарным продуктом. Это сейчас как раз и наблюдается на многих сетевых железках с OpenSSL на борту.
                                                                                                              +1
                                                                                                              А ведь как хорошо выглядел комментарий habrahabr.ru/post/209746/#comment_7275782
                                                                                                              Всего 2,5 месяца назад.
                                                                                                                +4
                                                                                                                Мда. Все забыли про MS08-067, MS08-068 и MS09-001. И если бы они были единственными…

                                                                                                                Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                                                                                                                Самое читаемое