Что такое открытый исходный код и безопасен ли он?

  • 22 июня, 13:10
  • 5891
  • 0

Трудно переоценить роль, которую открытый исходный код играет в сегодняшнем мире.  Недавние данные GitHub показали, что почти 12000 разработчиков GitHub внесли свой вклад в код, который сделал возможным первый полет на марсианском вертолете 19 апреля. 2021. Однако есть вероятность, что большинство даже не подозревало, что их вклад был использован в исторической миссии НАСА.

Итак ... что такое открытый исходный код?

«Открытый исходный код» в чистом виде относится к программному обеспечению, которое бесплатно предоставляется всем для доступа, копирования, изменения и распространения. 

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

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

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

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

Открытый исходный код не следует путать с бесплатными программами , которые представляют собой просто программное обеспечение, которое не связано с прямыми финансовыми затратами, но которое, вероятно, не будет иметь никаких свобод, связанных с программным обеспечением с открытым исходным кодом. Ричард Столмен , основатель Фонда свободного программного обеспечения ,  помог определить, что подразумевается под словом «бесплатное» :

Бесплатное программное обеспечение - это вопрос свободы, а не цены. Чтобы понять эту концепцию, вы должны думать о «free» как о свободе слова, а не как о бесплатном пиве.

Чтобы подчеркнуть, что «free» означает свободу, а не финансовые затраты, вместо него часто используется термин FLOSS («бесплатное / бесплатное программное обеспечение с открытым исходным кодом»). Но для всех намерений и целей FOSS и FLOSS означают одно и то же.

Отклонение от идеала чистого FOSS (или FLOSS) приводит к другим терминам, которые вы часто будете встречать в сфере открытого исходного кода. «Исходный код доступен» относится к программному обеспечению, которое в некоторых случаях делает исходный код доступным для просмотра и даже для внесения изменений, хотя лицензия не дает полных прав на совместное использование и изменение. Доступный исходный код не следует путать с реальным программным обеспечением с открытым исходным кодом.

Хорошим примером этого является Lumberyard , бесплатный игровой движок, который Amazon запустил еще в 2016 году, чтобы помочь разработчикам создавать кроссплатформенные игры. В конечном итоге компания сделала исходный код доступным для всех по проприетарной лицензии, что позволило разработчикам настраивать свой проект с помощью GitHub, в то время как Amazon также принимает участие в коде от сообщества. Но в Условиях и положениях совершенно ясно, что это не проект с открытым исходным кодом, учитывая, что пользователи не могут публично публиковать исходный код движка Lumberyard где-либо за пределами  GitHub и, что особенно важно, не могут создавать свой собственный игровой движок за пределами Lumberyard.

Делая исходный код Lumberyard доступным (и бесплатным для использования), Amazon хочет сделать платформу более привлекательной для разработчиков игр, заманив их подальше от конкурентов, таких как Unity и Unreal. А тесная интеграция Lumberyard в свою экосистему, включая Twitch и ее облачную платформу AWS, - вот где Amazon в конечном итоге зарабатывает свои монеты.

Коммерциализация и лицензирование

Все это не означает, что коммерциализация и программное обеспечение с открытым исходным кодом не могут быть друзьями - это далеко не так. Компании по коммерческому программному обеспечению с открытым исходным кодом (COSS) многочисленны и обычно представляют собой одну компанию, которая монетизирует проект с открытым исходным кодом путем продажи дополнительных услуг или надстроек, таких как аналитика или безопасность, которые понравятся более крупным компаниям. Часто, но далеко не всегда, эти типы предприятий также являются главными разработчиками проектов с открытым исходным кодом, то есть они отвечают за поддержку проекта и внесение изменений кода в основную кодовую базу.

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

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

Например, MySQL - это система управления реляционными базами данных с открытым исходным кодом, которую Oracle выпускает по двойной лицензии: одна - Стандартная общественная лицензия GNU (GPL), другая - проприетарная. Первый предоставляет большую часть свобод, которые можно было бы ожидать от FOSS, хотя лицензия известна как авторское лево, что означает, что любое производное программное обеспечение должно выпускаться на аналогичных условиях лицензии. Другими словами, новое программное обеспечение, созданное на основе программного обеспечения с открытым исходным кодом, должно выпускаться под аналогичной лицензией с открытым исходным кодом.

Вторичная лицензия Oracle заключается в коммерциализации MySQL, продавая ее под названием MySQL Enterprise Edition , которая предлагает дополнительные услуги, не включенные в лицензию GPL, такие как полностью управляемая служба базы данных; сервис резервного копирования данных корпоративного уровня; хранилище документов; и умные устройства безопасности, такие как шифрование и брандмауэр. Кроме того, компаниям, имеющим коммерческую лицензию, разрешается продавать продукты на основе MySQL, не делая производные продукты с открытым исходным кодом.

В отличие от лицензий с авторским правом, таких как GPL, так называемые разрешительные лицензии на программное обеспечение, такие как MIT License , GNU All-Permissive License и Apache , не налагают ограничений на производное программное обеспечение, что упрощает частным компаниям перепрофилирование его под часть запатентованного продукта. Фактически, они также могут повторно лицензировать свое новое программное обеспечение под лицензией GPL, если захотят.

Хорошим примером здесь является React , библиотека JavaScript для создания пользовательских интерфейсов, которая была разработана Facebook с открытым исходным кодом в 2013 году и впоследствии использовалась многими известными компаниями. Однако Facebook был вынужден перейти на лицензию MIT после того, как разработчик ответил отрицательно на свое предыдущее использование лицензии «BSD + Patents», которая содержала спорный ключевой пункт: по сути, любой разработчик, использующий React в своем приложении, отказался от своего права на подачу иска (или противодействие -sue) Facebook за нарушение патентных прав.

Сегодня React является одним из лучших проектов с открытым исходным кодом практически по всем показателям, и не стоит удивляться тому, что самые популярные проекты с открытым исходным кодом, включая Kubernetes, TensorFlow, Vue и React, были выпущены с разрешительной лицензия, такая как MIT или Apache.

Безопасность

 Последние данные Synopsys показали, что 84% кодовых баз содержат как минимум одну уязвимость с открытым исходным кодом.

«У киберпреступников всегда есть возможность попытаться использовать открытость в злонамеренных целях», - отметил менеджер по продукту Facebook для открытого исходного кода Майкл Ченг. «Однако мы обнаружили, что преимущества открытого кода значительно перевешивают этот риск. Мы заметили, что хорошие сообщества быстро реагируют на уязвимости системы безопасности - участники очень быстро накапливают поддержку, чтобы исправить подобные проблемы. Таким образом, оценка состояния сообщества так же важна, как и технологические достоинства конкретного проекта с открытым исходным кодом ».

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

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

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


0 комментариев
Сортировка:
Добавить комментарий

IT Новости

Смотреть все