Что такое открытый исходный код?
Открытый исходный код (от англ. Open Source Software, OSS) — это термин, обозначающий программное обеспечение, предназначенное для публичного доступа, где любой желающий может просматривать, изменять и использовать его код по своему усмотрению.
Программное обеспечение с открытым исходным кодом разрабатывается децентрализованно, совместными силами множества ничем не связанных разработчиков. Программное обеспечение с открытым исходным кодом обычно более гибкое в функционале, а его поддержка долговечнее. К тому же сама разработка, обходится гораздо дешевле, чем у проприетарных аналогов. Всё потому, что такое программное обеспечение создаётся сообществами независимых разработчиков, а не одним автором или компанией. Движение за открытый исходный код предлагает модель децентрализованного производства программного обеспечения для более эффективного решения возникающих в процессе разработке проблем. Конечный продукт, по итогу, получается функциональнее и надёжнее.
Интернет — один из первых проектов по модели открытого исходного кода
В 50-х и 60-х годах исследователи, разрабатывающие ранние интернет-технологии и телекоммуникационные протоколы, полагались на открытую исследовательскую среду. Сеть агентств перспективных исследовательских проектов (Advanced Research Projects Agency Network, ARPANET), которая позже стала основой современного Интернета, поощряла открытый процесс обратной связи и свежий взгляд на разрабатываемый продукт. Группы разработчиков совместно использовали и дорабатывали код друг друга. Позже различные форумы помогли облегчить коммуникацию и разработать единые стандарты коллективной разработки. В основу Интернета как технологии были заложены такие ценности, как совместное сотрудничество, экспертная оценка, коммуникация и открытость.
Как работает модель разработки открытого исходного кода?
Модель разработки открытого исходного кода существует благодаря сообществу разработчиков. Продукты на основе открытого исходного года выпускаются с соответствующей открытой лицензией, поэтому любой разработчик может просматривать или изменять их исходный код. Многие проекты с открытым исходным кодом размещены на GitHub, где можно получить доступ к репозиториям или принять участие в разработке. Linux®, Ansible и Kubernetes являются примерами популярных продуктов с открытым исходным кодом. Иногда к процессу разработки программного обеспечения с открытым исходным кодом подключаются крупные IT-компании. Они берут за основу уже написанный код, исправляют баги, уязвимости и добавляют новые функции. Все эти улучшения затем можно внести обратно в первоначальный проект, на благо сообщества разработчиков.
Linux и открытый исходный код
Linux — это бесплатная операционная система с открытым исходным кодом, выпущенная по стандартной общественной лицензии (General Public License, GPL). А ещё это крупнейший в мире проект программного обеспечения на основе открытого исходного кода. Операционная система Linux была в своё время создана как бесплатная альтернатива операционной системы MINIX, основанной на принципах и дизайне Unix. Создатели так хотели подчеркнуть заложенные при разработке принципы свободного программного обеспечения, что даже первоначально назвали своё детище «GNU» (от англ. «GNU’s Not UNIX» — «GNU — не Unix»), хотя система всё равно была построена на основе Unix. Поскольку Linux до сих пор выпускается по открытой лицензии, любой желающий может запускать, изучать, изменять и распространять исходный код. Даже продавать копии своего измененного кода, если это делается в соответствии с лицензией.
В чем разница между свободным, закрытым и открытым программным обеспечением?
Под программным обеспечение с открытым исходным кодом долгое время понималось «свободное программное обеспечение». Движение за свободное программное обеспечение было основано Ричардом Столменом в 1983 году как раз в рамках проекта GNU. Это движение организовалось вокруг идеи пользовательских свобод: свободы видеть исходный код, изменять и распространять его по своему усмотрению. Свободное программное обеспечение появилось в ответ на проприетарное или закрытое программное обеспечение. Софт с закрытым исходный кодом недоступен для просмотра, изменения или использования в разработке других продуктов. Только владельцы закрытого исходного кода имеют законное право доступа к нему. А рядовые пользователи, купившие лицензионную копию, платят лишь за использование программы по назначению. Само название «свободное программное обеспечение» вызвало много путаницы, ведь оно не означало бесплатность продукта, а только свободное использование на усмотрение пользователя. Кристин Петерсон попыталась решить эту проблему в 1998 году, когда предложила термин «открытый исходный код». Он лучше фокусировался на сути и не сбивал с толку тех, кто плохо знаком с концепцией движения за свободное программное обеспечение. Петерсон предложила термин «открытый исходный код» взамен использовавшегося ранее «свободное программное обеспечение» на одном из совещаний рабочей группы, которая занималась распространением практики свободного программного обеспечения на более широкий рынок. Цель этой группы была в том, чтобы мир узнал, что программное обеспечение лучше, когда оно общедоступно и его можно свободно модифицировать. Эрик Рэймонд был одним из членов вышеупомянутой группы. В 1997 году он опубликовал некоторые из ключевых положений, касающихся открытого кода, в своем чрезвычайно влиятельном эссе «Собор и базар». В 1998 году, отчасти в ответ на это эссе, корпорация Netscape Communications открыла исходный код своего проекта Mozilla, выпустив его в виде бесплатного программного обеспечения. Позже этот код стал основой для Mozilla Firefox и Thunderbird. Поддержка Netscape Communications программного обеспечения с открытым исходным кодом заставила сообщество задуматься о том, как подчеркнуть практические аспекты этого движения для бизнеса. Разница между «открытым исходным кодом» и «свободным программным обеспечением» позже была закреплена документально. «Открытый исходный код» служит термином, защищающим методологические, производственные и бизнес-аспекты свободного программного обеспечения. «Свободное программное обеспечение» остаётся ярлыком для обсуждений, в которых подчеркиваются философские аспекты тех же вопросов, поскольку они связаны с концепцией свобод пользователя. В 1998 году была основана организация Open Source Initiative, формализовавшая термин «открытый исходный код» и установившая его общеизвестное определение. Хотя с конца 90-х до начала 2000-х к движению за открытый исходный код относились с осторожностью, оно неуклонно шло к тому, чтобы стать отраслевым стандартом, коим и является сегодня.
Каковы основные достоинства открытого исходного кода?
Есть множество причин, по которым люди предпочитают открытый исходный код проприетарному программному обеспечению, но наиболее распространенными из них являются: Экспертная оценка. Поскольку открытый исходный код находится в свободном доступе, а сообщество разработчиков очень активно — код активно проверяется и постоянно улучшается разными программистами. Прозрачность. Если необходимо точно знать обо всех изменениях, которые произошли в коде, и на каком этапе разработки находится проект — открытый исходный код как нельзя лучше решит этот вопрос. Ведь проверять и отслеживать изменения может кто угодно, в реальном времени. Надежность. Запатентованный код зависит от одного автора или компании, контролирующей и развивающей его. Открытый исходный код живёт в полной независимости от своих первоначальных авторов. Ведь он постоянно обновляется активными сообществами разработчиков. Множество заинтересованных программистов регулярно тестируют и обновляют код, чтобы сделать его лучше. Гибкость. Открытый исходный код можно использовать для решения огромного спектра разных задач. При этом, нет никакой зависимости от навыков специалистов, которые запустили проект. Ведь на помощь, так или иначе, придут другие разработчики и дадут свою экспертную оценку при внедрении новых решений. Более низкая стоимость. Разработка программного обеспечения с открытым исходным кодом обычно держится на чистом энтузиазме. А за готовые продукты, даже если и просят какую-то обязательную плату, взамен предлагают поддержку и помощь в настройке. Нет привязки к поставщику. Свобода для пользователя означает, что в любой момент можно взять открытый исходный код и применить его, как угодно, на своё усмотрение. Открытое сотрудничество. Наличие активных сообществ разработчиков означает, что можно легко и быстро найти помощь, ресурсы и различные видения решения задачи, выходящие за рамки интересов определённой группы разработчиков или компании.
Открытый исходный код
Открытое программное обеспечение (англ. open source software ) — это программное обеспечение с открытым исходным кодом. Исходный код создаваемых программ открыт, то есть доступен для просмотра и изменения. Это позволяет использовать уже созданный код для создания новых версий программ, для исправления ошибок и, возможно, помочь в доработке открытой программы.
«Открытая» лицензия не требует, чтобы открытое ПО предоставлялось бесплатно. Многие из наиболее успешных проектов открытого ПО, тем не менее, бесплатны. Открытое программное обеспечение имеет большие перспективы в России в связи с принятием правительством и президентом РФ решений по обеспечению национальной безопасности в сфере ИТ на основе внедрения открытого и свободного ПО в государственные и бюджетные организации.
Открытое и свободное ПО
Термин open source (англ. Открытое программное обеспечение) был создан вместе с определением в 1998 году Эриком Реймондом и Брюсом Перенсом, которые утверждали, что термин free software (Свободное программное обеспечение) в английском языке неоднозначен и отпугивает коммерческих предпринимателей. [1]
Подавляющее большинство открытых программ является одновременно свободными. Определения открытого и свободного ПО не полностью совпадают друг с другом, но близки, и большинство лицензий соответствуют обоим.
Отличие между движениями открытого ПО и свободного ПО заключается в основном в приоритетах. Сторонники термина «open source» делают упор на эффективность открытых исходников как метода разработки, модернизации и сопровождения программ. Сторонники термина «free software» считают, что именно права на свободное распространение, модификацию и изучение программ являются главным достоинством свободного открытого ПО.
Существуют программы, попадающие по мнению некоторых [кто?] под определение открытых, но не являющиеся свободными, например, UnRAR, распаковщик [2]
По мнению Ричарда Столлмана, разрекламированность «Open Source» несколько вредит свободному ПО, так как некоторые разработчики и пользователи открытого ПО совсем не против собственнического ПО, и люди останавливаются на Open Source, не доходя до понятий о свободе. [3]
По словам Брюса Перенса открытое ПО всегда было лишь способом объяснить предпринимателям идею свободного ПО, и это ему удалось. [4]
Несмотря на стремление авторов определения избавиться от неоднозначности слова free [5] , выражение open source тоже очень часто используется для обозначения сущностей, противоречащих определению OSI или не имеющих к нему никакого отношения, но способных привести к путанице. Например, спецслужбы США используют его в значении «открытый источник» (см.: OSINT, Open Source Intelligence), [6] что упомянуто в объявлении на сайте Реймонда. [1]
Враждебные к свободному ПО компании — например, Microsoft — используют только выражение open source.
Определение открытого программного обеспечения Open Source Initiative
Основная статья: Определение Open Source
Open Source является торговой маркой организации Open Source Initiative. Существует специальный комитет, решающий, может ли лицензия носить имя Open Source. Определение, которым он при этом руководствуется, приведено в The Open Source Definition. [7]
Вынесенное OSI определение признается за руководство многими другими организациями — например, порталом Debian Free Software Guidelines.
Лицензии
Основная статья: Лицензии открытого ПО
Исходные коды открытых программ выпускаются либо как общественное достояние, либо на условиях «свободных» лицензий — как, например, GNU General Public License или BSD License. Свободная лицензия позволяет использовать исходный код программы для своих нужд с минимальными ограничениями, не противоречащими определению OpenSource.org. Таким ограничением может быть требование ссылаться на предыдущих создателей или требование сохранять свойство открытости при дальнейшем распространении той же самой или модифицированной открытой программы (копилефт). В некоторых случаях (например, FreeBSD) эти ограничения очень малы, в других (например, GNU General Public License) достаточно распространять ПО вместе с исходным кодом и текстом лицензии, не изменяя её.
Открытое программное обеспечение в России
В настоящее время открытое программное обеспечение не получило широкого распространения в России, среди причин чему называют широкое нелегальное распространение собственнического программного обеспечения.
Однако, решениями правительства и президента РФ Дмитрия Анатольевича Медведева, отечественное открытое программное обеспечение в 2008 году внедрено во всех школах Российской Федерации и будет установлено во всех государственных и бюджетных организациях для обеспечения национальной безопасности в сфере ИТ.
Открытое программное обеспечение может свободно устанавливаться и использоваться во всех школах, офисах, вузах и на всех личных компьютерах и во всех государственных, бюджетных и коммерческих организациях и учреждениях России и в странах СНГ согласно Генеральной публичной лицензии (GPL).
Открытое программное обеспечение в школах
Решением правительства Российской Федерации в марте 2008 года, все средние школы России получили базовые пакеты лицензионного собственнического и открытого программного обеспечения для обучения компьютерной грамотности, основам информатики и новым информационным технологиям с операционными системами Windows и Linux.
В трёх регионах России в 2008 году развёрнуты эксперименты по внедрению и использованию в средних школах базовых пакетов программ для кабинетов информатики и вычислительной техники и начата подготовка учителей и преподавателей информатики технологии работы с открытым программным обеспечением в среде Windows и Linux.
Согласно Доктрине информационной безопасности РФ, обучение компьютерной грамотности и информатике должно сопровождаться правовым ликбезом в обучении защите информации в ЭВМ, защите от компьютерных вирусов, порно-сайтов и обеспечению информационной безопасности в локальных и глобальных сетях ЭВМ на базе лицензионного и свободного открытого программного обеспечения.
В 2007 году выпущены первые учебники информатики для вузов и школ для обучения информатике в соответствии с государственными стандартами образования со свободным и проприетарным программным обеспечением в среде Windows и Linux.
Российские разработчики открытого программного обеспечения
Российские разработчики в основном помогают развитию англоязычных проектов или выпускают локализованные редакции международных проектов (например, OpenOffice Pro на базе
Также, существует незначительное количество российских репозиториев открытого ПО (таких, как репозитарий Сизиф).
Примечания
- ↑ 12Эрик Реймонд.Goodbye, «free software»; hello, «open source» (англ.) (1998). Проверено 31 марта 2008.
- ↑Portable UnRAR source code. Евгений Рошал. — «Distribution of modified UnRAR sources in separate form or as a part of other software is permitted, provided that it is clearly stated in the documentation and source comments that the code may not be used to develop a RAR (WinRAR) compatible archiver» Проверено 24 мая 2009.
- ↑Bruce Byfield.Richard Stallman looks back at 25 years of the GNU project. Linux.com.
- ↑State of Open Source Message: A New Decade For Open Source (англ.) (8 февраля 2008). — «My intent has always been for Open Source to simply be another way of talking about Free Software, tailored to the ears of business people, and that it would eventually lead them to a greater appreciation of Richard Stallman’s arguments. This has come to pass, and…» Проверено 30 сентября 2008.
- ↑ В английском языке слово free имеет значение как «свободный», так и «бесплатный».
- ↑Noah Shachtman.Open Source Intel Rocks — Sorry, It’s Classified (англ.) . Блоги Wired.com (17 сентября 2008). Проверено 17 сентября 2008.
- ↑http://www.opensource.org/docs/definition.php
См. также
- Политика открытого кода
- Информационное общество
- Информационная безопасность
Ссылки
- Open Source в DMOZ
- Определение концепции Открытого исходного кода (Open Source), в переводе Алексея Киреева
- Определение Open Source в переводе Сергея Кузнецова
- В немецком университете Эрланген-Нюрнберг откроется кафедра по Open Source nixp
- Руководство по получению прибыли от свободных и открытых проектов (рус.)
- Технологии Linux Open и Source Труды школы-семинара ЮНЕСКО. М.: 2006.
- Сравнительный анализ основных лицензий Open Source: GPL, LGPL, BSD, MIT, Mozilla public license, Apache software license
- Ася Власова.Как украсть Linux?. Открытые системы (24 июня 2008). — О FOSS-лицензиях и их применении в России. Проверено 12 октября 2008.
- Richard Stallman.Why «Open Source» misses the point of Free Software (англ.) . Free Software Foundation (7 октября 2008). Проверено 12 октября 2008.
- Почему «открытый код» проигрывает свободному программному обеспечению (2008). — не обязательно хороший перевод.
- Избегая губительных компромиссов (2008). — любительский перевод.
Коммерческое ПО • Crippleware • Foistware • Freely redistributable software • Свободное ПО • Полусвободное ПО • Проприетарное ПО • Nagware • Открытое ПО • Otherware • Postcardware • Propagandaware • Registerware • Retail software • Shareware
Wikimedia Foundation . 2010 .
- Открытый всероссийский синхронный чемпионат по ЧГК
- Открытый каталог
Больше чем софт: что такое код open source и для чего он нужен
Согласно определению на Open Source Initiative, Open Source Software или программное обеспечение с открытым исходным кодом — это ПО, «исходники» которого доступны для просмотра и изменения. Исходный код можно использовать, чтобы создавать свои модификации софта, а также свободно распространять и даже продавать их. Принцип открытости со временем охватил не только сферу программирования, но и другие области. Дизайнеры могут размещать в открытом доступе бесплатные шрифты и шаблоны, программисты — коды мобильных приложений и онлайн-игры, ученые — исследования. В последние годы потребителями открытого ПО становятся целые страны. Французская жандармерия использует на своих компьютерах свободное ПО Ubuntu, а другие министерства переходят с Microsoft Office на бесплатный LibreOffice. Этот офисный пакет также используют министерства обороны Нидерландов и Италии, муниципалитеты Албании и Испании. А правительство Великобритании перешло с формата PDF в документации на опенсорс-формат Open Document Format for Office Applications (ODF) по умолчанию. РБК Тренды разобрались, в чем плюсы и минусы открытого софта.
С чего начиналось свободное ПО
С 1952 по 1955 год компания IBM начала выпускать IBM 701, первый коммерчески доступный компьютер. ЭВМ не продавали конечным потребителям, а сдавали в аренду научным институтам, военным компаниям и госпредприятиям. Машины поставлялись без операционной системы и программ. Ученые и инженеры начали писать софт сами и делились им с коллегами из других компаний, у которых были аналогичные ЭВМ. Со временем коммерческих моделей компьютеров становилось больше, и они стали доступны обычным пользователям. Однако под каждую из этих моделей придумывали отдельное ПО. Компании-производители создавали каждый свою операционную систему: BESYS, Compatible Time-Sharing System или CP/CMS. Эти ОС начинали продавать вместе с ПК, и иногда они стоили дороже самого компьютера. Разработчик Ричард Столлман присоединился к лаборатории искусственного интеллекта при Массачусетском технологическом институте (MIT). Он принимал участие в работе над свободным ПО, например, над EMACS — текстовым редактором для мини-компьютеров семейства PDP. Позднее редактор продали коммерческому дистрибьютору. В 1984 году Столлман решил основать проект свободного ПО под названием GNU (рекурсивный акроним от англ. GNU’s Not UNIX).
Ричард Столлман в МГУ (Фото: Wikipedia)
В рамках этого проекта энтузиасты придумали термин «свободное ПО» и сформулировали его критерии: использование, изучение, шеринг и улучшение. Они опубликовали манифест GNU. В 1985 году Столлман основал фонд Free Software Foundation (FSF) для развития свободного ПО за счет пожертвований. В 1989 году появилась первая версия лицензии GPL — General Public License («Универсальная общественная лицензия GNU»). Она должна защитить свободу всех пользователей программ, давать права на копирование, модификацию и распространение софта. Столлман добавил в лицензию понятие «авторское лево» в противовес «авторскому праву», по которому пользователи всех производных программ получают все оригинальные права создателя. Позднее появились другие лицензии, которые позволяют использовать свободное ПО, например, лицензия MIT от Массачусетского технологического института или лицензия BSD от Калифорнийского университета в Беркли. К 1991 году разработчикам удалось создать независимую работоспособную ОС, но ей не хватало ядра. Тогда Линус Торвальдс выпустил ядро Linux с открытым кодом, а в 1992 году лицензировал его по GPL.
Линус Торвальдс (Фото: YouTube)
В середине 1990-х годов в open source пришла первая крупная компания Netscape. Ее браузер Navigator был одним из самых популярных в мире, но с появлением Internet Explorer он стал вытесняться с рынка. В 1998 году в Netscape решили открыть исходный код своего браузера. Год спустя компании не стало, но исходный код Navigator стал основой для одного из самых популярных браузеров — Mozilla Firefox. В 1998 году возникла организация Open Source Initiative (OSI), которая занимается популяризацией открытого кода. В том же году разработчики придумали альтернативу термину «свободное ПО». Они решили внедрить понятие open source, чтобы сменить парадигму бесплатности на доступность. Впоследствии разработчики Эрик Реймонд и Брюс Перенс написали «Определение Open Source». В 2014 году представители фонда поддержки открытых проектов Linux Foundation заявили, что в будущем 80% стоимости технологий будет приходиться на открытый код и только 20% — на платные программы.
Плюсы открытого кода
Обсуждения плюсов и минусов и активны по сей день. Однако многие разработчики сходятся в общем понимании позитивных и негативных сторон опенсорс-проектов.
Для пользователей
- Долгосрочная поддержка — в интересах опенсорс-сообщества развивать проект как можно дольше, в то время как корпорации постоянно обновляют версии и выпускают новые продукты на смену старым, чтобы брать с потребителей деньги.
- Экономия денег — за продукт и его новые версии не нужно платить.
- Конфиденциальность — корпорации зачастую собирают личные данные потребителей для таргетинга и прочих целей. К примеру, Microsoft уличили в том, что она собирала персональные данные 300 тыс. госслужащих Нидерландов через Office ProPlus без разрешения и документации.
- Простая обратная связь — индивидуальные разработчики и небольшие группы программистов реагируют на баги и ошибки гораздо быстрее, чем крупные компании.
Для разработчиков:
- Возможность находить любое ПО для работы, обучения и развития собственных проектов.
- Уверенность в том, что софт постоянно поддерживается разработчиком, часто обновляется и получает необходимые функции.
- Возможность адаптировать ПО к своим потребностям.
- Экономия денег, которые можно дополнительно вложить в нужный коммерческий софт.
Для корпораций:
- Участие в открытых проектах позволяет привлечь внимание к другим своим программам, а также развивать собственную экосистему за счет усилий сторонних разработчиков.
- Вовлеченность открытого сообщества в проекты компании делает проще поиск и найм новых сотрудников.
- Покупка опенсорс-компаний позволяет удерживать таланты внутри компании; поддержка проектов извне мотивирует разработчиков активнее развивать их.
Минусы open source
Плагиат. Коммерческие структуры могут использовать открытый код для своих продуктов без указания его авторства. Иногда они вносят минимальные изменения в код, чтобы выдавать его за собственный. Подобное случилось с участниками проекта Leela, которые разработали бесплатный шахматный движок Chess Zero с настраиваемой нейронной сетью. Его использовала компания ChessBase, которая выпустила шахматную программу Fat Fritz. Пакет программ ChessBase Fritz компании стоит от €79 до €99. При этом она отрицает, что каким-либо образом задействовала открытый код.
Аналогичная история была и с Amazon Web Services, которая запустила CloudWatch Synthetics Recorder, расширение Chrome для записи взаимодействий с браузером. Однако данный сервис оказался полностью скопирован с проекта Headless Recorder, созданного разработчиком Тимом Нолетом. В AWS факт плагиата не признавали.
Отсутствие поддержки. Открытый код может использоваться в тех проектах, о которых его авторы даже не подозревают. Таким образом, они не могут оказывать должную поддержку. Кроме того, существует риск, что разработчик небольшого проекта отойдет от дел, а продолжать его дело будет некому, и код начнет устаревать. Проект Libraries.io обнаружил более 2 400 библиотек с открытым кодом, используемых минимум в 1 тыс. других программ, не получавших должного внимания со стороны опенсорс-сообщества. Для потребителя такой программы это может стать проблемой. К примеру, когда программист Азер Кочулу удалил свою библиотеку Leftpad из интернета, проблемы возникли у Facebook, Netflix и других проектов.
Незамеченные уязвимости. Каждый открытый проект зависит от более мелких. В этой цепочке зависимостей легко может возникнуть дыра в безопасности, которую могут долго не замечать. В 2014 году такая уязвимость в безопасности Heartbleed была обнаружена в OpenSSL — программе с исходным кодом, используемой практически всеми веб-сайтами, обрабатывающими платежи с банковских карт. Она делала все эти ресурсы уязвимыми для атак хакеров и кражи данных. По данным GitHub, 17% всех уязвимостей создаются со злонамеренными целями. Исследователи отмечают, что они могут просуществовать до четырех лет, прежде чем будут устранены.
Проекты с открытым кодом
Проекты GNU и Linux послужили основой для многих продуктов. А приход компании Netscape позволил привлечь внимание ИТ-гигантов, которые со временем начали активно вкладываться в open source.
Проект Debian, одной из старейших операционных систем, основанных на ядре Linux, с момента своего основания разрабатывался открыто. Фонд свободного программного обеспечения спонсировал проект с 1994 по 1995 год, а затем создатели организовали некоммерческую организацию «Программное обеспечение в общественных интересах» для финансирования Debian. Проект включает популярные бесплатные программы, такие как LibreOffice, браузер Firefox, почту Evolution, устройство записи дисков K3b, медиаплеер VLC, редактор изображений GIMP и программу просмотра документов Evince.
Организация Apache Software Foundation тоже начиналась как открытый проект по развитию одноименного программного обеспечения, в том числе веб-сервера Apache. Данный сервер считается одним из наиболее популярных. Он позволяет запускать сайты небольших проектов и малого бизнеса на WordPress. В наше время разработчики поддерживают множество софтверных проектов, которые имеют открытую лицензию Apache Software License. Спонсорами ASF выступают такие гиганты как Microsoft, Huawei и Amazon Web Sevices.
Компания Red Hat, производитель программного обеспечения на основе операционной системы Linux, возникла в 1995 году. Она не только выпускала софт, но и занималась технической поддержкой и обучением системных администраторов и разработчиков. В 2018 году компанию купила IBM.
Google развивалась благодаря Linux и открытому ПО. Компания сама поддерживает такие проекты как библиотека машинного обучения TensorFlow, язык программирования Go, ПО для автоматизации развертывания приложений Kubernetes и другие. В 2017 году Google открыла портал для 2 тыс. своих open source проектов. Компания делится своими наработками в области открытого кода, а также рассказывает о поддержке новых инициатив.
Microsoft, которая изначально была против open source, в последние годы также изменила отношение к свободному ПО. В 2018 году компания передала 60 из 90 тыс. своих патентов на разработки Open Invention Network (OIN) — организации, которая владеет патентами на программное обеспечение открытой экосистемы GNU/Linux и предоставляет право на их бесплатное использование. Чуть позже корпорация приобрела портал репозиториев открытого года GitHub, а также активно принимает участие в развитии открытых проектов, в том числе, Linux.
Microsoft покупает GitHub (Фото: Блог GitHub)
Организация Open Source Design объединяет дизайнеров, которые разрабатывают проекты с открытым кодом. Она существует более пяти лет. В работе организации принимают участие UX-дизайнеры Mozilla, GNOME, Fedora, Canonical (Ubuntu), WordPress, Drupal, Libre Office, «википедии» для дизайнеров XWiki и других компаний.
В науке опенсорс-подход распространяется не только на открытое ПО, но и на публикации работ исследователей, открытое рецензирование и развитие открытых образовательных ресурсов. Еще в 1991 году физик Пол Гинспарг основал электронный архив arXiv при Лос-Аламосской национальной лаборатории для публикации в открытом доступе препринтов. Теперь там публикуются работы не только по физике, но и по медицине, математике и еще ряду направлений. Европейская организация по ядерным исследованиям (ЦЕРН) поддерживает не только выпуск оборудования с открытым исходным кодом и открытой лицензией, но и собственный портал открытых данных. Ученые применяют инструменты с открытым кодом также для того. чтобы раскрывать методологию своих исследований. К примеру, они используют Open Notebooks для документирования рабочих процессов.
Продукты с открытым кодом используют не только специалисты, но и обычные пользователи, причем иногда они даже не подозревают об этом. LibreOffice, OpenOffice и NeoOffice позволяют бесплатно работать с текстовыми документами, таблицами, графиками, рисовать и делать презентации. 7-Zip, файловый архиватор с высокой степенью сжатия, помогает экономить место на ПК и передавать большие файлы. Графический редактор GIMP способен заменить Photoshop, так как включает инструменты цветокоррекции, фильтры, рисующие инструменты, маски и слои.
Примеру опенсорс-проектов следуют и корпорации, которые открывают свои программы для улучшения. Так, Microsoft решила поделиться кодом приложения «Калькулятор» для Windows, чтобы открытое сообщество предлагало для него исправления и новые функции.
Открытый исходный код в наши дни помогает поддерживать технологии искусственного интеллекта, блокчейна и сложных вычислений. Согласно отчету Red Hat, который опросил 1 250 ИТ-лидеров по всему миру, 90% этих предприятий используют открытый исходный код: 64% компаний задействуют такое ПО для модернизации инфраструктуры, 54% — для разработки приложений, 53% — для цифровой трансформации. За последние два года эти показатели увеличились на 11%, и в будущем открытый код, вероятно, поможет заменять ручные процессы автоматизированным управлением на программном обеспечении, способствуя инновациям.
ПО с открытым исходным кодом: почему сегодня это особенно опасно и как защититься?
Количество кибератак, направленных на государственные и коммерческие организации, с каждым днем растет. Один из серьезных векторов угроз – приложения и библиотеки с открытым исходным кодом – так называемый Open Source, без которого современную разработку уже невозможно представить. Поскольку проекты с открытым исходным кодом развиваются силами энтузиастов и участвующих пользователей, в открытых библиотеках часто распространяются серьезные уязвимости.
На фоне массового ухода из России зарубежных вендоров коммерческого ПО компании экстренно ищут замену, чтобы бизнес-процессы не просели. Поскольку из-за ряда ограничений быстро перейти на другой коммерческий софт бывает невозможно, бизнес активно использует Open Source либо в качестве замены ушедшего с рынка коммерческого ПО, либо интегрирует его элементы в собственную разработку.
Директор Центра Solar appScreener компании «Ростелеком-Солар» Даниил Чернов рассказал, какие сюрпризы таит Open Source и что делать разработчикам и ИБ-специалистам, чтобы минимизировать киберриски от его использования.
Что такое Open Source?
Open Source – это программное обеспечение, исходный код которого свободно распространяется и доступен для изменения. Сюда относятся различные пользовательские программы, компоненты, библиотеки, которые используют разработчики для создания своих проектов.
Подобное программное обеспечение выпускается как общественное достояние или на условиях свободных лицензий, например GNU General Public License, BSD License и.т.д. Опенсорсные решения нередко используются даже в корпоративной сфере в качестве замены дорогих коммерческих продуктов. Компоненты с открытым исходным кодом также могут быть элементами других приложений и информационных систем.
Возросшие риски
Главная опасность популярных решений с открытым исходным кодом связана с тем, что разработчики широко применяют их внутри других приложений. Уязвимость в том или ином бесплатном компоненте может привести к серьезным угрозам информационной безопасности по всему миру. Достаточно вспомнить недавнюю историю с Apache Log4j – библиотекой, которая используется миллионами корпоративных приложений и Java-серверами. Обнаруженная уязвимость позволяла злоумышленникам выполнить произвольный код на сервере или устройстве, чтобы похитить данные или внедрить вредоносную программу. Еще раньше, в 2014 году, серьезная уязвимость Heartbleed была найдена в компоненте с открытым исходным кодом OpenSSL, которая использовалась практически на всех веб-сайтах, обрабатывающих платежи с помощью банковской карты.
Уязвимость в том или ином бесплатном компоненте может привести к серьезным угрозам информационной безопасности
Обычно в таких случаях речь идет о неумышленных уязвимостях. Однако в современном мире распространение в открытом доступе ПО с уязвимостями может быть намеренным. Проекты с открытым исходным кодом развиваются силами энтузиастов и участвующих пользователей, и защищенность этого софта никто не гарантирует. Разработчики формируют сообщества, вносят правки, добавляют новые функции, исправляют ошибки в коде. Под видом улучшения злоумышленники могут сами добавить в ту или иную библиотеку элемент кода с уязвимостью. Собрать данные о том, какие компании и какие популярные приложения используют определенный опенсорсный компонент, не так уж сложно. Разработчики делятся опытом на форумах, в статьях, в интервью и т. д. В итоге злоумышленники, внедрившие вредоносный код в бесплатный софт, точно знают, кого и как атаковать. Риски, которые вчера казались маловероятными, сегодня становятся крайне высокими.
Дальнейшие действия злоумышленников зависят от поставленных целей. Это могут быть упомянутые выше похищение конфиденциальных данных и внедрение шифровальщика для получения выкупа. В последние недели резко увеличилось количество атак в рамках информационной войны: хакеры взламывают веб-ресурсы и приложения для размещения тех или иных призывов, распространения фейковых новостей и т. п. Киберпреступники также могут добавить в опенсорсные решения фрагменты вредоносного кода для совершения DDoS-атак, чтобы обрушить сайты СМИ или органов власти.
Уход зарубежных вендоров ПО провоцирует рост спроса на Open Source
Угрозы, которые таит в себе софт с открытым исходным кодом, становятся еще более актуальными на фоне массового ухода из России зарубежных вендоров программного обеспечения. Оперативно заменить то или иное коммерческое решение на другое не всегда возможно, например, из-за бюджетных ограничений. Многие компании вынуждены обратить внимание на опенсорсное ПО в качестве временного решения.
Бесплатный софт, который может использоваться в защищенном контуре ИТ-инфраструктуры компании, взаимодействует с чувствительными данными или является частью системы защиты информации, становится крайне привлекательной мишенью для киберпреступников. Намеренно добавив в код таких решений уязвимости или недекларированные возможности, злоумышленники смогут без особых проблем провести целевую атаку, которая грозит компании финансовыми и репутационными потерями.
Как защититься?
Анализ исходного кода на наличие уязвимостей как один из элементов повышения защищенности ИТ-инфраструктуры был актуален и раньше. Сегодня в условиях, когда опенсорсные решения могут представлять большую опасность, сканирование свободно распространяемых библиотек и приложений становится обязательным.
В компаниях, которые сами разрабатывают программное обеспечение, оптимальный вариант – внедрение процессов безопасной разработки. Важно, чтобы центральным элементом этих процессов был продвинутый анализатор кода, который поддерживает большое количество языков программирования и использует сложные эффективные алгоритмы поиска уязвимостей и недекларированных возможностей. Максут Шадаев на TAdviser SummIT — о вызовах в цифровизации госсектора, давлении китайских ИТ-поставщиков и перспективах ИИ
Если в компании используется ПО с открытым исходным кодом или софт, который содержит опенсорсные компоненты, важно регулярно проверять его с помощью надежного сканера. Идеально, если это будет инструмент с интуитивно понятным интерфейсом, не требующий от пользователя опыта в разработке. Скорее всего, работать с анализатором будет не программист, а сотрудник команды безопасности, который по результатам сканирования должен получить исчерпывающую информацию об уровне угрозы и рекомендации по устранению уязвимостей.
В обоих случаях большое значение имеет минимизация количества ложных срабатываний. Если они будут частыми, использование инструмента анализа будет увеличить нагрузку как на разработчиков, так и на специалистов по информационной безопасности. Так, в статическом анализаторе кода Solar appScreener компании «Ростелеком-Солар» для минимизации количества ложных срабатываний и пропущенных уязвимостей используется запатентованная вендором технология Fuzzy Logic Engine. Она минимизирует количество ложных срабатываний, задействуя математический аппарат нечеткой логики и является технологическим ноу-хау.
Выстроенный процесс получения актуальной информации о киберугрозах из разных источников позволяет своевременно реагировать на появление новых уязвимостей и оперативно добавлять новые правила их поиска в инструмент анализа кода.
Как невозможно представить себе современный мир без цифровых инструментов, так и современную разработку этих самых инструментов уже не представить без широкого использования Open Source. Главное – учитывать возросшие риски, связанные с бесплатным ПО и свободно распространяемыми библиотеками, и использовать продвинутые программные решения для поиска уязвимостей и их устранения.