Pull to refresh

Comments 34

Я далек от мысли о том, что Дерек Сиверс нуждается в пиаре на хабре (при всем моем уважении к обоим).

Хотя лично я мог бы рекомендовать его блог, наравне с блогами Поля Грехэма, Джоэля Спольски и т.п. для положительного заряда здравым смыслом.
Вообще не хватает ответа на вопрос об информационной безопасности. Мы прячем код не потому что жалко, а в целях защиты от злоумышленников. Мы понимаем, что можем допускать ошибки и не хотим, чтобы наши проекты было так же легко сломать как Joomla, Drupal и т.д.
Если это единственная причина, по которой вы прячете код, то можете смело его выкладывать. Лучше пусть эти ошибки всплывут, чем станут бэкдорами =) Вообще говоря, публикация проекта — это хорошая для него встряска. Хотите вы того или нет, а придется где-то что-то причесать, убрать токены в конфиги, просмотреть внимательно все пару-тройку раз…
Когда проект успешен, стабилен какое-то время и оттестирован изнутри безусловно его можно выложить для внешнего тестирования, однако для молодого проекта — это означает гибель.
Вы рассуждаете так, как будто в мире все хотят вам добра и будут присылать баги вам в ветку на гитхабе, однако огромное количество людей попробует сначала воспользоваться уязвимостью и на открытом коде, да еще и с открытыми багами сделать это будет ничего не стоить.
Таким образом цена взлома для мошенников станет минимальной и появится смысл пользоваться этим.
Мы тут не пытаемся решать, что Вы должны сделать публичным, а что держать в секрете – у каждого свои критерии

Хочу предостеречь Вас от экстраполирования своей ситуации/видения на все доступные в Вашем поле зрения случаи.

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

А вот в каких случаях такая «открытость» может помочь — вот это, действительно, вопрос, который инетересно было бы обсудить.
Подтверждаю на личном опыте. Ругают код, ломают готовые проекты, пишут в личку ругательные, гневные письма о проблемах, которые уже решены и есть в FAQ. Баги в багтрек не посылают.
Мы понимаем, что можем допускать ошибки и не хотим, чтобы наши проекты было так же легко сломать
Ошибки не исчезают от того, что их никто не видит. Или вы думаете, что если выключить свет, то замок на вашей входной двери становится крепче? ;-) Все самые лучшие криптографические алгоритмы подробно описаны — можете поверить, они от этого становятся только всё более надёжными и безопасными.
Я думаю, если не выкладывать технологию изготовления замка, то взломать его видя только замочную скважину — станет в разы сложнее.

Причем тут описаны ли СЕЙЧАС криптографические алгоритмы. Вы покажите в каких серьезных разработках начинают пользоваться криптографическими алгоритмами до признания их безопасными?
Я думаю, если не выкладывать технологию изготовления замка
Я пытался намекнуть на то, что отсутствие ошибок и доступность исходного кода это несвязанные вопщем-то вещи (точно так же, как наличие освещения не влияет на качество замка). Чтобы ПО было безопасным, нужно просто уметь (хотеть) сразу писать его максимально качественно, а не прятать код от чужих глаз.
до признания их безопасными
Для того, чтобы эти алгоритмы признали безопасными, их нужно показать людям — ещё раз вернёмся к началу, открытость кода никак не влияет на его качество. И напротив — гарантией качества кода, безусловно, является его проверка (и даже критика) профессиональным сообществом.
Я не знаю о каких идеальных разработчиках пишущих идеальный код вы говорите, я говорю о реальных проектах и реальном бизнесе.
И да, если не выкладывать исходный код, то ошибок не становится меньше, но их значимость уменьшается в разы. Можете считать, что у каждой ошибки есть цена. Тогда стоимость ошибки для проекта с открытым кодом и с закрытым будет отличаться на порядки.
Т.е. у нас 100 ошибок, но о них не знает злоумышленник. Цена каждой — 1 рубль. Теперь о них знают все — их цена уже сравнима с ценой проекта.
Я пишу все это не из собственных выдумок, просто спросите любого хостера — сколько раз в день взламывают продукты на Joomla и Netcat. Та же проблема с любым несерверным ПО, которое вынуждено отдавать свой (хоть и скомпилированный) код пользователю.
Спросите у Adobe сколько они теряют денег за счет того, что их код открыт (я про ассемблерный код)?

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

А с Джумлой и другими популярными КМС проблема во многом в том, что эксплуатируются известные и уже закрытые уязвимости, просто пользователи не спешат обновляться.
Если код не планируется использовать как OpenSource, то какой смысл в его публичности?
Вы поймите, что уязвимость становится проблемой только после ее обнаружения злоумышленником.
Т.е. вы противоречите себе: допустим у нас есть SQL-инъекция:
1. Мы не показываем код, тестируем его сами и никому, кроме мошенников нет дело до наших «дыр». Злоумышленникам достаточно трудно найти «дырку».
2. Мы открываем код и ждем каких-то альтруистов, которые укажут нам на «дыру», которая в общем то не является ошибкой логики программы и обычным пользователям не мешает. При этом злоумышленникам гораздо проще найти дыру. А еще и быстрее, как вы верно заметили.
Но мне не нужно, чтобы кто-то быстрее заметил дыру в моей системе, мне нужно чтобы злоумышленники потратили на ее поиски больше, чем она могла бы им принести — в этом смысл и цель любых средств информационной безопасности.
Например, я хочу заддосить гугл или вконтакте, чтобы раскрутить свою соц.сеть. Но средства, потраченные на это скорее всего не компенсируются возможной прибылью.

По поводу Joomla и т.д. Не знаю ни одной CMS, которая 100% со всеми плагинами поддерживает обратную совместимость. Обновлять их — достаточно дорогой процесс. И еще раз повторю, в открытом коде дыры ищут не только альтруисты, а в первую очередь — мошенники, которые уже успеют воспользоваться ею прежде, чем добрые люди (а может и те же самые мошенники) укажут вам на проблему. Тоже отличная схема, находим дыру, запускаем трояна, потом люди обновляют Joomla, думая, что теперь в безопасности, а троян уже внутри. Это не паранойя, просто показываю возможные варианты.
Если код не планируется использовать как OpenSource, то какой смысл в его публичности?
Речь идёт НЕ о том, что вы должны открывать весь код. Ошибочен первоначальный тезис о том, что открытое ПО легко сломать. Качество кода не зависит от того, открыто это ПО или нет. По поводу возможностей найти уязвимости в открытом коде — это уже другой вопрос и он весьма спорный. B)
Взгляните на затраты с точки зрения исследователей. Когда код закрыт, стоимость поиска уязвимостей выше, когда открыт — ниже.
Разумеется, когда код открыт, баги увидеть проще, однако, стоимость нахождения багов меньше и выше вероятность того, что о них сообщат вам, а не ребятам, пишущим эксплоиты.
Если же стоимость нахождения уязвимости высока, мотивация искать их остается лишь у тех, кто коммерчески заинтересован находить их. Ну а способы надежного получения коммерческой выгоды от 0day-уязвимостей вы знаете.
>>>Разумеется, когда код открыт, баги увидеть проще, однако, стоимость нахождения багов меньше и выше вероятность того, что о них сообщат вам, а не ребятам, пишущим эксплоиты.

Почему? Я думаю, это зависит от конкретного кода — если он не привлекателен как средство общего назначения — то мало кто будет искать баги бесплатно. А платно будут искать либо внутри вашей компании за зарплату — что и так можно организовать — либо злоумышленники.
Как вариант могут искать бесплатно потенциальные работники. Согласитесь, что хороший плюс в резюме типа «изучил ваш код, нашел багу, патч прилагается».
Тогда надо оценить соотношение потенциальных работников и потенциальных злоумышленников
Я вот оставил один вопрос про запас, думаю уже можно спрашивать:

Кому-нибудь был интересен сам предмет поста, кто-нибудь прошел по ссылке, посмотрел код?
Лично мне нет, я все таки считаю, что есть огромная разница между OpenSource кодом, который предназначен для использования всеми в своих проектах и просто тупого выкладывания своего никому больше не нужного кода в паблик.
И если OpenSource — это здорово, это возможность писать код всем миром вместе и создавать безопасные продукты, то выкладывание своего кода в паблик без всякого смысла — это просто засорения информационного пространства.
Отлично! Вы не поверите, но и я не ходил и не смотрел и не пойду, видимо.

Но верю, что для _него_ это может быть важно. И это главное. Мне кажется пост именно об этом. О том, что важно именно для конкретного человека. Что границы и секреты каждый может и должен пересматривать лично для себя и самостоятельно.

И только надеюсь, что ни Ваше, и ни чье-либо еще, личное информационное пространство от этого не пострадало.
В таком ракурсе немного удивляет присутствие сих откровений на хабре в виде поста.
Т.е. если мы хотим обсудить — стоит ли выкладывать свой код всем — это одно, а просто написать «я выложил свой код, это мое мнение» как-то незначительно.
Хотя, общество рассудит голосованием :-)
если мы хотим обсудить — стоит ли выкладывать свой код всем

Открою Вам свой секрет — этот пост был опубликован в выходной день и исключительно для дискуссий.

И я очень благодарен Вам за обсуждение. Но все еще верю, что мы с Вами не можем (и даже не должны надеяться) решить за всех, стоит ли нам «всем» выкладывать свой код.

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

Смысл может быть типа «вдруг кому-нибудь пригодится тоже».
Ну, с философской точки зрения, все верно. Публиковать идеи и код полезно еще и потому, что украсть публичное куда сложнее: первоисточник никуда не денется, так что вора отдача по имиджу замучает. С практической же точки зрения, все не так просто. Предположим, вы решили держать на github все свои проекты на Rails (просто для примера). Для этого придется все же поднапрячься и, как минимум, убрать по-настоящему секретную информацию из-под контроля версий. Пароли и токены он все же шарить не предлагает, я думаю? Найти грань между тем, что можно в легкую выкладывать в Сеть, и тем, что все же стоит попридержать, очень и очень трудно. Поэтому люди предпочитают прятать вообще все. Логично же? Хот со всеми этими историями про АНБ наш мир совсем повернулся на секретности, все вокруг внезапно начали бегать с девизом «мне нечего прятать, но я все равно шифруюсь» и переживать по поводу закладок в OpenSSL и гео-тегов iPhone. Don't worry, be happy =)
(Я понимаю, что есть и обратный аргумент: зачем напрягаться и делать его публичным?)

И еще мнекажется, что пост не совсем про АНБ и секретность. Тут больше о профессиональной уверенности и продолжение тезиса о ценности бизнеса как бизнеса, а не как абстрактной идеи или, даже, очевидного кода. Ценность представляют дело/жизнь в своей полноте.

Но неприкосновенность личной информации сомнению не подвергается: «наша свобода заканчивается там, где начинается свобода другого человека». Это другое.
С одной стороны логично, но, с другой, если код позволяет тебе регулярно иметь хлеб с маслом, а более сильным в бизнесе людям он позволит иметь ролс-ройсы, самолёты и яхты (или хотя бы хлеб не только с маслом, но и с икрой), то выкладывания кода в паблик может лишить тебя и просто хлеба.
Вот, кажется вырисовывается водораздел (а кому и паттерн):

  1. если Вы сидите на хлебе с водой — поздравляем, Вы зарабатываете кодом и все тут просто — лучше бы вам его поберечь.

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

  • если потребность наплодить код была духовной/инстинктивной — скорее всего вы его уже открыли и рекламируете будущим работодателям. нет? тоже не страшно. в любом случае, помните: подавляя инстинкты — берегите психику
Мне очень не нравится подход Валери, но мне нравится подход Дерека…
Я не хочу предоставлять кому либо право копаться в моем грязном белье, даже если он и не найдет там ничего кроме грязного белья, ноя считаю что ДОБРОВОЛЬНАЯ открытость это хорошо.

И я не понимаю почему он это смешивает…
Требование всем быть нудистами или всем ходить в парандже одинаково глупы.
Каждый сам должен делать выбор того, что подходит именно ему.

Это и есть свобода.

Я знаю что мои «тайны» ничего не стоят. Но право хранить свои тайны — стоит многого, За это стоит бороться.
Это и есть свобода.

Как это?) Человек ограничен тем что должен делать только то, что подходит только ему?) Где ж тут свобода)
Жизнь подразумевает долг, конечно.

А свобода возле слова «выбор», и выбором русло судьбы человека и ограничивается.
Вот возможность (обязанность) ограничивать его _самостоятельно_ — это и есть свобода, видимо.
Мне очень не нравится подход Валери, но мне нравится подход Дерека…

мне кажется Валери просто флиртовала (свободные женщины запада — я шучу!)

но где он требует всем быть нудистами и ходить в парандже — я немного не разглядел.

кстати, вы тут же это опровергаете его собственной цитатой, так что я, возможно, просто не понял, что смешивалось…
Валери «Меня не волнует моя приватность» Дерек «Я осознанно практикую открытость» Это 2 большие разницы нельзя смешивать,
Вера пользователей в то что они «неуловимые Джо» вредна и им и компьютерному сообществу. Открытость кода и бизнесмоделей — полезна.

Я хотел сказать именно это. А про нудизм и паранжу — я хотел сказать что нет универсальных рецептов открытости/приватности подходящих всем. Я не опровергаю Дерека, я скорее согласен с ним. А не согласен с Валери,,,
спасибо, теперь понятно. соглашусь по обоим пунктам
Sign up to leave a comment.

Articles