Включите исполнение JavaScript в браузере, чтобы запустить приложение.
23 окт 2024

Вероятные риски от использования ПО на базе open source

В этом материале вы узнаете, насколько безопасными являются продукты на базе open source. Что такое open source и какие риски могут поджидать при использовании программного обеспечения с открытым кодом. ✅ Безопасно ли использовать open source ПО и как предотвратить риски — читайте в статье.
  1. Что такое open source
  2. Особенности использования open source
  3. Опасности open source
  4. Обвинения в плагиате
  5. Вероятность заражения
  6. Зачем заниматься безопасностью ПО на основе open source
  7. Кто должен отвечать за безопасность open-source
  8. Подведем итог

Что такое open source

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

Несколько примеров такого ПО:

  • Linux — одна из самых популярных операционных систем, особенно распространенная среди специалистов сферы IT;
  • Mozilla Firefox — известный браузер с широкими возможностями настройки. Он был разработан на основе другого браузера с открытым ПО, его название — Netscape Communicator;
  • WordPress — система управления содержимым сайта, используется для создания сайтов и веб-приложений;
  • Git — система контроля версий, широко распространенная среди разработчиков по всему миру;
  • LibreOffice — пакет офисных приложений, был создан как ответвление Open Office;
  • Eclipse — это интегрированная среда разработки (IDE) кроссплатформенных приложений, которая имеет большой набор инструментов и возможностей.

Особенности использования open source

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

  • происходит постоянное улучшение качества продукта, исправление ошибок, доработка ключевых функций ПО, что повышает его качество и надежность. При этом улучшение исходного ПО часто осуществляют программисты, которые сами им пользуются, а значит, отлично понимают, что требует доработки;
  • любой человек или организация может вносить в программное обеспечение изменения для улучшения его функциональности или настройки под нужды конкретного проекта, бизнеса и так далее;
  • программное обеспечение распространяется бесплатно, реже — за низкую плату. Также иногда пользователи при желании могут финансово поддержать разработчиков;
  • часто такое программное обеспечение является кроссплатформенным — может полноценно работать на разных устройствах и операционных системах;
  • так как исходное ПО полностью открыто, участники сообщества могут быстро находить и устранять уязвимости, что повышает информационную безопасность. Но если все имеют доступ к информации о состоянии безопасности программного обеспечения, то кто-то может воспользоваться этим в своих интересах — это обратная сторона данной особенности. Именно из-за этого необходимо отслеживать и предотвращать попытки внедрения вредоносного ПО;
  • иногда у такого программного обеспечения не существует официальной поддержки и вся работа над ним лежит на плечах сообщества — различных специалистов: разработчиков и тестировщиков, компаний и пользователей, которые могут сообщать о проблемах, предлагать нововведения или другие способы улучшить продукт. Эту особенность нельзя назвать очевидным минусом, так как часто сообщества открытого ПО являются обширными, а главное, их участники — это активные люди, готовые всегда прийти на помощь;
  • обновления программного обеспечения происходят довольно часто, особенно по сравнению с проприетарным ПО;
  • использование открытого ПО можно назвать вкладом в общее дело, а непосредственное участие в сообществе, притом не так важно, в каком качестве — это вклад в инновации, обмен знаниями и опытом;
  • при использовании такого программного обеспечения снижается зависимость от конкретного поставщика ПО, который может прекратить поддержку своих продуктов или изменить их стоимость;
  • условия лицензии необходимо соблюдать.

Опасности open source

Прежде чем описать риски применения открытого ПО, стоит чуть подробнее рассмотреть лицензии. Лицензия в open source — это набор соглашений, условий и ограничений, которые разработчики ПО могут устанавливать для своих продуктов. Другими словами, лицензия определяет то, как пользователи могут копировать, модифицировать и распространять программное обеспечение.

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

Существует несколько видов лицензий:

  1. Лицензии с разрешением (permissive) — лицензии такого вида не накладывают почти никаких ограничений на использование программного обеспечения. То есть, кто угодно может использовать, модифицировать и распространять ПО как угодно. Также не накладывается ограничений на распространение производных от исходного ПО продуктов под другой лицензией. Лицензии этого вида: MIT (одна из самых простых и широко используемых), Apache License и BSD.
  2. Copyleft — копии и производные от исходного программного обеспечения с таким видом лицензии можно распространять без ведома и разрешения автора. При этом лицензии такого вида требуют, чтобы производное ПО распространялось под той же лицензией, что и исходное. Такие лицензии гарантируют, что программное обеспечение останется доступным и свободным для всех пользователей. Конкретные лицензии вида copyleft: GNU General Public License (GPL) и ее расширенная версия AGPL, или Creative Commons Attribution ShareAlike. Они отличаются сферами применения и некоторыми деталями содержания.
  3. Также существует концепция Public Domain (общественное достояние), при которой продукт вообще не защищен авторским правом и может использоваться, изменяться и распространяться кем угодно и с любой целью. Такой концепции следует, например, SQLite — популярная встраиваемая СУБД. Лицензии этого вида: Creative Commons Zero (CC0) и Unlicense.

Обвинения в плагиате

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

Любой разработчик может столкнуться с этой проблемой, скажем так, с двух сторон. Допустим, какой-то разработчик выпустил open source проект, распространяемый под одной из copyleft-лицензий. Тогда этот разработчик может столкнуться со следующим: кто-то возьмет его ПО и выпустит точно такую же или чуть-чуть измененную версию под собственным авторством. Тогда разработчик исходного продукта может подать в суд на нарушителя авторских прав, но здесь можно подумать о том, как скоро он узнает, что его проект кто-то использовал и узнает ли вообще.

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

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

Для того чтобы избежать этой опасности, стоит сделать следующее:

  • тщательно изучить различные виды лицензий — их особенности и условия, рассмотреть их совместимость с другими;
  • при использовании и изменении open source ПО для собственных проектов следует действовать в соответствии с лицензией и при необходимости указывать авторов исходного ПО;
  • если планируется создание проприетарного ПО с использованием открытого, то необходимо проверить, разрешено ли это лицензией;
  • перед выпуском собственного проекта стоит еще раз проверить его на соблюдение всех условий лицензии используемого или используемых сторонних продуктов.

Вероятность заражения

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

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

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

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

Во-вторых, уязвимости могут возникнуть и в поддерживаемых сторонних продуктах. Это особенно актуально для больших и широко используемых библиотек, так как, внедряя вредоносные изменения в них, злоумышленники смогут сломать работу сразу многих зависящих от нее проектов. Информация о том, какие компании и какое именно открытое ПО они используют тоже есть в общем доступе.

Сегодня примеров таких заражений можно привести достаточно много, и вот один из них:

Весной 2014 года в общедоступной библиотеке OpenSSL была обнаружена уязвимость Heartbleed, которая позволила злоумышленникам просматривать произвольные фрагменты памяти сервера, тем самым обеспечивая доступ к различной конфиденциальной информации. Эта атака затронула огромное количество сайтов и систем.

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

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

Зачем заниматься безопасностью ПО на основе open source

Итак, в любое открытое программное обеспечение могут быть внедрены вредоносные изменения, что во многом и обусловлено его открытостью. Но что конкретно могут сделать злоумышленники?

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

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

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

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

  1. При выборе программного обеспечения стоит внимательно изучить его. Это означает, что стоит обратить внимание на его репутацию, историю, узнать о возможных прошлых происшествиях, связанных с безопасностью. Можно оценить частоту обновлений и активность сообщества. Особое внимание нужно уделить лицензии, под которой распространяется продукт.
  2. Уже в процессе использования open source ПО для борьбы с «проблемой зависимостей» их стоит обновлять и контролировать: оценивать, насколько они безопасны. Для этого могут использоваться специальные инструменты, автоматизирующие процесс проверки зависимостей.
  3. Для поиска вредоносных изменений в программных продуктах обычно применяются различные инструменты, например, статистические и динамические анализаторы.
  4. Если речь идет об использовании такого ПО организацией, то в идеале нужно иметь сотрудников, которые смогут отслеживать безопасность используемого продукта и отреагировать на возможную атаку. Также организациям лучше заранее иметь план действий на случай возникновении таких инцидентов.

Кто должен отвечать за безопасность open source ПО

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

Роли участников:

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

Подведем итог 

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

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

Информационная безопасность, а точнее — вероятность заражения вредоносным ПО — это еще один риск использования открытого программного обеспечения. Такое возможно по разным причинам и приводит к неприятным последствиям: кража конфиденциальной информации или денег, репутационные потери. Это не повод полностью отказаться от использования open source ПО — это повод применять предупреждающие меры. К таким мерам относятся:

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

В open source безопасность — это ответственность, которая лежит не на одном человеке. Она лежит на разработчиках, компаниях, пользователях и сообществе.